diff --git a/gosnappi/bgp_attributes_community.go b/gosnappi/bgp_attributes_community.go index 7838417e..6121cba8 100644 --- a/gosnappi/bgp_attributes_community.go +++ b/gosnappi/bgp_attributes_community.go @@ -278,16 +278,16 @@ type BgpAttributesCommunity interface { Choice() BgpAttributesCommunityChoiceEnum // setChoice assigns BgpAttributesCommunityChoiceEnum provided by user to BgpAttributesCommunity setChoice(value BgpAttributesCommunityChoiceEnum) BgpAttributesCommunity - // getter for NoExportSubconfed to set choice. - NoExportSubconfed() - // getter for LlgrStale to set choice. - LlgrStale() - // getter for NoLlgr to set choice. - NoLlgr() // getter for NoAdvertised to set choice. NoAdvertised() // getter for NoExport to set choice. NoExport() + // getter for LlgrStale to set choice. + LlgrStale() + // getter for NoLlgr to set choice. + NoLlgr() + // getter for NoExportSubconfed to set choice. + NoExportSubconfed() // CustomCommunity returns BgpAttributesCustomCommunity, set in BgpAttributesCommunity. // BgpAttributesCustomCommunity is user defined COMMUNITY attribute containing 2 byte AS and custom 2 byte value defined by the administrator of the domain. CustomCommunity() BgpAttributesCustomCommunity @@ -322,9 +322,14 @@ func (obj *bgpAttributesCommunity) Choice() BgpAttributesCommunityChoiceEnum { return BgpAttributesCommunityChoiceEnum(obj.obj.Choice.Enum().String()) } -// getter for NoExportSubconfed to set choice -func (obj *bgpAttributesCommunity) NoExportSubconfed() { - obj.setChoice(BgpAttributesCommunityChoice.NO_EXPORT_SUBCONFED) +// getter for NoAdvertised to set choice +func (obj *bgpAttributesCommunity) NoAdvertised() { + obj.setChoice(BgpAttributesCommunityChoice.NO_ADVERTISED) +} + +// getter for NoExport to set choice +func (obj *bgpAttributesCommunity) NoExport() { + obj.setChoice(BgpAttributesCommunityChoice.NO_EXPORT) } // getter for LlgrStale to set choice @@ -337,14 +342,9 @@ func (obj *bgpAttributesCommunity) NoLlgr() { obj.setChoice(BgpAttributesCommunityChoice.NO_LLGR) } -// getter for NoAdvertised to set choice -func (obj *bgpAttributesCommunity) NoAdvertised() { - obj.setChoice(BgpAttributesCommunityChoice.NO_ADVERTISED) -} - -// getter for NoExport to set choice -func (obj *bgpAttributesCommunity) NoExport() { - obj.setChoice(BgpAttributesCommunityChoice.NO_EXPORT) +// getter for NoExportSubconfed to set choice +func (obj *bgpAttributesCommunity) NoExportSubconfed() { + obj.setChoice(BgpAttributesCommunityChoice.NO_EXPORT_SUBCONFED) } func (obj *bgpAttributesCommunity) setChoice(value BgpAttributesCommunityChoiceEnum) BgpAttributesCommunity { diff --git a/gosnappi/bgp_attributes_sr_policy_explicit_null_policy.go b/gosnappi/bgp_attributes_sr_policy_explicit_null_policy.go index 959f2f55..f9872ba9 100644 --- a/gosnappi/bgp_attributes_sr_policy_explicit_null_policy.go +++ b/gosnappi/bgp_attributes_sr_policy_explicit_null_policy.go @@ -272,14 +272,14 @@ type BgpAttributesSrPolicyExplicitNullPolicy interface { setChoice(value BgpAttributesSrPolicyExplicitNullPolicyChoiceEnum) BgpAttributesSrPolicyExplicitNullPolicy // HasChoice checks if Choice has been set in BgpAttributesSrPolicyExplicitNullPolicy HasChoice() bool - // getter for DonotPush to set choice. - DonotPush() - // getter for Unknown to set choice. - Unknown() - // getter for PushIpv6 to set choice. - PushIpv6() // getter for PushIpv4AndIpv6 to set choice. PushIpv4AndIpv6() + // getter for PushIpv6 to set choice. + PushIpv6() + // getter for Unknown to set choice. + Unknown() + // getter for DonotPush to set choice. + DonotPush() // getter for PushIpv4 to set choice. PushIpv4() } @@ -305,14 +305,9 @@ func (obj *bgpAttributesSrPolicyExplicitNullPolicy) Choice() BgpAttributesSrPoli return BgpAttributesSrPolicyExplicitNullPolicyChoiceEnum(obj.obj.Choice.Enum().String()) } -// getter for DonotPush to set choice -func (obj *bgpAttributesSrPolicyExplicitNullPolicy) DonotPush() { - obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.DONOT_PUSH) -} - -// getter for Unknown to set choice -func (obj *bgpAttributesSrPolicyExplicitNullPolicy) Unknown() { - obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.UNKNOWN) +// getter for PushIpv4AndIpv6 to set choice +func (obj *bgpAttributesSrPolicyExplicitNullPolicy) PushIpv4AndIpv6() { + obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.PUSH_IPV4_AND_IPV6) } // getter for PushIpv6 to set choice @@ -320,9 +315,14 @@ func (obj *bgpAttributesSrPolicyExplicitNullPolicy) PushIpv6() { obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.PUSH_IPV6) } -// getter for PushIpv4AndIpv6 to set choice -func (obj *bgpAttributesSrPolicyExplicitNullPolicy) PushIpv4AndIpv6() { - obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.PUSH_IPV4_AND_IPV6) +// getter for Unknown to set choice +func (obj *bgpAttributesSrPolicyExplicitNullPolicy) Unknown() { + obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.UNKNOWN) +} + +// getter for DonotPush to set choice +func (obj *bgpAttributesSrPolicyExplicitNullPolicy) DonotPush() { + obj.setChoice(BgpAttributesSrPolicyExplicitNullPolicyChoice.DONOT_PUSH) } // getter for PushIpv4 to set choice diff --git a/gosnappi/bgp_v4_interface.go b/gosnappi/bgp_v4_interface.go index 341c0495..592a61bb 100644 --- a/gosnappi/bgp_v4_interface.go +++ b/gosnappi/bgp_v4_interface.go @@ -286,12 +286,12 @@ type BgpV4Interface interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name -// - /components/schemas/DhcpClient.V4/properties/name +// - /components/schemas/Device.Dhcpv4client/properties/name // // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name -// - /components/schemas/DhcpClient.V4/properties/name +// - /components/schemas/Device.Dhcpv4client/properties/name // // Ipv4Name returns a string func (obj *bgpV4Interface) Ipv4Name() string { @@ -305,12 +305,12 @@ func (obj *bgpV4Interface) Ipv4Name() string { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name -// - /components/schemas/DhcpClient.V4/properties/name +// - /components/schemas/Device.Dhcpv4client/properties/name // // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name -// - /components/schemas/DhcpClient.V4/properties/name +// - /components/schemas/Device.Dhcpv4client/properties/name // // SetIpv4Name sets the string value in the BgpV4Interface object func (obj *bgpV4Interface) SetIpv4Name(value string) BgpV4Interface { diff --git a/gosnappi/bgp_v6_interface.go b/gosnappi/bgp_v6_interface.go index 788e092c..18861e6d 100644 --- a/gosnappi/bgp_v6_interface.go +++ b/gosnappi/bgp_v6_interface.go @@ -286,12 +286,12 @@ type BgpV6Interface interface { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name -// - /components/schemas/DhcpClient.V6/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name -// - /components/schemas/DhcpClient.V6/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // Ipv6Name returns a string func (obj *bgpV6Interface) Ipv6Name() string { @@ -305,12 +305,12 @@ func (obj *bgpV6Interface) Ipv6Name() string { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name -// - /components/schemas/DhcpClient.V6/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name -// - /components/schemas/DhcpClient.V6/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // SetIpv6Name sets the string value in the BgpV6Interface object func (obj *bgpV6Interface) SetIpv6Name(value string) BgpV6Interface { diff --git a/gosnappi/device_dhcp_server.go b/gosnappi/device_dhcp_server.go index a80b5290..6870e48a 100644 --- a/gosnappi/device_dhcp_server.go +++ b/gosnappi/device_dhcp_server.go @@ -17,6 +17,7 @@ type deviceDhcpServer struct { marshaller marshalDeviceDhcpServer unMarshaller unMarshalDeviceDhcpServer ipv4InterfacesHolder DeviceDhcpServerDhcpServerV4Iter + ipv6InterfacesHolder DeviceDhcpServerDhcpServerV6Iter } func NewDeviceDhcpServer() DeviceDhcpServer { @@ -245,6 +246,7 @@ func (obj *deviceDhcpServer) Clone() (DeviceDhcpServer, error) { func (obj *deviceDhcpServer) setNil() { obj.ipv4InterfacesHolder = nil + obj.ipv6InterfacesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -274,6 +276,8 @@ type DeviceDhcpServer interface { setDefault() // Ipv4Interfaces returns DeviceDhcpServerDhcpServerV4IterIter, set in DeviceDhcpServer Ipv4Interfaces() DeviceDhcpServerDhcpServerV4Iter + // Ipv6Interfaces returns DeviceDhcpServerDhcpServerV6IterIter, set in DeviceDhcpServer + Ipv6Interfaces() DeviceDhcpServerDhcpServerV6Iter setNil() } @@ -364,6 +368,93 @@ func (obj *deviceDhcpServerDhcpServerV4Iter) appendHolderSlice(item DhcpServerV4 return obj } +// This contains an array of references to IPv6 interfaces, each of which will contain one DHCPv6 server. +// Ipv6Interfaces returns a []DhcpServerV6 +func (obj *deviceDhcpServer) Ipv6Interfaces() DeviceDhcpServerDhcpServerV6Iter { + if len(obj.obj.Ipv6Interfaces) == 0 { + obj.obj.Ipv6Interfaces = []*otg.DhcpServerV6{} + } + if obj.ipv6InterfacesHolder == nil { + obj.ipv6InterfacesHolder = newDeviceDhcpServerDhcpServerV6Iter(&obj.obj.Ipv6Interfaces).setMsg(obj) + } + return obj.ipv6InterfacesHolder +} + +type deviceDhcpServerDhcpServerV6Iter struct { + obj *deviceDhcpServer + dhcpServerV6Slice []DhcpServerV6 + fieldPtr *[]*otg.DhcpServerV6 +} + +func newDeviceDhcpServerDhcpServerV6Iter(ptr *[]*otg.DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter { + return &deviceDhcpServerDhcpServerV6Iter{fieldPtr: ptr} +} + +type DeviceDhcpServerDhcpServerV6Iter interface { + setMsg(*deviceDhcpServer) DeviceDhcpServerDhcpServerV6Iter + Items() []DhcpServerV6 + Add() DhcpServerV6 + Append(items ...DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter + Set(index int, newObj DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter + Clear() DeviceDhcpServerDhcpServerV6Iter + clearHolderSlice() DeviceDhcpServerDhcpServerV6Iter + appendHolderSlice(item DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter +} + +func (obj *deviceDhcpServerDhcpServerV6Iter) setMsg(msg *deviceDhcpServer) DeviceDhcpServerDhcpServerV6Iter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpServerV6{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *deviceDhcpServerDhcpServerV6Iter) Items() []DhcpServerV6 { + return obj.dhcpServerV6Slice +} + +func (obj *deviceDhcpServerDhcpServerV6Iter) Add() DhcpServerV6 { + newObj := &otg.DhcpServerV6{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpServerV6{obj: newObj} + newLibObj.setDefault() + obj.dhcpServerV6Slice = append(obj.dhcpServerV6Slice, newLibObj) + return newLibObj +} + +func (obj *deviceDhcpServerDhcpServerV6Iter) Append(items ...DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpServerV6Slice = append(obj.dhcpServerV6Slice, item) + } + return obj +} + +func (obj *deviceDhcpServerDhcpServerV6Iter) Set(index int, newObj DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpServerV6Slice[index] = newObj + return obj +} +func (obj *deviceDhcpServerDhcpServerV6Iter) Clear() DeviceDhcpServerDhcpServerV6Iter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.DhcpServerV6{} + obj.dhcpServerV6Slice = []DhcpServerV6{} + } + return obj +} +func (obj *deviceDhcpServerDhcpServerV6Iter) clearHolderSlice() DeviceDhcpServerDhcpServerV6Iter { + if len(obj.dhcpServerV6Slice) > 0 { + obj.dhcpServerV6Slice = []DhcpServerV6{} + } + return obj +} +func (obj *deviceDhcpServerDhcpServerV6Iter) appendHolderSlice(item DhcpServerV6) DeviceDhcpServerDhcpServerV6Iter { + obj.dhcpServerV6Slice = append(obj.dhcpServerV6Slice, item) + return obj +} + func (obj *deviceDhcpServer) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -383,6 +474,20 @@ func (obj *deviceDhcpServer) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.Ipv6Interfaces) != 0 { + + if set_default { + obj.Ipv6Interfaces().clearHolderSlice() + for _, item := range obj.obj.Ipv6Interfaces { + obj.Ipv6Interfaces().appendHolderSlice(&dhcpServerV6{obj: item}) + } + } + for _, item := range obj.Ipv6Interfaces().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *deviceDhcpServer) setDefault() { diff --git a/gosnappi/device_dhcpv6_client.go b/gosnappi/device_dhcpv6_client.go new file mode 100644 index 00000000..31f1ab43 --- /dev/null +++ b/gosnappi/device_dhcpv6_client.go @@ -0,0 +1,512 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6Client ***** +type deviceDhcpv6Client struct { + validation + obj *otg.DeviceDhcpv6Client + marshaller marshalDeviceDhcpv6Client + unMarshaller unMarshalDeviceDhcpv6Client + iaTypeHolder DeviceDhcpv6ClientIaType + duidTypeHolder DeviceDhcpv6ClientDuidType + optionsRequestHolder DeviceDhcpv6ClientOptionsRequest + optionsHolder DeviceDhcpv6ClientOptions +} + +func NewDeviceDhcpv6Client() DeviceDhcpv6Client { + obj := deviceDhcpv6Client{obj: &otg.DeviceDhcpv6Client{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6Client) msg() *otg.DeviceDhcpv6Client { + return obj.obj +} + +func (obj *deviceDhcpv6Client) setMsg(msg *otg.DeviceDhcpv6Client) DeviceDhcpv6Client { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6Client struct { + obj *deviceDhcpv6Client +} + +type marshalDeviceDhcpv6Client interface { + // ToProto marshals DeviceDhcpv6Client to protobuf object *otg.DeviceDhcpv6Client + ToProto() (*otg.DeviceDhcpv6Client, error) + // ToPbText marshals DeviceDhcpv6Client to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6Client to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6Client to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6Client struct { + obj *deviceDhcpv6Client +} + +type unMarshalDeviceDhcpv6Client interface { + // FromProto unmarshals DeviceDhcpv6Client from protobuf object *otg.DeviceDhcpv6Client + FromProto(msg *otg.DeviceDhcpv6Client) (DeviceDhcpv6Client, error) + // FromPbText unmarshals DeviceDhcpv6Client from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6Client from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6Client from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6Client) Marshal() marshalDeviceDhcpv6Client { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6Client{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6Client) Unmarshal() unMarshalDeviceDhcpv6Client { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6Client{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6Client) ToProto() (*otg.DeviceDhcpv6Client, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6Client) FromProto(msg *otg.DeviceDhcpv6Client) (DeviceDhcpv6Client, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6Client) 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 *unMarshaldeviceDhcpv6Client) 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 *marshaldeviceDhcpv6Client) 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 *unMarshaldeviceDhcpv6Client) 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 *marshaldeviceDhcpv6Client) 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 *unMarshaldeviceDhcpv6Client) 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 *deviceDhcpv6Client) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6Client) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6Client) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6Client) Clone() (DeviceDhcpv6Client, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6Client() + 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 *deviceDhcpv6Client) setNil() { + obj.iaTypeHolder = nil + obj.duidTypeHolder = nil + obj.optionsRequestHolder = nil + obj.optionsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DeviceDhcpv6Client is configuration for emulated DHCPv6 Client on a single Interface. If the DHCPv6 Client receives one or more DHCPv6 ADVERTISE messages from one or more servers then the client chooses one server from which to request configuration parameters, based on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html +type DeviceDhcpv6Client interface { + Validation + // msg marshals DeviceDhcpv6Client to protobuf object *otg.DeviceDhcpv6Client + // and doesn't set defaults + msg() *otg.DeviceDhcpv6Client + // setMsg unmarshals DeviceDhcpv6Client from protobuf object *otg.DeviceDhcpv6Client + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6Client) DeviceDhcpv6Client + // provides marshal interface + Marshal() marshalDeviceDhcpv6Client + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6Client + // validate validates DeviceDhcpv6Client + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6Client, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in DeviceDhcpv6Client. + Name() string + // SetName assigns string provided by user to DeviceDhcpv6Client + SetName(value string) DeviceDhcpv6Client + // RapidCommit returns bool, set in DeviceDhcpv6Client. + RapidCommit() bool + // SetRapidCommit assigns bool provided by user to DeviceDhcpv6Client + SetRapidCommit(value bool) DeviceDhcpv6Client + // HasRapidCommit checks if RapidCommit has been set in DeviceDhcpv6Client + HasRapidCommit() bool + // IaType returns DeviceDhcpv6ClientIaType, set in DeviceDhcpv6Client. + IaType() DeviceDhcpv6ClientIaType + // SetIaType assigns DeviceDhcpv6ClientIaType provided by user to DeviceDhcpv6Client. + SetIaType(value DeviceDhcpv6ClientIaType) DeviceDhcpv6Client + // HasIaType checks if IaType has been set in DeviceDhcpv6Client + HasIaType() bool + // DuidType returns DeviceDhcpv6ClientDuidType, set in DeviceDhcpv6Client. + DuidType() DeviceDhcpv6ClientDuidType + // SetDuidType assigns DeviceDhcpv6ClientDuidType provided by user to DeviceDhcpv6Client. + SetDuidType(value DeviceDhcpv6ClientDuidType) DeviceDhcpv6Client + // HasDuidType checks if DuidType has been set in DeviceDhcpv6Client + HasDuidType() bool + // OptionsRequest returns DeviceDhcpv6ClientOptionsRequest, set in DeviceDhcpv6Client. + // DeviceDhcpv6ClientOptionsRequest is dHCP client options, these configured options are sent in Dhcp client messages. + OptionsRequest() DeviceDhcpv6ClientOptionsRequest + // SetOptionsRequest assigns DeviceDhcpv6ClientOptionsRequest provided by user to DeviceDhcpv6Client. + // DeviceDhcpv6ClientOptionsRequest is dHCP client options, these configured options are sent in Dhcp client messages. + SetOptionsRequest(value DeviceDhcpv6ClientOptionsRequest) DeviceDhcpv6Client + // HasOptionsRequest checks if OptionsRequest has been set in DeviceDhcpv6Client + HasOptionsRequest() bool + // Options returns DeviceDhcpv6ClientOptions, set in DeviceDhcpv6Client. + // DeviceDhcpv6ClientOptions is dHCP client options, these configured options are sent in Dhcp client messages. + Options() DeviceDhcpv6ClientOptions + // SetOptions assigns DeviceDhcpv6ClientOptions provided by user to DeviceDhcpv6Client. + // DeviceDhcpv6ClientOptions is dHCP client options, these configured options are sent in Dhcp client messages. + SetOptions(value DeviceDhcpv6ClientOptions) DeviceDhcpv6Client + // HasOptions checks if Options has been set in DeviceDhcpv6Client + HasOptions() bool + setNil() +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *deviceDhcpv6Client) 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 DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetName(value string) DeviceDhcpv6Client { + + obj.obj.Name = &value + return obj +} + +// If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. +// RapidCommit returns a bool +func (obj *deviceDhcpv6Client) RapidCommit() bool { + + return *obj.obj.RapidCommit + +} + +// If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. +// RapidCommit returns a bool +func (obj *deviceDhcpv6Client) HasRapidCommit() bool { + return obj.obj.RapidCommit != nil +} + +// If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. +// SetRapidCommit sets the bool value in the DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetRapidCommit(value bool) DeviceDhcpv6Client { + + obj.obj.RapidCommit = &value + return obj +} + +// Each IA has an associated IAID. Differnet IA options represent different types of IPv6 addresses and parameters +// accepted by DHCPv6 clients each used in different context by an IPv6 node. +// IaType returns a DeviceDhcpv6ClientIaType +func (obj *deviceDhcpv6Client) IaType() DeviceDhcpv6ClientIaType { + if obj.obj.IaType == nil { + obj.obj.IaType = NewDeviceDhcpv6ClientIaType().msg() + } + if obj.iaTypeHolder == nil { + obj.iaTypeHolder = &deviceDhcpv6ClientIaType{obj: obj.obj.IaType} + } + return obj.iaTypeHolder +} + +// Each IA has an associated IAID. Differnet IA options represent different types of IPv6 addresses and parameters +// accepted by DHCPv6 clients each used in different context by an IPv6 node. +// IaType returns a DeviceDhcpv6ClientIaType +func (obj *deviceDhcpv6Client) HasIaType() bool { + return obj.obj.IaType != nil +} + +// Each IA has an associated IAID. Differnet IA options represent different types of IPv6 addresses and parameters +// accepted by DHCPv6 clients each used in different context by an IPv6 node. +// SetIaType sets the DeviceDhcpv6ClientIaType value in the DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetIaType(value DeviceDhcpv6ClientIaType) DeviceDhcpv6Client { + + obj.iaTypeHolder = nil + obj.obj.IaType = value.msg() + + return obj +} + +// Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify each other. +// DuidType returns a DeviceDhcpv6ClientDuidType +func (obj *deviceDhcpv6Client) DuidType() DeviceDhcpv6ClientDuidType { + if obj.obj.DuidType == nil { + obj.obj.DuidType = NewDeviceDhcpv6ClientDuidType().msg() + } + if obj.duidTypeHolder == nil { + obj.duidTypeHolder = &deviceDhcpv6ClientDuidType{obj: obj.obj.DuidType} + } + return obj.duidTypeHolder +} + +// Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify each other. +// DuidType returns a DeviceDhcpv6ClientDuidType +func (obj *deviceDhcpv6Client) HasDuidType() bool { + return obj.obj.DuidType != nil +} + +// Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify each other. +// SetDuidType sets the DeviceDhcpv6ClientDuidType value in the DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetDuidType(value DeviceDhcpv6ClientDuidType) DeviceDhcpv6Client { + + obj.duidTypeHolder = nil + obj.obj.DuidType = value.msg() + + return obj +} + +// The options requested by a client from a server in the options request option. +// OptionsRequest returns a DeviceDhcpv6ClientOptionsRequest +func (obj *deviceDhcpv6Client) OptionsRequest() DeviceDhcpv6ClientOptionsRequest { + if obj.obj.OptionsRequest == nil { + obj.obj.OptionsRequest = NewDeviceDhcpv6ClientOptionsRequest().msg() + } + if obj.optionsRequestHolder == nil { + obj.optionsRequestHolder = &deviceDhcpv6ClientOptionsRequest{obj: obj.obj.OptionsRequest} + } + return obj.optionsRequestHolder +} + +// The options requested by a client from a server in the options request option. +// OptionsRequest returns a DeviceDhcpv6ClientOptionsRequest +func (obj *deviceDhcpv6Client) HasOptionsRequest() bool { + return obj.obj.OptionsRequest != nil +} + +// The options requested by a client from a server in the options request option. +// SetOptionsRequest sets the DeviceDhcpv6ClientOptionsRequest value in the DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetOptionsRequest(value DeviceDhcpv6ClientOptionsRequest) DeviceDhcpv6Client { + + obj.optionsRequestHolder = nil + obj.obj.OptionsRequest = value.msg() + + return obj +} + +// Optional DHCPv4 Client options that are sent in Dhcp client messages. +// Options returns a DeviceDhcpv6ClientOptions +func (obj *deviceDhcpv6Client) Options() DeviceDhcpv6ClientOptions { + if obj.obj.Options == nil { + obj.obj.Options = NewDeviceDhcpv6ClientOptions().msg() + } + if obj.optionsHolder == nil { + obj.optionsHolder = &deviceDhcpv6ClientOptions{obj: obj.obj.Options} + } + return obj.optionsHolder +} + +// Optional DHCPv4 Client options that are sent in Dhcp client messages. +// Options returns a DeviceDhcpv6ClientOptions +func (obj *deviceDhcpv6Client) HasOptions() bool { + return obj.obj.Options != nil +} + +// Optional DHCPv4 Client options that are sent in Dhcp client messages. +// SetOptions sets the DeviceDhcpv6ClientOptions value in the DeviceDhcpv6Client object +func (obj *deviceDhcpv6Client) SetOptions(value DeviceDhcpv6ClientOptions) DeviceDhcpv6Client { + + obj.optionsHolder = nil + obj.obj.Options = value.msg() + + return obj +} + +func (obj *deviceDhcpv6Client) 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 DeviceDhcpv6Client") + } + + if obj.obj.IaType != nil { + + obj.IaType().validateObj(vObj, set_default) + } + + if obj.obj.DuidType != nil { + + obj.DuidType().validateObj(vObj, set_default) + } + + if obj.obj.OptionsRequest != nil { + + obj.OptionsRequest().validateObj(vObj, set_default) + } + + if obj.obj.Options != nil { + + obj.Options().validateObj(vObj, set_default) + } + +} + +func (obj *deviceDhcpv6Client) setDefault() { + if obj.obj.RapidCommit == nil { + obj.SetRapidCommit(false) + } + +} diff --git a/gosnappi/device_dhcpv6_client_duid_type.go b/gosnappi/device_dhcpv6_client_duid_type.go new file mode 100644 index 00000000..d98774a1 --- /dev/null +++ b/gosnappi/device_dhcpv6_client_duid_type.go @@ -0,0 +1,502 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientDuidType ***** +type deviceDhcpv6ClientDuidType struct { + validation + obj *otg.DeviceDhcpv6ClientDuidType + marshaller marshalDeviceDhcpv6ClientDuidType + unMarshaller unMarshalDeviceDhcpv6ClientDuidType + lltHolder DeviceDhcpv6ClientNoDuid + enHolder DeviceDhcpv6ClientDuidValue + llHolder DeviceDhcpv6ClientNoDuid +} + +func NewDeviceDhcpv6ClientDuidType() DeviceDhcpv6ClientDuidType { + obj := deviceDhcpv6ClientDuidType{obj: &otg.DeviceDhcpv6ClientDuidType{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientDuidType) msg() *otg.DeviceDhcpv6ClientDuidType { + return obj.obj +} + +func (obj *deviceDhcpv6ClientDuidType) setMsg(msg *otg.DeviceDhcpv6ClientDuidType) DeviceDhcpv6ClientDuidType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientDuidType struct { + obj *deviceDhcpv6ClientDuidType +} + +type marshalDeviceDhcpv6ClientDuidType interface { + // ToProto marshals DeviceDhcpv6ClientDuidType to protobuf object *otg.DeviceDhcpv6ClientDuidType + ToProto() (*otg.DeviceDhcpv6ClientDuidType, error) + // ToPbText marshals DeviceDhcpv6ClientDuidType to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientDuidType to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientDuidType to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientDuidType struct { + obj *deviceDhcpv6ClientDuidType +} + +type unMarshalDeviceDhcpv6ClientDuidType interface { + // FromProto unmarshals DeviceDhcpv6ClientDuidType from protobuf object *otg.DeviceDhcpv6ClientDuidType + FromProto(msg *otg.DeviceDhcpv6ClientDuidType) (DeviceDhcpv6ClientDuidType, error) + // FromPbText unmarshals DeviceDhcpv6ClientDuidType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientDuidType from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientDuidType from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientDuidType) Marshal() marshalDeviceDhcpv6ClientDuidType { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientDuidType{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientDuidType) Unmarshal() unMarshalDeviceDhcpv6ClientDuidType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientDuidType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientDuidType) ToProto() (*otg.DeviceDhcpv6ClientDuidType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientDuidType) FromProto(msg *otg.DeviceDhcpv6ClientDuidType) (DeviceDhcpv6ClientDuidType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientDuidType) 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 *unMarshaldeviceDhcpv6ClientDuidType) 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 *marshaldeviceDhcpv6ClientDuidType) 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 *unMarshaldeviceDhcpv6ClientDuidType) 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 *marshaldeviceDhcpv6ClientDuidType) 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 *unMarshaldeviceDhcpv6ClientDuidType) 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 *deviceDhcpv6ClientDuidType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientDuidType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientDuidType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientDuidType) Clone() (DeviceDhcpv6ClientDuidType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientDuidType() + 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 *deviceDhcpv6ClientDuidType) setNil() { + obj.lltHolder = nil + obj.enHolder = nil + obj.llHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DeviceDhcpv6ClientDuidType is description is TBD +type DeviceDhcpv6ClientDuidType interface { + Validation + // msg marshals DeviceDhcpv6ClientDuidType to protobuf object *otg.DeviceDhcpv6ClientDuidType + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientDuidType + // setMsg unmarshals DeviceDhcpv6ClientDuidType from protobuf object *otg.DeviceDhcpv6ClientDuidType + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientDuidType) DeviceDhcpv6ClientDuidType + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientDuidType + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientDuidType + // validate validates DeviceDhcpv6ClientDuidType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientDuidType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns DeviceDhcpv6ClientDuidTypeChoiceEnum, set in DeviceDhcpv6ClientDuidType + Choice() DeviceDhcpv6ClientDuidTypeChoiceEnum + // setChoice assigns DeviceDhcpv6ClientDuidTypeChoiceEnum provided by user to DeviceDhcpv6ClientDuidType + setChoice(value DeviceDhcpv6ClientDuidTypeChoiceEnum) DeviceDhcpv6ClientDuidType + // HasChoice checks if Choice has been set in DeviceDhcpv6ClientDuidType + HasChoice() bool + // Llt returns DeviceDhcpv6ClientNoDuid, set in DeviceDhcpv6ClientDuidType. + Llt() DeviceDhcpv6ClientNoDuid + // SetLlt assigns DeviceDhcpv6ClientNoDuid provided by user to DeviceDhcpv6ClientDuidType. + SetLlt(value DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientDuidType + // HasLlt checks if Llt has been set in DeviceDhcpv6ClientDuidType + HasLlt() bool + // En returns DeviceDhcpv6ClientDuidValue, set in DeviceDhcpv6ClientDuidType. + En() DeviceDhcpv6ClientDuidValue + // SetEn assigns DeviceDhcpv6ClientDuidValue provided by user to DeviceDhcpv6ClientDuidType. + SetEn(value DeviceDhcpv6ClientDuidValue) DeviceDhcpv6ClientDuidType + // HasEn checks if En has been set in DeviceDhcpv6ClientDuidType + HasEn() bool + // Ll returns DeviceDhcpv6ClientNoDuid, set in DeviceDhcpv6ClientDuidType. + Ll() DeviceDhcpv6ClientNoDuid + // SetLl assigns DeviceDhcpv6ClientNoDuid provided by user to DeviceDhcpv6ClientDuidType. + SetLl(value DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientDuidType + // HasLl checks if Ll has been set in DeviceDhcpv6ClientDuidType + HasLl() bool + setNil() +} + +type DeviceDhcpv6ClientDuidTypeChoiceEnum string + +// Enum of Choice on DeviceDhcpv6ClientDuidType +var DeviceDhcpv6ClientDuidTypeChoice = struct { + LLT DeviceDhcpv6ClientDuidTypeChoiceEnum + EN DeviceDhcpv6ClientDuidTypeChoiceEnum + LL DeviceDhcpv6ClientDuidTypeChoiceEnum +}{ + LLT: DeviceDhcpv6ClientDuidTypeChoiceEnum("llt"), + EN: DeviceDhcpv6ClientDuidTypeChoiceEnum("en"), + LL: DeviceDhcpv6ClientDuidTypeChoiceEnum("ll"), +} + +func (obj *deviceDhcpv6ClientDuidType) Choice() DeviceDhcpv6ClientDuidTypeChoiceEnum { + return DeviceDhcpv6ClientDuidTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// Each DHCP client and server has a DUID. DHCP clients use DUIDs to identify a server in messages where a server needs to be identified. +// Choice returns a string +func (obj *deviceDhcpv6ClientDuidType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *deviceDhcpv6ClientDuidType) setChoice(value DeviceDhcpv6ClientDuidTypeChoiceEnum) DeviceDhcpv6ClientDuidType { + intValue, ok := otg.DeviceDhcpv6ClientDuidType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on DeviceDhcpv6ClientDuidTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.DeviceDhcpv6ClientDuidType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Ll = nil + obj.llHolder = nil + obj.obj.En = nil + obj.enHolder = nil + obj.obj.Llt = nil + obj.lltHolder = nil + + if value == DeviceDhcpv6ClientDuidTypeChoice.LLT { + obj.obj.Llt = NewDeviceDhcpv6ClientNoDuid().msg() + } + + if value == DeviceDhcpv6ClientDuidTypeChoice.EN { + obj.obj.En = NewDeviceDhcpv6ClientDuidValue().msg() + } + + if value == DeviceDhcpv6ClientDuidTypeChoice.LL { + obj.obj.Ll = NewDeviceDhcpv6ClientNoDuid().msg() + } + + return obj +} + +// description is TBD +// Llt returns a DeviceDhcpv6ClientNoDuid +func (obj *deviceDhcpv6ClientDuidType) Llt() DeviceDhcpv6ClientNoDuid { + if obj.obj.Llt == nil { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.LLT) + } + if obj.lltHolder == nil { + obj.lltHolder = &deviceDhcpv6ClientNoDuid{obj: obj.obj.Llt} + } + return obj.lltHolder +} + +// description is TBD +// Llt returns a DeviceDhcpv6ClientNoDuid +func (obj *deviceDhcpv6ClientDuidType) HasLlt() bool { + return obj.obj.Llt != nil +} + +// description is TBD +// SetLlt sets the DeviceDhcpv6ClientNoDuid value in the DeviceDhcpv6ClientDuidType object +func (obj *deviceDhcpv6ClientDuidType) SetLlt(value DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientDuidType { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.LLT) + obj.lltHolder = nil + obj.obj.Llt = value.msg() + + return obj +} + +// description is TBD +// En returns a DeviceDhcpv6ClientDuidValue +func (obj *deviceDhcpv6ClientDuidType) En() DeviceDhcpv6ClientDuidValue { + if obj.obj.En == nil { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.EN) + } + if obj.enHolder == nil { + obj.enHolder = &deviceDhcpv6ClientDuidValue{obj: obj.obj.En} + } + return obj.enHolder +} + +// description is TBD +// En returns a DeviceDhcpv6ClientDuidValue +func (obj *deviceDhcpv6ClientDuidType) HasEn() bool { + return obj.obj.En != nil +} + +// description is TBD +// SetEn sets the DeviceDhcpv6ClientDuidValue value in the DeviceDhcpv6ClientDuidType object +func (obj *deviceDhcpv6ClientDuidType) SetEn(value DeviceDhcpv6ClientDuidValue) DeviceDhcpv6ClientDuidType { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.EN) + obj.enHolder = nil + obj.obj.En = value.msg() + + return obj +} + +// description is TBD +// Ll returns a DeviceDhcpv6ClientNoDuid +func (obj *deviceDhcpv6ClientDuidType) Ll() DeviceDhcpv6ClientNoDuid { + if obj.obj.Ll == nil { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.LL) + } + if obj.llHolder == nil { + obj.llHolder = &deviceDhcpv6ClientNoDuid{obj: obj.obj.Ll} + } + return obj.llHolder +} + +// description is TBD +// Ll returns a DeviceDhcpv6ClientNoDuid +func (obj *deviceDhcpv6ClientDuidType) HasLl() bool { + return obj.obj.Ll != nil +} + +// description is TBD +// SetLl sets the DeviceDhcpv6ClientNoDuid value in the DeviceDhcpv6ClientDuidType object +func (obj *deviceDhcpv6ClientDuidType) SetLl(value DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientDuidType { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.LL) + obj.llHolder = nil + obj.obj.Ll = value.msg() + + return obj +} + +func (obj *deviceDhcpv6ClientDuidType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Llt != nil { + + obj.Llt().validateObj(vObj, set_default) + } + + if obj.obj.En != nil { + + obj.En().validateObj(vObj, set_default) + } + + if obj.obj.Ll != nil { + + obj.Ll().validateObj(vObj, set_default) + } + +} + +func (obj *deviceDhcpv6ClientDuidType) setDefault() { + var choices_set int = 0 + var choice DeviceDhcpv6ClientDuidTypeChoiceEnum + + if obj.obj.Llt != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientDuidTypeChoice.LLT + } + + if obj.obj.En != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientDuidTypeChoice.EN + } + + if obj.obj.Ll != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientDuidTypeChoice.LL + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(DeviceDhcpv6ClientDuidTypeChoice.LLT) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in DeviceDhcpv6ClientDuidType") + } + } else { + intVal := otg.DeviceDhcpv6ClientDuidType_Choice_Enum_value[string(choice)] + enumValue := otg.DeviceDhcpv6ClientDuidType_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/device_dhcpv6_client_duid_value.go b/gosnappi/device_dhcpv6_client_duid_value.go new file mode 100644 index 00000000..9ba2fb7b --- /dev/null +++ b/gosnappi/device_dhcpv6_client_duid_value.go @@ -0,0 +1,360 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientDuidValue ***** +type deviceDhcpv6ClientDuidValue struct { + validation + obj *otg.DeviceDhcpv6ClientDuidValue + marshaller marshalDeviceDhcpv6ClientDuidValue + unMarshaller unMarshalDeviceDhcpv6ClientDuidValue +} + +func NewDeviceDhcpv6ClientDuidValue() DeviceDhcpv6ClientDuidValue { + obj := deviceDhcpv6ClientDuidValue{obj: &otg.DeviceDhcpv6ClientDuidValue{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientDuidValue) msg() *otg.DeviceDhcpv6ClientDuidValue { + return obj.obj +} + +func (obj *deviceDhcpv6ClientDuidValue) setMsg(msg *otg.DeviceDhcpv6ClientDuidValue) DeviceDhcpv6ClientDuidValue { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientDuidValue struct { + obj *deviceDhcpv6ClientDuidValue +} + +type marshalDeviceDhcpv6ClientDuidValue interface { + // ToProto marshals DeviceDhcpv6ClientDuidValue to protobuf object *otg.DeviceDhcpv6ClientDuidValue + ToProto() (*otg.DeviceDhcpv6ClientDuidValue, error) + // ToPbText marshals DeviceDhcpv6ClientDuidValue to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientDuidValue to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientDuidValue to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientDuidValue struct { + obj *deviceDhcpv6ClientDuidValue +} + +type unMarshalDeviceDhcpv6ClientDuidValue interface { + // FromProto unmarshals DeviceDhcpv6ClientDuidValue from protobuf object *otg.DeviceDhcpv6ClientDuidValue + FromProto(msg *otg.DeviceDhcpv6ClientDuidValue) (DeviceDhcpv6ClientDuidValue, error) + // FromPbText unmarshals DeviceDhcpv6ClientDuidValue from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientDuidValue from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientDuidValue from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientDuidValue) Marshal() marshalDeviceDhcpv6ClientDuidValue { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientDuidValue{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientDuidValue) Unmarshal() unMarshalDeviceDhcpv6ClientDuidValue { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientDuidValue{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientDuidValue) ToProto() (*otg.DeviceDhcpv6ClientDuidValue, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientDuidValue) FromProto(msg *otg.DeviceDhcpv6ClientDuidValue) (DeviceDhcpv6ClientDuidValue, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientDuidValue) 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 *unMarshaldeviceDhcpv6ClientDuidValue) 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 *marshaldeviceDhcpv6ClientDuidValue) 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 *unMarshaldeviceDhcpv6ClientDuidValue) 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 *marshaldeviceDhcpv6ClientDuidValue) 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 *unMarshaldeviceDhcpv6ClientDuidValue) 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 *deviceDhcpv6ClientDuidValue) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientDuidValue) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientDuidValue) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientDuidValue) Clone() (DeviceDhcpv6ClientDuidValue, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientDuidValue() + 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 +} + +// DeviceDhcpv6ClientDuidValue is the container for the DUID-EN. This consists of the 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN] followed by a unique identifier assigned by the vendor. +type DeviceDhcpv6ClientDuidValue interface { + Validation + // msg marshals DeviceDhcpv6ClientDuidValue to protobuf object *otg.DeviceDhcpv6ClientDuidValue + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientDuidValue + // setMsg unmarshals DeviceDhcpv6ClientDuidValue from protobuf object *otg.DeviceDhcpv6ClientDuidValue + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientDuidValue) DeviceDhcpv6ClientDuidValue + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientDuidValue + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientDuidValue + // validate validates DeviceDhcpv6ClientDuidValue + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientDuidValue, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // EnterpriseId returns uint32, set in DeviceDhcpv6ClientDuidValue. + EnterpriseId() uint32 + // SetEnterpriseId assigns uint32 provided by user to DeviceDhcpv6ClientDuidValue + SetEnterpriseId(value uint32) DeviceDhcpv6ClientDuidValue + // HasEnterpriseId checks if EnterpriseId has been set in DeviceDhcpv6ClientDuidValue + HasEnterpriseId() bool + // VendorId returns uint32, set in DeviceDhcpv6ClientDuidValue. + VendorId() uint32 + // SetVendorId assigns uint32 provided by user to DeviceDhcpv6ClientDuidValue + SetVendorId(value uint32) DeviceDhcpv6ClientDuidValue + // HasVendorId checks if VendorId has been set in DeviceDhcpv6ClientDuidValue + HasVendorId() bool +} + +// 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. +// EnterpriseId returns a uint32 +func (obj *deviceDhcpv6ClientDuidValue) EnterpriseId() uint32 { + + return *obj.obj.EnterpriseId + +} + +// 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. +// EnterpriseId returns a uint32 +func (obj *deviceDhcpv6ClientDuidValue) HasEnterpriseId() bool { + return obj.obj.EnterpriseId != nil +} + +// 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. +// SetEnterpriseId sets the uint32 value in the DeviceDhcpv6ClientDuidValue object +func (obj *deviceDhcpv6ClientDuidValue) SetEnterpriseId(value uint32) DeviceDhcpv6ClientDuidValue { + + obj.obj.EnterpriseId = &value + return obj +} + +// Unique identifier assigned by the vendor. +// VendorId returns a uint32 +func (obj *deviceDhcpv6ClientDuidValue) VendorId() uint32 { + + return *obj.obj.VendorId + +} + +// Unique identifier assigned by the vendor. +// VendorId returns a uint32 +func (obj *deviceDhcpv6ClientDuidValue) HasVendorId() bool { + return obj.obj.VendorId != nil +} + +// Unique identifier assigned by the vendor. +// SetVendorId sets the uint32 value in the DeviceDhcpv6ClientDuidValue object +func (obj *deviceDhcpv6ClientDuidValue) SetVendorId(value uint32) DeviceDhcpv6ClientDuidValue { + + obj.obj.VendorId = &value + return obj +} + +func (obj *deviceDhcpv6ClientDuidValue) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.EnterpriseId != nil { + + if *obj.obj.EnterpriseId < 1 || *obj.obj.EnterpriseId > 2147483647 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= DeviceDhcpv6ClientDuidValue.EnterpriseId <= 2147483647 but Got %d", *obj.obj.EnterpriseId)) + } + + } + + if obj.obj.VendorId != nil { + + if *obj.obj.VendorId < 1 || *obj.obj.VendorId > 2147483647 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= DeviceDhcpv6ClientDuidValue.VendorId <= 2147483647 but Got %d", *obj.obj.VendorId)) + } + + } + +} + +func (obj *deviceDhcpv6ClientDuidValue) setDefault() { + if obj.obj.EnterpriseId == nil { + obj.SetEnterpriseId(10) + } + if obj.obj.VendorId == nil { + obj.SetVendorId(10) + } + +} diff --git a/gosnappi/device_dhcpv6_client_ia_time_value.go b/gosnappi/device_dhcpv6_client_ia_time_value.go new file mode 100644 index 00000000..1737efda --- /dev/null +++ b/gosnappi/device_dhcpv6_client_ia_time_value.go @@ -0,0 +1,360 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientIaTimeValue ***** +type deviceDhcpv6ClientIaTimeValue struct { + validation + obj *otg.DeviceDhcpv6ClientIaTimeValue + marshaller marshalDeviceDhcpv6ClientIaTimeValue + unMarshaller unMarshalDeviceDhcpv6ClientIaTimeValue +} + +func NewDeviceDhcpv6ClientIaTimeValue() DeviceDhcpv6ClientIaTimeValue { + obj := deviceDhcpv6ClientIaTimeValue{obj: &otg.DeviceDhcpv6ClientIaTimeValue{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientIaTimeValue) msg() *otg.DeviceDhcpv6ClientIaTimeValue { + return obj.obj +} + +func (obj *deviceDhcpv6ClientIaTimeValue) setMsg(msg *otg.DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaTimeValue { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientIaTimeValue struct { + obj *deviceDhcpv6ClientIaTimeValue +} + +type marshalDeviceDhcpv6ClientIaTimeValue interface { + // ToProto marshals DeviceDhcpv6ClientIaTimeValue to protobuf object *otg.DeviceDhcpv6ClientIaTimeValue + ToProto() (*otg.DeviceDhcpv6ClientIaTimeValue, error) + // ToPbText marshals DeviceDhcpv6ClientIaTimeValue to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientIaTimeValue to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientIaTimeValue to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientIaTimeValue struct { + obj *deviceDhcpv6ClientIaTimeValue +} + +type unMarshalDeviceDhcpv6ClientIaTimeValue interface { + // FromProto unmarshals DeviceDhcpv6ClientIaTimeValue from protobuf object *otg.DeviceDhcpv6ClientIaTimeValue + FromProto(msg *otg.DeviceDhcpv6ClientIaTimeValue) (DeviceDhcpv6ClientIaTimeValue, error) + // FromPbText unmarshals DeviceDhcpv6ClientIaTimeValue from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientIaTimeValue from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientIaTimeValue from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientIaTimeValue) Marshal() marshalDeviceDhcpv6ClientIaTimeValue { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientIaTimeValue{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientIaTimeValue) Unmarshal() unMarshalDeviceDhcpv6ClientIaTimeValue { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientIaTimeValue{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientIaTimeValue) ToProto() (*otg.DeviceDhcpv6ClientIaTimeValue, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientIaTimeValue) FromProto(msg *otg.DeviceDhcpv6ClientIaTimeValue) (DeviceDhcpv6ClientIaTimeValue, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientIaTimeValue) 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 *unMarshaldeviceDhcpv6ClientIaTimeValue) 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 *marshaldeviceDhcpv6ClientIaTimeValue) 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 *unMarshaldeviceDhcpv6ClientIaTimeValue) 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 *marshaldeviceDhcpv6ClientIaTimeValue) 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 *unMarshaldeviceDhcpv6ClientIaTimeValue) 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 *deviceDhcpv6ClientIaTimeValue) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientIaTimeValue) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientIaTimeValue) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientIaTimeValue) Clone() (DeviceDhcpv6ClientIaTimeValue, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientIaTimeValue() + 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 +} + +// DeviceDhcpv6ClientIaTimeValue is the container for the suggested times at which the client contacts the server or any available server. +type DeviceDhcpv6ClientIaTimeValue interface { + Validation + // msg marshals DeviceDhcpv6ClientIaTimeValue to protobuf object *otg.DeviceDhcpv6ClientIaTimeValue + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientIaTimeValue + // setMsg unmarshals DeviceDhcpv6ClientIaTimeValue from protobuf object *otg.DeviceDhcpv6ClientIaTimeValue + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaTimeValue + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientIaTimeValue + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientIaTimeValue + // validate validates DeviceDhcpv6ClientIaTimeValue + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientIaTimeValue, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // T1 returns uint32, set in DeviceDhcpv6ClientIaTimeValue. + T1() uint32 + // SetT1 assigns uint32 provided by user to DeviceDhcpv6ClientIaTimeValue + SetT1(value uint32) DeviceDhcpv6ClientIaTimeValue + // HasT1 checks if T1 has been set in DeviceDhcpv6ClientIaTimeValue + HasT1() bool + // T2 returns uint32, set in DeviceDhcpv6ClientIaTimeValue. + T2() uint32 + // SetT2 assigns uint32 provided by user to DeviceDhcpv6ClientIaTimeValue + SetT2(value uint32) DeviceDhcpv6ClientIaTimeValue + // HasT2 checks if T2 has been set in DeviceDhcpv6ClientIaTimeValue + HasT2() bool +} + +// The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time. +// T1 returns a uint32 +func (obj *deviceDhcpv6ClientIaTimeValue) T1() uint32 { + + return *obj.obj.T1 + +} + +// The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time. +// T1 returns a uint32 +func (obj *deviceDhcpv6ClientIaTimeValue) HasT1() bool { + return obj.obj.T1 != nil +} + +// The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time. +// SetT1 sets the uint32 value in the DeviceDhcpv6ClientIaTimeValue object +func (obj *deviceDhcpv6ClientIaTimeValue) SetT1(value uint32) DeviceDhcpv6ClientIaTimeValue { + + obj.obj.T1 = &value + return obj +} + +// The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time +// T2 returns a uint32 +func (obj *deviceDhcpv6ClientIaTimeValue) T2() uint32 { + + return *obj.obj.T2 + +} + +// The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time +// T2 returns a uint32 +func (obj *deviceDhcpv6ClientIaTimeValue) HasT2() bool { + return obj.obj.T2 != nil +} + +// The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time +// SetT2 sets the uint32 value in the DeviceDhcpv6ClientIaTimeValue object +func (obj *deviceDhcpv6ClientIaTimeValue) SetT2(value uint32) DeviceDhcpv6ClientIaTimeValue { + + obj.obj.T2 = &value + return obj +} + +func (obj *deviceDhcpv6ClientIaTimeValue) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.T1 != nil { + + if *obj.obj.T1 > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= DeviceDhcpv6ClientIaTimeValue.T1 <= 4294967295 but Got %d", *obj.obj.T1)) + } + + } + + if obj.obj.T2 != nil { + + if *obj.obj.T2 > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= DeviceDhcpv6ClientIaTimeValue.T2 <= 4294967295 but Got %d", *obj.obj.T2)) + } + + } + +} + +func (obj *deviceDhcpv6ClientIaTimeValue) setDefault() { + if obj.obj.T1 == nil { + obj.SetT1(302400) + } + if obj.obj.T2 == nil { + obj.SetT2(483840) + } + +} diff --git a/gosnappi/device_dhcpv6_client_ia_type.go b/gosnappi/device_dhcpv6_client_ia_type.go new file mode 100644 index 00000000..5ce00724 --- /dev/null +++ b/gosnappi/device_dhcpv6_client_ia_type.go @@ -0,0 +1,511 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientIaType ***** +type deviceDhcpv6ClientIaType struct { + validation + obj *otg.DeviceDhcpv6ClientIaType + marshaller marshalDeviceDhcpv6ClientIaType + unMarshaller unMarshalDeviceDhcpv6ClientIaType + ianaHolder DeviceDhcpv6ClientIaTimeValue + iapdHolder DeviceDhcpv6ClientIaTimeValue + ianapdHolder DeviceDhcpv6ClientIaTimeValue +} + +func NewDeviceDhcpv6ClientIaType() DeviceDhcpv6ClientIaType { + obj := deviceDhcpv6ClientIaType{obj: &otg.DeviceDhcpv6ClientIaType{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientIaType) msg() *otg.DeviceDhcpv6ClientIaType { + return obj.obj +} + +func (obj *deviceDhcpv6ClientIaType) setMsg(msg *otg.DeviceDhcpv6ClientIaType) DeviceDhcpv6ClientIaType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientIaType struct { + obj *deviceDhcpv6ClientIaType +} + +type marshalDeviceDhcpv6ClientIaType interface { + // ToProto marshals DeviceDhcpv6ClientIaType to protobuf object *otg.DeviceDhcpv6ClientIaType + ToProto() (*otg.DeviceDhcpv6ClientIaType, error) + // ToPbText marshals DeviceDhcpv6ClientIaType to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientIaType to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientIaType to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientIaType struct { + obj *deviceDhcpv6ClientIaType +} + +type unMarshalDeviceDhcpv6ClientIaType interface { + // FromProto unmarshals DeviceDhcpv6ClientIaType from protobuf object *otg.DeviceDhcpv6ClientIaType + FromProto(msg *otg.DeviceDhcpv6ClientIaType) (DeviceDhcpv6ClientIaType, error) + // FromPbText unmarshals DeviceDhcpv6ClientIaType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientIaType from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientIaType from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientIaType) Marshal() marshalDeviceDhcpv6ClientIaType { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientIaType{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientIaType) Unmarshal() unMarshalDeviceDhcpv6ClientIaType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientIaType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientIaType) ToProto() (*otg.DeviceDhcpv6ClientIaType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientIaType) FromProto(msg *otg.DeviceDhcpv6ClientIaType) (DeviceDhcpv6ClientIaType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientIaType) 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 *unMarshaldeviceDhcpv6ClientIaType) 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 *marshaldeviceDhcpv6ClientIaType) 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 *unMarshaldeviceDhcpv6ClientIaType) 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 *marshaldeviceDhcpv6ClientIaType) 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 *unMarshaldeviceDhcpv6ClientIaType) 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 *deviceDhcpv6ClientIaType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientIaType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientIaType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientIaType) Clone() (DeviceDhcpv6ClientIaType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientIaType() + 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 *deviceDhcpv6ClientIaType) setNil() { + obj.ianaHolder = nil + obj.iapdHolder = nil + obj.ianapdHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DeviceDhcpv6ClientIaType is description is TBD +type DeviceDhcpv6ClientIaType interface { + Validation + // msg marshals DeviceDhcpv6ClientIaType to protobuf object *otg.DeviceDhcpv6ClientIaType + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientIaType + // setMsg unmarshals DeviceDhcpv6ClientIaType from protobuf object *otg.DeviceDhcpv6ClientIaType + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientIaType) DeviceDhcpv6ClientIaType + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientIaType + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientIaType + // validate validates DeviceDhcpv6ClientIaType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientIaType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns DeviceDhcpv6ClientIaTypeChoiceEnum, set in DeviceDhcpv6ClientIaType + Choice() DeviceDhcpv6ClientIaTypeChoiceEnum + // setChoice assigns DeviceDhcpv6ClientIaTypeChoiceEnum provided by user to DeviceDhcpv6ClientIaType + setChoice(value DeviceDhcpv6ClientIaTypeChoiceEnum) DeviceDhcpv6ClientIaType + // HasChoice checks if Choice has been set in DeviceDhcpv6ClientIaType + HasChoice() bool + // getter for Iata to set choice. + Iata() + // Iana returns DeviceDhcpv6ClientIaTimeValue, set in DeviceDhcpv6ClientIaType. + Iana() DeviceDhcpv6ClientIaTimeValue + // SetIana assigns DeviceDhcpv6ClientIaTimeValue provided by user to DeviceDhcpv6ClientIaType. + SetIana(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType + // HasIana checks if Iana has been set in DeviceDhcpv6ClientIaType + HasIana() bool + // Iapd returns DeviceDhcpv6ClientIaTimeValue, set in DeviceDhcpv6ClientIaType. + Iapd() DeviceDhcpv6ClientIaTimeValue + // SetIapd assigns DeviceDhcpv6ClientIaTimeValue provided by user to DeviceDhcpv6ClientIaType. + SetIapd(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType + // HasIapd checks if Iapd has been set in DeviceDhcpv6ClientIaType + HasIapd() bool + // Ianapd returns DeviceDhcpv6ClientIaTimeValue, set in DeviceDhcpv6ClientIaType. + Ianapd() DeviceDhcpv6ClientIaTimeValue + // SetIanapd assigns DeviceDhcpv6ClientIaTimeValue provided by user to DeviceDhcpv6ClientIaType. + SetIanapd(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType + // HasIanapd checks if Ianapd has been set in DeviceDhcpv6ClientIaType + HasIanapd() bool + setNil() +} + +type DeviceDhcpv6ClientIaTypeChoiceEnum string + +// Enum of Choice on DeviceDhcpv6ClientIaType +var DeviceDhcpv6ClientIaTypeChoice = struct { + IANA DeviceDhcpv6ClientIaTypeChoiceEnum + IATA DeviceDhcpv6ClientIaTypeChoiceEnum + IAPD DeviceDhcpv6ClientIaTypeChoiceEnum + IANAPD DeviceDhcpv6ClientIaTypeChoiceEnum +}{ + IANA: DeviceDhcpv6ClientIaTypeChoiceEnum("iana"), + IATA: DeviceDhcpv6ClientIaTypeChoiceEnum("iata"), + IAPD: DeviceDhcpv6ClientIaTypeChoiceEnum("iapd"), + IANAPD: DeviceDhcpv6ClientIaTypeChoiceEnum("ianapd"), +} + +func (obj *deviceDhcpv6ClientIaType) Choice() DeviceDhcpv6ClientIaTypeChoiceEnum { + return DeviceDhcpv6ClientIaTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Iata to set choice +func (obj *deviceDhcpv6ClientIaType) Iata() { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IATA) +} + +// Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent different types of IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. IA_NA is the Identity Association for Non-temporary Addresses option. IA_TA is the Identity Association for Temporary Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD s the Identity Association for Temporary Prefix Delegation. +// Choice returns a string +func (obj *deviceDhcpv6ClientIaType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *deviceDhcpv6ClientIaType) setChoice(value DeviceDhcpv6ClientIaTypeChoiceEnum) DeviceDhcpv6ClientIaType { + intValue, ok := otg.DeviceDhcpv6ClientIaType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on DeviceDhcpv6ClientIaTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.DeviceDhcpv6ClientIaType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Ianapd = nil + obj.ianapdHolder = nil + obj.obj.Iapd = nil + obj.iapdHolder = nil + obj.obj.Iana = nil + obj.ianaHolder = nil + + if value == DeviceDhcpv6ClientIaTypeChoice.IANA { + obj.obj.Iana = NewDeviceDhcpv6ClientIaTimeValue().msg() + } + + if value == DeviceDhcpv6ClientIaTypeChoice.IAPD { + obj.obj.Iapd = NewDeviceDhcpv6ClientIaTimeValue().msg() + } + + if value == DeviceDhcpv6ClientIaTypeChoice.IANAPD { + obj.obj.Ianapd = NewDeviceDhcpv6ClientIaTimeValue().msg() + } + + return obj +} + +// description is TBD +// Iana returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) Iana() DeviceDhcpv6ClientIaTimeValue { + if obj.obj.Iana == nil { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IANA) + } + if obj.ianaHolder == nil { + obj.ianaHolder = &deviceDhcpv6ClientIaTimeValue{obj: obj.obj.Iana} + } + return obj.ianaHolder +} + +// description is TBD +// Iana returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) HasIana() bool { + return obj.obj.Iana != nil +} + +// description is TBD +// SetIana sets the DeviceDhcpv6ClientIaTimeValue value in the DeviceDhcpv6ClientIaType object +func (obj *deviceDhcpv6ClientIaType) SetIana(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IANA) + obj.ianaHolder = nil + obj.obj.Iana = value.msg() + + return obj +} + +// description is TBD +// Iapd returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) Iapd() DeviceDhcpv6ClientIaTimeValue { + if obj.obj.Iapd == nil { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IAPD) + } + if obj.iapdHolder == nil { + obj.iapdHolder = &deviceDhcpv6ClientIaTimeValue{obj: obj.obj.Iapd} + } + return obj.iapdHolder +} + +// description is TBD +// Iapd returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) HasIapd() bool { + return obj.obj.Iapd != nil +} + +// description is TBD +// SetIapd sets the DeviceDhcpv6ClientIaTimeValue value in the DeviceDhcpv6ClientIaType object +func (obj *deviceDhcpv6ClientIaType) SetIapd(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IAPD) + obj.iapdHolder = nil + obj.obj.Iapd = value.msg() + + return obj +} + +// description is TBD +// Ianapd returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) Ianapd() DeviceDhcpv6ClientIaTimeValue { + if obj.obj.Ianapd == nil { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IANAPD) + } + if obj.ianapdHolder == nil { + obj.ianapdHolder = &deviceDhcpv6ClientIaTimeValue{obj: obj.obj.Ianapd} + } + return obj.ianapdHolder +} + +// description is TBD +// Ianapd returns a DeviceDhcpv6ClientIaTimeValue +func (obj *deviceDhcpv6ClientIaType) HasIanapd() bool { + return obj.obj.Ianapd != nil +} + +// description is TBD +// SetIanapd sets the DeviceDhcpv6ClientIaTimeValue value in the DeviceDhcpv6ClientIaType object +func (obj *deviceDhcpv6ClientIaType) SetIanapd(value DeviceDhcpv6ClientIaTimeValue) DeviceDhcpv6ClientIaType { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IANAPD) + obj.ianapdHolder = nil + obj.obj.Ianapd = value.msg() + + return obj +} + +func (obj *deviceDhcpv6ClientIaType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Iana != nil { + + obj.Iana().validateObj(vObj, set_default) + } + + if obj.obj.Iapd != nil { + + obj.Iapd().validateObj(vObj, set_default) + } + + if obj.obj.Ianapd != nil { + + obj.Ianapd().validateObj(vObj, set_default) + } + +} + +func (obj *deviceDhcpv6ClientIaType) setDefault() { + var choices_set int = 0 + var choice DeviceDhcpv6ClientIaTypeChoiceEnum + + if obj.obj.Iana != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientIaTypeChoice.IANA + } + + if obj.obj.Iapd != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientIaTypeChoice.IAPD + } + + if obj.obj.Ianapd != nil { + choices_set += 1 + choice = DeviceDhcpv6ClientIaTypeChoice.IANAPD + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(DeviceDhcpv6ClientIaTypeChoice.IANA) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in DeviceDhcpv6ClientIaType") + } + } else { + intVal := otg.DeviceDhcpv6ClientIaType_Choice_Enum_value[string(choice)] + enumValue := otg.DeviceDhcpv6ClientIaType_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/device_dhcpv6_client_no_duid.go b/gosnappi/device_dhcpv6_client_no_duid.go new file mode 100644 index 00000000..39bbbb67 --- /dev/null +++ b/gosnappi/device_dhcpv6_client_no_duid.go @@ -0,0 +1,278 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientNoDuid ***** +type deviceDhcpv6ClientNoDuid struct { + validation + obj *otg.DeviceDhcpv6ClientNoDuid + marshaller marshalDeviceDhcpv6ClientNoDuid + unMarshaller unMarshalDeviceDhcpv6ClientNoDuid +} + +func NewDeviceDhcpv6ClientNoDuid() DeviceDhcpv6ClientNoDuid { + obj := deviceDhcpv6ClientNoDuid{obj: &otg.DeviceDhcpv6ClientNoDuid{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientNoDuid) msg() *otg.DeviceDhcpv6ClientNoDuid { + return obj.obj +} + +func (obj *deviceDhcpv6ClientNoDuid) setMsg(msg *otg.DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientNoDuid { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientNoDuid struct { + obj *deviceDhcpv6ClientNoDuid +} + +type marshalDeviceDhcpv6ClientNoDuid interface { + // ToProto marshals DeviceDhcpv6ClientNoDuid to protobuf object *otg.DeviceDhcpv6ClientNoDuid + ToProto() (*otg.DeviceDhcpv6ClientNoDuid, error) + // ToPbText marshals DeviceDhcpv6ClientNoDuid to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientNoDuid to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientNoDuid to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientNoDuid struct { + obj *deviceDhcpv6ClientNoDuid +} + +type unMarshalDeviceDhcpv6ClientNoDuid interface { + // FromProto unmarshals DeviceDhcpv6ClientNoDuid from protobuf object *otg.DeviceDhcpv6ClientNoDuid + FromProto(msg *otg.DeviceDhcpv6ClientNoDuid) (DeviceDhcpv6ClientNoDuid, error) + // FromPbText unmarshals DeviceDhcpv6ClientNoDuid from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientNoDuid from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientNoDuid from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientNoDuid) Marshal() marshalDeviceDhcpv6ClientNoDuid { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientNoDuid{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientNoDuid) Unmarshal() unMarshalDeviceDhcpv6ClientNoDuid { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientNoDuid{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientNoDuid) ToProto() (*otg.DeviceDhcpv6ClientNoDuid, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientNoDuid) FromProto(msg *otg.DeviceDhcpv6ClientNoDuid) (DeviceDhcpv6ClientNoDuid, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientNoDuid) 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 *unMarshaldeviceDhcpv6ClientNoDuid) 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 *marshaldeviceDhcpv6ClientNoDuid) 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 *unMarshaldeviceDhcpv6ClientNoDuid) 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 *marshaldeviceDhcpv6ClientNoDuid) 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 *unMarshaldeviceDhcpv6ClientNoDuid) 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 *deviceDhcpv6ClientNoDuid) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientNoDuid) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientNoDuid) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientNoDuid) Clone() (DeviceDhcpv6ClientNoDuid, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientNoDuid() + 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 +} + +// DeviceDhcpv6ClientNoDuid is the container for DUID-LL and DUID-LLT. +type DeviceDhcpv6ClientNoDuid interface { + Validation + // msg marshals DeviceDhcpv6ClientNoDuid to protobuf object *otg.DeviceDhcpv6ClientNoDuid + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientNoDuid + // setMsg unmarshals DeviceDhcpv6ClientNoDuid from protobuf object *otg.DeviceDhcpv6ClientNoDuid + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientNoDuid) DeviceDhcpv6ClientNoDuid + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientNoDuid + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientNoDuid + // validate validates DeviceDhcpv6ClientNoDuid + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientNoDuid, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() +} + +func (obj *deviceDhcpv6ClientNoDuid) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *deviceDhcpv6ClientNoDuid) setDefault() { + +} diff --git a/gosnappi/device_dhcpv6_client_options.go b/gosnappi/device_dhcpv6_client_options.go new file mode 100644 index 00000000..afd5f86e --- /dev/null +++ b/gosnappi/device_dhcpv6_client_options.go @@ -0,0 +1,475 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientOptions ***** +type deviceDhcpv6ClientOptions struct { + validation + obj *otg.DeviceDhcpv6ClientOptions + marshaller marshalDeviceDhcpv6ClientOptions + unMarshaller unMarshalDeviceDhcpv6ClientOptions + serverIdentifierHolder Dhcpv6ClientOptionsServerIdentifier + vendorClassHolder Dhcpv6ClientOptionsVendorClass + vendorInfoHolder Dhcpv6ClientOptionsVendorInfo + fqdnHolder Dhcpv6ClientOptionsFqdn +} + +func NewDeviceDhcpv6ClientOptions() DeviceDhcpv6ClientOptions { + obj := deviceDhcpv6ClientOptions{obj: &otg.DeviceDhcpv6ClientOptions{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientOptions) msg() *otg.DeviceDhcpv6ClientOptions { + return obj.obj +} + +func (obj *deviceDhcpv6ClientOptions) setMsg(msg *otg.DeviceDhcpv6ClientOptions) DeviceDhcpv6ClientOptions { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientOptions struct { + obj *deviceDhcpv6ClientOptions +} + +type marshalDeviceDhcpv6ClientOptions interface { + // ToProto marshals DeviceDhcpv6ClientOptions to protobuf object *otg.DeviceDhcpv6ClientOptions + ToProto() (*otg.DeviceDhcpv6ClientOptions, error) + // ToPbText marshals DeviceDhcpv6ClientOptions to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientOptions to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientOptions to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientOptions struct { + obj *deviceDhcpv6ClientOptions +} + +type unMarshalDeviceDhcpv6ClientOptions interface { + // FromProto unmarshals DeviceDhcpv6ClientOptions from protobuf object *otg.DeviceDhcpv6ClientOptions + FromProto(msg *otg.DeviceDhcpv6ClientOptions) (DeviceDhcpv6ClientOptions, error) + // FromPbText unmarshals DeviceDhcpv6ClientOptions from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientOptions from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientOptions from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientOptions) Marshal() marshalDeviceDhcpv6ClientOptions { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientOptions{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientOptions) Unmarshal() unMarshalDeviceDhcpv6ClientOptions { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientOptions{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientOptions) ToProto() (*otg.DeviceDhcpv6ClientOptions, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientOptions) FromProto(msg *otg.DeviceDhcpv6ClientOptions) (DeviceDhcpv6ClientOptions, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientOptions) 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 *unMarshaldeviceDhcpv6ClientOptions) 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 *marshaldeviceDhcpv6ClientOptions) 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 *unMarshaldeviceDhcpv6ClientOptions) 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 *marshaldeviceDhcpv6ClientOptions) 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 *unMarshaldeviceDhcpv6ClientOptions) 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 *deviceDhcpv6ClientOptions) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientOptions) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientOptions) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientOptions) Clone() (DeviceDhcpv6ClientOptions, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientOptions() + 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 *deviceDhcpv6ClientOptions) setNil() { + obj.serverIdentifierHolder = nil + obj.vendorClassHolder = nil + obj.vendorInfoHolder = nil + obj.fqdnHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DeviceDhcpv6ClientOptions is dHCP client options, these configured options are sent in Dhcp client messages. +type DeviceDhcpv6ClientOptions interface { + Validation + // msg marshals DeviceDhcpv6ClientOptions to protobuf object *otg.DeviceDhcpv6ClientOptions + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientOptions + // setMsg unmarshals DeviceDhcpv6ClientOptions from protobuf object *otg.DeviceDhcpv6ClientOptions + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientOptions) DeviceDhcpv6ClientOptions + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientOptions + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientOptions + // validate validates DeviceDhcpv6ClientOptions + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientOptions, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ServerIdentifier returns Dhcpv6ClientOptionsServerIdentifier, set in DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsServerIdentifier is description is TBD + ServerIdentifier() Dhcpv6ClientOptionsServerIdentifier + // SetServerIdentifier assigns Dhcpv6ClientOptionsServerIdentifier provided by user to DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsServerIdentifier is description is TBD + SetServerIdentifier(value Dhcpv6ClientOptionsServerIdentifier) DeviceDhcpv6ClientOptions + // HasServerIdentifier checks if ServerIdentifier has been set in DeviceDhcpv6ClientOptions + HasServerIdentifier() bool + // VendorClass returns Dhcpv6ClientOptionsVendorClass, set in DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsVendorClass is this option is used by a client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16. + VendorClass() Dhcpv6ClientOptionsVendorClass + // SetVendorClass assigns Dhcpv6ClientOptionsVendorClass provided by user to DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsVendorClass is this option is used by a client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16. + SetVendorClass(value Dhcpv6ClientOptionsVendorClass) DeviceDhcpv6ClientOptions + // HasVendorClass checks if VendorClass has been set in DeviceDhcpv6ClientOptions + HasVendorClass() bool + // VendorInfo returns Dhcpv6ClientOptionsVendorInfo, set in DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsVendorInfo is this option is used by clients to exchange vendor-specific information. The option code is 17. + VendorInfo() Dhcpv6ClientOptionsVendorInfo + // SetVendorInfo assigns Dhcpv6ClientOptionsVendorInfo provided by user to DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsVendorInfo is this option is used by clients to exchange vendor-specific information. The option code is 17. + SetVendorInfo(value Dhcpv6ClientOptionsVendorInfo) DeviceDhcpv6ClientOptions + // HasVendorInfo checks if VendorInfo has been set in DeviceDhcpv6ClientOptions + HasVendorInfo() bool + // Fqdn returns Dhcpv6ClientOptionsFqdn, set in DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsFqdn is dHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39. + Fqdn() Dhcpv6ClientOptionsFqdn + // SetFqdn assigns Dhcpv6ClientOptionsFqdn provided by user to DeviceDhcpv6ClientOptions. + // Dhcpv6ClientOptionsFqdn is dHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39. + SetFqdn(value Dhcpv6ClientOptionsFqdn) DeviceDhcpv6ClientOptions + // HasFqdn checks if Fqdn has been set in DeviceDhcpv6ClientOptions + HasFqdn() bool + setNil() +} + +// A client uses multicast to reach all servers or an individual server. An individual server is indicated by +// specifying that server's DUID in a Server Identifier option in the client's message (all servers will receive +// this message but only the indicated server will respond). All servers are indicated by not supplying this option. +// ServerIdentifier returns a Dhcpv6ClientOptionsServerIdentifier +func (obj *deviceDhcpv6ClientOptions) ServerIdentifier() Dhcpv6ClientOptionsServerIdentifier { + if obj.obj.ServerIdentifier == nil { + obj.obj.ServerIdentifier = NewDhcpv6ClientOptionsServerIdentifier().msg() + } + if obj.serverIdentifierHolder == nil { + obj.serverIdentifierHolder = &dhcpv6ClientOptionsServerIdentifier{obj: obj.obj.ServerIdentifier} + } + return obj.serverIdentifierHolder +} + +// A client uses multicast to reach all servers or an individual server. An individual server is indicated by +// specifying that server's DUID in a Server Identifier option in the client's message (all servers will receive +// this message but only the indicated server will respond). All servers are indicated by not supplying this option. +// ServerIdentifier returns a Dhcpv6ClientOptionsServerIdentifier +func (obj *deviceDhcpv6ClientOptions) HasServerIdentifier() bool { + return obj.obj.ServerIdentifier != nil +} + +// A client uses multicast to reach all servers or an individual server. An individual server is indicated by +// specifying that server's DUID in a Server Identifier option in the client's message (all servers will receive +// this message but only the indicated server will respond). All servers are indicated by not supplying this option. +// SetServerIdentifier sets the Dhcpv6ClientOptionsServerIdentifier value in the DeviceDhcpv6ClientOptions object +func (obj *deviceDhcpv6ClientOptions) SetServerIdentifier(value Dhcpv6ClientOptionsServerIdentifier) DeviceDhcpv6ClientOptions { + + obj.serverIdentifierHolder = nil + obj.obj.ServerIdentifier = value.msg() + + return obj +} + +// The vendor class option is used by a client to identify the vendor that manufactured the hardware on which +// the client is running. The information contained in the data area of this option is contained in one or more +// opaque fields that identify details of the hardware configuration. +// VendorClass returns a Dhcpv6ClientOptionsVendorClass +func (obj *deviceDhcpv6ClientOptions) VendorClass() Dhcpv6ClientOptionsVendorClass { + if obj.obj.VendorClass == nil { + obj.obj.VendorClass = NewDhcpv6ClientOptionsVendorClass().msg() + } + if obj.vendorClassHolder == nil { + obj.vendorClassHolder = &dhcpv6ClientOptionsVendorClass{obj: obj.obj.VendorClass} + } + return obj.vendorClassHolder +} + +// The vendor class option is used by a client to identify the vendor that manufactured the hardware on which +// the client is running. The information contained in the data area of this option is contained in one or more +// opaque fields that identify details of the hardware configuration. +// VendorClass returns a Dhcpv6ClientOptionsVendorClass +func (obj *deviceDhcpv6ClientOptions) HasVendorClass() bool { + return obj.obj.VendorClass != nil +} + +// The vendor class option is used by a client to identify the vendor that manufactured the hardware on which +// the client is running. The information contained in the data area of this option is contained in one or more +// opaque fields that identify details of the hardware configuration. +// SetVendorClass sets the Dhcpv6ClientOptionsVendorClass value in the DeviceDhcpv6ClientOptions object +func (obj *deviceDhcpv6ClientOptions) SetVendorClass(value Dhcpv6ClientOptionsVendorClass) DeviceDhcpv6ClientOptions { + + obj.vendorClassHolder = nil + obj.obj.VendorClass = value.msg() + + return obj +} + +// This option is used by clients to exchange vendor-specific information with servers. +// VendorInfo returns a Dhcpv6ClientOptionsVendorInfo +func (obj *deviceDhcpv6ClientOptions) VendorInfo() Dhcpv6ClientOptionsVendorInfo { + if obj.obj.VendorInfo == nil { + obj.obj.VendorInfo = NewDhcpv6ClientOptionsVendorInfo().msg() + } + if obj.vendorInfoHolder == nil { + obj.vendorInfoHolder = &dhcpv6ClientOptionsVendorInfo{obj: obj.obj.VendorInfo} + } + return obj.vendorInfoHolder +} + +// This option is used by clients to exchange vendor-specific information with servers. +// VendorInfo returns a Dhcpv6ClientOptionsVendorInfo +func (obj *deviceDhcpv6ClientOptions) HasVendorInfo() bool { + return obj.obj.VendorInfo != nil +} + +// This option is used by clients to exchange vendor-specific information with servers. +// SetVendorInfo sets the Dhcpv6ClientOptionsVendorInfo value in the DeviceDhcpv6ClientOptions object +func (obj *deviceDhcpv6ClientOptions) SetVendorInfo(value Dhcpv6ClientOptionsVendorInfo) DeviceDhcpv6ClientOptions { + + obj.vendorInfoHolder = nil + obj.obj.VendorInfo = value.msg() + + return obj +} + +// DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to +// update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client +// FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which update. +// Fqdn returns a Dhcpv6ClientOptionsFqdn +func (obj *deviceDhcpv6ClientOptions) Fqdn() Dhcpv6ClientOptionsFqdn { + if obj.obj.Fqdn == nil { + obj.obj.Fqdn = NewDhcpv6ClientOptionsFqdn().msg() + } + if obj.fqdnHolder == nil { + obj.fqdnHolder = &dhcpv6ClientOptionsFqdn{obj: obj.obj.Fqdn} + } + return obj.fqdnHolder +} + +// DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to +// update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client +// FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which update. +// Fqdn returns a Dhcpv6ClientOptionsFqdn +func (obj *deviceDhcpv6ClientOptions) HasFqdn() bool { + return obj.obj.Fqdn != nil +} + +// DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to +// update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client +// FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which update. +// SetFqdn sets the Dhcpv6ClientOptionsFqdn value in the DeviceDhcpv6ClientOptions object +func (obj *deviceDhcpv6ClientOptions) SetFqdn(value Dhcpv6ClientOptionsFqdn) DeviceDhcpv6ClientOptions { + + obj.fqdnHolder = nil + obj.obj.Fqdn = value.msg() + + return obj +} + +func (obj *deviceDhcpv6ClientOptions) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.ServerIdentifier != nil { + + obj.ServerIdentifier().validateObj(vObj, set_default) + } + + if obj.obj.VendorClass != nil { + + obj.VendorClass().validateObj(vObj, set_default) + } + + if obj.obj.VendorInfo != nil { + + obj.VendorInfo().validateObj(vObj, set_default) + } + + if obj.obj.Fqdn != nil { + + obj.Fqdn().validateObj(vObj, set_default) + } + +} + +func (obj *deviceDhcpv6ClientOptions) setDefault() { + +} diff --git a/gosnappi/device_dhcpv6_client_options_request.go b/gosnappi/device_dhcpv6_client_options_request.go new file mode 100644 index 00000000..f41b28e9 --- /dev/null +++ b/gosnappi/device_dhcpv6_client_options_request.go @@ -0,0 +1,430 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DeviceDhcpv6ClientOptionsRequest ***** +type deviceDhcpv6ClientOptionsRequest struct { + validation + obj *otg.DeviceDhcpv6ClientOptionsRequest + marshaller marshalDeviceDhcpv6ClientOptionsRequest + unMarshaller unMarshalDeviceDhcpv6ClientOptionsRequest + requestHolder DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + associatedDhcpMessagesHolder Dhcpv6ClientOptionsOptionsRequestIncludedMessages +} + +func NewDeviceDhcpv6ClientOptionsRequest() DeviceDhcpv6ClientOptionsRequest { + obj := deviceDhcpv6ClientOptionsRequest{obj: &otg.DeviceDhcpv6ClientOptionsRequest{}} + obj.setDefault() + return &obj +} + +func (obj *deviceDhcpv6ClientOptionsRequest) msg() *otg.DeviceDhcpv6ClientOptionsRequest { + return obj.obj +} + +func (obj *deviceDhcpv6ClientOptionsRequest) setMsg(msg *otg.DeviceDhcpv6ClientOptionsRequest) DeviceDhcpv6ClientOptionsRequest { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldeviceDhcpv6ClientOptionsRequest struct { + obj *deviceDhcpv6ClientOptionsRequest +} + +type marshalDeviceDhcpv6ClientOptionsRequest interface { + // ToProto marshals DeviceDhcpv6ClientOptionsRequest to protobuf object *otg.DeviceDhcpv6ClientOptionsRequest + ToProto() (*otg.DeviceDhcpv6ClientOptionsRequest, error) + // ToPbText marshals DeviceDhcpv6ClientOptionsRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals DeviceDhcpv6ClientOptionsRequest to YAML text + ToYaml() (string, error) + // ToJson marshals DeviceDhcpv6ClientOptionsRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldeviceDhcpv6ClientOptionsRequest struct { + obj *deviceDhcpv6ClientOptionsRequest +} + +type unMarshalDeviceDhcpv6ClientOptionsRequest interface { + // FromProto unmarshals DeviceDhcpv6ClientOptionsRequest from protobuf object *otg.DeviceDhcpv6ClientOptionsRequest + FromProto(msg *otg.DeviceDhcpv6ClientOptionsRequest) (DeviceDhcpv6ClientOptionsRequest, error) + // FromPbText unmarshals DeviceDhcpv6ClientOptionsRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DeviceDhcpv6ClientOptionsRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals DeviceDhcpv6ClientOptionsRequest from JSON text + FromJson(value string) error +} + +func (obj *deviceDhcpv6ClientOptionsRequest) Marshal() marshalDeviceDhcpv6ClientOptionsRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldeviceDhcpv6ClientOptionsRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *deviceDhcpv6ClientOptionsRequest) Unmarshal() unMarshalDeviceDhcpv6ClientOptionsRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldeviceDhcpv6ClientOptionsRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldeviceDhcpv6ClientOptionsRequest) ToProto() (*otg.DeviceDhcpv6ClientOptionsRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldeviceDhcpv6ClientOptionsRequest) FromProto(msg *otg.DeviceDhcpv6ClientOptionsRequest) (DeviceDhcpv6ClientOptionsRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldeviceDhcpv6ClientOptionsRequest) 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 *unMarshaldeviceDhcpv6ClientOptionsRequest) 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 *marshaldeviceDhcpv6ClientOptionsRequest) 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 *unMarshaldeviceDhcpv6ClientOptionsRequest) 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 *marshaldeviceDhcpv6ClientOptionsRequest) 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 *unMarshaldeviceDhcpv6ClientOptionsRequest) 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 *deviceDhcpv6ClientOptionsRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientOptionsRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *deviceDhcpv6ClientOptionsRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *deviceDhcpv6ClientOptionsRequest) Clone() (DeviceDhcpv6ClientOptionsRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDeviceDhcpv6ClientOptionsRequest() + 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 *deviceDhcpv6ClientOptionsRequest) setNil() { + obj.requestHolder = nil + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DeviceDhcpv6ClientOptionsRequest is dHCP client options, these configured options are sent in Dhcp client messages. +type DeviceDhcpv6ClientOptionsRequest interface { + Validation + // msg marshals DeviceDhcpv6ClientOptionsRequest to protobuf object *otg.DeviceDhcpv6ClientOptionsRequest + // and doesn't set defaults + msg() *otg.DeviceDhcpv6ClientOptionsRequest + // setMsg unmarshals DeviceDhcpv6ClientOptionsRequest from protobuf object *otg.DeviceDhcpv6ClientOptionsRequest + // and doesn't set defaults + setMsg(*otg.DeviceDhcpv6ClientOptionsRequest) DeviceDhcpv6ClientOptionsRequest + // provides marshal interface + Marshal() marshalDeviceDhcpv6ClientOptionsRequest + // provides unmarshal interface + Unmarshal() unMarshalDeviceDhcpv6ClientOptionsRequest + // validate validates DeviceDhcpv6ClientOptionsRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DeviceDhcpv6ClientOptionsRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Request returns DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIterIter, set in DeviceDhcpv6ClientOptionsRequest + Request() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + // AssociatedDhcpMessages returns Dhcpv6ClientOptionsOptionsRequestIncludedMessages, set in DeviceDhcpv6ClientOptionsRequest. + // Dhcpv6ClientOptionsOptionsRequestIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ClientOptionsOptionsRequestIncludedMessages provided by user to DeviceDhcpv6ClientOptionsRequest. + // Dhcpv6ClientOptionsOptionsRequestIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsOptionsRequestIncludedMessages) DeviceDhcpv6ClientOptionsRequest + setNil() +} + +// List of options requested by a client from a server. +// Request returns a []Dhcpv6ClientOptionsOptionsRequest +func (obj *deviceDhcpv6ClientOptionsRequest) Request() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + if len(obj.obj.Request) == 0 { + obj.obj.Request = []*otg.Dhcpv6ClientOptionsOptionsRequest{} + } + if obj.requestHolder == nil { + obj.requestHolder = newDeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter(&obj.obj.Request).setMsg(obj) + } + return obj.requestHolder +} + +type deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter struct { + obj *deviceDhcpv6ClientOptionsRequest + dhcpv6ClientOptionsOptionsRequestSlice []Dhcpv6ClientOptionsOptionsRequest + fieldPtr *[]*otg.Dhcpv6ClientOptionsOptionsRequest +} + +func newDeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter(ptr *[]*otg.Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + return &deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter{fieldPtr: ptr} +} + +type DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter interface { + setMsg(*deviceDhcpv6ClientOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + Items() []Dhcpv6ClientOptionsOptionsRequest + Add() Dhcpv6ClientOptionsOptionsRequest + Append(items ...Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + Set(index int, newObj Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + Clear() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + clearHolderSlice() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter + appendHolderSlice(item Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter +} + +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) setMsg(msg *deviceDhcpv6ClientOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ClientOptionsOptionsRequest{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) Items() []Dhcpv6ClientOptionsOptionsRequest { + return obj.dhcpv6ClientOptionsOptionsRequestSlice +} + +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) Add() Dhcpv6ClientOptionsOptionsRequest { + newObj := &otg.Dhcpv6ClientOptionsOptionsRequest{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ClientOptionsOptionsRequest{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ClientOptionsOptionsRequestSlice = append(obj.dhcpv6ClientOptionsOptionsRequestSlice, newLibObj) + return newLibObj +} + +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) Append(items ...Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ClientOptionsOptionsRequestSlice = append(obj.dhcpv6ClientOptionsOptionsRequestSlice, item) + } + return obj +} + +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) Set(index int, newObj Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ClientOptionsOptionsRequestSlice[index] = newObj + return obj +} +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) Clear() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ClientOptionsOptionsRequest{} + obj.dhcpv6ClientOptionsOptionsRequestSlice = []Dhcpv6ClientOptionsOptionsRequest{} + } + return obj +} +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) clearHolderSlice() DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + if len(obj.dhcpv6ClientOptionsOptionsRequestSlice) > 0 { + obj.dhcpv6ClientOptionsOptionsRequestSlice = []Dhcpv6ClientOptionsOptionsRequest{} + } + return obj +} +func (obj *deviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter) appendHolderSlice(item Dhcpv6ClientOptionsOptionsRequest) DeviceDhcpv6ClientOptionsRequestDhcpv6ClientOptionsOptionsRequestIter { + obj.dhcpv6ClientOptionsOptionsRequestSlice = append(obj.dhcpv6ClientOptionsOptionsRequestSlice, item) + return obj +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ClientOptionsOptionsRequestIncludedMessages +func (obj *deviceDhcpv6ClientOptionsRequest) AssociatedDhcpMessages() Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ClientOptionsOptionsRequestIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ClientOptionsOptionsRequestIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The list of dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ClientOptionsOptionsRequestIncludedMessages value in the DeviceDhcpv6ClientOptionsRequest object +func (obj *deviceDhcpv6ClientOptionsRequest) SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsOptionsRequestIncludedMessages) DeviceDhcpv6ClientOptionsRequest { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *deviceDhcpv6ClientOptionsRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.Request) != 0 { + + if set_default { + obj.Request().clearHolderSlice() + for _, item := range obj.obj.Request { + obj.Request().appendHolderSlice(&dhcpv6ClientOptionsOptionsRequest{obj: item}) + } + } + for _, item := range obj.Request().Items() { + item.validateObj(vObj, set_default) + } + + } + + // AssociatedDhcpMessages is required + if obj.obj.AssociatedDhcpMessages == nil { + vObj.validationErrors = append(vObj.validationErrors, "AssociatedDhcpMessages is required field on interface DeviceDhcpv6ClientOptionsRequest") + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *deviceDhcpv6ClientOptionsRequest) setDefault() { + +} diff --git a/gosnappi/device_ethernet.go b/gosnappi/device_ethernet.go index 85380055..00826c16 100644 --- a/gosnappi/device_ethernet.go +++ b/gosnappi/device_ethernet.go @@ -21,6 +21,7 @@ type deviceEthernet struct { ipv6AddressesHolder DeviceEthernetDeviceIpv6Iter vlansHolder DeviceEthernetDeviceVlanIter dhcpv4InterfacesHolder DeviceEthernetDeviceDhcpv4ClientIter + dhcpv6InterfacesHolder DeviceEthernetDeviceDhcpv6ClientIter } func NewDeviceEthernet() DeviceEthernet { @@ -253,6 +254,7 @@ func (obj *deviceEthernet) setNil() { obj.ipv6AddressesHolder = nil obj.vlansHolder = nil obj.dhcpv4InterfacesHolder = nil + obj.dhcpv6InterfacesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -310,6 +312,8 @@ type DeviceEthernet interface { SetName(value string) DeviceEthernet // Dhcpv4Interfaces returns DeviceEthernetDeviceDhcpv4ClientIterIter, set in DeviceEthernet Dhcpv4Interfaces() DeviceEthernetDeviceDhcpv4ClientIter + // Dhcpv6Interfaces returns DeviceEthernetDeviceDhcpv6ClientIterIter, set in DeviceEthernet + Dhcpv6Interfaces() DeviceEthernetDeviceDhcpv6ClientIter setNil() } @@ -744,6 +748,93 @@ func (obj *deviceEthernetDeviceDhcpv4ClientIter) appendHolderSlice(item DeviceDh return obj } +// List of DHCPv6 Clients Configuration. +// Dhcpv6Interfaces returns a []DeviceDhcpv6Client +func (obj *deviceEthernet) Dhcpv6Interfaces() DeviceEthernetDeviceDhcpv6ClientIter { + if len(obj.obj.Dhcpv6Interfaces) == 0 { + obj.obj.Dhcpv6Interfaces = []*otg.DeviceDhcpv6Client{} + } + if obj.dhcpv6InterfacesHolder == nil { + obj.dhcpv6InterfacesHolder = newDeviceEthernetDeviceDhcpv6ClientIter(&obj.obj.Dhcpv6Interfaces).setMsg(obj) + } + return obj.dhcpv6InterfacesHolder +} + +type deviceEthernetDeviceDhcpv6ClientIter struct { + obj *deviceEthernet + deviceDhcpv6ClientSlice []DeviceDhcpv6Client + fieldPtr *[]*otg.DeviceDhcpv6Client +} + +func newDeviceEthernetDeviceDhcpv6ClientIter(ptr *[]*otg.DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter { + return &deviceEthernetDeviceDhcpv6ClientIter{fieldPtr: ptr} +} + +type DeviceEthernetDeviceDhcpv6ClientIter interface { + setMsg(*deviceEthernet) DeviceEthernetDeviceDhcpv6ClientIter + Items() []DeviceDhcpv6Client + Add() DeviceDhcpv6Client + Append(items ...DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter + Set(index int, newObj DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter + Clear() DeviceEthernetDeviceDhcpv6ClientIter + clearHolderSlice() DeviceEthernetDeviceDhcpv6ClientIter + appendHolderSlice(item DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter +} + +func (obj *deviceEthernetDeviceDhcpv6ClientIter) setMsg(msg *deviceEthernet) DeviceEthernetDeviceDhcpv6ClientIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&deviceDhcpv6Client{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *deviceEthernetDeviceDhcpv6ClientIter) Items() []DeviceDhcpv6Client { + return obj.deviceDhcpv6ClientSlice +} + +func (obj *deviceEthernetDeviceDhcpv6ClientIter) Add() DeviceDhcpv6Client { + newObj := &otg.DeviceDhcpv6Client{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &deviceDhcpv6Client{obj: newObj} + newLibObj.setDefault() + obj.deviceDhcpv6ClientSlice = append(obj.deviceDhcpv6ClientSlice, newLibObj) + return newLibObj +} + +func (obj *deviceEthernetDeviceDhcpv6ClientIter) Append(items ...DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.deviceDhcpv6ClientSlice = append(obj.deviceDhcpv6ClientSlice, item) + } + return obj +} + +func (obj *deviceEthernetDeviceDhcpv6ClientIter) Set(index int, newObj DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.deviceDhcpv6ClientSlice[index] = newObj + return obj +} +func (obj *deviceEthernetDeviceDhcpv6ClientIter) Clear() DeviceEthernetDeviceDhcpv6ClientIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.DeviceDhcpv6Client{} + obj.deviceDhcpv6ClientSlice = []DeviceDhcpv6Client{} + } + return obj +} +func (obj *deviceEthernetDeviceDhcpv6ClientIter) clearHolderSlice() DeviceEthernetDeviceDhcpv6ClientIter { + if len(obj.deviceDhcpv6ClientSlice) > 0 { + obj.deviceDhcpv6ClientSlice = []DeviceDhcpv6Client{} + } + return obj +} +func (obj *deviceEthernetDeviceDhcpv6ClientIter) appendHolderSlice(item DeviceDhcpv6Client) DeviceEthernetDeviceDhcpv6ClientIter { + obj.deviceDhcpv6ClientSlice = append(obj.deviceDhcpv6ClientSlice, item) + return obj +} + func (obj *deviceEthernet) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -838,6 +929,20 @@ func (obj *deviceEthernet) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.Dhcpv6Interfaces) != 0 { + + if set_default { + obj.Dhcpv6Interfaces().clearHolderSlice() + for _, item := range obj.obj.Dhcpv6Interfaces { + obj.Dhcpv6Interfaces().appendHolderSlice(&deviceDhcpv6Client{obj: item}) + } + } + for _, item := range obj.Dhcpv6Interfaces().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *deviceEthernet) setDefault() { diff --git a/gosnappi/dhcp_server_v4_pool.go b/gosnappi/dhcp_server_v4_pool.go index 84952a98..86182f02 100644 --- a/gosnappi/dhcp_server_v4_pool.go +++ b/gosnappi/dhcp_server_v4_pool.go @@ -511,10 +511,10 @@ func (obj *dhcpServerV4Pool) validateObj(vObj *validation, set_default bool) { if obj.obj.Count != nil { - if *obj.obj.Count < 1 || *obj.obj.Count > 4294967295 { + if *obj.obj.Count < 1 || *obj.obj.Count > 1000000 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= DhcpServerV4Pool.Count <= 4294967295 but Got %d", *obj.obj.Count)) + fmt.Sprintf("1 <= DhcpServerV4Pool.Count <= 1000000 but Got %d", *obj.obj.Count)) } } diff --git a/gosnappi/dhcp_server_v6.go b/gosnappi/dhcp_server_v6.go new file mode 100644 index 00000000..57002c90 --- /dev/null +++ b/gosnappi/dhcp_server_v6.go @@ -0,0 +1,559 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DhcpServerV6 ***** +type dhcpServerV6 struct { + validation + obj *otg.DhcpServerV6 + marshaller marshalDhcpServerV6 + unMarshaller unMarshalDhcpServerV6 + leasesHolder DhcpServerV6DhcpV6ServerLeaseIter + optionsHolder Dhcpv6ServerOptions +} + +func NewDhcpServerV6() DhcpServerV6 { + obj := dhcpServerV6{obj: &otg.DhcpServerV6{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpServerV6) msg() *otg.DhcpServerV6 { + return obj.obj +} + +func (obj *dhcpServerV6) setMsg(msg *otg.DhcpServerV6) DhcpServerV6 { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpServerV6 struct { + obj *dhcpServerV6 +} + +type marshalDhcpServerV6 interface { + // ToProto marshals DhcpServerV6 to protobuf object *otg.DhcpServerV6 + ToProto() (*otg.DhcpServerV6, error) + // ToPbText marshals DhcpServerV6 to protobuf text + ToPbText() (string, error) + // ToYaml marshals DhcpServerV6 to YAML text + ToYaml() (string, error) + // ToJson marshals DhcpServerV6 to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpServerV6 struct { + obj *dhcpServerV6 +} + +type unMarshalDhcpServerV6 interface { + // FromProto unmarshals DhcpServerV6 from protobuf object *otg.DhcpServerV6 + FromProto(msg *otg.DhcpServerV6) (DhcpServerV6, error) + // FromPbText unmarshals DhcpServerV6 from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DhcpServerV6 from YAML text + FromYaml(value string) error + // FromJson unmarshals DhcpServerV6 from JSON text + FromJson(value string) error +} + +func (obj *dhcpServerV6) Marshal() marshalDhcpServerV6 { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpServerV6{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpServerV6) Unmarshal() unMarshalDhcpServerV6 { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpServerV6{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpServerV6) ToProto() (*otg.DhcpServerV6, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpServerV6) FromProto(msg *otg.DhcpServerV6) (DhcpServerV6, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpServerV6) 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 *unMarshaldhcpServerV6) 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 *marshaldhcpServerV6) 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 *unMarshaldhcpServerV6) 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 *marshaldhcpServerV6) 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 *unMarshaldhcpServerV6) 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 *dhcpServerV6) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpServerV6) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpServerV6) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpServerV6) Clone() (DhcpServerV6, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpServerV6() + 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 *dhcpServerV6) setNil() { + obj.leasesHolder = nil + obj.optionsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DhcpServerV6 is configuration for emulated DHCPv6 Server. +type DhcpServerV6 interface { + Validation + // msg marshals DhcpServerV6 to protobuf object *otg.DhcpServerV6 + // and doesn't set defaults + msg() *otg.DhcpServerV6 + // setMsg unmarshals DhcpServerV6 from protobuf object *otg.DhcpServerV6 + // and doesn't set defaults + setMsg(*otg.DhcpServerV6) DhcpServerV6 + // provides marshal interface + Marshal() marshalDhcpServerV6 + // provides unmarshal interface + Unmarshal() unMarshalDhcpServerV6 + // validate validates DhcpServerV6 + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DhcpServerV6, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in DhcpServerV6. + Name() string + // SetName assigns string provided by user to DhcpServerV6 + SetName(value string) DhcpServerV6 + // Ipv6Name returns string, set in DhcpServerV6. + Ipv6Name() string + // SetIpv6Name assigns string provided by user to DhcpServerV6 + SetIpv6Name(value string) DhcpServerV6 + // RapidCommit returns bool, set in DhcpServerV6. + RapidCommit() bool + // SetRapidCommit assigns bool provided by user to DhcpServerV6 + SetRapidCommit(value bool) DhcpServerV6 + // HasRapidCommit checks if RapidCommit has been set in DhcpServerV6 + HasRapidCommit() bool + // ReconfigureViaRelayAgent returns bool, set in DhcpServerV6. + ReconfigureViaRelayAgent() bool + // SetReconfigureViaRelayAgent assigns bool provided by user to DhcpServerV6 + SetReconfigureViaRelayAgent(value bool) DhcpServerV6 + // HasReconfigureViaRelayAgent checks if ReconfigureViaRelayAgent has been set in DhcpServerV6 + HasReconfigureViaRelayAgent() bool + // Leases returns DhcpServerV6DhcpV6ServerLeaseIterIter, set in DhcpServerV6 + Leases() DhcpServerV6DhcpV6ServerLeaseIter + // Options returns Dhcpv6ServerOptions, set in DhcpServerV6. + // Dhcpv6ServerOptions is dHCP server options, these configured options are sent in Dhcp server messages. + Options() Dhcpv6ServerOptions + // SetOptions assigns Dhcpv6ServerOptions provided by user to DhcpServerV6. + // Dhcpv6ServerOptions is dHCP server options, these configured options are sent in Dhcp server messages. + SetOptions(value Dhcpv6ServerOptions) DhcpServerV6 + // HasOptions checks if Options has been set in DhcpServerV6 + HasOptions() bool + setNil() +} + +// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name returns a string +func (obj *dhcpServerV6) 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 DhcpServerV6 object +func (obj *dhcpServerV6) SetName(value string) DhcpServerV6 { + + obj.obj.Name = &value + return obj +} + +// The unique name of the IPv6 on which DHCPv6 server will run. +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// Ipv6Name returns a string +func (obj *dhcpServerV6) Ipv6Name() string { + + return *obj.obj.Ipv6Name + +} + +// The unique name of the IPv6 on which DHCPv6 server will run. +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// +// SetIpv6Name sets the string value in the DhcpServerV6 object +func (obj *dhcpServerV6) SetIpv6Name(value string) DhcpServerV6 { + + obj.obj.Ipv6Name = &value + return obj +} + +// If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. +// RapidCommit returns a bool +func (obj *dhcpServerV6) RapidCommit() bool { + + return *obj.obj.RapidCommit + +} + +// If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. +// RapidCommit returns a bool +func (obj *dhcpServerV6) HasRapidCommit() bool { + return obj.obj.RapidCommit != nil +} + +// If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. +// SetRapidCommit sets the bool value in the DhcpServerV6 object +func (obj *dhcpServerV6) SetRapidCommit(value bool) DhcpServerV6 { + + obj.obj.RapidCommit = &value + return obj +} + +// If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message to send the Reconfigure message to a relay agent that will relay the message to the client. +// ReconfigureViaRelayAgent returns a bool +func (obj *dhcpServerV6) ReconfigureViaRelayAgent() bool { + + return *obj.obj.ReconfigureViaRelayAgent + +} + +// If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message to send the Reconfigure message to a relay agent that will relay the message to the client. +// ReconfigureViaRelayAgent returns a bool +func (obj *dhcpServerV6) HasReconfigureViaRelayAgent() bool { + return obj.obj.ReconfigureViaRelayAgent != nil +} + +// If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message to send the Reconfigure message to a relay agent that will relay the message to the client. +// SetReconfigureViaRelayAgent sets the bool value in the DhcpServerV6 object +func (obj *dhcpServerV6) SetReconfigureViaRelayAgent(value bool) DhcpServerV6 { + + obj.obj.ReconfigureViaRelayAgent = &value + return obj +} + +// Array of DHCP pools configured on a server. +// Leases returns a []DhcpV6ServerLease +func (obj *dhcpServerV6) Leases() DhcpServerV6DhcpV6ServerLeaseIter { + if len(obj.obj.Leases) == 0 { + obj.obj.Leases = []*otg.DhcpV6ServerLease{} + } + if obj.leasesHolder == nil { + obj.leasesHolder = newDhcpServerV6DhcpV6ServerLeaseIter(&obj.obj.Leases).setMsg(obj) + } + return obj.leasesHolder +} + +type dhcpServerV6DhcpV6ServerLeaseIter struct { + obj *dhcpServerV6 + dhcpV6ServerLeaseSlice []DhcpV6ServerLease + fieldPtr *[]*otg.DhcpV6ServerLease +} + +func newDhcpServerV6DhcpV6ServerLeaseIter(ptr *[]*otg.DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter { + return &dhcpServerV6DhcpV6ServerLeaseIter{fieldPtr: ptr} +} + +type DhcpServerV6DhcpV6ServerLeaseIter interface { + setMsg(*dhcpServerV6) DhcpServerV6DhcpV6ServerLeaseIter + Items() []DhcpV6ServerLease + Add() DhcpV6ServerLease + Append(items ...DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter + Set(index int, newObj DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter + Clear() DhcpServerV6DhcpV6ServerLeaseIter + clearHolderSlice() DhcpServerV6DhcpV6ServerLeaseIter + appendHolderSlice(item DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter +} + +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) setMsg(msg *dhcpServerV6) DhcpServerV6DhcpV6ServerLeaseIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpV6ServerLease{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) Items() []DhcpV6ServerLease { + return obj.dhcpV6ServerLeaseSlice +} + +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) Add() DhcpV6ServerLease { + newObj := &otg.DhcpV6ServerLease{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpV6ServerLease{obj: newObj} + newLibObj.setDefault() + obj.dhcpV6ServerLeaseSlice = append(obj.dhcpV6ServerLeaseSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) Append(items ...DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpV6ServerLeaseSlice = append(obj.dhcpV6ServerLeaseSlice, item) + } + return obj +} + +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) Set(index int, newObj DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpV6ServerLeaseSlice[index] = newObj + return obj +} +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) Clear() DhcpServerV6DhcpV6ServerLeaseIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.DhcpV6ServerLease{} + obj.dhcpV6ServerLeaseSlice = []DhcpV6ServerLease{} + } + return obj +} +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) clearHolderSlice() DhcpServerV6DhcpV6ServerLeaseIter { + if len(obj.dhcpV6ServerLeaseSlice) > 0 { + obj.dhcpV6ServerLeaseSlice = []DhcpV6ServerLease{} + } + return obj +} +func (obj *dhcpServerV6DhcpV6ServerLeaseIter) appendHolderSlice(item DhcpV6ServerLease) DhcpServerV6DhcpV6ServerLeaseIter { + obj.dhcpV6ServerLeaseSlice = append(obj.dhcpV6ServerLeaseSlice, item) + return obj +} + +// Optional DHCPv4 Server options that are sent in Dhcp server messages. +// Options returns a Dhcpv6ServerOptions +func (obj *dhcpServerV6) Options() Dhcpv6ServerOptions { + if obj.obj.Options == nil { + obj.obj.Options = NewDhcpv6ServerOptions().msg() + } + if obj.optionsHolder == nil { + obj.optionsHolder = &dhcpv6ServerOptions{obj: obj.obj.Options} + } + return obj.optionsHolder +} + +// Optional DHCPv4 Server options that are sent in Dhcp server messages. +// Options returns a Dhcpv6ServerOptions +func (obj *dhcpServerV6) HasOptions() bool { + return obj.obj.Options != nil +} + +// Optional DHCPv4 Server options that are sent in Dhcp server messages. +// SetOptions sets the Dhcpv6ServerOptions value in the DhcpServerV6 object +func (obj *dhcpServerV6) SetOptions(value Dhcpv6ServerOptions) DhcpServerV6 { + + obj.optionsHolder = nil + obj.obj.Options = value.msg() + + return obj +} + +func (obj *dhcpServerV6) 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 DhcpServerV6") + } + + // Ipv6Name is required + if obj.obj.Ipv6Name == nil { + vObj.validationErrors = append(vObj.validationErrors, "Ipv6Name is required field on interface DhcpServerV6") + } + + if len(obj.obj.Leases) != 0 { + + if set_default { + obj.Leases().clearHolderSlice() + for _, item := range obj.obj.Leases { + obj.Leases().appendHolderSlice(&dhcpV6ServerLease{obj: item}) + } + } + for _, item := range obj.Leases().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.Options != nil { + + obj.Options().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpServerV6) setDefault() { + if obj.obj.RapidCommit == nil { + obj.SetRapidCommit(false) + } + if obj.obj.ReconfigureViaRelayAgent == nil { + obj.SetReconfigureViaRelayAgent(false) + } + +} diff --git a/gosnappi/dhcp_v6_server_dns.go b/gosnappi/dhcp_v6_server_dns.go new file mode 100644 index 00000000..f825b78e --- /dev/null +++ b/gosnappi/dhcp_v6_server_dns.go @@ -0,0 +1,424 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DhcpV6ServerDns ***** +type dhcpV6ServerDns struct { + validation + obj *otg.DhcpV6ServerDns + marshaller marshalDhcpV6ServerDns + unMarshaller unMarshalDhcpV6ServerDns + secondaryDnsHolder DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter +} + +func NewDhcpV6ServerDns() DhcpV6ServerDns { + obj := dhcpV6ServerDns{obj: &otg.DhcpV6ServerDns{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpV6ServerDns) msg() *otg.DhcpV6ServerDns { + return obj.obj +} + +func (obj *dhcpV6ServerDns) setMsg(msg *otg.DhcpV6ServerDns) DhcpV6ServerDns { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpV6ServerDns struct { + obj *dhcpV6ServerDns +} + +type marshalDhcpV6ServerDns interface { + // ToProto marshals DhcpV6ServerDns to protobuf object *otg.DhcpV6ServerDns + ToProto() (*otg.DhcpV6ServerDns, error) + // ToPbText marshals DhcpV6ServerDns to protobuf text + ToPbText() (string, error) + // ToYaml marshals DhcpV6ServerDns to YAML text + ToYaml() (string, error) + // ToJson marshals DhcpV6ServerDns to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpV6ServerDns struct { + obj *dhcpV6ServerDns +} + +type unMarshalDhcpV6ServerDns interface { + // FromProto unmarshals DhcpV6ServerDns from protobuf object *otg.DhcpV6ServerDns + FromProto(msg *otg.DhcpV6ServerDns) (DhcpV6ServerDns, error) + // FromPbText unmarshals DhcpV6ServerDns from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DhcpV6ServerDns from YAML text + FromYaml(value string) error + // FromJson unmarshals DhcpV6ServerDns from JSON text + FromJson(value string) error +} + +func (obj *dhcpV6ServerDns) Marshal() marshalDhcpV6ServerDns { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpV6ServerDns{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpV6ServerDns) Unmarshal() unMarshalDhcpV6ServerDns { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpV6ServerDns{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpV6ServerDns) ToProto() (*otg.DhcpV6ServerDns, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpV6ServerDns) FromProto(msg *otg.DhcpV6ServerDns) (DhcpV6ServerDns, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpV6ServerDns) 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 *unMarshaldhcpV6ServerDns) 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 *marshaldhcpV6ServerDns) 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 *unMarshaldhcpV6ServerDns) 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 *marshaldhcpV6ServerDns) 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 *unMarshaldhcpV6ServerDns) 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 *dhcpV6ServerDns) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpV6ServerDns) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpV6ServerDns) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpV6ServerDns) Clone() (DhcpV6ServerDns, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpV6ServerDns() + 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 *dhcpV6ServerDns) setNil() { + obj.secondaryDnsHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DhcpV6ServerDns is optional Dns configuration for DHCPv6 server. +type DhcpV6ServerDns interface { + Validation + // msg marshals DhcpV6ServerDns to protobuf object *otg.DhcpV6ServerDns + // and doesn't set defaults + msg() *otg.DhcpV6ServerDns + // setMsg unmarshals DhcpV6ServerDns from protobuf object *otg.DhcpV6ServerDns + // and doesn't set defaults + setMsg(*otg.DhcpV6ServerDns) DhcpV6ServerDns + // provides marshal interface + Marshal() marshalDhcpV6ServerDns + // provides unmarshal interface + Unmarshal() unMarshalDhcpV6ServerDns + // validate validates DhcpV6ServerDns + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DhcpV6ServerDns, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Primary returns string, set in DhcpV6ServerDns. + Primary() string + // SetPrimary assigns string provided by user to DhcpV6ServerDns + SetPrimary(value string) DhcpV6ServerDns + // SecondaryDns returns DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIterIter, set in DhcpV6ServerDns + SecondaryDns() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + setNil() +} + +// The primary DNS server address that is offered to DHCP clients that request this information through a TLV option. +// Primary returns a string +func (obj *dhcpV6ServerDns) Primary() string { + + return *obj.obj.Primary + +} + +// The primary DNS server address that is offered to DHCP clients that request this information through a TLV option. +// SetPrimary sets the string value in the DhcpV6ServerDns object +func (obj *dhcpV6ServerDns) SetPrimary(value string) DhcpV6ServerDns { + + obj.obj.Primary = &value + return obj +} + +// DHCP server secondary dns configuration options. If included secondary DNS server address will be offered to +// DHCP clients that request this information through a TLV option. +// SecondaryDns returns a []DhcpV6ServerSecondaryDns +func (obj *dhcpV6ServerDns) SecondaryDns() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + if len(obj.obj.SecondaryDns) == 0 { + obj.obj.SecondaryDns = []*otg.DhcpV6ServerSecondaryDns{} + } + if obj.secondaryDnsHolder == nil { + obj.secondaryDnsHolder = newDhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter(&obj.obj.SecondaryDns).setMsg(obj) + } + return obj.secondaryDnsHolder +} + +type dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter struct { + obj *dhcpV6ServerDns + dhcpV6ServerSecondaryDnsSlice []DhcpV6ServerSecondaryDns + fieldPtr *[]*otg.DhcpV6ServerSecondaryDns +} + +func newDhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter(ptr *[]*otg.DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + return &dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter{fieldPtr: ptr} +} + +type DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter interface { + setMsg(*dhcpV6ServerDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + Items() []DhcpV6ServerSecondaryDns + Add() DhcpV6ServerSecondaryDns + Append(items ...DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + Set(index int, newObj DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + Clear() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + clearHolderSlice() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter + appendHolderSlice(item DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter +} + +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) setMsg(msg *dhcpV6ServerDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpV6ServerSecondaryDns{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) Items() []DhcpV6ServerSecondaryDns { + return obj.dhcpV6ServerSecondaryDnsSlice +} + +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) Add() DhcpV6ServerSecondaryDns { + newObj := &otg.DhcpV6ServerSecondaryDns{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpV6ServerSecondaryDns{obj: newObj} + newLibObj.setDefault() + obj.dhcpV6ServerSecondaryDnsSlice = append(obj.dhcpV6ServerSecondaryDnsSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) Append(items ...DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpV6ServerSecondaryDnsSlice = append(obj.dhcpV6ServerSecondaryDnsSlice, item) + } + return obj +} + +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) Set(index int, newObj DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpV6ServerSecondaryDnsSlice[index] = newObj + return obj +} +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) Clear() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.DhcpV6ServerSecondaryDns{} + obj.dhcpV6ServerSecondaryDnsSlice = []DhcpV6ServerSecondaryDns{} + } + return obj +} +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) clearHolderSlice() DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + if len(obj.dhcpV6ServerSecondaryDnsSlice) > 0 { + obj.dhcpV6ServerSecondaryDnsSlice = []DhcpV6ServerSecondaryDns{} + } + return obj +} +func (obj *dhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter) appendHolderSlice(item DhcpV6ServerSecondaryDns) DhcpV6ServerDnsDhcpV6ServerSecondaryDnsIter { + obj.dhcpV6ServerSecondaryDnsSlice = append(obj.dhcpV6ServerSecondaryDnsSlice, item) + return obj +} + +func (obj *dhcpV6ServerDns) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Primary is required + if obj.obj.Primary == nil { + vObj.validationErrors = append(vObj.validationErrors, "Primary is required field on interface DhcpV6ServerDns") + } + if obj.obj.Primary != nil { + + err := obj.validateIpv6(obj.Primary()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on DhcpV6ServerDns.Primary")) + } + + } + + if len(obj.obj.SecondaryDns) != 0 { + + if set_default { + obj.SecondaryDns().clearHolderSlice() + for _, item := range obj.obj.SecondaryDns { + obj.SecondaryDns().appendHolderSlice(&dhcpV6ServerSecondaryDns{obj: item}) + } + } + for _, item := range obj.SecondaryDns().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *dhcpV6ServerDns) setDefault() { + +} diff --git a/gosnappi/dhcp_v6_server_lease.go b/gosnappi/dhcp_v6_server_lease.go new file mode 100644 index 00000000..518b61e8 --- /dev/null +++ b/gosnappi/dhcp_v6_server_lease.go @@ -0,0 +1,366 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DhcpV6ServerLease ***** +type dhcpV6ServerLease struct { + validation + obj *otg.DhcpV6ServerLease + marshaller marshalDhcpV6ServerLease + unMarshaller unMarshalDhcpV6ServerLease + iaTypeHolder Dhcpv6ServerIaType +} + +func NewDhcpV6ServerLease() DhcpV6ServerLease { + obj := dhcpV6ServerLease{obj: &otg.DhcpV6ServerLease{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpV6ServerLease) msg() *otg.DhcpV6ServerLease { + return obj.obj +} + +func (obj *dhcpV6ServerLease) setMsg(msg *otg.DhcpV6ServerLease) DhcpV6ServerLease { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpV6ServerLease struct { + obj *dhcpV6ServerLease +} + +type marshalDhcpV6ServerLease interface { + // ToProto marshals DhcpV6ServerLease to protobuf object *otg.DhcpV6ServerLease + ToProto() (*otg.DhcpV6ServerLease, error) + // ToPbText marshals DhcpV6ServerLease to protobuf text + ToPbText() (string, error) + // ToYaml marshals DhcpV6ServerLease to YAML text + ToYaml() (string, error) + // ToJson marshals DhcpV6ServerLease to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpV6ServerLease struct { + obj *dhcpV6ServerLease +} + +type unMarshalDhcpV6ServerLease interface { + // FromProto unmarshals DhcpV6ServerLease from protobuf object *otg.DhcpV6ServerLease + FromProto(msg *otg.DhcpV6ServerLease) (DhcpV6ServerLease, error) + // FromPbText unmarshals DhcpV6ServerLease from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DhcpV6ServerLease from YAML text + FromYaml(value string) error + // FromJson unmarshals DhcpV6ServerLease from JSON text + FromJson(value string) error +} + +func (obj *dhcpV6ServerLease) Marshal() marshalDhcpV6ServerLease { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpV6ServerLease{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpV6ServerLease) Unmarshal() unMarshalDhcpV6ServerLease { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpV6ServerLease{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpV6ServerLease) ToProto() (*otg.DhcpV6ServerLease, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpV6ServerLease) FromProto(msg *otg.DhcpV6ServerLease) (DhcpV6ServerLease, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpV6ServerLease) 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 *unMarshaldhcpV6ServerLease) 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 *marshaldhcpV6ServerLease) 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 *unMarshaldhcpV6ServerLease) 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 *marshaldhcpV6ServerLease) 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 *unMarshaldhcpV6ServerLease) 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 *dhcpV6ServerLease) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpV6ServerLease) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpV6ServerLease) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpV6ServerLease) Clone() (DhcpV6ServerLease, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpV6ServerLease() + 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 *dhcpV6ServerLease) setNil() { + obj.iaTypeHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// DhcpV6ServerLease is one DHCP pool configuration on a server. +type DhcpV6ServerLease interface { + Validation + // msg marshals DhcpV6ServerLease to protobuf object *otg.DhcpV6ServerLease + // and doesn't set defaults + msg() *otg.DhcpV6ServerLease + // setMsg unmarshals DhcpV6ServerLease from protobuf object *otg.DhcpV6ServerLease + // and doesn't set defaults + setMsg(*otg.DhcpV6ServerLease) DhcpV6ServerLease + // provides marshal interface + Marshal() marshalDhcpV6ServerLease + // provides unmarshal interface + Unmarshal() unMarshalDhcpV6ServerLease + // validate validates DhcpV6ServerLease + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DhcpV6ServerLease, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // LeaseTime returns uint32, set in DhcpV6ServerLease. + LeaseTime() uint32 + // SetLeaseTime assigns uint32 provided by user to DhcpV6ServerLease + SetLeaseTime(value uint32) DhcpV6ServerLease + // HasLeaseTime checks if LeaseTime has been set in DhcpV6ServerLease + HasLeaseTime() bool + // IaType returns Dhcpv6ServerIaType, set in DhcpV6ServerLease. + // Dhcpv6ServerIaType is description is TBD + IaType() Dhcpv6ServerIaType + // SetIaType assigns Dhcpv6ServerIaType provided by user to DhcpV6ServerLease. + // Dhcpv6ServerIaType is description is TBD + SetIaType(value Dhcpv6ServerIaType) DhcpV6ServerLease + setNil() +} + +// The Life Time length in seconds that is assigned to a lease if the requesting DHCP client does not specify a specific expiration time. +// LeaseTime returns a uint32 +func (obj *dhcpV6ServerLease) LeaseTime() uint32 { + + return *obj.obj.LeaseTime + +} + +// The Life Time length in seconds that is assigned to a lease if the requesting DHCP client does not specify a specific expiration time. +// LeaseTime returns a uint32 +func (obj *dhcpV6ServerLease) HasLeaseTime() bool { + return obj.obj.LeaseTime != nil +} + +// The Life Time length in seconds that is assigned to a lease if the requesting DHCP client does not specify a specific expiration time. +// SetLeaseTime sets the uint32 value in the DhcpV6ServerLease object +func (obj *dhcpV6ServerLease) SetLeaseTime(value uint32) DhcpV6ServerLease { + + obj.obj.LeaseTime = &value + return obj +} + +// description is TBD +// IaType returns a Dhcpv6ServerIaType +func (obj *dhcpV6ServerLease) IaType() Dhcpv6ServerIaType { + if obj.obj.IaType == nil { + obj.obj.IaType = NewDhcpv6ServerIaType().msg() + } + if obj.iaTypeHolder == nil { + obj.iaTypeHolder = &dhcpv6ServerIaType{obj: obj.obj.IaType} + } + return obj.iaTypeHolder +} + +// description is TBD +// SetIaType sets the Dhcpv6ServerIaType value in the DhcpV6ServerLease object +func (obj *dhcpV6ServerLease) SetIaType(value Dhcpv6ServerIaType) DhcpV6ServerLease { + + obj.iaTypeHolder = nil + obj.obj.IaType = value.msg() + + return obj +} + +func (obj *dhcpV6ServerLease) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.LeaseTime != nil { + + if *obj.obj.LeaseTime < 300 || *obj.obj.LeaseTime > 30000000 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("300 <= DhcpV6ServerLease.LeaseTime <= 30000000 but Got %d", *obj.obj.LeaseTime)) + } + + } + + // IaType is required + if obj.obj.IaType == nil { + vObj.validationErrors = append(vObj.validationErrors, "IaType is required field on interface DhcpV6ServerLease") + } + + if obj.obj.IaType != nil { + + obj.IaType().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpV6ServerLease) setDefault() { + if obj.obj.LeaseTime == nil { + obj.SetLeaseTime(86400) + } + +} diff --git a/gosnappi/dhcp_v6_server_secondary_dns.go b/gosnappi/dhcp_v6_server_secondary_dns.go new file mode 100644 index 00000000..72bb7872 --- /dev/null +++ b/gosnappi/dhcp_v6_server_secondary_dns.go @@ -0,0 +1,315 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** DhcpV6ServerSecondaryDns ***** +type dhcpV6ServerSecondaryDns struct { + validation + obj *otg.DhcpV6ServerSecondaryDns + marshaller marshalDhcpV6ServerSecondaryDns + unMarshaller unMarshalDhcpV6ServerSecondaryDns +} + +func NewDhcpV6ServerSecondaryDns() DhcpV6ServerSecondaryDns { + obj := dhcpV6ServerSecondaryDns{obj: &otg.DhcpV6ServerSecondaryDns{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpV6ServerSecondaryDns) msg() *otg.DhcpV6ServerSecondaryDns { + return obj.obj +} + +func (obj *dhcpV6ServerSecondaryDns) setMsg(msg *otg.DhcpV6ServerSecondaryDns) DhcpV6ServerSecondaryDns { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpV6ServerSecondaryDns struct { + obj *dhcpV6ServerSecondaryDns +} + +type marshalDhcpV6ServerSecondaryDns interface { + // ToProto marshals DhcpV6ServerSecondaryDns to protobuf object *otg.DhcpV6ServerSecondaryDns + ToProto() (*otg.DhcpV6ServerSecondaryDns, error) + // ToPbText marshals DhcpV6ServerSecondaryDns to protobuf text + ToPbText() (string, error) + // ToYaml marshals DhcpV6ServerSecondaryDns to YAML text + ToYaml() (string, error) + // ToJson marshals DhcpV6ServerSecondaryDns to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpV6ServerSecondaryDns struct { + obj *dhcpV6ServerSecondaryDns +} + +type unMarshalDhcpV6ServerSecondaryDns interface { + // FromProto unmarshals DhcpV6ServerSecondaryDns from protobuf object *otg.DhcpV6ServerSecondaryDns + FromProto(msg *otg.DhcpV6ServerSecondaryDns) (DhcpV6ServerSecondaryDns, error) + // FromPbText unmarshals DhcpV6ServerSecondaryDns from protobuf text + FromPbText(value string) error + // FromYaml unmarshals DhcpV6ServerSecondaryDns from YAML text + FromYaml(value string) error + // FromJson unmarshals DhcpV6ServerSecondaryDns from JSON text + FromJson(value string) error +} + +func (obj *dhcpV6ServerSecondaryDns) Marshal() marshalDhcpV6ServerSecondaryDns { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpV6ServerSecondaryDns{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpV6ServerSecondaryDns) Unmarshal() unMarshalDhcpV6ServerSecondaryDns { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpV6ServerSecondaryDns{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpV6ServerSecondaryDns) ToProto() (*otg.DhcpV6ServerSecondaryDns, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpV6ServerSecondaryDns) FromProto(msg *otg.DhcpV6ServerSecondaryDns) (DhcpV6ServerSecondaryDns, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpV6ServerSecondaryDns) 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 *unMarshaldhcpV6ServerSecondaryDns) 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 *marshaldhcpV6ServerSecondaryDns) 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 *unMarshaldhcpV6ServerSecondaryDns) 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 *marshaldhcpV6ServerSecondaryDns) 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 *unMarshaldhcpV6ServerSecondaryDns) 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 *dhcpV6ServerSecondaryDns) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpV6ServerSecondaryDns) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpV6ServerSecondaryDns) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpV6ServerSecondaryDns) Clone() (DhcpV6ServerSecondaryDns, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpV6ServerSecondaryDns() + 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 +} + +// DhcpV6ServerSecondaryDns is advanced Dns configuration for DHCPv6 server. +type DhcpV6ServerSecondaryDns interface { + Validation + // msg marshals DhcpV6ServerSecondaryDns to protobuf object *otg.DhcpV6ServerSecondaryDns + // and doesn't set defaults + msg() *otg.DhcpV6ServerSecondaryDns + // setMsg unmarshals DhcpV6ServerSecondaryDns from protobuf object *otg.DhcpV6ServerSecondaryDns + // and doesn't set defaults + setMsg(*otg.DhcpV6ServerSecondaryDns) DhcpV6ServerSecondaryDns + // provides marshal interface + Marshal() marshalDhcpV6ServerSecondaryDns + // provides unmarshal interface + Unmarshal() unMarshalDhcpV6ServerSecondaryDns + // validate validates DhcpV6ServerSecondaryDns + validate() error + // A stringer function + String() string + // Clones the object + Clone() (DhcpV6ServerSecondaryDns, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Ip returns string, set in DhcpV6ServerSecondaryDns. + Ip() string + // SetIp assigns string provided by user to DhcpV6ServerSecondaryDns + SetIp(value string) DhcpV6ServerSecondaryDns + // HasIp checks if Ip has been set in DhcpV6ServerSecondaryDns + HasIp() bool +} + +// The secondary DNS server address that is offered to DHCP clients that request this information through a TLV option. +// Ip returns a string +func (obj *dhcpV6ServerSecondaryDns) Ip() string { + + return *obj.obj.Ip + +} + +// The secondary DNS server address that is offered to DHCP clients that request this information through a TLV option. +// Ip returns a string +func (obj *dhcpV6ServerSecondaryDns) HasIp() bool { + return obj.obj.Ip != nil +} + +// The secondary DNS server address that is offered to DHCP clients that request this information through a TLV option. +// SetIp sets the string value in the DhcpV6ServerSecondaryDns object +func (obj *dhcpV6ServerSecondaryDns) SetIp(value string) DhcpV6ServerSecondaryDns { + + obj.obj.Ip = &value + return obj +} + +func (obj *dhcpV6ServerSecondaryDns) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Ip != nil { + + err := obj.validateIpv6(obj.Ip()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on DhcpV6ServerSecondaryDns.Ip")) + } + + } + +} + +func (obj *dhcpV6ServerSecondaryDns) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_metric.go b/gosnappi/dhcpv6_client_metric.go new file mode 100644 index 00000000..bc6d2a8b --- /dev/null +++ b/gosnappi/dhcpv6_client_metric.go @@ -0,0 +1,670 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientMetric ***** +type dhcpv6ClientMetric struct { + validation + obj *otg.Dhcpv6ClientMetric + marshaller marshalDhcpv6ClientMetric + unMarshaller unMarshalDhcpv6ClientMetric +} + +func NewDhcpv6ClientMetric() Dhcpv6ClientMetric { + obj := dhcpv6ClientMetric{obj: &otg.Dhcpv6ClientMetric{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientMetric) msg() *otg.Dhcpv6ClientMetric { + return obj.obj +} + +func (obj *dhcpv6ClientMetric) setMsg(msg *otg.Dhcpv6ClientMetric) Dhcpv6ClientMetric { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientMetric struct { + obj *dhcpv6ClientMetric +} + +type marshalDhcpv6ClientMetric interface { + // ToProto marshals Dhcpv6ClientMetric to protobuf object *otg.Dhcpv6ClientMetric + ToProto() (*otg.Dhcpv6ClientMetric, error) + // ToPbText marshals Dhcpv6ClientMetric to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientMetric to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientMetric to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientMetric struct { + obj *dhcpv6ClientMetric +} + +type unMarshalDhcpv6ClientMetric interface { + // FromProto unmarshals Dhcpv6ClientMetric from protobuf object *otg.Dhcpv6ClientMetric + FromProto(msg *otg.Dhcpv6ClientMetric) (Dhcpv6ClientMetric, error) + // FromPbText unmarshals Dhcpv6ClientMetric from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientMetric from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientMetric from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientMetric) Marshal() marshalDhcpv6ClientMetric { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientMetric{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientMetric) Unmarshal() unMarshalDhcpv6ClientMetric { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientMetric{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientMetric) ToProto() (*otg.Dhcpv6ClientMetric, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientMetric) FromProto(msg *otg.Dhcpv6ClientMetric) (Dhcpv6ClientMetric, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientMetric) 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 *unMarshaldhcpv6ClientMetric) 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 *marshaldhcpv6ClientMetric) 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 *unMarshaldhcpv6ClientMetric) 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 *marshaldhcpv6ClientMetric) 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 *unMarshaldhcpv6ClientMetric) 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 *dhcpv6ClientMetric) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientMetric) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientMetric) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientMetric) Clone() (Dhcpv6ClientMetric, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientMetric() + 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 +} + +// Dhcpv6ClientMetric is dHCPv6 per peer statistics information. +type Dhcpv6ClientMetric interface { + Validation + // msg marshals Dhcpv6ClientMetric to protobuf object *otg.Dhcpv6ClientMetric + // and doesn't set defaults + msg() *otg.Dhcpv6ClientMetric + // setMsg unmarshals Dhcpv6ClientMetric from protobuf object *otg.Dhcpv6ClientMetric + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientMetric) Dhcpv6ClientMetric + // provides marshal interface + Marshal() marshalDhcpv6ClientMetric + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientMetric + // validate validates Dhcpv6ClientMetric + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientMetric, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in Dhcpv6ClientMetric. + Name() string + // SetName assigns string provided by user to Dhcpv6ClientMetric + SetName(value string) Dhcpv6ClientMetric + // HasName checks if Name has been set in Dhcpv6ClientMetric + HasName() bool + // SolicitsSent returns uint64, set in Dhcpv6ClientMetric. + SolicitsSent() uint64 + // SetSolicitsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetSolicitsSent(value uint64) Dhcpv6ClientMetric + // HasSolicitsSent checks if SolicitsSent has been set in Dhcpv6ClientMetric + HasSolicitsSent() bool + // AdvertisementsReceived returns uint64, set in Dhcpv6ClientMetric. + AdvertisementsReceived() uint64 + // SetAdvertisementsReceived assigns uint64 provided by user to Dhcpv6ClientMetric + SetAdvertisementsReceived(value uint64) Dhcpv6ClientMetric + // HasAdvertisementsReceived checks if AdvertisementsReceived has been set in Dhcpv6ClientMetric + HasAdvertisementsReceived() bool + // AdvertisementsIgnored returns uint64, set in Dhcpv6ClientMetric. + AdvertisementsIgnored() uint64 + // SetAdvertisementsIgnored assigns uint64 provided by user to Dhcpv6ClientMetric + SetAdvertisementsIgnored(value uint64) Dhcpv6ClientMetric + // HasAdvertisementsIgnored checks if AdvertisementsIgnored has been set in Dhcpv6ClientMetric + HasAdvertisementsIgnored() bool + // RequestsSent returns uint64, set in Dhcpv6ClientMetric. + RequestsSent() uint64 + // SetRequestsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetRequestsSent(value uint64) Dhcpv6ClientMetric + // HasRequestsSent checks if RequestsSent has been set in Dhcpv6ClientMetric + HasRequestsSent() bool + // NacksReceived returns uint64, set in Dhcpv6ClientMetric. + NacksReceived() uint64 + // SetNacksReceived assigns uint64 provided by user to Dhcpv6ClientMetric + SetNacksReceived(value uint64) Dhcpv6ClientMetric + // HasNacksReceived checks if NacksReceived has been set in Dhcpv6ClientMetric + HasNacksReceived() bool + // RepliesReceived returns uint64, set in Dhcpv6ClientMetric. + RepliesReceived() uint64 + // SetRepliesReceived assigns uint64 provided by user to Dhcpv6ClientMetric + SetRepliesReceived(value uint64) Dhcpv6ClientMetric + // HasRepliesReceived checks if RepliesReceived has been set in Dhcpv6ClientMetric + HasRepliesReceived() bool + // InformationRequestsSent returns uint64, set in Dhcpv6ClientMetric. + InformationRequestsSent() uint64 + // SetInformationRequestsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetInformationRequestsSent(value uint64) Dhcpv6ClientMetric + // HasInformationRequestsSent checks if InformationRequestsSent has been set in Dhcpv6ClientMetric + HasInformationRequestsSent() bool + // RenewsSent returns uint64, set in Dhcpv6ClientMetric. + RenewsSent() uint64 + // SetRenewsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetRenewsSent(value uint64) Dhcpv6ClientMetric + // HasRenewsSent checks if RenewsSent has been set in Dhcpv6ClientMetric + HasRenewsSent() bool + // RebindsSent returns uint64, set in Dhcpv6ClientMetric. + RebindsSent() uint64 + // SetRebindsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetRebindsSent(value uint64) Dhcpv6ClientMetric + // HasRebindsSent checks if RebindsSent has been set in Dhcpv6ClientMetric + HasRebindsSent() bool + // ReleasesSent returns uint64, set in Dhcpv6ClientMetric. + ReleasesSent() uint64 + // SetReleasesSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetReleasesSent(value uint64) Dhcpv6ClientMetric + // HasReleasesSent checks if ReleasesSent has been set in Dhcpv6ClientMetric + HasReleasesSent() bool + // ReconfiguresReceived returns uint64, set in Dhcpv6ClientMetric. + ReconfiguresReceived() uint64 + // SetReconfiguresReceived assigns uint64 provided by user to Dhcpv6ClientMetric + SetReconfiguresReceived(value uint64) Dhcpv6ClientMetric + // HasReconfiguresReceived checks if ReconfiguresReceived has been set in Dhcpv6ClientMetric + HasReconfiguresReceived() bool + // RapidCommitSolicitsSent returns uint64, set in Dhcpv6ClientMetric. + RapidCommitSolicitsSent() uint64 + // SetRapidCommitSolicitsSent assigns uint64 provided by user to Dhcpv6ClientMetric + SetRapidCommitSolicitsSent(value uint64) Dhcpv6ClientMetric + // HasRapidCommitSolicitsSent checks if RapidCommitSolicitsSent has been set in Dhcpv6ClientMetric + HasRapidCommitSolicitsSent() bool + // RapidCommitRepliesReceived returns uint64, set in Dhcpv6ClientMetric. + RapidCommitRepliesReceived() uint64 + // SetRapidCommitRepliesReceived assigns uint64 provided by user to Dhcpv6ClientMetric + SetRapidCommitRepliesReceived(value uint64) Dhcpv6ClientMetric + // HasRapidCommitRepliesReceived checks if RapidCommitRepliesReceived has been set in Dhcpv6ClientMetric + HasRapidCommitRepliesReceived() bool +} + +// The name of a configured DHCPv6 client. +// Name returns a string +func (obj *dhcpv6ClientMetric) Name() string { + + return *obj.obj.Name + +} + +// The name of a configured DHCPv6 client. +// Name returns a string +func (obj *dhcpv6ClientMetric) HasName() bool { + return obj.obj.Name != nil +} + +// The name of a configured DHCPv6 client. +// SetName sets the string value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetName(value string) Dhcpv6ClientMetric { + + obj.obj.Name = &value + return obj +} + +// Number of DHCPSOLICIT messages sent. +// SolicitsSent returns a uint64 +func (obj *dhcpv6ClientMetric) SolicitsSent() uint64 { + + return *obj.obj.SolicitsSent + +} + +// Number of DHCPSOLICIT messages sent. +// SolicitsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasSolicitsSent() bool { + return obj.obj.SolicitsSent != nil +} + +// Number of DHCPSOLICIT messages sent. +// SetSolicitsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetSolicitsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.SolicitsSent = &value + return obj +} + +// Number of DHCPADVERTISE messages received. +// AdvertisementsReceived returns a uint64 +func (obj *dhcpv6ClientMetric) AdvertisementsReceived() uint64 { + + return *obj.obj.AdvertisementsReceived + +} + +// Number of DHCPADVERTISE messages received. +// AdvertisementsReceived returns a uint64 +func (obj *dhcpv6ClientMetric) HasAdvertisementsReceived() bool { + return obj.obj.AdvertisementsReceived != nil +} + +// Number of DHCPADVERTISE messages received. +// SetAdvertisementsReceived sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetAdvertisementsReceived(value uint64) Dhcpv6ClientMetric { + + obj.obj.AdvertisementsReceived = &value + return obj +} + +// Number of DHCPADVERTISE messages ignored. +// AdvertisementsIgnored returns a uint64 +func (obj *dhcpv6ClientMetric) AdvertisementsIgnored() uint64 { + + return *obj.obj.AdvertisementsIgnored + +} + +// Number of DHCPADVERTISE messages ignored. +// AdvertisementsIgnored returns a uint64 +func (obj *dhcpv6ClientMetric) HasAdvertisementsIgnored() bool { + return obj.obj.AdvertisementsIgnored != nil +} + +// Number of DHCPADVERTISE messages ignored. +// SetAdvertisementsIgnored sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetAdvertisementsIgnored(value uint64) Dhcpv6ClientMetric { + + obj.obj.AdvertisementsIgnored = &value + return obj +} + +// Number of DHCPREQUEST messages sent. +// RequestsSent returns a uint64 +func (obj *dhcpv6ClientMetric) RequestsSent() uint64 { + + return *obj.obj.RequestsSent + +} + +// Number of DHCPREQUEST messages sent. +// RequestsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasRequestsSent() bool { + return obj.obj.RequestsSent != nil +} + +// Number of DHCPREQUEST messages sent. +// SetRequestsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRequestsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.RequestsSent = &value + return obj +} + +// Number of negative lease DHCPNACK messages received. +// NacksReceived returns a uint64 +func (obj *dhcpv6ClientMetric) NacksReceived() uint64 { + + return *obj.obj.NacksReceived + +} + +// Number of negative lease DHCPNACK messages received. +// NacksReceived returns a uint64 +func (obj *dhcpv6ClientMetric) HasNacksReceived() bool { + return obj.obj.NacksReceived != nil +} + +// Number of negative lease DHCPNACK messages received. +// SetNacksReceived sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetNacksReceived(value uint64) Dhcpv6ClientMetric { + + obj.obj.NacksReceived = &value + return obj +} + +// Number of DHCPOFFER messages received. +// RepliesReceived returns a uint64 +func (obj *dhcpv6ClientMetric) RepliesReceived() uint64 { + + return *obj.obj.RepliesReceived + +} + +// Number of DHCPOFFER messages received. +// RepliesReceived returns a uint64 +func (obj *dhcpv6ClientMetric) HasRepliesReceived() bool { + return obj.obj.RepliesReceived != nil +} + +// Number of DHCPOFFER messages received. +// SetRepliesReceived sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRepliesReceived(value uint64) Dhcpv6ClientMetric { + + obj.obj.RepliesReceived = &value + return obj +} + +// Number of DHCP Inform requests sent. +// InformationRequestsSent returns a uint64 +func (obj *dhcpv6ClientMetric) InformationRequestsSent() uint64 { + + return *obj.obj.InformationRequestsSent + +} + +// Number of DHCP Inform requests sent. +// InformationRequestsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasInformationRequestsSent() bool { + return obj.obj.InformationRequestsSent != nil +} + +// Number of DHCP Inform requests sent. +// SetInformationRequestsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetInformationRequestsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.InformationRequestsSent = &value + return obj +} + +// Number of DHCP renew messages sent. +// RenewsSent returns a uint64 +func (obj *dhcpv6ClientMetric) RenewsSent() uint64 { + + return *obj.obj.RenewsSent + +} + +// Number of DHCP renew messages sent. +// RenewsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasRenewsSent() bool { + return obj.obj.RenewsSent != nil +} + +// Number of DHCP renew messages sent. +// SetRenewsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRenewsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.RenewsSent = &value + return obj +} + +// Number of DHCP rebind messages sent. +// RebindsSent returns a uint64 +func (obj *dhcpv6ClientMetric) RebindsSent() uint64 { + + return *obj.obj.RebindsSent + +} + +// Number of DHCP rebind messages sent. +// RebindsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasRebindsSent() bool { + return obj.obj.RebindsSent != nil +} + +// Number of DHCP rebind messages sent. +// SetRebindsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRebindsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.RebindsSent = &value + return obj +} + +// Number of DHCP Release messages sent. +// ReleasesSent returns a uint64 +func (obj *dhcpv6ClientMetric) ReleasesSent() uint64 { + + return *obj.obj.ReleasesSent + +} + +// Number of DHCP Release messages sent. +// ReleasesSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasReleasesSent() bool { + return obj.obj.ReleasesSent != nil +} + +// Number of DHCP Release messages sent. +// SetReleasesSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetReleasesSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.ReleasesSent = &value + return obj +} + +// Number of DHCP Reconfigure messages received. +// ReconfiguresReceived returns a uint64 +func (obj *dhcpv6ClientMetric) ReconfiguresReceived() uint64 { + + return *obj.obj.ReconfiguresReceived + +} + +// Number of DHCP Reconfigure messages received. +// ReconfiguresReceived returns a uint64 +func (obj *dhcpv6ClientMetric) HasReconfiguresReceived() bool { + return obj.obj.ReconfiguresReceived != nil +} + +// Number of DHCP Reconfigure messages received. +// SetReconfiguresReceived sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetReconfiguresReceived(value uint64) Dhcpv6ClientMetric { + + obj.obj.ReconfiguresReceived = &value + return obj +} + +// Number of rapid commit DHCPSOLICIT messages sent. +// RapidCommitSolicitsSent returns a uint64 +func (obj *dhcpv6ClientMetric) RapidCommitSolicitsSent() uint64 { + + return *obj.obj.RapidCommitSolicitsSent + +} + +// Number of rapid commit DHCPSOLICIT messages sent. +// RapidCommitSolicitsSent returns a uint64 +func (obj *dhcpv6ClientMetric) HasRapidCommitSolicitsSent() bool { + return obj.obj.RapidCommitSolicitsSent != nil +} + +// Number of rapid commit DHCPSOLICIT messages sent. +// SetRapidCommitSolicitsSent sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRapidCommitSolicitsSent(value uint64) Dhcpv6ClientMetric { + + obj.obj.RapidCommitSolicitsSent = &value + return obj +} + +// Number of rapid commit DHCP Reply messages received. +// RapidCommitRepliesReceived returns a uint64 +func (obj *dhcpv6ClientMetric) RapidCommitRepliesReceived() uint64 { + + return *obj.obj.RapidCommitRepliesReceived + +} + +// Number of rapid commit DHCP Reply messages received. +// RapidCommitRepliesReceived returns a uint64 +func (obj *dhcpv6ClientMetric) HasRapidCommitRepliesReceived() bool { + return obj.obj.RapidCommitRepliesReceived != nil +} + +// Number of rapid commit DHCP Reply messages received. +// SetRapidCommitRepliesReceived sets the uint64 value in the Dhcpv6ClientMetric object +func (obj *dhcpv6ClientMetric) SetRapidCommitRepliesReceived(value uint64) Dhcpv6ClientMetric { + + obj.obj.RapidCommitRepliesReceived = &value + return obj +} + +func (obj *dhcpv6ClientMetric) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ClientMetric) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_metrics_request.go b/gosnappi/dhcpv6_client_metrics_request.go new file mode 100644 index 00000000..18254cb1 --- /dev/null +++ b/gosnappi/dhcpv6_client_metrics_request.go @@ -0,0 +1,375 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientMetricsRequest ***** +type dhcpv6ClientMetricsRequest struct { + validation + obj *otg.Dhcpv6ClientMetricsRequest + marshaller marshalDhcpv6ClientMetricsRequest + unMarshaller unMarshalDhcpv6ClientMetricsRequest +} + +func NewDhcpv6ClientMetricsRequest() Dhcpv6ClientMetricsRequest { + obj := dhcpv6ClientMetricsRequest{obj: &otg.Dhcpv6ClientMetricsRequest{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientMetricsRequest) msg() *otg.Dhcpv6ClientMetricsRequest { + return obj.obj +} + +func (obj *dhcpv6ClientMetricsRequest) setMsg(msg *otg.Dhcpv6ClientMetricsRequest) Dhcpv6ClientMetricsRequest { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientMetricsRequest struct { + obj *dhcpv6ClientMetricsRequest +} + +type marshalDhcpv6ClientMetricsRequest interface { + // ToProto marshals Dhcpv6ClientMetricsRequest to protobuf object *otg.Dhcpv6ClientMetricsRequest + ToProto() (*otg.Dhcpv6ClientMetricsRequest, error) + // ToPbText marshals Dhcpv6ClientMetricsRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientMetricsRequest to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientMetricsRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientMetricsRequest struct { + obj *dhcpv6ClientMetricsRequest +} + +type unMarshalDhcpv6ClientMetricsRequest interface { + // FromProto unmarshals Dhcpv6ClientMetricsRequest from protobuf object *otg.Dhcpv6ClientMetricsRequest + FromProto(msg *otg.Dhcpv6ClientMetricsRequest) (Dhcpv6ClientMetricsRequest, error) + // FromPbText unmarshals Dhcpv6ClientMetricsRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientMetricsRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientMetricsRequest from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientMetricsRequest) Marshal() marshalDhcpv6ClientMetricsRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientMetricsRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientMetricsRequest) Unmarshal() unMarshalDhcpv6ClientMetricsRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientMetricsRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientMetricsRequest) ToProto() (*otg.Dhcpv6ClientMetricsRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientMetricsRequest) FromProto(msg *otg.Dhcpv6ClientMetricsRequest) (Dhcpv6ClientMetricsRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientMetricsRequest) 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 *unMarshaldhcpv6ClientMetricsRequest) 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 *marshaldhcpv6ClientMetricsRequest) 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 *unMarshaldhcpv6ClientMetricsRequest) 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 *marshaldhcpv6ClientMetricsRequest) 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 *unMarshaldhcpv6ClientMetricsRequest) 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 *dhcpv6ClientMetricsRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientMetricsRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientMetricsRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientMetricsRequest) Clone() (Dhcpv6ClientMetricsRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientMetricsRequest() + 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 +} + +// Dhcpv6ClientMetricsRequest is the request to retrieve DHCPv6 per client metrics/statistics. +type Dhcpv6ClientMetricsRequest interface { + Validation + // msg marshals Dhcpv6ClientMetricsRequest to protobuf object *otg.Dhcpv6ClientMetricsRequest + // and doesn't set defaults + msg() *otg.Dhcpv6ClientMetricsRequest + // setMsg unmarshals Dhcpv6ClientMetricsRequest from protobuf object *otg.Dhcpv6ClientMetricsRequest + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientMetricsRequest) Dhcpv6ClientMetricsRequest + // provides marshal interface + Marshal() marshalDhcpv6ClientMetricsRequest + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientMetricsRequest + // validate validates Dhcpv6ClientMetricsRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientMetricsRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ClientNames returns []string, set in Dhcpv6ClientMetricsRequest. + ClientNames() []string + // SetClientNames assigns []string provided by user to Dhcpv6ClientMetricsRequest + SetClientNames(value []string) Dhcpv6ClientMetricsRequest + // ColumnNames returns []Dhcpv6ClientMetricsRequestColumnNamesEnum, set in Dhcpv6ClientMetricsRequest + ColumnNames() []Dhcpv6ClientMetricsRequestColumnNamesEnum + // SetColumnNames assigns []Dhcpv6ClientMetricsRequestColumnNamesEnum provided by user to Dhcpv6ClientMetricsRequest + SetColumnNames(value []Dhcpv6ClientMetricsRequestColumnNamesEnum) Dhcpv6ClientMetricsRequest +} + +// The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// ClientNames returns a []string +func (obj *dhcpv6ClientMetricsRequest) ClientNames() []string { + if obj.obj.ClientNames == nil { + obj.obj.ClientNames = make([]string, 0) + } + return obj.obj.ClientNames +} + +// The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// SetClientNames sets the []string value in the Dhcpv6ClientMetricsRequest object +func (obj *dhcpv6ClientMetricsRequest) SetClientNames(value []string) Dhcpv6ClientMetricsRequest { + + if obj.obj.ClientNames == nil { + obj.obj.ClientNames = make([]string, 0) + } + obj.obj.ClientNames = value + + return obj +} + +type Dhcpv6ClientMetricsRequestColumnNamesEnum string + +// Enum of ColumnNames on Dhcpv6ClientMetricsRequest +var Dhcpv6ClientMetricsRequestColumnNames = struct { + SOLICITS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + ADVERTISEMENTS_RECEIVED Dhcpv6ClientMetricsRequestColumnNamesEnum + ADVERTISEMENTS_IGNORED Dhcpv6ClientMetricsRequestColumnNamesEnum + REQUESTS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + NACKS_RECEIVED Dhcpv6ClientMetricsRequestColumnNamesEnum + REPLIES_RECEIVED Dhcpv6ClientMetricsRequestColumnNamesEnum + INFORMATION_REQUESTS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + RENEWS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + REBINDS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + RELEASES_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + RECONFIGURES_RECEIVED Dhcpv6ClientMetricsRequestColumnNamesEnum + RAPID_COMMIT_SOLICITS_SENT Dhcpv6ClientMetricsRequestColumnNamesEnum + RAPID_COMMIT_REPLIES_RECEIVED Dhcpv6ClientMetricsRequestColumnNamesEnum +}{ + SOLICITS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("solicits_sent"), + ADVERTISEMENTS_RECEIVED: Dhcpv6ClientMetricsRequestColumnNamesEnum("advertisements_received"), + ADVERTISEMENTS_IGNORED: Dhcpv6ClientMetricsRequestColumnNamesEnum("advertisements_ignored"), + REQUESTS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("requests_sent"), + NACKS_RECEIVED: Dhcpv6ClientMetricsRequestColumnNamesEnum("nacks_received"), + REPLIES_RECEIVED: Dhcpv6ClientMetricsRequestColumnNamesEnum("replies_received"), + INFORMATION_REQUESTS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("information_requests_sent"), + RENEWS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("renews_sent"), + REBINDS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("rebinds_sent"), + RELEASES_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("releases_sent"), + RECONFIGURES_RECEIVED: Dhcpv6ClientMetricsRequestColumnNamesEnum("reconfigures_received"), + RAPID_COMMIT_SOLICITS_SENT: Dhcpv6ClientMetricsRequestColumnNamesEnum("rapid_commit_solicits_sent"), + RAPID_COMMIT_REPLIES_RECEIVED: Dhcpv6ClientMetricsRequestColumnNamesEnum("rapid_commit_replies_received"), +} + +func (obj *dhcpv6ClientMetricsRequest) ColumnNames() []Dhcpv6ClientMetricsRequestColumnNamesEnum { + items := []Dhcpv6ClientMetricsRequestColumnNamesEnum{} + for _, item := range obj.obj.ColumnNames { + items = append(items, Dhcpv6ClientMetricsRequestColumnNamesEnum(item.String())) + } + return items +} + +// The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 client cannot be excluded. +// SetColumnNames sets the []string value in the Dhcpv6ClientMetricsRequest object +func (obj *dhcpv6ClientMetricsRequest) SetColumnNames(value []Dhcpv6ClientMetricsRequestColumnNamesEnum) Dhcpv6ClientMetricsRequest { + + items := []otg.Dhcpv6ClientMetricsRequest_ColumnNames_Enum{} + for _, item := range value { + intValue := otg.Dhcpv6ClientMetricsRequest_ColumnNames_Enum_value[string(item)] + items = append(items, otg.Dhcpv6ClientMetricsRequest_ColumnNames_Enum(intValue)) + } + obj.obj.ColumnNames = items + return obj +} + +func (obj *dhcpv6ClientMetricsRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ClientMetricsRequest) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_custom.go b/gosnappi/dhcpv6_client_options_custom.go new file mode 100644 index 00000000..f192b008 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_custom.go @@ -0,0 +1,312 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsCustom ***** +type dhcpv6ClientOptionsCustom struct { + validation + obj *otg.Dhcpv6ClientOptionsCustom + marshaller marshalDhcpv6ClientOptionsCustom + unMarshaller unMarshalDhcpv6ClientOptionsCustom +} + +func NewDhcpv6ClientOptionsCustom() Dhcpv6ClientOptionsCustom { + obj := dhcpv6ClientOptionsCustom{obj: &otg.Dhcpv6ClientOptionsCustom{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsCustom) msg() *otg.Dhcpv6ClientOptionsCustom { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsCustom) setMsg(msg *otg.Dhcpv6ClientOptionsCustom) Dhcpv6ClientOptionsCustom { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsCustom struct { + obj *dhcpv6ClientOptionsCustom +} + +type marshalDhcpv6ClientOptionsCustom interface { + // ToProto marshals Dhcpv6ClientOptionsCustom to protobuf object *otg.Dhcpv6ClientOptionsCustom + ToProto() (*otg.Dhcpv6ClientOptionsCustom, error) + // ToPbText marshals Dhcpv6ClientOptionsCustom to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsCustom to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsCustom to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsCustom struct { + obj *dhcpv6ClientOptionsCustom +} + +type unMarshalDhcpv6ClientOptionsCustom interface { + // FromProto unmarshals Dhcpv6ClientOptionsCustom from protobuf object *otg.Dhcpv6ClientOptionsCustom + FromProto(msg *otg.Dhcpv6ClientOptionsCustom) (Dhcpv6ClientOptionsCustom, error) + // FromPbText unmarshals Dhcpv6ClientOptionsCustom from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsCustom from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsCustom from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsCustom) Marshal() marshalDhcpv6ClientOptionsCustom { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsCustom{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsCustom) Unmarshal() unMarshalDhcpv6ClientOptionsCustom { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsCustom{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsCustom) ToProto() (*otg.Dhcpv6ClientOptionsCustom, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsCustom) FromProto(msg *otg.Dhcpv6ClientOptionsCustom) (Dhcpv6ClientOptionsCustom, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsCustom) 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 *unMarshaldhcpv6ClientOptionsCustom) 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 *marshaldhcpv6ClientOptionsCustom) 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 *unMarshaldhcpv6ClientOptionsCustom) 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 *marshaldhcpv6ClientOptionsCustom) 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 *unMarshaldhcpv6ClientOptionsCustom) 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 *dhcpv6ClientOptionsCustom) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsCustom) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsCustom) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsCustom) Clone() (Dhcpv6ClientOptionsCustom, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsCustom() + 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 +} + +// Dhcpv6ClientOptionsCustom is the Custom option is used to provide a not so well known option in the message between a client and a server. +type Dhcpv6ClientOptionsCustom interface { + Validation + // msg marshals Dhcpv6ClientOptionsCustom to protobuf object *otg.Dhcpv6ClientOptionsCustom + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsCustom + // setMsg unmarshals Dhcpv6ClientOptionsCustom from protobuf object *otg.Dhcpv6ClientOptionsCustom + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsCustom) Dhcpv6ClientOptionsCustom + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsCustom + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsCustom + // validate validates Dhcpv6ClientOptionsCustom + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsCustom, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Type returns uint32, set in Dhcpv6ClientOptionsCustom. + Type() uint32 + // SetType assigns uint32 provided by user to Dhcpv6ClientOptionsCustom + SetType(value uint32) Dhcpv6ClientOptionsCustom +} + +// The type of the Custom option TLV. +// Type returns a uint32 +func (obj *dhcpv6ClientOptionsCustom) Type() uint32 { + + return *obj.obj.Type + +} + +// The type of the Custom option TLV. +// SetType sets the uint32 value in the Dhcpv6ClientOptionsCustom object +func (obj *dhcpv6ClientOptionsCustom) SetType(value uint32) Dhcpv6ClientOptionsCustom { + + obj.obj.Type = &value + return obj +} + +func (obj *dhcpv6ClientOptionsCustom) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Type is required + if obj.obj.Type == nil { + vObj.validationErrors = append(vObj.validationErrors, "Type is required field on interface Dhcpv6ClientOptionsCustom") + } + if obj.obj.Type != nil { + + if *obj.obj.Type > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsCustom.Type <= 65535 but Got %d", *obj.obj.Type)) + } + + } + +} + +func (obj *dhcpv6ClientOptionsCustom) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_duid_en.go b/gosnappi/dhcpv6_client_options_duid_en.go new file mode 100644 index 00000000..e5520d1a --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_en.go @@ -0,0 +1,348 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidEn ***** +type dhcpv6ClientOptionsDuidEn struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidEn + marshaller marshalDhcpv6ClientOptionsDuidEn + unMarshaller unMarshalDhcpv6ClientOptionsDuidEn +} + +func NewDhcpv6ClientOptionsDuidEn() Dhcpv6ClientOptionsDuidEn { + obj := dhcpv6ClientOptionsDuidEn{obj: &otg.Dhcpv6ClientOptionsDuidEn{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidEn) msg() *otg.Dhcpv6ClientOptionsDuidEn { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidEn) setMsg(msg *otg.Dhcpv6ClientOptionsDuidEn) Dhcpv6ClientOptionsDuidEn { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidEn struct { + obj *dhcpv6ClientOptionsDuidEn +} + +type marshalDhcpv6ClientOptionsDuidEn interface { + // ToProto marshals Dhcpv6ClientOptionsDuidEn to protobuf object *otg.Dhcpv6ClientOptionsDuidEn + ToProto() (*otg.Dhcpv6ClientOptionsDuidEn, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidEn to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidEn to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidEn to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidEn struct { + obj *dhcpv6ClientOptionsDuidEn +} + +type unMarshalDhcpv6ClientOptionsDuidEn interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidEn from protobuf object *otg.Dhcpv6ClientOptionsDuidEn + FromProto(msg *otg.Dhcpv6ClientOptionsDuidEn) (Dhcpv6ClientOptionsDuidEn, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidEn from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidEn from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidEn from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidEn) Marshal() marshalDhcpv6ClientOptionsDuidEn { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidEn{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidEn) Unmarshal() unMarshalDhcpv6ClientOptionsDuidEn { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidEn{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidEn) ToProto() (*otg.Dhcpv6ClientOptionsDuidEn, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidEn) FromProto(msg *otg.Dhcpv6ClientOptionsDuidEn) (Dhcpv6ClientOptionsDuidEn, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidEn) 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 *unMarshaldhcpv6ClientOptionsDuidEn) 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 *marshaldhcpv6ClientOptionsDuidEn) 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 *unMarshaldhcpv6ClientOptionsDuidEn) 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 *marshaldhcpv6ClientOptionsDuidEn) 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 *unMarshaldhcpv6ClientOptionsDuidEn) 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 *dhcpv6ClientOptionsDuidEn) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidEn) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidEn) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidEn) Clone() (Dhcpv6ClientOptionsDuidEn, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidEn() + 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 +} + +// Dhcpv6ClientOptionsDuidEn is dUID assigned by vendor based on enterprise number. +type Dhcpv6ClientOptionsDuidEn interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidEn to protobuf object *otg.Dhcpv6ClientOptionsDuidEn + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidEn + // setMsg unmarshals Dhcpv6ClientOptionsDuidEn from protobuf object *otg.Dhcpv6ClientOptionsDuidEn + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidEn) Dhcpv6ClientOptionsDuidEn + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidEn + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidEn + // validate validates Dhcpv6ClientOptionsDuidEn + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidEn, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // EnterpriseNumber returns uint32, set in Dhcpv6ClientOptionsDuidEn. + EnterpriseNumber() uint32 + // SetEnterpriseNumber assigns uint32 provided by user to Dhcpv6ClientOptionsDuidEn + SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsDuidEn + // Identifier returns string, set in Dhcpv6ClientOptionsDuidEn. + Identifier() string + // SetIdentifier assigns string provided by user to Dhcpv6ClientOptionsDuidEn + SetIdentifier(value string) Dhcpv6ClientOptionsDuidEn +} + +// Vendor's registered private enterprise number as maintained by IANA. +// EnterpriseNumber returns a uint32 +func (obj *dhcpv6ClientOptionsDuidEn) EnterpriseNumber() uint32 { + + return *obj.obj.EnterpriseNumber + +} + +// Vendor's registered private enterprise number as maintained by IANA. +// SetEnterpriseNumber sets the uint32 value in the Dhcpv6ClientOptionsDuidEn object +func (obj *dhcpv6ClientOptionsDuidEn) SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsDuidEn { + + obj.obj.EnterpriseNumber = &value + return obj +} + +// The unique identifier assigned by the vendor. +// Identifier returns a string +func (obj *dhcpv6ClientOptionsDuidEn) Identifier() string { + + return *obj.obj.Identifier + +} + +// The unique identifier assigned by the vendor. +// SetIdentifier sets the string value in the Dhcpv6ClientOptionsDuidEn object +func (obj *dhcpv6ClientOptionsDuidEn) SetIdentifier(value string) Dhcpv6ClientOptionsDuidEn { + + obj.obj.Identifier = &value + return obj +} + +func (obj *dhcpv6ClientOptionsDuidEn) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // EnterpriseNumber is required + if obj.obj.EnterpriseNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "EnterpriseNumber is required field on interface Dhcpv6ClientOptionsDuidEn") + } + if obj.obj.EnterpriseNumber != nil { + + if *obj.obj.EnterpriseNumber > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsDuidEn.EnterpriseNumber <= 4294967295 but Got %d", *obj.obj.EnterpriseNumber)) + } + + } + + // Identifier is required + if obj.obj.Identifier == nil { + vObj.validationErrors = append(vObj.validationErrors, "Identifier is required field on interface Dhcpv6ClientOptionsDuidEn") + } + if obj.obj.Identifier != nil { + + if len(*obj.obj.Identifier) < 1 || len(*obj.obj.Identifier) > 8 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf( + "1 <= length of Dhcpv6ClientOptionsDuidEn.Identifier <= 8 but Got %d", + len(*obj.obj.Identifier))) + } + + } + +} + +func (obj *dhcpv6ClientOptionsDuidEn) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_duid_ll.go b/gosnappi/dhcpv6_client_options_duid_ll.go new file mode 100644 index 00000000..5c53d817 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_ll.go @@ -0,0 +1,325 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidLl ***** +type dhcpv6ClientOptionsDuidLl struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidLl + marshaller marshalDhcpv6ClientOptionsDuidLl + unMarshaller unMarshalDhcpv6ClientOptionsDuidLl + linkLayerAddressHolder Dhcpv6ClientOptionsLinkLayerAddress +} + +func NewDhcpv6ClientOptionsDuidLl() Dhcpv6ClientOptionsDuidLl { + obj := dhcpv6ClientOptionsDuidLl{obj: &otg.Dhcpv6ClientOptionsDuidLl{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidLl) msg() *otg.Dhcpv6ClientOptionsDuidLl { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidLl) setMsg(msg *otg.Dhcpv6ClientOptionsDuidLl) Dhcpv6ClientOptionsDuidLl { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidLl struct { + obj *dhcpv6ClientOptionsDuidLl +} + +type marshalDhcpv6ClientOptionsDuidLl interface { + // ToProto marshals Dhcpv6ClientOptionsDuidLl to protobuf object *otg.Dhcpv6ClientOptionsDuidLl + ToProto() (*otg.Dhcpv6ClientOptionsDuidLl, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidLl to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidLl to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidLl to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidLl struct { + obj *dhcpv6ClientOptionsDuidLl +} + +type unMarshalDhcpv6ClientOptionsDuidLl interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidLl from protobuf object *otg.Dhcpv6ClientOptionsDuidLl + FromProto(msg *otg.Dhcpv6ClientOptionsDuidLl) (Dhcpv6ClientOptionsDuidLl, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidLl from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidLl from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidLl from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidLl) Marshal() marshalDhcpv6ClientOptionsDuidLl { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidLl{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidLl) Unmarshal() unMarshalDhcpv6ClientOptionsDuidLl { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidLl{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidLl) ToProto() (*otg.Dhcpv6ClientOptionsDuidLl, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidLl) FromProto(msg *otg.Dhcpv6ClientOptionsDuidLl) (Dhcpv6ClientOptionsDuidLl, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidLl) 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 *unMarshaldhcpv6ClientOptionsDuidLl) 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 *marshaldhcpv6ClientOptionsDuidLl) 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 *unMarshaldhcpv6ClientOptionsDuidLl) 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 *marshaldhcpv6ClientOptionsDuidLl) 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 *unMarshaldhcpv6ClientOptionsDuidLl) 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 *dhcpv6ClientOptionsDuidLl) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidLl) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidLl) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidLl) Clone() (Dhcpv6ClientOptionsDuidLl, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidLl() + 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 *dhcpv6ClientOptionsDuidLl) setNil() { + obj.linkLayerAddressHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsDuidLl is dUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type. +type Dhcpv6ClientOptionsDuidLl interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidLl to protobuf object *otg.Dhcpv6ClientOptionsDuidLl + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidLl + // setMsg unmarshals Dhcpv6ClientOptionsDuidLl from protobuf object *otg.Dhcpv6ClientOptionsDuidLl + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidLl) Dhcpv6ClientOptionsDuidLl + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidLl + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidLl + // validate validates Dhcpv6ClientOptionsDuidLl + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidLl, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // LinkLayerAddress returns Dhcpv6ClientOptionsLinkLayerAddress, set in Dhcpv6ClientOptionsDuidLl. + // Dhcpv6ClientOptionsLinkLayerAddress is the link-layer address configured in DUID llt or DUID ll. + LinkLayerAddress() Dhcpv6ClientOptionsLinkLayerAddress + // SetLinkLayerAddress assigns Dhcpv6ClientOptionsLinkLayerAddress provided by user to Dhcpv6ClientOptionsDuidLl. + // Dhcpv6ClientOptionsLinkLayerAddress is the link-layer address configured in DUID llt or DUID ll. + SetLinkLayerAddress(value Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsDuidLl + setNil() +} + +// The link-layer address is stored in canonical form, as described in RFC 2464. +// LinkLayerAddress returns a Dhcpv6ClientOptionsLinkLayerAddress +func (obj *dhcpv6ClientOptionsDuidLl) LinkLayerAddress() Dhcpv6ClientOptionsLinkLayerAddress { + if obj.obj.LinkLayerAddress == nil { + obj.obj.LinkLayerAddress = NewDhcpv6ClientOptionsLinkLayerAddress().msg() + } + if obj.linkLayerAddressHolder == nil { + obj.linkLayerAddressHolder = &dhcpv6ClientOptionsLinkLayerAddress{obj: obj.obj.LinkLayerAddress} + } + return obj.linkLayerAddressHolder +} + +// The link-layer address is stored in canonical form, as described in RFC 2464. +// SetLinkLayerAddress sets the Dhcpv6ClientOptionsLinkLayerAddress value in the Dhcpv6ClientOptionsDuidLl object +func (obj *dhcpv6ClientOptionsDuidLl) SetLinkLayerAddress(value Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsDuidLl { + + obj.linkLayerAddressHolder = nil + obj.obj.LinkLayerAddress = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsDuidLl) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // LinkLayerAddress is required + if obj.obj.LinkLayerAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "LinkLayerAddress is required field on interface Dhcpv6ClientOptionsDuidLl") + } + + if obj.obj.LinkLayerAddress != nil { + + obj.LinkLayerAddress().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsDuidLl) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_duid_llt.go b/gosnappi/dhcpv6_client_options_duid_llt.go new file mode 100644 index 00000000..e6ee536f --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_llt.go @@ -0,0 +1,352 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidLlt ***** +type dhcpv6ClientOptionsDuidLlt struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidLlt + marshaller marshalDhcpv6ClientOptionsDuidLlt + unMarshaller unMarshalDhcpv6ClientOptionsDuidLlt + linkLayerAddressHolder Dhcpv6ClientOptionsLinkLayerAddress +} + +func NewDhcpv6ClientOptionsDuidLlt() Dhcpv6ClientOptionsDuidLlt { + obj := dhcpv6ClientOptionsDuidLlt{obj: &otg.Dhcpv6ClientOptionsDuidLlt{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidLlt) msg() *otg.Dhcpv6ClientOptionsDuidLlt { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidLlt) setMsg(msg *otg.Dhcpv6ClientOptionsDuidLlt) Dhcpv6ClientOptionsDuidLlt { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidLlt struct { + obj *dhcpv6ClientOptionsDuidLlt +} + +type marshalDhcpv6ClientOptionsDuidLlt interface { + // ToProto marshals Dhcpv6ClientOptionsDuidLlt to protobuf object *otg.Dhcpv6ClientOptionsDuidLlt + ToProto() (*otg.Dhcpv6ClientOptionsDuidLlt, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidLlt to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidLlt to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidLlt to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidLlt struct { + obj *dhcpv6ClientOptionsDuidLlt +} + +type unMarshalDhcpv6ClientOptionsDuidLlt interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidLlt from protobuf object *otg.Dhcpv6ClientOptionsDuidLlt + FromProto(msg *otg.Dhcpv6ClientOptionsDuidLlt) (Dhcpv6ClientOptionsDuidLlt, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidLlt from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidLlt from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidLlt from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidLlt) Marshal() marshalDhcpv6ClientOptionsDuidLlt { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidLlt{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidLlt) Unmarshal() unMarshalDhcpv6ClientOptionsDuidLlt { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidLlt{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidLlt) ToProto() (*otg.Dhcpv6ClientOptionsDuidLlt, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidLlt) FromProto(msg *otg.Dhcpv6ClientOptionsDuidLlt) (Dhcpv6ClientOptionsDuidLlt, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidLlt) 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 *unMarshaldhcpv6ClientOptionsDuidLlt) 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 *marshaldhcpv6ClientOptionsDuidLlt) 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 *unMarshaldhcpv6ClientOptionsDuidLlt) 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 *marshaldhcpv6ClientOptionsDuidLlt) 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 *unMarshaldhcpv6ClientOptionsDuidLlt) 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 *dhcpv6ClientOptionsDuidLlt) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidLlt) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidLlt) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidLlt) Clone() (Dhcpv6ClientOptionsDuidLlt, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidLlt() + 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 *dhcpv6ClientOptionsDuidLlt) setNil() { + obj.linkLayerAddressHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsDuidLlt is dUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type. +type Dhcpv6ClientOptionsDuidLlt interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidLlt to protobuf object *otg.Dhcpv6ClientOptionsDuidLlt + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidLlt + // setMsg unmarshals Dhcpv6ClientOptionsDuidLlt from protobuf object *otg.Dhcpv6ClientOptionsDuidLlt + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidLlt) Dhcpv6ClientOptionsDuidLlt + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidLlt + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidLlt + // validate validates Dhcpv6ClientOptionsDuidLlt + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidLlt, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Time returns uint32, set in Dhcpv6ClientOptionsDuidLlt. + Time() uint32 + // SetTime assigns uint32 provided by user to Dhcpv6ClientOptionsDuidLlt + SetTime(value uint32) Dhcpv6ClientOptionsDuidLlt + // LinkLayerAddress returns Dhcpv6ClientOptionsLinkLayerAddress, set in Dhcpv6ClientOptionsDuidLlt. + // Dhcpv6ClientOptionsLinkLayerAddress is the link-layer address configured in DUID llt or DUID ll. + LinkLayerAddress() Dhcpv6ClientOptionsLinkLayerAddress + // SetLinkLayerAddress assigns Dhcpv6ClientOptionsLinkLayerAddress provided by user to Dhcpv6ClientOptionsDuidLlt. + // Dhcpv6ClientOptionsLinkLayerAddress is the link-layer address configured in DUID llt or DUID ll. + SetLinkLayerAddress(value Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsDuidLlt + setNil() +} + +// The time value is the time that the DUID is generated represented in seconds since midnight (UTC), January 1, +// 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client contacts the server. +// Time returns a uint32 +func (obj *dhcpv6ClientOptionsDuidLlt) Time() uint32 { + + return *obj.obj.Time + +} + +// The time value is the time that the DUID is generated represented in seconds since midnight (UTC), January 1, +// 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client contacts the server. +// SetTime sets the uint32 value in the Dhcpv6ClientOptionsDuidLlt object +func (obj *dhcpv6ClientOptionsDuidLlt) SetTime(value uint32) Dhcpv6ClientOptionsDuidLlt { + + obj.obj.Time = &value + return obj +} + +// The link-layer address is stored in canonical form, as described in RFC 2464. +// LinkLayerAddress returns a Dhcpv6ClientOptionsLinkLayerAddress +func (obj *dhcpv6ClientOptionsDuidLlt) LinkLayerAddress() Dhcpv6ClientOptionsLinkLayerAddress { + if obj.obj.LinkLayerAddress == nil { + obj.obj.LinkLayerAddress = NewDhcpv6ClientOptionsLinkLayerAddress().msg() + } + if obj.linkLayerAddressHolder == nil { + obj.linkLayerAddressHolder = &dhcpv6ClientOptionsLinkLayerAddress{obj: obj.obj.LinkLayerAddress} + } + return obj.linkLayerAddressHolder +} + +// The link-layer address is stored in canonical form, as described in RFC 2464. +// SetLinkLayerAddress sets the Dhcpv6ClientOptionsLinkLayerAddress value in the Dhcpv6ClientOptionsDuidLlt object +func (obj *dhcpv6ClientOptionsDuidLlt) SetLinkLayerAddress(value Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsDuidLlt { + + obj.linkLayerAddressHolder = nil + obj.obj.LinkLayerAddress = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsDuidLlt) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Time is required + if obj.obj.Time == nil { + vObj.validationErrors = append(vObj.validationErrors, "Time is required field on interface Dhcpv6ClientOptionsDuidLlt") + } + + // LinkLayerAddress is required + if obj.obj.LinkLayerAddress == nil { + vObj.validationErrors = append(vObj.validationErrors, "LinkLayerAddress is required field on interface Dhcpv6ClientOptionsDuidLlt") + } + + if obj.obj.LinkLayerAddress != nil { + + obj.LinkLayerAddress().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsDuidLlt) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_duid_uuid.go b/gosnappi/dhcpv6_client_options_duid_uuid.go new file mode 100644 index 00000000..581f6b38 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_uuid.go @@ -0,0 +1,606 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidUuid ***** +type dhcpv6ClientOptionsDuidUuid struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidUuid + marshaller marshalDhcpv6ClientOptionsDuidUuid + unMarshaller unMarshalDhcpv6ClientOptionsDuidUuid + versionHolder Dhcpv6ClientOptionsDuidUuidVersion + variantHolder Dhcpv6ClientOptionsDuidUuidVariant +} + +func NewDhcpv6ClientOptionsDuidUuid() Dhcpv6ClientOptionsDuidUuid { + obj := dhcpv6ClientOptionsDuidUuid{obj: &otg.Dhcpv6ClientOptionsDuidUuid{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidUuid) msg() *otg.Dhcpv6ClientOptionsDuidUuid { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidUuid) setMsg(msg *otg.Dhcpv6ClientOptionsDuidUuid) Dhcpv6ClientOptionsDuidUuid { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidUuid struct { + obj *dhcpv6ClientOptionsDuidUuid +} + +type marshalDhcpv6ClientOptionsDuidUuid interface { + // ToProto marshals Dhcpv6ClientOptionsDuidUuid to protobuf object *otg.Dhcpv6ClientOptionsDuidUuid + ToProto() (*otg.Dhcpv6ClientOptionsDuidUuid, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidUuid to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidUuid to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidUuid to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidUuid struct { + obj *dhcpv6ClientOptionsDuidUuid +} + +type unMarshalDhcpv6ClientOptionsDuidUuid interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidUuid from protobuf object *otg.Dhcpv6ClientOptionsDuidUuid + FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuid) (Dhcpv6ClientOptionsDuidUuid, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidUuid from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidUuid from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidUuid from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidUuid) Marshal() marshalDhcpv6ClientOptionsDuidUuid { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidUuid{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidUuid) Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuid { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidUuid{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidUuid) ToProto() (*otg.Dhcpv6ClientOptionsDuidUuid, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidUuid) FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuid) (Dhcpv6ClientOptionsDuidUuid, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidUuid) 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 *unMarshaldhcpv6ClientOptionsDuidUuid) 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 *marshaldhcpv6ClientOptionsDuidUuid) 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 *unMarshaldhcpv6ClientOptionsDuidUuid) 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 *marshaldhcpv6ClientOptionsDuidUuid) 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 *unMarshaldhcpv6ClientOptionsDuidUuid) 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 *dhcpv6ClientOptionsDuidUuid) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuid) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuid) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidUuid) Clone() (Dhcpv6ClientOptionsDuidUuid, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidUuid() + 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 *dhcpv6ClientOptionsDuidUuid) setNil() { + obj.versionHolder = nil + obj.variantHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsDuidUuid is dUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. +type Dhcpv6ClientOptionsDuidUuid interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidUuid to protobuf object *otg.Dhcpv6ClientOptionsDuidUuid + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidUuid + // setMsg unmarshals Dhcpv6ClientOptionsDuidUuid from protobuf object *otg.Dhcpv6ClientOptionsDuidUuid + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidUuid) Dhcpv6ClientOptionsDuidUuid + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidUuid + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuid + // validate validates Dhcpv6ClientOptionsDuidUuid + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidUuid, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Version returns Dhcpv6ClientOptionsDuidUuidVersion, set in Dhcpv6ClientOptionsDuidUuid. + // Dhcpv6ClientOptionsDuidUuidVersion is the version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). + Version() Dhcpv6ClientOptionsDuidUuidVersion + // SetVersion assigns Dhcpv6ClientOptionsDuidUuidVersion provided by user to Dhcpv6ClientOptionsDuidUuid. + // Dhcpv6ClientOptionsDuidUuidVersion is the version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). + SetVersion(value Dhcpv6ClientOptionsDuidUuidVersion) Dhcpv6ClientOptionsDuidUuid + // HasVersion checks if Version has been set in Dhcpv6ClientOptionsDuidUuid + HasVersion() bool + // Variant returns Dhcpv6ClientOptionsDuidUuidVariant, set in Dhcpv6ClientOptionsDuidUuid. + // Dhcpv6ClientOptionsDuidUuidVariant is the variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field). + Variant() Dhcpv6ClientOptionsDuidUuidVariant + // SetVariant assigns Dhcpv6ClientOptionsDuidUuidVariant provided by user to Dhcpv6ClientOptionsDuidUuid. + // Dhcpv6ClientOptionsDuidUuidVariant is the variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field). + SetVariant(value Dhcpv6ClientOptionsDuidUuidVariant) Dhcpv6ClientOptionsDuidUuid + // HasVariant checks if Variant has been set in Dhcpv6ClientOptionsDuidUuid + HasVariant() bool + // TimeLow returns uint32, set in Dhcpv6ClientOptionsDuidUuid. + TimeLow() uint32 + // SetTimeLow assigns uint32 provided by user to Dhcpv6ClientOptionsDuidUuid + SetTimeLow(value uint32) Dhcpv6ClientOptionsDuidUuid + // HasTimeLow checks if TimeLow has been set in Dhcpv6ClientOptionsDuidUuid + HasTimeLow() bool + // TimeMid returns uint32, set in Dhcpv6ClientOptionsDuidUuid. + TimeMid() uint32 + // SetTimeMid assigns uint32 provided by user to Dhcpv6ClientOptionsDuidUuid + SetTimeMid(value uint32) Dhcpv6ClientOptionsDuidUuid + // HasTimeMid checks if TimeMid has been set in Dhcpv6ClientOptionsDuidUuid + HasTimeMid() bool + // TimeHiAndVersion returns uint32, set in Dhcpv6ClientOptionsDuidUuid. + TimeHiAndVersion() uint32 + // SetTimeHiAndVersion assigns uint32 provided by user to Dhcpv6ClientOptionsDuidUuid + SetTimeHiAndVersion(value uint32) Dhcpv6ClientOptionsDuidUuid + // HasTimeHiAndVersion checks if TimeHiAndVersion has been set in Dhcpv6ClientOptionsDuidUuid + HasTimeHiAndVersion() bool + // ClockSeqHiAndReserved returns uint32, set in Dhcpv6ClientOptionsDuidUuid. + ClockSeqHiAndReserved() uint32 + // SetClockSeqHiAndReserved assigns uint32 provided by user to Dhcpv6ClientOptionsDuidUuid + SetClockSeqHiAndReserved(value uint32) Dhcpv6ClientOptionsDuidUuid + // HasClockSeqHiAndReserved checks if ClockSeqHiAndReserved has been set in Dhcpv6ClientOptionsDuidUuid + HasClockSeqHiAndReserved() bool + // ClockSeqLow returns uint32, set in Dhcpv6ClientOptionsDuidUuid. + ClockSeqLow() uint32 + // SetClockSeqLow assigns uint32 provided by user to Dhcpv6ClientOptionsDuidUuid + SetClockSeqLow(value uint32) Dhcpv6ClientOptionsDuidUuid + // HasClockSeqLow checks if ClockSeqLow has been set in Dhcpv6ClientOptionsDuidUuid + HasClockSeqLow() bool + // Node returns string, set in Dhcpv6ClientOptionsDuidUuid. + Node() string + // SetNode assigns string provided by user to Dhcpv6ClientOptionsDuidUuid + SetNode(value string) Dhcpv6ClientOptionsDuidUuid + // HasNode checks if Node has been set in Dhcpv6ClientOptionsDuidUuid + HasNode() bool + setNil() +} + +// The version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). +// Version returns a Dhcpv6ClientOptionsDuidUuidVersion +func (obj *dhcpv6ClientOptionsDuidUuid) Version() Dhcpv6ClientOptionsDuidUuidVersion { + if obj.obj.Version == nil { + obj.obj.Version = NewDhcpv6ClientOptionsDuidUuidVersion().msg() + } + if obj.versionHolder == nil { + obj.versionHolder = &dhcpv6ClientOptionsDuidUuidVersion{obj: obj.obj.Version} + } + return obj.versionHolder +} + +// The version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). +// Version returns a Dhcpv6ClientOptionsDuidUuidVersion +func (obj *dhcpv6ClientOptionsDuidUuid) HasVersion() bool { + return obj.obj.Version != nil +} + +// The version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). +// SetVersion sets the Dhcpv6ClientOptionsDuidUuidVersion value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetVersion(value Dhcpv6ClientOptionsDuidUuidVersion) Dhcpv6ClientOptionsDuidUuid { + + obj.versionHolder = nil + obj.obj.Version = value.msg() + + return obj +} + +// The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. +// Variant returns a Dhcpv6ClientOptionsDuidUuidVariant +func (obj *dhcpv6ClientOptionsDuidUuid) Variant() Dhcpv6ClientOptionsDuidUuidVariant { + if obj.obj.Variant == nil { + obj.obj.Variant = NewDhcpv6ClientOptionsDuidUuidVariant().msg() + } + if obj.variantHolder == nil { + obj.variantHolder = &dhcpv6ClientOptionsDuidUuidVariant{obj: obj.obj.Variant} + } + return obj.variantHolder +} + +// The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. +// Variant returns a Dhcpv6ClientOptionsDuidUuidVariant +func (obj *dhcpv6ClientOptionsDuidUuid) HasVariant() bool { + return obj.obj.Variant != nil +} + +// The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. +// SetVariant sets the Dhcpv6ClientOptionsDuidUuidVariant value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetVariant(value Dhcpv6ClientOptionsDuidUuidVariant) Dhcpv6ClientOptionsDuidUuid { + + obj.variantHolder = nil + obj.obj.Variant = value.msg() + + return obj +} + +// The low field of the timestamp. +// TimeLow returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) TimeLow() uint32 { + + return *obj.obj.TimeLow + +} + +// The low field of the timestamp. +// TimeLow returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) HasTimeLow() bool { + return obj.obj.TimeLow != nil +} + +// The low field of the timestamp. +// SetTimeLow sets the uint32 value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetTimeLow(value uint32) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.TimeLow = &value + return obj +} + +// The middle field of the timestamp. +// TimeMid returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) TimeMid() uint32 { + + return *obj.obj.TimeMid + +} + +// The middle field of the timestamp. +// TimeMid returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) HasTimeMid() bool { + return obj.obj.TimeMid != nil +} + +// The middle field of the timestamp. +// SetTimeMid sets the uint32 value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetTimeMid(value uint32) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.TimeMid = &value + return obj +} + +// The high field of the timestamp multiplexed with the version number. +// TimeHiAndVersion returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) TimeHiAndVersion() uint32 { + + return *obj.obj.TimeHiAndVersion + +} + +// The high field of the timestamp multiplexed with the version number. +// TimeHiAndVersion returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) HasTimeHiAndVersion() bool { + return obj.obj.TimeHiAndVersion != nil +} + +// The high field of the timestamp multiplexed with the version number. +// SetTimeHiAndVersion sets the uint32 value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetTimeHiAndVersion(value uint32) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.TimeHiAndVersion = &value + return obj +} + +// The high field of the clock sequence multiplexed with the variant. +// ClockSeqHiAndReserved returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) ClockSeqHiAndReserved() uint32 { + + return *obj.obj.ClockSeqHiAndReserved + +} + +// The high field of the clock sequence multiplexed with the variant. +// ClockSeqHiAndReserved returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) HasClockSeqHiAndReserved() bool { + return obj.obj.ClockSeqHiAndReserved != nil +} + +// The high field of the clock sequence multiplexed with the variant. +// SetClockSeqHiAndReserved sets the uint32 value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetClockSeqHiAndReserved(value uint32) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.ClockSeqHiAndReserved = &value + return obj +} + +// The low field of the clock sequence. +// ClockSeqLow returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) ClockSeqLow() uint32 { + + return *obj.obj.ClockSeqLow + +} + +// The low field of the clock sequence. +// ClockSeqLow returns a uint32 +func (obj *dhcpv6ClientOptionsDuidUuid) HasClockSeqLow() bool { + return obj.obj.ClockSeqLow != nil +} + +// The low field of the clock sequence. +// SetClockSeqLow sets the uint32 value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetClockSeqLow(value uint32) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.ClockSeqLow = &value + return obj +} + +// The spatially unique node identifier. +// Node returns a string +func (obj *dhcpv6ClientOptionsDuidUuid) Node() string { + + return *obj.obj.Node + +} + +// The spatially unique node identifier. +// Node returns a string +func (obj *dhcpv6ClientOptionsDuidUuid) HasNode() bool { + return obj.obj.Node != nil +} + +// The spatially unique node identifier. +// SetNode sets the string value in the Dhcpv6ClientOptionsDuidUuid object +func (obj *dhcpv6ClientOptionsDuidUuid) SetNode(value string) Dhcpv6ClientOptionsDuidUuid { + + obj.obj.Node = &value + return obj +} + +func (obj *dhcpv6ClientOptionsDuidUuid) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Version != nil { + + obj.Version().validateObj(vObj, set_default) + } + + if obj.obj.Variant != nil { + + obj.Variant().validateObj(vObj, set_default) + } + + if obj.obj.TimeMid != nil { + + if *obj.obj.TimeMid > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsDuidUuid.TimeMid <= 65535 but Got %d", *obj.obj.TimeMid)) + } + + } + + if obj.obj.TimeHiAndVersion != nil { + + if *obj.obj.TimeHiAndVersion > 4095 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsDuidUuid.TimeHiAndVersion <= 4095 but Got %d", *obj.obj.TimeHiAndVersion)) + } + + } + + if obj.obj.ClockSeqHiAndReserved != nil { + + if *obj.obj.ClockSeqHiAndReserved > 31 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsDuidUuid.ClockSeqHiAndReserved <= 31 but Got %d", *obj.obj.ClockSeqHiAndReserved)) + } + + } + + if obj.obj.ClockSeqLow != nil { + + if *obj.obj.ClockSeqLow > 127 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsDuidUuid.ClockSeqLow <= 127 but Got %d", *obj.obj.ClockSeqLow)) + } + + } + + if obj.obj.Node != nil { + + err := obj.validateMac(obj.Node()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on Dhcpv6ClientOptionsDuidUuid.Node")) + } + + } + +} + +func (obj *dhcpv6ClientOptionsDuidUuid) setDefault() { + if obj.obj.TimeLow == nil { + obj.SetTimeLow(0) + } + if obj.obj.TimeMid == nil { + obj.SetTimeMid(0) + } + if obj.obj.TimeHiAndVersion == nil { + obj.SetTimeHiAndVersion(0) + } + if obj.obj.ClockSeqHiAndReserved == nil { + obj.SetClockSeqHiAndReserved(0) + } + if obj.obj.ClockSeqLow == nil { + obj.SetClockSeqLow(0) + } + if obj.obj.Node == nil { + obj.SetNode("00:00:00:00:00:00") + } + +} diff --git a/gosnappi/dhcpv6_client_options_duid_uuid_variant.go b/gosnappi/dhcpv6_client_options_duid_uuid_variant.go new file mode 100644 index 00000000..fe2057b1 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_uuid_variant.go @@ -0,0 +1,369 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidUuidVariant ***** +type dhcpv6ClientOptionsDuidUuidVariant struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidUuidVariant + marshaller marshalDhcpv6ClientOptionsDuidUuidVariant + unMarshaller unMarshalDhcpv6ClientOptionsDuidUuidVariant +} + +func NewDhcpv6ClientOptionsDuidUuidVariant() Dhcpv6ClientOptionsDuidUuidVariant { + obj := dhcpv6ClientOptionsDuidUuidVariant{obj: &otg.Dhcpv6ClientOptionsDuidUuidVariant{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) msg() *otg.Dhcpv6ClientOptionsDuidUuidVariant { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) setMsg(msg *otg.Dhcpv6ClientOptionsDuidUuidVariant) Dhcpv6ClientOptionsDuidUuidVariant { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidUuidVariant struct { + obj *dhcpv6ClientOptionsDuidUuidVariant +} + +type marshalDhcpv6ClientOptionsDuidUuidVariant interface { + // ToProto marshals Dhcpv6ClientOptionsDuidUuidVariant to protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVariant + ToProto() (*otg.Dhcpv6ClientOptionsDuidUuidVariant, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidUuidVariant to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidUuidVariant to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidUuidVariant to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidUuidVariant struct { + obj *dhcpv6ClientOptionsDuidUuidVariant +} + +type unMarshalDhcpv6ClientOptionsDuidUuidVariant interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidUuidVariant from protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVariant + FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuidVariant) (Dhcpv6ClientOptionsDuidUuidVariant, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidUuidVariant from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidUuidVariant from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidUuidVariant from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Marshal() marshalDhcpv6ClientOptionsDuidUuidVariant { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidUuidVariant{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuidVariant { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidUuidVariant{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidUuidVariant) ToProto() (*otg.Dhcpv6ClientOptionsDuidUuidVariant, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidUuidVariant) FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuidVariant) (Dhcpv6ClientOptionsDuidUuidVariant, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidUuidVariant) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVariant) 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 *marshaldhcpv6ClientOptionsDuidUuidVariant) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVariant) 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 *marshaldhcpv6ClientOptionsDuidUuidVariant) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVariant) 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 *dhcpv6ClientOptionsDuidUuidVariant) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Clone() (Dhcpv6ClientOptionsDuidUuidVariant, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidUuidVariant() + 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 +} + +// Dhcpv6ClientOptionsDuidUuidVariant is the variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field). +type Dhcpv6ClientOptionsDuidUuidVariant interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidUuidVariant to protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVariant + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidUuidVariant + // setMsg unmarshals Dhcpv6ClientOptionsDuidUuidVariant from protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVariant + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidUuidVariant) Dhcpv6ClientOptionsDuidUuidVariant + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidUuidVariant + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuidVariant + // validate validates Dhcpv6ClientOptionsDuidUuidVariant + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidUuidVariant, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum, set in Dhcpv6ClientOptionsDuidUuidVariant + Choice() Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum provided by user to Dhcpv6ClientOptionsDuidUuidVariant + setChoice(value Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum) Dhcpv6ClientOptionsDuidUuidVariant + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsDuidUuidVariant + HasChoice() bool + // getter for Ncs to set choice. + Ncs() + // getter for VarReserved to set choice. + VarReserved() + // getter for Dce to set choice. + Dce() + // getter for Guid to set choice. + Guid() +} + +type Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsDuidUuidVariant +var Dhcpv6ClientOptionsDuidUuidVariantChoice = struct { + NCS Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum + DCE Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum + GUID Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum + VAR_RESERVED Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum +}{ + NCS: Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum("ncs"), + DCE: Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum("dce"), + GUID: Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum("guid"), + VAR_RESERVED: Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum("var_reserved"), +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Choice() Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum { + return Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Ncs to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Ncs() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVariantChoice.NCS) +} + +// getter for VarReserved to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVariant) VarReserved() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVariantChoice.VAR_RESERVED) +} + +// getter for Dce to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Dce() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVariantChoice.DCE) +} + +// getter for Guid to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVariant) Guid() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVariantChoice.GUID) +} + +// The current variants are ncs, dce,microsoft guid and reserved. +// Choice returns a string +func (obj *dhcpv6ClientOptionsDuidUuidVariant) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) setChoice(value Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum) Dhcpv6ClientOptionsDuidUuidVariant { + intValue, ok := otg.Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + + return obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ClientOptionsDuidUuidVariant) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsDuidUuidVariantChoiceEnum + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVariantChoice.NCS) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsDuidUuidVariant") + } + } else { + intVal := otg.Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_duid_uuid_version.go b/gosnappi/dhcpv6_client_options_duid_uuid_version.go new file mode 100644 index 00000000..1b1868c1 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_duid_uuid_version.go @@ -0,0 +1,378 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsDuidUuidVersion ***** +type dhcpv6ClientOptionsDuidUuidVersion struct { + validation + obj *otg.Dhcpv6ClientOptionsDuidUuidVersion + marshaller marshalDhcpv6ClientOptionsDuidUuidVersion + unMarshaller unMarshalDhcpv6ClientOptionsDuidUuidVersion +} + +func NewDhcpv6ClientOptionsDuidUuidVersion() Dhcpv6ClientOptionsDuidUuidVersion { + obj := dhcpv6ClientOptionsDuidUuidVersion{obj: &otg.Dhcpv6ClientOptionsDuidUuidVersion{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) msg() *otg.Dhcpv6ClientOptionsDuidUuidVersion { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) setMsg(msg *otg.Dhcpv6ClientOptionsDuidUuidVersion) Dhcpv6ClientOptionsDuidUuidVersion { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsDuidUuidVersion struct { + obj *dhcpv6ClientOptionsDuidUuidVersion +} + +type marshalDhcpv6ClientOptionsDuidUuidVersion interface { + // ToProto marshals Dhcpv6ClientOptionsDuidUuidVersion to protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVersion + ToProto() (*otg.Dhcpv6ClientOptionsDuidUuidVersion, error) + // ToPbText marshals Dhcpv6ClientOptionsDuidUuidVersion to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsDuidUuidVersion to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsDuidUuidVersion to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsDuidUuidVersion struct { + obj *dhcpv6ClientOptionsDuidUuidVersion +} + +type unMarshalDhcpv6ClientOptionsDuidUuidVersion interface { + // FromProto unmarshals Dhcpv6ClientOptionsDuidUuidVersion from protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVersion + FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuidVersion) (Dhcpv6ClientOptionsDuidUuidVersion, error) + // FromPbText unmarshals Dhcpv6ClientOptionsDuidUuidVersion from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsDuidUuidVersion from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsDuidUuidVersion from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) Marshal() marshalDhcpv6ClientOptionsDuidUuidVersion { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsDuidUuidVersion{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuidVersion { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsDuidUuidVersion{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsDuidUuidVersion) ToProto() (*otg.Dhcpv6ClientOptionsDuidUuidVersion, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsDuidUuidVersion) FromProto(msg *otg.Dhcpv6ClientOptionsDuidUuidVersion) (Dhcpv6ClientOptionsDuidUuidVersion, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsDuidUuidVersion) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVersion) 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 *marshaldhcpv6ClientOptionsDuidUuidVersion) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVersion) 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 *marshaldhcpv6ClientOptionsDuidUuidVersion) 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 *unMarshaldhcpv6ClientOptionsDuidUuidVersion) 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 *dhcpv6ClientOptionsDuidUuidVersion) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) Clone() (Dhcpv6ClientOptionsDuidUuidVersion, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsDuidUuidVersion() + 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 +} + +// Dhcpv6ClientOptionsDuidUuidVersion is the version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). +type Dhcpv6ClientOptionsDuidUuidVersion interface { + Validation + // msg marshals Dhcpv6ClientOptionsDuidUuidVersion to protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVersion + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsDuidUuidVersion + // setMsg unmarshals Dhcpv6ClientOptionsDuidUuidVersion from protobuf object *otg.Dhcpv6ClientOptionsDuidUuidVersion + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsDuidUuidVersion) Dhcpv6ClientOptionsDuidUuidVersion + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsDuidUuidVersion + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsDuidUuidVersion + // validate validates Dhcpv6ClientOptionsDuidUuidVersion + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsDuidUuidVersion, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum, set in Dhcpv6ClientOptionsDuidUuidVersion + Choice() Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum provided by user to Dhcpv6ClientOptionsDuidUuidVersion + setChoice(value Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum) Dhcpv6ClientOptionsDuidUuidVersion + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsDuidUuidVersion + HasChoice() bool + // getter for V_2 to set choice. + V_2() + // getter for V_3 to set choice. + V_3() + // getter for V_1 to set choice. + V_1() + // getter for V_4 to set choice. + V_4() + // getter for V_5 to set choice. + V_5() +} + +type Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsDuidUuidVersion +var Dhcpv6ClientOptionsDuidUuidVersionChoice = struct { + V_1 Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + V_2 Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + V_3 Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + V_4 Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + V_5 Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum +}{ + V_1: Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum("v_1"), + V_2: Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum("v_2"), + V_3: Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum("v_3"), + V_4: Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum("v_4"), + V_5: Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum("v_5"), +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) Choice() Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum { + return Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for V_2 to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVersion) V_2() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_2) +} + +// getter for V_3 to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVersion) V_3() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_3) +} + +// getter for V_1 to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVersion) V_1() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_1) +} + +// getter for V_4 to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVersion) V_4() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_4) +} + +// getter for V_5 to set choice +func (obj *dhcpv6ClientOptionsDuidUuidVersion) V_5() { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_5) +} + +// The version values are from 1 to 5 in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). +// Choice returns a string +func (obj *dhcpv6ClientOptionsDuidUuidVersion) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) setChoice(value Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum) Dhcpv6ClientOptionsDuidUuidVersion { + intValue, ok := otg.Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + + return obj +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ClientOptionsDuidUuidVersion) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsDuidUuidVersionChoiceEnum + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsDuidUuidVersionChoice.V_1) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsDuidUuidVersion") + } + } else { + intVal := otg.Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_fqdn.go b/gosnappi/dhcpv6_client_options_fqdn.go new file mode 100644 index 00000000..c0e67396 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_fqdn.go @@ -0,0 +1,446 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsFqdn ***** +type dhcpv6ClientOptionsFqdn struct { + validation + obj *otg.Dhcpv6ClientOptionsFqdn + marshaller marshalDhcpv6ClientOptionsFqdn + unMarshaller unMarshalDhcpv6ClientOptionsFqdn + associatedDhcpMessagesHolder Dhcpv6ClientOptionsIncludedMessages +} + +func NewDhcpv6ClientOptionsFqdn() Dhcpv6ClientOptionsFqdn { + obj := dhcpv6ClientOptionsFqdn{obj: &otg.Dhcpv6ClientOptionsFqdn{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsFqdn) msg() *otg.Dhcpv6ClientOptionsFqdn { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsFqdn) setMsg(msg *otg.Dhcpv6ClientOptionsFqdn) Dhcpv6ClientOptionsFqdn { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsFqdn struct { + obj *dhcpv6ClientOptionsFqdn +} + +type marshalDhcpv6ClientOptionsFqdn interface { + // ToProto marshals Dhcpv6ClientOptionsFqdn to protobuf object *otg.Dhcpv6ClientOptionsFqdn + ToProto() (*otg.Dhcpv6ClientOptionsFqdn, error) + // ToPbText marshals Dhcpv6ClientOptionsFqdn to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsFqdn to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsFqdn to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsFqdn struct { + obj *dhcpv6ClientOptionsFqdn +} + +type unMarshalDhcpv6ClientOptionsFqdn interface { + // FromProto unmarshals Dhcpv6ClientOptionsFqdn from protobuf object *otg.Dhcpv6ClientOptionsFqdn + FromProto(msg *otg.Dhcpv6ClientOptionsFqdn) (Dhcpv6ClientOptionsFqdn, error) + // FromPbText unmarshals Dhcpv6ClientOptionsFqdn from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsFqdn from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsFqdn from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsFqdn) Marshal() marshalDhcpv6ClientOptionsFqdn { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsFqdn{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsFqdn) Unmarshal() unMarshalDhcpv6ClientOptionsFqdn { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsFqdn{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsFqdn) ToProto() (*otg.Dhcpv6ClientOptionsFqdn, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsFqdn) FromProto(msg *otg.Dhcpv6ClientOptionsFqdn) (Dhcpv6ClientOptionsFqdn, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsFqdn) 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 *unMarshaldhcpv6ClientOptionsFqdn) 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 *marshaldhcpv6ClientOptionsFqdn) 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 *unMarshaldhcpv6ClientOptionsFqdn) 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 *marshaldhcpv6ClientOptionsFqdn) 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 *unMarshaldhcpv6ClientOptionsFqdn) 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 *dhcpv6ClientOptionsFqdn) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsFqdn) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsFqdn) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsFqdn) Clone() (Dhcpv6ClientOptionsFqdn, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsFqdn() + 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 *dhcpv6ClientOptionsFqdn) setNil() { + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsFqdn is dHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39. +type Dhcpv6ClientOptionsFqdn interface { + Validation + // msg marshals Dhcpv6ClientOptionsFqdn to protobuf object *otg.Dhcpv6ClientOptionsFqdn + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsFqdn + // setMsg unmarshals Dhcpv6ClientOptionsFqdn from protobuf object *otg.Dhcpv6ClientOptionsFqdn + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsFqdn) Dhcpv6ClientOptionsFqdn + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsFqdn + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsFqdn + // validate validates Dhcpv6ClientOptionsFqdn + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsFqdn, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // FlagS returns bool, set in Dhcpv6ClientOptionsFqdn. + FlagS() bool + // SetFlagS assigns bool provided by user to Dhcpv6ClientOptionsFqdn + SetFlagS(value bool) Dhcpv6ClientOptionsFqdn + // HasFlagS checks if FlagS has been set in Dhcpv6ClientOptionsFqdn + HasFlagS() bool + // FlagO returns bool, set in Dhcpv6ClientOptionsFqdn. + FlagO() bool + // SetFlagO assigns bool provided by user to Dhcpv6ClientOptionsFqdn + SetFlagO(value bool) Dhcpv6ClientOptionsFqdn + // HasFlagO checks if FlagO has been set in Dhcpv6ClientOptionsFqdn + HasFlagO() bool + // FlagN returns bool, set in Dhcpv6ClientOptionsFqdn. + FlagN() bool + // SetFlagN assigns bool provided by user to Dhcpv6ClientOptionsFqdn + SetFlagN(value bool) Dhcpv6ClientOptionsFqdn + // HasFlagN checks if FlagN has been set in Dhcpv6ClientOptionsFqdn + HasFlagN() bool + // DomainName returns string, set in Dhcpv6ClientOptionsFqdn. + DomainName() string + // SetDomainName assigns string provided by user to Dhcpv6ClientOptionsFqdn + SetDomainName(value string) Dhcpv6ClientOptionsFqdn + // AssociatedDhcpMessages returns Dhcpv6ClientOptionsIncludedMessages, set in Dhcpv6ClientOptionsFqdn. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ClientOptionsIncludedMessages provided by user to Dhcpv6ClientOptionsFqdn. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsFqdn + // HasAssociatedDhcpMessages checks if AssociatedDhcpMessages has been set in Dhcpv6ClientOptionsFqdn + HasAssociatedDhcpMessages() bool + setNil() +} + +// The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. A client sets the bit to 0 to indicate that the server should not perform the updates and 1 to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. +// FlagS returns a bool +func (obj *dhcpv6ClientOptionsFqdn) FlagS() bool { + + return *obj.obj.FlagS + +} + +// The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. A client sets the bit to 0 to indicate that the server should not perform the updates and 1 to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. +// FlagS returns a bool +func (obj *dhcpv6ClientOptionsFqdn) HasFlagS() bool { + return obj.obj.FlagS != nil +} + +// The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. A client sets the bit to 0 to indicate that the server should not perform the updates and 1 to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. +// SetFlagS sets the bool value in the Dhcpv6ClientOptionsFqdn object +func (obj *dhcpv6ClientOptionsFqdn) SetFlagS(value bool) Dhcpv6ClientOptionsFqdn { + + obj.obj.FlagS = &value + return obj +} + +// The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. A client must set this bit to 0. A server must set this bit to 1 if the "S" bit in its reply to the client does not match the "S" bit received from the client. +// FlagO returns a bool +func (obj *dhcpv6ClientOptionsFqdn) FlagO() bool { + + return *obj.obj.FlagO + +} + +// The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. A client must set this bit to 0. A server must set this bit to 1 if the "S" bit in its reply to the client does not match the "S" bit received from the client. +// FlagO returns a bool +func (obj *dhcpv6ClientOptionsFqdn) HasFlagO() bool { + return obj.obj.FlagO != nil +} + +// The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. A client must set this bit to 0. A server must set this bit to 1 if the "S" bit in its reply to the client does not match the "S" bit received from the client. +// SetFlagO sets the bool value in the Dhcpv6ClientOptionsFqdn object +func (obj *dhcpv6ClientOptionsFqdn) SetFlagO(value bool) Dhcpv6ClientOptionsFqdn { + + obj.obj.FlagO = &value + return obj +} + +// The "N" bit indicates whether the server should not perform any DNS updates. A client sets this bit to 0 to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to 1 to request that the server should not perform any DNS updates. A server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. +// FlagN returns a bool +func (obj *dhcpv6ClientOptionsFqdn) FlagN() bool { + + return *obj.obj.FlagN + +} + +// The "N" bit indicates whether the server should not perform any DNS updates. A client sets this bit to 0 to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to 1 to request that the server should not perform any DNS updates. A server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. +// FlagN returns a bool +func (obj *dhcpv6ClientOptionsFqdn) HasFlagN() bool { + return obj.obj.FlagN != nil +} + +// The "N" bit indicates whether the server should not perform any DNS updates. A client sets this bit to 0 to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to 1 to request that the server should not perform any DNS updates. A server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. +// SetFlagN sets the bool value in the Dhcpv6ClientOptionsFqdn object +func (obj *dhcpv6ClientOptionsFqdn) SetFlagN(value bool) Dhcpv6ClientOptionsFqdn { + + obj.obj.FlagN = &value + return obj +} + +// The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. A client MAY also leave the Domain Name field empty if it desires the server to provide a name. A fully qualified domain name (FQDN) is the complete address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as a URL but rather is a part of it that fully identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of a URL. Therefore, adding the prefix http:// or https:// to the FQDN turns it into a full URL. One example can be microsoft.com. +// DomainName returns a string +func (obj *dhcpv6ClientOptionsFqdn) DomainName() string { + + return *obj.obj.DomainName + +} + +// The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. A client MAY also leave the Domain Name field empty if it desires the server to provide a name. A fully qualified domain name (FQDN) is the complete address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as a URL but rather is a part of it that fully identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of a URL. Therefore, adding the prefix http:// or https:// to the FQDN turns it into a full URL. One example can be microsoft.com. +// SetDomainName sets the string value in the Dhcpv6ClientOptionsFqdn object +func (obj *dhcpv6ClientOptionsFqdn) SetDomainName(value string) Dhcpv6ClientOptionsFqdn { + + obj.obj.DomainName = &value + return obj +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ClientOptionsIncludedMessages +func (obj *dhcpv6ClientOptionsFqdn) AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ClientOptionsIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ClientOptionsIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ClientOptionsIncludedMessages +func (obj *dhcpv6ClientOptionsFqdn) HasAssociatedDhcpMessages() bool { + return obj.obj.AssociatedDhcpMessages != nil +} + +// The list of dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ClientOptionsIncludedMessages value in the Dhcpv6ClientOptionsFqdn object +func (obj *dhcpv6ClientOptionsFqdn) SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsFqdn { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsFqdn) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // DomainName is required + if obj.obj.DomainName == nil { + vObj.validationErrors = append(vObj.validationErrors, "DomainName is required field on interface Dhcpv6ClientOptionsFqdn") + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsFqdn) setDefault() { + if obj.obj.FlagS == nil { + obj.SetFlagS(true) + } + if obj.obj.FlagO == nil { + obj.SetFlagO(false) + } + if obj.obj.FlagN == nil { + obj.SetFlagN(false) + } + +} diff --git a/gosnappi/dhcpv6_client_options_included_messages.go b/gosnappi/dhcpv6_client_options_included_messages.go new file mode 100644 index 00000000..9c4f0dfd --- /dev/null +++ b/gosnappi/dhcpv6_client_options_included_messages.go @@ -0,0 +1,467 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsIncludedMessages ***** +type dhcpv6ClientOptionsIncludedMessages struct { + validation + obj *otg.Dhcpv6ClientOptionsIncludedMessages + marshaller marshalDhcpv6ClientOptionsIncludedMessages + unMarshaller unMarshalDhcpv6ClientOptionsIncludedMessages + msgTypesHolder Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter +} + +func NewDhcpv6ClientOptionsIncludedMessages() Dhcpv6ClientOptionsIncludedMessages { + obj := dhcpv6ClientOptionsIncludedMessages{obj: &otg.Dhcpv6ClientOptionsIncludedMessages{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) msg() *otg.Dhcpv6ClientOptionsIncludedMessages { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) setMsg(msg *otg.Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsIncludedMessages { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsIncludedMessages struct { + obj *dhcpv6ClientOptionsIncludedMessages +} + +type marshalDhcpv6ClientOptionsIncludedMessages interface { + // ToProto marshals Dhcpv6ClientOptionsIncludedMessages to protobuf object *otg.Dhcpv6ClientOptionsIncludedMessages + ToProto() (*otg.Dhcpv6ClientOptionsIncludedMessages, error) + // ToPbText marshals Dhcpv6ClientOptionsIncludedMessages to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsIncludedMessages to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsIncludedMessages to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsIncludedMessages struct { + obj *dhcpv6ClientOptionsIncludedMessages +} + +type unMarshalDhcpv6ClientOptionsIncludedMessages interface { + // FromProto unmarshals Dhcpv6ClientOptionsIncludedMessages from protobuf object *otg.Dhcpv6ClientOptionsIncludedMessages + FromProto(msg *otg.Dhcpv6ClientOptionsIncludedMessages) (Dhcpv6ClientOptionsIncludedMessages, error) + // FromPbText unmarshals Dhcpv6ClientOptionsIncludedMessages from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsIncludedMessages from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsIncludedMessages from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) Marshal() marshalDhcpv6ClientOptionsIncludedMessages { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsIncludedMessages{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) Unmarshal() unMarshalDhcpv6ClientOptionsIncludedMessages { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsIncludedMessages{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsIncludedMessages) ToProto() (*otg.Dhcpv6ClientOptionsIncludedMessages, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsIncludedMessages) FromProto(msg *otg.Dhcpv6ClientOptionsIncludedMessages) (Dhcpv6ClientOptionsIncludedMessages, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsIncludedMessages) 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 *marshaldhcpv6ClientOptionsIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsIncludedMessages) 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 *marshaldhcpv6ClientOptionsIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsIncludedMessages) 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 *dhcpv6ClientOptionsIncludedMessages) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) Clone() (Dhcpv6ClientOptionsIncludedMessages, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsIncludedMessages() + 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 *dhcpv6ClientOptionsIncludedMessages) setNil() { + obj.msgTypesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. +type Dhcpv6ClientOptionsIncludedMessages interface { + Validation + // msg marshals Dhcpv6ClientOptionsIncludedMessages to protobuf object *otg.Dhcpv6ClientOptionsIncludedMessages + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsIncludedMessages + // setMsg unmarshals Dhcpv6ClientOptionsIncludedMessages from protobuf object *otg.Dhcpv6ClientOptionsIncludedMessages + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsIncludedMessages + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsIncludedMessages + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsIncludedMessages + // validate validates Dhcpv6ClientOptionsIncludedMessages + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsIncludedMessages, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsIncludedMessagesChoiceEnum, set in Dhcpv6ClientOptionsIncludedMessages + Choice() Dhcpv6ClientOptionsIncludedMessagesChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsIncludedMessagesChoiceEnum provided by user to Dhcpv6ClientOptionsIncludedMessages + setChoice(value Dhcpv6ClientOptionsIncludedMessagesChoiceEnum) Dhcpv6ClientOptionsIncludedMessages + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsIncludedMessages + HasChoice() bool + // getter for All to set choice. + All() + // MsgTypes returns Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIterIter, set in Dhcpv6ClientOptionsIncludedMessages + MsgTypes() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + setNil() +} + +type Dhcpv6ClientOptionsIncludedMessagesChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsIncludedMessages +var Dhcpv6ClientOptionsIncludedMessagesChoice = struct { + ALL Dhcpv6ClientOptionsIncludedMessagesChoiceEnum + MSG_TYPES Dhcpv6ClientOptionsIncludedMessagesChoiceEnum +}{ + ALL: Dhcpv6ClientOptionsIncludedMessagesChoiceEnum("all"), + MSG_TYPES: Dhcpv6ClientOptionsIncludedMessagesChoiceEnum("msg_types"), +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) Choice() Dhcpv6ClientOptionsIncludedMessagesChoiceEnum { + return Dhcpv6ClientOptionsIncludedMessagesChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for All to set choice +func (obj *dhcpv6ClientOptionsIncludedMessages) All() { + obj.setChoice(Dhcpv6ClientOptionsIncludedMessagesChoice.ALL) +} + +// The client message name where the option is included, by default it is all. +// Choice returns a string +func (obj *dhcpv6ClientOptionsIncludedMessages) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) setChoice(value Dhcpv6ClientOptionsIncludedMessagesChoiceEnum) Dhcpv6ClientOptionsIncludedMessages { + intValue, ok := otg.Dhcpv6ClientOptionsIncludedMessages_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsIncludedMessagesChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsIncludedMessages_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.MsgTypes = nil + obj.msgTypesHolder = nil + + if value == Dhcpv6ClientOptionsIncludedMessagesChoice.MSG_TYPES { + obj.obj.MsgTypes = []*otg.Dhcpv6ClientOptionsMessageType{} + } + + return obj +} + +// User must specify the Dhcpv6 message type. +// MsgTypes returns a []Dhcpv6ClientOptionsMessageType +func (obj *dhcpv6ClientOptionsIncludedMessages) MsgTypes() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + if len(obj.obj.MsgTypes) == 0 { + obj.setChoice(Dhcpv6ClientOptionsIncludedMessagesChoice.MSG_TYPES) + } + if obj.msgTypesHolder == nil { + obj.msgTypesHolder = newDhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter(&obj.obj.MsgTypes).setMsg(obj) + } + return obj.msgTypesHolder +} + +type dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter struct { + obj *dhcpv6ClientOptionsIncludedMessages + dhcpv6ClientOptionsMessageTypeSlice []Dhcpv6ClientOptionsMessageType + fieldPtr *[]*otg.Dhcpv6ClientOptionsMessageType +} + +func newDhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter(ptr *[]*otg.Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + return &dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter{fieldPtr: ptr} +} + +type Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter interface { + setMsg(*dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + Items() []Dhcpv6ClientOptionsMessageType + Add() Dhcpv6ClientOptionsMessageType + Append(items ...Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + Set(index int, newObj Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + Clear() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + clearHolderSlice() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter + appendHolderSlice(item Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter +} + +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) setMsg(msg *dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ClientOptionsMessageType{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) Items() []Dhcpv6ClientOptionsMessageType { + return obj.dhcpv6ClientOptionsMessageTypeSlice +} + +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) Add() Dhcpv6ClientOptionsMessageType { + newObj := &otg.Dhcpv6ClientOptionsMessageType{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ClientOptionsMessageType{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ClientOptionsMessageTypeSlice = append(obj.dhcpv6ClientOptionsMessageTypeSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) Append(items ...Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ClientOptionsMessageTypeSlice = append(obj.dhcpv6ClientOptionsMessageTypeSlice, item) + } + return obj +} + +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) Set(index int, newObj Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ClientOptionsMessageTypeSlice[index] = newObj + return obj +} +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) Clear() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ClientOptionsMessageType{} + obj.dhcpv6ClientOptionsMessageTypeSlice = []Dhcpv6ClientOptionsMessageType{} + } + return obj +} +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) clearHolderSlice() Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + if len(obj.dhcpv6ClientOptionsMessageTypeSlice) > 0 { + obj.dhcpv6ClientOptionsMessageTypeSlice = []Dhcpv6ClientOptionsMessageType{} + } + return obj +} +func (obj *dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter) appendHolderSlice(item Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsIncludedMessagesDhcpv6ClientOptionsMessageTypeIter { + obj.dhcpv6ClientOptionsMessageTypeSlice = append(obj.dhcpv6ClientOptionsMessageTypeSlice, item) + return obj +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.MsgTypes) != 0 { + + if set_default { + obj.MsgTypes().clearHolderSlice() + for _, item := range obj.obj.MsgTypes { + obj.MsgTypes().appendHolderSlice(&dhcpv6ClientOptionsMessageType{obj: item}) + } + } + for _, item := range obj.MsgTypes().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *dhcpv6ClientOptionsIncludedMessages) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsIncludedMessagesChoiceEnum + + if len(obj.obj.MsgTypes) > 0 { + choices_set += 1 + choice = Dhcpv6ClientOptionsIncludedMessagesChoice.MSG_TYPES + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsIncludedMessagesChoice.ALL) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsIncludedMessages") + } + } else { + intVal := otg.Dhcpv6ClientOptionsIncludedMessages_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsIncludedMessages_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_link_layer_address.go b/gosnappi/dhcpv6_client_options_link_layer_address.go new file mode 100644 index 00000000..1091e93f --- /dev/null +++ b/gosnappi/dhcpv6_client_options_link_layer_address.go @@ -0,0 +1,311 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsLinkLayerAddress ***** +type dhcpv6ClientOptionsLinkLayerAddress struct { + validation + obj *otg.Dhcpv6ClientOptionsLinkLayerAddress + marshaller marshalDhcpv6ClientOptionsLinkLayerAddress + unMarshaller unMarshalDhcpv6ClientOptionsLinkLayerAddress +} + +func NewDhcpv6ClientOptionsLinkLayerAddress() Dhcpv6ClientOptionsLinkLayerAddress { + obj := dhcpv6ClientOptionsLinkLayerAddress{obj: &otg.Dhcpv6ClientOptionsLinkLayerAddress{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) msg() *otg.Dhcpv6ClientOptionsLinkLayerAddress { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) setMsg(msg *otg.Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsLinkLayerAddress { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsLinkLayerAddress struct { + obj *dhcpv6ClientOptionsLinkLayerAddress +} + +type marshalDhcpv6ClientOptionsLinkLayerAddress interface { + // ToProto marshals Dhcpv6ClientOptionsLinkLayerAddress to protobuf object *otg.Dhcpv6ClientOptionsLinkLayerAddress + ToProto() (*otg.Dhcpv6ClientOptionsLinkLayerAddress, error) + // ToPbText marshals Dhcpv6ClientOptionsLinkLayerAddress to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsLinkLayerAddress to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsLinkLayerAddress to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsLinkLayerAddress struct { + obj *dhcpv6ClientOptionsLinkLayerAddress +} + +type unMarshalDhcpv6ClientOptionsLinkLayerAddress interface { + // FromProto unmarshals Dhcpv6ClientOptionsLinkLayerAddress from protobuf object *otg.Dhcpv6ClientOptionsLinkLayerAddress + FromProto(msg *otg.Dhcpv6ClientOptionsLinkLayerAddress) (Dhcpv6ClientOptionsLinkLayerAddress, error) + // FromPbText unmarshals Dhcpv6ClientOptionsLinkLayerAddress from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsLinkLayerAddress from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsLinkLayerAddress from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) Marshal() marshalDhcpv6ClientOptionsLinkLayerAddress { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsLinkLayerAddress{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) Unmarshal() unMarshalDhcpv6ClientOptionsLinkLayerAddress { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsLinkLayerAddress{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsLinkLayerAddress) ToProto() (*otg.Dhcpv6ClientOptionsLinkLayerAddress, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsLinkLayerAddress) FromProto(msg *otg.Dhcpv6ClientOptionsLinkLayerAddress) (Dhcpv6ClientOptionsLinkLayerAddress, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsLinkLayerAddress) 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 *unMarshaldhcpv6ClientOptionsLinkLayerAddress) 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 *marshaldhcpv6ClientOptionsLinkLayerAddress) 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 *unMarshaldhcpv6ClientOptionsLinkLayerAddress) 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 *marshaldhcpv6ClientOptionsLinkLayerAddress) 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 *unMarshaldhcpv6ClientOptionsLinkLayerAddress) 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 *dhcpv6ClientOptionsLinkLayerAddress) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) Clone() (Dhcpv6ClientOptionsLinkLayerAddress, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsLinkLayerAddress() + 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 +} + +// Dhcpv6ClientOptionsLinkLayerAddress is the link-layer address configured in DUID llt or DUID ll. +type Dhcpv6ClientOptionsLinkLayerAddress interface { + Validation + // msg marshals Dhcpv6ClientOptionsLinkLayerAddress to protobuf object *otg.Dhcpv6ClientOptionsLinkLayerAddress + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsLinkLayerAddress + // setMsg unmarshals Dhcpv6ClientOptionsLinkLayerAddress from protobuf object *otg.Dhcpv6ClientOptionsLinkLayerAddress + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsLinkLayerAddress) Dhcpv6ClientOptionsLinkLayerAddress + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsLinkLayerAddress + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsLinkLayerAddress + // validate validates Dhcpv6ClientOptionsLinkLayerAddress + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsLinkLayerAddress, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Value returns string, set in Dhcpv6ClientOptionsLinkLayerAddress. + Value() string + // SetValue assigns string provided by user to Dhcpv6ClientOptionsLinkLayerAddress + SetValue(value string) Dhcpv6ClientOptionsLinkLayerAddress +} + +// The MAC address that becomes part of DUID llt or DUID ll. +// Value returns a string +func (obj *dhcpv6ClientOptionsLinkLayerAddress) Value() string { + + return *obj.obj.Value + +} + +// The MAC address that becomes part of DUID llt or DUID ll. +// SetValue sets the string value in the Dhcpv6ClientOptionsLinkLayerAddress object +func (obj *dhcpv6ClientOptionsLinkLayerAddress) SetValue(value string) Dhcpv6ClientOptionsLinkLayerAddress { + + obj.obj.Value = &value + return obj +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Value is required + if obj.obj.Value == nil { + vObj.validationErrors = append(vObj.validationErrors, "Value is required field on interface Dhcpv6ClientOptionsLinkLayerAddress") + } + if obj.obj.Value != nil { + + err := obj.validateMac(obj.Value()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on Dhcpv6ClientOptionsLinkLayerAddress.Value")) + } + + } + +} + +func (obj *dhcpv6ClientOptionsLinkLayerAddress) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_message_type.go b/gosnappi/dhcpv6_client_options_message_type.go new file mode 100644 index 00000000..aaa1179c --- /dev/null +++ b/gosnappi/dhcpv6_client_options_message_type.go @@ -0,0 +1,387 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsMessageType ***** +type dhcpv6ClientOptionsMessageType struct { + validation + obj *otg.Dhcpv6ClientOptionsMessageType + marshaller marshalDhcpv6ClientOptionsMessageType + unMarshaller unMarshalDhcpv6ClientOptionsMessageType +} + +func NewDhcpv6ClientOptionsMessageType() Dhcpv6ClientOptionsMessageType { + obj := dhcpv6ClientOptionsMessageType{obj: &otg.Dhcpv6ClientOptionsMessageType{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsMessageType) msg() *otg.Dhcpv6ClientOptionsMessageType { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsMessageType) setMsg(msg *otg.Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsMessageType { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsMessageType struct { + obj *dhcpv6ClientOptionsMessageType +} + +type marshalDhcpv6ClientOptionsMessageType interface { + // ToProto marshals Dhcpv6ClientOptionsMessageType to protobuf object *otg.Dhcpv6ClientOptionsMessageType + ToProto() (*otg.Dhcpv6ClientOptionsMessageType, error) + // ToPbText marshals Dhcpv6ClientOptionsMessageType to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsMessageType to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsMessageType to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsMessageType struct { + obj *dhcpv6ClientOptionsMessageType +} + +type unMarshalDhcpv6ClientOptionsMessageType interface { + // FromProto unmarshals Dhcpv6ClientOptionsMessageType from protobuf object *otg.Dhcpv6ClientOptionsMessageType + FromProto(msg *otg.Dhcpv6ClientOptionsMessageType) (Dhcpv6ClientOptionsMessageType, error) + // FromPbText unmarshals Dhcpv6ClientOptionsMessageType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsMessageType from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsMessageType from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsMessageType) Marshal() marshalDhcpv6ClientOptionsMessageType { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsMessageType{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsMessageType) Unmarshal() unMarshalDhcpv6ClientOptionsMessageType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsMessageType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsMessageType) ToProto() (*otg.Dhcpv6ClientOptionsMessageType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsMessageType) FromProto(msg *otg.Dhcpv6ClientOptionsMessageType) (Dhcpv6ClientOptionsMessageType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsMessageType) 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 *unMarshaldhcpv6ClientOptionsMessageType) 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 *marshaldhcpv6ClientOptionsMessageType) 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 *unMarshaldhcpv6ClientOptionsMessageType) 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 *marshaldhcpv6ClientOptionsMessageType) 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 *unMarshaldhcpv6ClientOptionsMessageType) 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 *dhcpv6ClientOptionsMessageType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsMessageType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsMessageType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsMessageType) Clone() (Dhcpv6ClientOptionsMessageType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsMessageType() + 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 +} + +// Dhcpv6ClientOptionsMessageType is the dhcpv6 client messages where the option will be included. +type Dhcpv6ClientOptionsMessageType interface { + Validation + // msg marshals Dhcpv6ClientOptionsMessageType to protobuf object *otg.Dhcpv6ClientOptionsMessageType + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsMessageType + // setMsg unmarshals Dhcpv6ClientOptionsMessageType from protobuf object *otg.Dhcpv6ClientOptionsMessageType + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsMessageType + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsMessageType + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsMessageType + // validate validates Dhcpv6ClientOptionsMessageType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsMessageType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsMessageTypeChoiceEnum, set in Dhcpv6ClientOptionsMessageType + Choice() Dhcpv6ClientOptionsMessageTypeChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsMessageTypeChoiceEnum provided by user to Dhcpv6ClientOptionsMessageType + setChoice(value Dhcpv6ClientOptionsMessageTypeChoiceEnum) Dhcpv6ClientOptionsMessageType + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsMessageType + HasChoice() bool + // getter for Renew to set choice. + Renew() + // getter for Solicit to set choice. + Solicit() + // getter for Request to set choice. + Request() + // getter for Release to set choice. + Release() + // getter for InformRequest to set choice. + InformRequest() + // getter for Rebind to set choice. + Rebind() +} + +type Dhcpv6ClientOptionsMessageTypeChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsMessageType +var Dhcpv6ClientOptionsMessageTypeChoice = struct { + SOLICIT Dhcpv6ClientOptionsMessageTypeChoiceEnum + REQUEST Dhcpv6ClientOptionsMessageTypeChoiceEnum + INFORM_REQUEST Dhcpv6ClientOptionsMessageTypeChoiceEnum + RELEASE Dhcpv6ClientOptionsMessageTypeChoiceEnum + RENEW Dhcpv6ClientOptionsMessageTypeChoiceEnum + REBIND Dhcpv6ClientOptionsMessageTypeChoiceEnum +}{ + SOLICIT: Dhcpv6ClientOptionsMessageTypeChoiceEnum("solicit"), + REQUEST: Dhcpv6ClientOptionsMessageTypeChoiceEnum("request"), + INFORM_REQUEST: Dhcpv6ClientOptionsMessageTypeChoiceEnum("inform_request"), + RELEASE: Dhcpv6ClientOptionsMessageTypeChoiceEnum("release"), + RENEW: Dhcpv6ClientOptionsMessageTypeChoiceEnum("renew"), + REBIND: Dhcpv6ClientOptionsMessageTypeChoiceEnum("rebind"), +} + +func (obj *dhcpv6ClientOptionsMessageType) Choice() Dhcpv6ClientOptionsMessageTypeChoiceEnum { + return Dhcpv6ClientOptionsMessageTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Renew to set choice +func (obj *dhcpv6ClientOptionsMessageType) Renew() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.RENEW) +} + +// getter for Solicit to set choice +func (obj *dhcpv6ClientOptionsMessageType) Solicit() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.SOLICIT) +} + +// getter for Request to set choice +func (obj *dhcpv6ClientOptionsMessageType) Request() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.REQUEST) +} + +// getter for Release to set choice +func (obj *dhcpv6ClientOptionsMessageType) Release() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.RELEASE) +} + +// getter for InformRequest to set choice +func (obj *dhcpv6ClientOptionsMessageType) InformRequest() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.INFORM_REQUEST) +} + +// getter for Rebind to set choice +func (obj *dhcpv6ClientOptionsMessageType) Rebind() { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.REBIND) +} + +// The client message name where the option is included, by default it is all. +// Choice returns a string +func (obj *dhcpv6ClientOptionsMessageType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsMessageType) setChoice(value Dhcpv6ClientOptionsMessageTypeChoiceEnum) Dhcpv6ClientOptionsMessageType { + intValue, ok := otg.Dhcpv6ClientOptionsMessageType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsMessageTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsMessageType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + + return obj +} + +func (obj *dhcpv6ClientOptionsMessageType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ClientOptionsMessageType) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsMessageTypeChoiceEnum + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsMessageTypeChoice.SOLICIT) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsMessageType") + } + } else { + intVal := otg.Dhcpv6ClientOptionsMessageType_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsMessageType_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_options_request.go b/gosnappi/dhcpv6_client_options_options_request.go new file mode 100644 index 00000000..18f7bcdd --- /dev/null +++ b/gosnappi/dhcpv6_client_options_options_request.go @@ -0,0 +1,448 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsOptionsRequest ***** +type dhcpv6ClientOptionsOptionsRequest struct { + validation + obj *otg.Dhcpv6ClientOptionsOptionsRequest + marshaller marshalDhcpv6ClientOptionsOptionsRequest + unMarshaller unMarshalDhcpv6ClientOptionsOptionsRequest + customHolder Dhcpv6ClientOptionsCustom +} + +func NewDhcpv6ClientOptionsOptionsRequest() Dhcpv6ClientOptionsOptionsRequest { + obj := dhcpv6ClientOptionsOptionsRequest{obj: &otg.Dhcpv6ClientOptionsOptionsRequest{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) msg() *otg.Dhcpv6ClientOptionsOptionsRequest { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) setMsg(msg *otg.Dhcpv6ClientOptionsOptionsRequest) Dhcpv6ClientOptionsOptionsRequest { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsOptionsRequest struct { + obj *dhcpv6ClientOptionsOptionsRequest +} + +type marshalDhcpv6ClientOptionsOptionsRequest interface { + // ToProto marshals Dhcpv6ClientOptionsOptionsRequest to protobuf object *otg.Dhcpv6ClientOptionsOptionsRequest + ToProto() (*otg.Dhcpv6ClientOptionsOptionsRequest, error) + // ToPbText marshals Dhcpv6ClientOptionsOptionsRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsOptionsRequest to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsOptionsRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsOptionsRequest struct { + obj *dhcpv6ClientOptionsOptionsRequest +} + +type unMarshalDhcpv6ClientOptionsOptionsRequest interface { + // FromProto unmarshals Dhcpv6ClientOptionsOptionsRequest from protobuf object *otg.Dhcpv6ClientOptionsOptionsRequest + FromProto(msg *otg.Dhcpv6ClientOptionsOptionsRequest) (Dhcpv6ClientOptionsOptionsRequest, error) + // FromPbText unmarshals Dhcpv6ClientOptionsOptionsRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsOptionsRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsOptionsRequest from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) Marshal() marshalDhcpv6ClientOptionsOptionsRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsOptionsRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) Unmarshal() unMarshalDhcpv6ClientOptionsOptionsRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsOptionsRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsOptionsRequest) ToProto() (*otg.Dhcpv6ClientOptionsOptionsRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsOptionsRequest) FromProto(msg *otg.Dhcpv6ClientOptionsOptionsRequest) (Dhcpv6ClientOptionsOptionsRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsOptionsRequest) 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 *unMarshaldhcpv6ClientOptionsOptionsRequest) 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 *marshaldhcpv6ClientOptionsOptionsRequest) 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 *unMarshaldhcpv6ClientOptionsOptionsRequest) 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 *marshaldhcpv6ClientOptionsOptionsRequest) 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 *unMarshaldhcpv6ClientOptionsOptionsRequest) 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 *dhcpv6ClientOptionsOptionsRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) Clone() (Dhcpv6ClientOptionsOptionsRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsOptionsRequest() + 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 *dhcpv6ClientOptionsOptionsRequest) setNil() { + obj.customHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsOptionsRequest is description is TBD +type Dhcpv6ClientOptionsOptionsRequest interface { + Validation + // msg marshals Dhcpv6ClientOptionsOptionsRequest to protobuf object *otg.Dhcpv6ClientOptionsOptionsRequest + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsOptionsRequest + // setMsg unmarshals Dhcpv6ClientOptionsOptionsRequest from protobuf object *otg.Dhcpv6ClientOptionsOptionsRequest + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsOptionsRequest) Dhcpv6ClientOptionsOptionsRequest + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsOptionsRequest + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsOptionsRequest + // validate validates Dhcpv6ClientOptionsOptionsRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsOptionsRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsOptionsRequestChoiceEnum, set in Dhcpv6ClientOptionsOptionsRequest + Choice() Dhcpv6ClientOptionsOptionsRequestChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsOptionsRequestChoiceEnum provided by user to Dhcpv6ClientOptionsOptionsRequest + setChoice(value Dhcpv6ClientOptionsOptionsRequestChoiceEnum) Dhcpv6ClientOptionsOptionsRequest + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsOptionsRequest + HasChoice() bool + // getter for Sztp to set choice. + Sztp() + // getter for VendorInformation to set choice. + VendorInformation() + // getter for BootfileUrl to set choice. + BootfileUrl() + // getter for NameServers to set choice. + NameServers() + // getter for Fqdn to set choice. + Fqdn() + // Custom returns Dhcpv6ClientOptionsCustom, set in Dhcpv6ClientOptionsOptionsRequest. + // Dhcpv6ClientOptionsCustom is the Custom option is used to provide a not so well known option in the message between a client and a server. + Custom() Dhcpv6ClientOptionsCustom + // SetCustom assigns Dhcpv6ClientOptionsCustom provided by user to Dhcpv6ClientOptionsOptionsRequest. + // Dhcpv6ClientOptionsCustom is the Custom option is used to provide a not so well known option in the message between a client and a server. + SetCustom(value Dhcpv6ClientOptionsCustom) Dhcpv6ClientOptionsOptionsRequest + // HasCustom checks if Custom has been set in Dhcpv6ClientOptionsOptionsRequest + HasCustom() bool + setNil() +} + +type Dhcpv6ClientOptionsOptionsRequestChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsOptionsRequest +var Dhcpv6ClientOptionsOptionsRequestChoice = struct { + VENDOR_INFORMATION Dhcpv6ClientOptionsOptionsRequestChoiceEnum + NAME_SERVERS Dhcpv6ClientOptionsOptionsRequestChoiceEnum + FQDN Dhcpv6ClientOptionsOptionsRequestChoiceEnum + BOOTFILE_URL Dhcpv6ClientOptionsOptionsRequestChoiceEnum + SZTP Dhcpv6ClientOptionsOptionsRequestChoiceEnum + CUSTOM Dhcpv6ClientOptionsOptionsRequestChoiceEnum +}{ + VENDOR_INFORMATION: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("vendor_information"), + NAME_SERVERS: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("name_servers"), + FQDN: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("fqdn"), + BOOTFILE_URL: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("bootfile_url"), + SZTP: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("sztp"), + CUSTOM: Dhcpv6ClientOptionsOptionsRequestChoiceEnum("custom"), +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) Choice() Dhcpv6ClientOptionsOptionsRequestChoiceEnum { + return Dhcpv6ClientOptionsOptionsRequestChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Sztp to set choice +func (obj *dhcpv6ClientOptionsOptionsRequest) Sztp() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.SZTP) +} + +// getter for VendorInformation to set choice +func (obj *dhcpv6ClientOptionsOptionsRequest) VendorInformation() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.VENDOR_INFORMATION) +} + +// getter for BootfileUrl to set choice +func (obj *dhcpv6ClientOptionsOptionsRequest) BootfileUrl() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.BOOTFILE_URL) +} + +// getter for NameServers to set choice +func (obj *dhcpv6ClientOptionsOptionsRequest) NameServers() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.NAME_SERVERS) +} + +// getter for Fqdn to set choice +func (obj *dhcpv6ClientOptionsOptionsRequest) Fqdn() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.FQDN) +} + +// The Option Request option is used to identify a list of options in a message between a client and a server. The option code is 6. - Vendor_specific information option, requested by clients for vendor-specific informations from servers. - DNS Recursive Name Server Option, requested by clients to get the list ofIPv6 addresses of DNS recursive name +// servers to which DNS queries may be sent by the client resolver in order of preference. +// - Client FQDN option - indicates whether the client or the DHCP server should update DNS with the AAAA record +// corresponding to the assigned IPv6 address and the FQDN provided in this option. The DHCP server always updates +// the PTR record. +// - bootfile_url, if client is configured for network booting then the client must use this option to obtain the boot +// file url from the server. +// - sztp. Securely provision a networking device when it is booting in a factory-default state. +// Choice returns a string +func (obj *dhcpv6ClientOptionsOptionsRequest) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) setChoice(value Dhcpv6ClientOptionsOptionsRequestChoiceEnum) Dhcpv6ClientOptionsOptionsRequest { + intValue, ok := otg.Dhcpv6ClientOptionsOptionsRequest_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsOptionsRequestChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsOptionsRequest_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Custom = nil + obj.customHolder = nil + + if value == Dhcpv6ClientOptionsOptionsRequestChoice.CUSTOM { + obj.obj.Custom = NewDhcpv6ClientOptionsCustom().msg() + } + + return obj +} + +// description is TBD +// Custom returns a Dhcpv6ClientOptionsCustom +func (obj *dhcpv6ClientOptionsOptionsRequest) Custom() Dhcpv6ClientOptionsCustom { + if obj.obj.Custom == nil { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.CUSTOM) + } + if obj.customHolder == nil { + obj.customHolder = &dhcpv6ClientOptionsCustom{obj: obj.obj.Custom} + } + return obj.customHolder +} + +// description is TBD +// Custom returns a Dhcpv6ClientOptionsCustom +func (obj *dhcpv6ClientOptionsOptionsRequest) HasCustom() bool { + return obj.obj.Custom != nil +} + +// description is TBD +// SetCustom sets the Dhcpv6ClientOptionsCustom value in the Dhcpv6ClientOptionsOptionsRequest object +func (obj *dhcpv6ClientOptionsOptionsRequest) SetCustom(value Dhcpv6ClientOptionsCustom) Dhcpv6ClientOptionsOptionsRequest { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.CUSTOM) + obj.customHolder = nil + obj.obj.Custom = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Custom != nil { + + obj.Custom().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsOptionsRequest) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsOptionsRequestChoiceEnum + + if obj.obj.Custom != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsOptionsRequestChoice.CUSTOM + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestChoice.VENDOR_INFORMATION) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsOptionsRequest") + } + } else { + intVal := otg.Dhcpv6ClientOptionsOptionsRequest_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsOptionsRequest_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_options_request_included_messages.go b/gosnappi/dhcpv6_client_options_options_request_included_messages.go new file mode 100644 index 00000000..e2739166 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_options_request_included_messages.go @@ -0,0 +1,405 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsOptionsRequestIncludedMessages ***** +type dhcpv6ClientOptionsOptionsRequestIncludedMessages struct { + validation + obj *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + marshaller marshalDhcpv6ClientOptionsOptionsRequestIncludedMessages + unMarshaller unMarshalDhcpv6ClientOptionsOptionsRequestIncludedMessages + msgTypesHolder Dhcpv6ClientOptionsMessageType +} + +func NewDhcpv6ClientOptionsOptionsRequestIncludedMessages() Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + obj := dhcpv6ClientOptionsOptionsRequestIncludedMessages{obj: &otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) msg() *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) setMsg(msg *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages) Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages struct { + obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages +} + +type marshalDhcpv6ClientOptionsOptionsRequestIncludedMessages interface { + // ToProto marshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages to protobuf object *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + ToProto() (*otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) + // ToPbText marshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages struct { + obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages +} + +type unMarshalDhcpv6ClientOptionsOptionsRequestIncludedMessages interface { + // FromProto unmarshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages from protobuf object *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + FromProto(msg *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages) (Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) + // FromPbText unmarshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) Marshal() marshalDhcpv6ClientOptionsOptionsRequestIncludedMessages { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) Unmarshal() unMarshalDhcpv6ClientOptionsOptionsRequestIncludedMessages { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) ToProto() (*otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) FromProto(msg *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages) (Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *marshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *unMarshaldhcpv6ClientOptionsOptionsRequestIncludedMessages) 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 *dhcpv6ClientOptionsOptionsRequestIncludedMessages) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) Clone() (Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsOptionsRequestIncludedMessages() + 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 *dhcpv6ClientOptionsOptionsRequestIncludedMessages) setNil() { + obj.msgTypesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsOptionsRequestIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. +type Dhcpv6ClientOptionsOptionsRequestIncludedMessages interface { + Validation + // msg marshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages to protobuf object *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // setMsg unmarshals Dhcpv6ClientOptionsOptionsRequestIncludedMessages from protobuf object *otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages) Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsOptionsRequestIncludedMessages + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsOptionsRequestIncludedMessages + // validate validates Dhcpv6ClientOptionsOptionsRequestIncludedMessages + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsOptionsRequestIncludedMessages, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum, set in Dhcpv6ClientOptionsOptionsRequestIncludedMessages + Choice() Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum provided by user to Dhcpv6ClientOptionsOptionsRequestIncludedMessages + setChoice(value Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum) Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsOptionsRequestIncludedMessages + HasChoice() bool + // getter for All to set choice. + All() + // MsgTypes returns Dhcpv6ClientOptionsMessageType, set in Dhcpv6ClientOptionsOptionsRequestIncludedMessages. + // Dhcpv6ClientOptionsMessageType is the dhcpv6 client messages where the option will be included. + MsgTypes() Dhcpv6ClientOptionsMessageType + // SetMsgTypes assigns Dhcpv6ClientOptionsMessageType provided by user to Dhcpv6ClientOptionsOptionsRequestIncludedMessages. + // Dhcpv6ClientOptionsMessageType is the dhcpv6 client messages where the option will be included. + SetMsgTypes(value Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsOptionsRequestIncludedMessages + // HasMsgTypes checks if MsgTypes has been set in Dhcpv6ClientOptionsOptionsRequestIncludedMessages + HasMsgTypes() bool + setNil() +} + +type Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsOptionsRequestIncludedMessages +var Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice = struct { + ALL Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum + MSG_TYPES Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum +}{ + ALL: Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum("all"), + MSG_TYPES: Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum("msg_types"), +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) Choice() Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum { + return Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for All to set choice +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) All() { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.ALL) +} + +// The client message name where the option is included, by default it is all. +// Choice returns a string +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) setChoice(value Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum) Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + intValue, ok := otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.MsgTypes = nil + obj.msgTypesHolder = nil + + if value == Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.MSG_TYPES { + obj.obj.MsgTypes = NewDhcpv6ClientOptionsMessageType().msg() + } + + return obj +} + +// User must specify the Dhcpv6 message type. +// MsgTypes returns a Dhcpv6ClientOptionsMessageType +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) MsgTypes() Dhcpv6ClientOptionsMessageType { + if obj.obj.MsgTypes == nil { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.MSG_TYPES) + } + if obj.msgTypesHolder == nil { + obj.msgTypesHolder = &dhcpv6ClientOptionsMessageType{obj: obj.obj.MsgTypes} + } + return obj.msgTypesHolder +} + +// User must specify the Dhcpv6 message type. +// MsgTypes returns a Dhcpv6ClientOptionsMessageType +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) HasMsgTypes() bool { + return obj.obj.MsgTypes != nil +} + +// User must specify the Dhcpv6 message type. +// SetMsgTypes sets the Dhcpv6ClientOptionsMessageType value in the Dhcpv6ClientOptionsOptionsRequestIncludedMessages object +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) SetMsgTypes(value Dhcpv6ClientOptionsMessageType) Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.MSG_TYPES) + obj.msgTypesHolder = nil + obj.obj.MsgTypes = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.MsgTypes != nil { + + obj.MsgTypes().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsOptionsRequestIncludedMessages) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoiceEnum + + if obj.obj.MsgTypes != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.MSG_TYPES + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsOptionsRequestIncludedMessagesChoice.ALL) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsOptionsRequestIncludedMessages") + } + } else { + intVal := otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_server_identifier.go b/gosnappi/dhcpv6_client_options_server_identifier.go new file mode 100644 index 00000000..c7ab14ac --- /dev/null +++ b/gosnappi/dhcpv6_client_options_server_identifier.go @@ -0,0 +1,564 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsServerIdentifier ***** +type dhcpv6ClientOptionsServerIdentifier struct { + validation + obj *otg.Dhcpv6ClientOptionsServerIdentifier + marshaller marshalDhcpv6ClientOptionsServerIdentifier + unMarshaller unMarshalDhcpv6ClientOptionsServerIdentifier + duidLltHolder Dhcpv6ClientOptionsDuidLlt + duidEnHolder Dhcpv6ClientOptionsDuidEn + duidLlHolder Dhcpv6ClientOptionsDuidLl + duidUuidHolder Dhcpv6ClientOptionsDuidUuid +} + +func NewDhcpv6ClientOptionsServerIdentifier() Dhcpv6ClientOptionsServerIdentifier { + obj := dhcpv6ClientOptionsServerIdentifier{obj: &otg.Dhcpv6ClientOptionsServerIdentifier{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) msg() *otg.Dhcpv6ClientOptionsServerIdentifier { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) setMsg(msg *otg.Dhcpv6ClientOptionsServerIdentifier) Dhcpv6ClientOptionsServerIdentifier { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsServerIdentifier struct { + obj *dhcpv6ClientOptionsServerIdentifier +} + +type marshalDhcpv6ClientOptionsServerIdentifier interface { + // ToProto marshals Dhcpv6ClientOptionsServerIdentifier to protobuf object *otg.Dhcpv6ClientOptionsServerIdentifier + ToProto() (*otg.Dhcpv6ClientOptionsServerIdentifier, error) + // ToPbText marshals Dhcpv6ClientOptionsServerIdentifier to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsServerIdentifier to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsServerIdentifier to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsServerIdentifier struct { + obj *dhcpv6ClientOptionsServerIdentifier +} + +type unMarshalDhcpv6ClientOptionsServerIdentifier interface { + // FromProto unmarshals Dhcpv6ClientOptionsServerIdentifier from protobuf object *otg.Dhcpv6ClientOptionsServerIdentifier + FromProto(msg *otg.Dhcpv6ClientOptionsServerIdentifier) (Dhcpv6ClientOptionsServerIdentifier, error) + // FromPbText unmarshals Dhcpv6ClientOptionsServerIdentifier from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsServerIdentifier from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsServerIdentifier from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) Marshal() marshalDhcpv6ClientOptionsServerIdentifier { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsServerIdentifier{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) Unmarshal() unMarshalDhcpv6ClientOptionsServerIdentifier { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsServerIdentifier{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsServerIdentifier) ToProto() (*otg.Dhcpv6ClientOptionsServerIdentifier, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsServerIdentifier) FromProto(msg *otg.Dhcpv6ClientOptionsServerIdentifier) (Dhcpv6ClientOptionsServerIdentifier, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsServerIdentifier) 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 *unMarshaldhcpv6ClientOptionsServerIdentifier) 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 *marshaldhcpv6ClientOptionsServerIdentifier) 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 *unMarshaldhcpv6ClientOptionsServerIdentifier) 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 *marshaldhcpv6ClientOptionsServerIdentifier) 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 *unMarshaldhcpv6ClientOptionsServerIdentifier) 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 *dhcpv6ClientOptionsServerIdentifier) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) Clone() (Dhcpv6ClientOptionsServerIdentifier, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsServerIdentifier() + 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 *dhcpv6ClientOptionsServerIdentifier) setNil() { + obj.duidLltHolder = nil + obj.duidEnHolder = nil + obj.duidLlHolder = nil + obj.duidUuidHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsServerIdentifier is description is TBD +type Dhcpv6ClientOptionsServerIdentifier interface { + Validation + // msg marshals Dhcpv6ClientOptionsServerIdentifier to protobuf object *otg.Dhcpv6ClientOptionsServerIdentifier + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsServerIdentifier + // setMsg unmarshals Dhcpv6ClientOptionsServerIdentifier from protobuf object *otg.Dhcpv6ClientOptionsServerIdentifier + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsServerIdentifier) Dhcpv6ClientOptionsServerIdentifier + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsServerIdentifier + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsServerIdentifier + // validate validates Dhcpv6ClientOptionsServerIdentifier + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsServerIdentifier, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ClientOptionsServerIdentifierChoiceEnum, set in Dhcpv6ClientOptionsServerIdentifier + Choice() Dhcpv6ClientOptionsServerIdentifierChoiceEnum + // setChoice assigns Dhcpv6ClientOptionsServerIdentifierChoiceEnum provided by user to Dhcpv6ClientOptionsServerIdentifier + setChoice(value Dhcpv6ClientOptionsServerIdentifierChoiceEnum) Dhcpv6ClientOptionsServerIdentifier + // HasChoice checks if Choice has been set in Dhcpv6ClientOptionsServerIdentifier + HasChoice() bool + // DuidLlt returns Dhcpv6ClientOptionsDuidLlt, set in Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidLlt is dUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type. + DuidLlt() Dhcpv6ClientOptionsDuidLlt + // SetDuidLlt assigns Dhcpv6ClientOptionsDuidLlt provided by user to Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidLlt is dUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type. + SetDuidLlt(value Dhcpv6ClientOptionsDuidLlt) Dhcpv6ClientOptionsServerIdentifier + // HasDuidLlt checks if DuidLlt has been set in Dhcpv6ClientOptionsServerIdentifier + HasDuidLlt() bool + // DuidEn returns Dhcpv6ClientOptionsDuidEn, set in Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidEn is dUID assigned by vendor based on enterprise number. + DuidEn() Dhcpv6ClientOptionsDuidEn + // SetDuidEn assigns Dhcpv6ClientOptionsDuidEn provided by user to Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidEn is dUID assigned by vendor based on enterprise number. + SetDuidEn(value Dhcpv6ClientOptionsDuidEn) Dhcpv6ClientOptionsServerIdentifier + // HasDuidEn checks if DuidEn has been set in Dhcpv6ClientOptionsServerIdentifier + HasDuidEn() bool + // DuidLl returns Dhcpv6ClientOptionsDuidLl, set in Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidLl is dUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type. + DuidLl() Dhcpv6ClientOptionsDuidLl + // SetDuidLl assigns Dhcpv6ClientOptionsDuidLl provided by user to Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidLl is dUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type. + SetDuidLl(value Dhcpv6ClientOptionsDuidLl) Dhcpv6ClientOptionsServerIdentifier + // HasDuidLl checks if DuidLl has been set in Dhcpv6ClientOptionsServerIdentifier + HasDuidLl() bool + // DuidUuid returns Dhcpv6ClientOptionsDuidUuid, set in Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidUuid is dUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. + DuidUuid() Dhcpv6ClientOptionsDuidUuid + // SetDuidUuid assigns Dhcpv6ClientOptionsDuidUuid provided by user to Dhcpv6ClientOptionsServerIdentifier. + // Dhcpv6ClientOptionsDuidUuid is dUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. + SetDuidUuid(value Dhcpv6ClientOptionsDuidUuid) Dhcpv6ClientOptionsServerIdentifier + // HasDuidUuid checks if DuidUuid has been set in Dhcpv6ClientOptionsServerIdentifier + HasDuidUuid() bool + setNil() +} + +type Dhcpv6ClientOptionsServerIdentifierChoiceEnum string + +// Enum of Choice on Dhcpv6ClientOptionsServerIdentifier +var Dhcpv6ClientOptionsServerIdentifierChoice = struct { + DUID_LLT Dhcpv6ClientOptionsServerIdentifierChoiceEnum + DUID_EN Dhcpv6ClientOptionsServerIdentifierChoiceEnum + DUID_LL Dhcpv6ClientOptionsServerIdentifierChoiceEnum + DUID_UUID Dhcpv6ClientOptionsServerIdentifierChoiceEnum +}{ + DUID_LLT: Dhcpv6ClientOptionsServerIdentifierChoiceEnum("duid_llt"), + DUID_EN: Dhcpv6ClientOptionsServerIdentifierChoiceEnum("duid_en"), + DUID_LL: Dhcpv6ClientOptionsServerIdentifierChoiceEnum("duid_ll"), + DUID_UUID: Dhcpv6ClientOptionsServerIdentifierChoiceEnum("duid_uuid"), +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) Choice() Dhcpv6ClientOptionsServerIdentifierChoiceEnum { + return Dhcpv6ClientOptionsServerIdentifierChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// The Identifier option is used to carry a DUID. The option code is 2. The server identifier identifies a server. This option is used when client wants to contact a particular server. +// Choice returns a string +func (obj *dhcpv6ClientOptionsServerIdentifier) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) setChoice(value Dhcpv6ClientOptionsServerIdentifierChoiceEnum) Dhcpv6ClientOptionsServerIdentifier { + intValue, ok := otg.Dhcpv6ClientOptionsServerIdentifier_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ClientOptionsServerIdentifierChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ClientOptionsServerIdentifier_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.DuidUuid = nil + obj.duidUuidHolder = nil + obj.obj.DuidLl = nil + obj.duidLlHolder = nil + obj.obj.DuidEn = nil + obj.duidEnHolder = nil + obj.obj.DuidLlt = nil + obj.duidLltHolder = nil + + if value == Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LLT { + obj.obj.DuidLlt = NewDhcpv6ClientOptionsDuidLlt().msg() + } + + if value == Dhcpv6ClientOptionsServerIdentifierChoice.DUID_EN { + obj.obj.DuidEn = NewDhcpv6ClientOptionsDuidEn().msg() + } + + if value == Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LL { + obj.obj.DuidLl = NewDhcpv6ClientOptionsDuidLl().msg() + } + + if value == Dhcpv6ClientOptionsServerIdentifierChoice.DUID_UUID { + obj.obj.DuidUuid = NewDhcpv6ClientOptionsDuidUuid().msg() + } + + return obj +} + +// description is TBD +// DuidLlt returns a Dhcpv6ClientOptionsDuidLlt +func (obj *dhcpv6ClientOptionsServerIdentifier) DuidLlt() Dhcpv6ClientOptionsDuidLlt { + if obj.obj.DuidLlt == nil { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LLT) + } + if obj.duidLltHolder == nil { + obj.duidLltHolder = &dhcpv6ClientOptionsDuidLlt{obj: obj.obj.DuidLlt} + } + return obj.duidLltHolder +} + +// description is TBD +// DuidLlt returns a Dhcpv6ClientOptionsDuidLlt +func (obj *dhcpv6ClientOptionsServerIdentifier) HasDuidLlt() bool { + return obj.obj.DuidLlt != nil +} + +// description is TBD +// SetDuidLlt sets the Dhcpv6ClientOptionsDuidLlt value in the Dhcpv6ClientOptionsServerIdentifier object +func (obj *dhcpv6ClientOptionsServerIdentifier) SetDuidLlt(value Dhcpv6ClientOptionsDuidLlt) Dhcpv6ClientOptionsServerIdentifier { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LLT) + obj.duidLltHolder = nil + obj.obj.DuidLlt = value.msg() + + return obj +} + +// description is TBD +// DuidEn returns a Dhcpv6ClientOptionsDuidEn +func (obj *dhcpv6ClientOptionsServerIdentifier) DuidEn() Dhcpv6ClientOptionsDuidEn { + if obj.obj.DuidEn == nil { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_EN) + } + if obj.duidEnHolder == nil { + obj.duidEnHolder = &dhcpv6ClientOptionsDuidEn{obj: obj.obj.DuidEn} + } + return obj.duidEnHolder +} + +// description is TBD +// DuidEn returns a Dhcpv6ClientOptionsDuidEn +func (obj *dhcpv6ClientOptionsServerIdentifier) HasDuidEn() bool { + return obj.obj.DuidEn != nil +} + +// description is TBD +// SetDuidEn sets the Dhcpv6ClientOptionsDuidEn value in the Dhcpv6ClientOptionsServerIdentifier object +func (obj *dhcpv6ClientOptionsServerIdentifier) SetDuidEn(value Dhcpv6ClientOptionsDuidEn) Dhcpv6ClientOptionsServerIdentifier { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_EN) + obj.duidEnHolder = nil + obj.obj.DuidEn = value.msg() + + return obj +} + +// description is TBD +// DuidLl returns a Dhcpv6ClientOptionsDuidLl +func (obj *dhcpv6ClientOptionsServerIdentifier) DuidLl() Dhcpv6ClientOptionsDuidLl { + if obj.obj.DuidLl == nil { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LL) + } + if obj.duidLlHolder == nil { + obj.duidLlHolder = &dhcpv6ClientOptionsDuidLl{obj: obj.obj.DuidLl} + } + return obj.duidLlHolder +} + +// description is TBD +// DuidLl returns a Dhcpv6ClientOptionsDuidLl +func (obj *dhcpv6ClientOptionsServerIdentifier) HasDuidLl() bool { + return obj.obj.DuidLl != nil +} + +// description is TBD +// SetDuidLl sets the Dhcpv6ClientOptionsDuidLl value in the Dhcpv6ClientOptionsServerIdentifier object +func (obj *dhcpv6ClientOptionsServerIdentifier) SetDuidLl(value Dhcpv6ClientOptionsDuidLl) Dhcpv6ClientOptionsServerIdentifier { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LL) + obj.duidLlHolder = nil + obj.obj.DuidLl = value.msg() + + return obj +} + +// description is TBD +// DuidUuid returns a Dhcpv6ClientOptionsDuidUuid +func (obj *dhcpv6ClientOptionsServerIdentifier) DuidUuid() Dhcpv6ClientOptionsDuidUuid { + if obj.obj.DuidUuid == nil { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_UUID) + } + if obj.duidUuidHolder == nil { + obj.duidUuidHolder = &dhcpv6ClientOptionsDuidUuid{obj: obj.obj.DuidUuid} + } + return obj.duidUuidHolder +} + +// description is TBD +// DuidUuid returns a Dhcpv6ClientOptionsDuidUuid +func (obj *dhcpv6ClientOptionsServerIdentifier) HasDuidUuid() bool { + return obj.obj.DuidUuid != nil +} + +// description is TBD +// SetDuidUuid sets the Dhcpv6ClientOptionsDuidUuid value in the Dhcpv6ClientOptionsServerIdentifier object +func (obj *dhcpv6ClientOptionsServerIdentifier) SetDuidUuid(value Dhcpv6ClientOptionsDuidUuid) Dhcpv6ClientOptionsServerIdentifier { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_UUID) + obj.duidUuidHolder = nil + obj.obj.DuidUuid = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.DuidLlt != nil { + + obj.DuidLlt().validateObj(vObj, set_default) + } + + if obj.obj.DuidEn != nil { + + obj.DuidEn().validateObj(vObj, set_default) + } + + if obj.obj.DuidLl != nil { + + obj.DuidLl().validateObj(vObj, set_default) + } + + if obj.obj.DuidUuid != nil { + + obj.DuidUuid().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsServerIdentifier) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ClientOptionsServerIdentifierChoiceEnum + + if obj.obj.DuidLlt != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LLT + } + + if obj.obj.DuidEn != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsServerIdentifierChoice.DUID_EN + } + + if obj.obj.DuidLl != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LL + } + + if obj.obj.DuidUuid != nil { + choices_set += 1 + choice = Dhcpv6ClientOptionsServerIdentifierChoice.DUID_UUID + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ClientOptionsServerIdentifierChoice.DUID_LL) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ClientOptionsServerIdentifier") + } + } else { + intVal := otg.Dhcpv6ClientOptionsServerIdentifier_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ClientOptionsServerIdentifier_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_client_options_vendor_class.go b/gosnappi/dhcpv6_client_options_vendor_class.go new file mode 100644 index 00000000..e31da122 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_vendor_class.go @@ -0,0 +1,384 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsVendorClass ***** +type dhcpv6ClientOptionsVendorClass struct { + validation + obj *otg.Dhcpv6ClientOptionsVendorClass + marshaller marshalDhcpv6ClientOptionsVendorClass + unMarshaller unMarshalDhcpv6ClientOptionsVendorClass + associatedDhcpMessagesHolder Dhcpv6ClientOptionsIncludedMessages +} + +func NewDhcpv6ClientOptionsVendorClass() Dhcpv6ClientOptionsVendorClass { + obj := dhcpv6ClientOptionsVendorClass{obj: &otg.Dhcpv6ClientOptionsVendorClass{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsVendorClass) msg() *otg.Dhcpv6ClientOptionsVendorClass { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsVendorClass) setMsg(msg *otg.Dhcpv6ClientOptionsVendorClass) Dhcpv6ClientOptionsVendorClass { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsVendorClass struct { + obj *dhcpv6ClientOptionsVendorClass +} + +type marshalDhcpv6ClientOptionsVendorClass interface { + // ToProto marshals Dhcpv6ClientOptionsVendorClass to protobuf object *otg.Dhcpv6ClientOptionsVendorClass + ToProto() (*otg.Dhcpv6ClientOptionsVendorClass, error) + // ToPbText marshals Dhcpv6ClientOptionsVendorClass to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsVendorClass to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsVendorClass to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsVendorClass struct { + obj *dhcpv6ClientOptionsVendorClass +} + +type unMarshalDhcpv6ClientOptionsVendorClass interface { + // FromProto unmarshals Dhcpv6ClientOptionsVendorClass from protobuf object *otg.Dhcpv6ClientOptionsVendorClass + FromProto(msg *otg.Dhcpv6ClientOptionsVendorClass) (Dhcpv6ClientOptionsVendorClass, error) + // FromPbText unmarshals Dhcpv6ClientOptionsVendorClass from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsVendorClass from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsVendorClass from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsVendorClass) Marshal() marshalDhcpv6ClientOptionsVendorClass { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsVendorClass{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsVendorClass) Unmarshal() unMarshalDhcpv6ClientOptionsVendorClass { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsVendorClass{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsVendorClass) ToProto() (*otg.Dhcpv6ClientOptionsVendorClass, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsVendorClass) FromProto(msg *otg.Dhcpv6ClientOptionsVendorClass) (Dhcpv6ClientOptionsVendorClass, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsVendorClass) 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 *unMarshaldhcpv6ClientOptionsVendorClass) 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 *marshaldhcpv6ClientOptionsVendorClass) 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 *unMarshaldhcpv6ClientOptionsVendorClass) 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 *marshaldhcpv6ClientOptionsVendorClass) 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 *unMarshaldhcpv6ClientOptionsVendorClass) 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 *dhcpv6ClientOptionsVendorClass) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsVendorClass) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsVendorClass) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsVendorClass) Clone() (Dhcpv6ClientOptionsVendorClass, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsVendorClass() + 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 *dhcpv6ClientOptionsVendorClass) setNil() { + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsVendorClass is this option is used by a client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16. +type Dhcpv6ClientOptionsVendorClass interface { + Validation + // msg marshals Dhcpv6ClientOptionsVendorClass to protobuf object *otg.Dhcpv6ClientOptionsVendorClass + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsVendorClass + // setMsg unmarshals Dhcpv6ClientOptionsVendorClass from protobuf object *otg.Dhcpv6ClientOptionsVendorClass + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsVendorClass) Dhcpv6ClientOptionsVendorClass + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsVendorClass + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsVendorClass + // validate validates Dhcpv6ClientOptionsVendorClass + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsVendorClass, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // EnterpriseNumber returns uint32, set in Dhcpv6ClientOptionsVendorClass. + EnterpriseNumber() uint32 + // SetEnterpriseNumber assigns uint32 provided by user to Dhcpv6ClientOptionsVendorClass + SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsVendorClass + // ClassData returns []string, set in Dhcpv6ClientOptionsVendorClass. + ClassData() []string + // SetClassData assigns []string provided by user to Dhcpv6ClientOptionsVendorClass + SetClassData(value []string) Dhcpv6ClientOptionsVendorClass + // AssociatedDhcpMessages returns Dhcpv6ClientOptionsIncludedMessages, set in Dhcpv6ClientOptionsVendorClass. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ClientOptionsIncludedMessages provided by user to Dhcpv6ClientOptionsVendorClass. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsVendorClass + setNil() +} + +// The vendor's registered Enterprise Number as registered with IANA. +// EnterpriseNumber returns a uint32 +func (obj *dhcpv6ClientOptionsVendorClass) EnterpriseNumber() uint32 { + + return *obj.obj.EnterpriseNumber + +} + +// The vendor's registered Enterprise Number as registered with IANA. +// SetEnterpriseNumber sets the uint32 value in the Dhcpv6ClientOptionsVendorClass object +func (obj *dhcpv6ClientOptionsVendorClass) SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsVendorClass { + + obj.obj.EnterpriseNumber = &value + return obj +} + +// The opaque data representing the hardware configuration of the host on which the client is running. Examples of class data instances might include the version of the operating system the client is running or the amount of memory installed on the client. +// ClassData returns a []string +func (obj *dhcpv6ClientOptionsVendorClass) ClassData() []string { + if obj.obj.ClassData == nil { + obj.obj.ClassData = make([]string, 0) + } + return obj.obj.ClassData +} + +// The opaque data representing the hardware configuration of the host on which the client is running. Examples of class data instances might include the version of the operating system the client is running or the amount of memory installed on the client. +// SetClassData sets the []string value in the Dhcpv6ClientOptionsVendorClass object +func (obj *dhcpv6ClientOptionsVendorClass) SetClassData(value []string) Dhcpv6ClientOptionsVendorClass { + + if obj.obj.ClassData == nil { + obj.obj.ClassData = make([]string, 0) + } + obj.obj.ClassData = value + + return obj +} + +// The dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ClientOptionsIncludedMessages +func (obj *dhcpv6ClientOptionsVendorClass) AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ClientOptionsIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ClientOptionsIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ClientOptionsIncludedMessages value in the Dhcpv6ClientOptionsVendorClass object +func (obj *dhcpv6ClientOptionsVendorClass) SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsVendorClass { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsVendorClass) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // EnterpriseNumber is required + if obj.obj.EnterpriseNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "EnterpriseNumber is required field on interface Dhcpv6ClientOptionsVendorClass") + } + if obj.obj.EnterpriseNumber != nil { + + if *obj.obj.EnterpriseNumber > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsVendorClass.EnterpriseNumber <= 4294967295 but Got %d", *obj.obj.EnterpriseNumber)) + } + + } + + // AssociatedDhcpMessages is required + if obj.obj.AssociatedDhcpMessages == nil { + vObj.validationErrors = append(vObj.validationErrors, "AssociatedDhcpMessages is required field on interface Dhcpv6ClientOptionsVendorClass") + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsVendorClass) setDefault() { + +} diff --git a/gosnappi/dhcpv6_client_options_vendor_info.go b/gosnappi/dhcpv6_client_options_vendor_info.go new file mode 100644 index 00000000..9fb0edf7 --- /dev/null +++ b/gosnappi/dhcpv6_client_options_vendor_info.go @@ -0,0 +1,464 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ClientOptionsVendorInfo ***** +type dhcpv6ClientOptionsVendorInfo struct { + validation + obj *otg.Dhcpv6ClientOptionsVendorInfo + marshaller marshalDhcpv6ClientOptionsVendorInfo + unMarshaller unMarshalDhcpv6ClientOptionsVendorInfo + optionDataHolder Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + associatedDhcpMessagesHolder Dhcpv6ClientOptionsIncludedMessages +} + +func NewDhcpv6ClientOptionsVendorInfo() Dhcpv6ClientOptionsVendorInfo { + obj := dhcpv6ClientOptionsVendorInfo{obj: &otg.Dhcpv6ClientOptionsVendorInfo{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ClientOptionsVendorInfo) msg() *otg.Dhcpv6ClientOptionsVendorInfo { + return obj.obj +} + +func (obj *dhcpv6ClientOptionsVendorInfo) setMsg(msg *otg.Dhcpv6ClientOptionsVendorInfo) Dhcpv6ClientOptionsVendorInfo { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ClientOptionsVendorInfo struct { + obj *dhcpv6ClientOptionsVendorInfo +} + +type marshalDhcpv6ClientOptionsVendorInfo interface { + // ToProto marshals Dhcpv6ClientOptionsVendorInfo to protobuf object *otg.Dhcpv6ClientOptionsVendorInfo + ToProto() (*otg.Dhcpv6ClientOptionsVendorInfo, error) + // ToPbText marshals Dhcpv6ClientOptionsVendorInfo to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ClientOptionsVendorInfo to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ClientOptionsVendorInfo to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ClientOptionsVendorInfo struct { + obj *dhcpv6ClientOptionsVendorInfo +} + +type unMarshalDhcpv6ClientOptionsVendorInfo interface { + // FromProto unmarshals Dhcpv6ClientOptionsVendorInfo from protobuf object *otg.Dhcpv6ClientOptionsVendorInfo + FromProto(msg *otg.Dhcpv6ClientOptionsVendorInfo) (Dhcpv6ClientOptionsVendorInfo, error) + // FromPbText unmarshals Dhcpv6ClientOptionsVendorInfo from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ClientOptionsVendorInfo from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ClientOptionsVendorInfo from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ClientOptionsVendorInfo) Marshal() marshalDhcpv6ClientOptionsVendorInfo { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ClientOptionsVendorInfo{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ClientOptionsVendorInfo) Unmarshal() unMarshalDhcpv6ClientOptionsVendorInfo { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ClientOptionsVendorInfo{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ClientOptionsVendorInfo) ToProto() (*otg.Dhcpv6ClientOptionsVendorInfo, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ClientOptionsVendorInfo) FromProto(msg *otg.Dhcpv6ClientOptionsVendorInfo) (Dhcpv6ClientOptionsVendorInfo, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ClientOptionsVendorInfo) 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 *unMarshaldhcpv6ClientOptionsVendorInfo) 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 *marshaldhcpv6ClientOptionsVendorInfo) 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 *unMarshaldhcpv6ClientOptionsVendorInfo) 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 *marshaldhcpv6ClientOptionsVendorInfo) 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 *unMarshaldhcpv6ClientOptionsVendorInfo) 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 *dhcpv6ClientOptionsVendorInfo) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsVendorInfo) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ClientOptionsVendorInfo) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ClientOptionsVendorInfo) Clone() (Dhcpv6ClientOptionsVendorInfo, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ClientOptionsVendorInfo() + 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 *dhcpv6ClientOptionsVendorInfo) setNil() { + obj.optionDataHolder = nil + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ClientOptionsVendorInfo is this option is used by clients to exchange vendor-specific information. The option code is 17. +type Dhcpv6ClientOptionsVendorInfo interface { + Validation + // msg marshals Dhcpv6ClientOptionsVendorInfo to protobuf object *otg.Dhcpv6ClientOptionsVendorInfo + // and doesn't set defaults + msg() *otg.Dhcpv6ClientOptionsVendorInfo + // setMsg unmarshals Dhcpv6ClientOptionsVendorInfo from protobuf object *otg.Dhcpv6ClientOptionsVendorInfo + // and doesn't set defaults + setMsg(*otg.Dhcpv6ClientOptionsVendorInfo) Dhcpv6ClientOptionsVendorInfo + // provides marshal interface + Marshal() marshalDhcpv6ClientOptionsVendorInfo + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ClientOptionsVendorInfo + // validate validates Dhcpv6ClientOptionsVendorInfo + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ClientOptionsVendorInfo, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // EnterpriseNumber returns uint32, set in Dhcpv6ClientOptionsVendorInfo. + EnterpriseNumber() uint32 + // SetEnterpriseNumber assigns uint32 provided by user to Dhcpv6ClientOptionsVendorInfo + SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsVendorInfo + // OptionData returns Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIterIter, set in Dhcpv6ClientOptionsVendorInfo + OptionData() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + // AssociatedDhcpMessages returns Dhcpv6ClientOptionsIncludedMessages, set in Dhcpv6ClientOptionsVendorInfo. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ClientOptionsIncludedMessages provided by user to Dhcpv6ClientOptionsVendorInfo. + // Dhcpv6ClientOptionsIncludedMessages is the dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsVendorInfo + setNil() +} + +// The vendor's registered Enterprise Number as registered with IANA. +// EnterpriseNumber returns a uint32 +func (obj *dhcpv6ClientOptionsVendorInfo) EnterpriseNumber() uint32 { + + return *obj.obj.EnterpriseNumber + +} + +// The vendor's registered Enterprise Number as registered with IANA. +// SetEnterpriseNumber sets the uint32 value in the Dhcpv6ClientOptionsVendorInfo object +func (obj *dhcpv6ClientOptionsVendorInfo) SetEnterpriseNumber(value uint32) Dhcpv6ClientOptionsVendorInfo { + + obj.obj.EnterpriseNumber = &value + return obj +} + +// An opaque object of octets,interpreted by vendor-specific code on the clients and servers. +// OptionData returns a []Dhcpv6OptionsVendorSpecificOptions +func (obj *dhcpv6ClientOptionsVendorInfo) OptionData() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(obj.obj.OptionData) == 0 { + obj.obj.OptionData = []*otg.Dhcpv6OptionsVendorSpecificOptions{} + } + if obj.optionDataHolder == nil { + obj.optionDataHolder = newDhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter(&obj.obj.OptionData).setMsg(obj) + } + return obj.optionDataHolder +} + +type dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter struct { + obj *dhcpv6ClientOptionsVendorInfo + dhcpv6OptionsVendorSpecificOptionsSlice []Dhcpv6OptionsVendorSpecificOptions + fieldPtr *[]*otg.Dhcpv6OptionsVendorSpecificOptions +} + +func newDhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter(ptr *[]*otg.Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + return &dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter{fieldPtr: ptr} +} + +type Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter interface { + setMsg(*dhcpv6ClientOptionsVendorInfo) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Items() []Dhcpv6OptionsVendorSpecificOptions + Add() Dhcpv6OptionsVendorSpecificOptions + Append(items ...Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Set(index int, newObj Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Clear() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + clearHolderSlice() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + appendHolderSlice(item Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter +} + +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) setMsg(msg *dhcpv6ClientOptionsVendorInfo) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6OptionsVendorSpecificOptions{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Items() []Dhcpv6OptionsVendorSpecificOptions { + return obj.dhcpv6OptionsVendorSpecificOptionsSlice +} + +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Add() Dhcpv6OptionsVendorSpecificOptions { + newObj := &otg.Dhcpv6OptionsVendorSpecificOptions{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6OptionsVendorSpecificOptions{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Append(items ...Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, item) + } + return obj +} + +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Set(index int, newObj Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6OptionsVendorSpecificOptionsSlice[index] = newObj + return obj +} +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Clear() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6OptionsVendorSpecificOptions{} + obj.dhcpv6OptionsVendorSpecificOptionsSlice = []Dhcpv6OptionsVendorSpecificOptions{} + } + return obj +} +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) clearHolderSlice() Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(obj.dhcpv6OptionsVendorSpecificOptionsSlice) > 0 { + obj.dhcpv6OptionsVendorSpecificOptionsSlice = []Dhcpv6OptionsVendorSpecificOptions{} + } + return obj +} +func (obj *dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) appendHolderSlice(item Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ClientOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, item) + return obj +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ClientOptionsIncludedMessages +func (obj *dhcpv6ClientOptionsVendorInfo) AssociatedDhcpMessages() Dhcpv6ClientOptionsIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ClientOptionsIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ClientOptionsIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The list of dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ClientOptionsIncludedMessages value in the Dhcpv6ClientOptionsVendorInfo object +func (obj *dhcpv6ClientOptionsVendorInfo) SetAssociatedDhcpMessages(value Dhcpv6ClientOptionsIncludedMessages) Dhcpv6ClientOptionsVendorInfo { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *dhcpv6ClientOptionsVendorInfo) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // EnterpriseNumber is required + if obj.obj.EnterpriseNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "EnterpriseNumber is required field on interface Dhcpv6ClientOptionsVendorInfo") + } + if obj.obj.EnterpriseNumber != nil { + + if *obj.obj.EnterpriseNumber > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ClientOptionsVendorInfo.EnterpriseNumber <= 4294967295 but Got %d", *obj.obj.EnterpriseNumber)) + } + + } + + if len(obj.obj.OptionData) != 0 { + + if set_default { + obj.OptionData().clearHolderSlice() + for _, item := range obj.obj.OptionData { + obj.OptionData().appendHolderSlice(&dhcpv6OptionsVendorSpecificOptions{obj: item}) + } + } + for _, item := range obj.OptionData().Items() { + item.validateObj(vObj, set_default) + } + + } + + // AssociatedDhcpMessages is required + if obj.obj.AssociatedDhcpMessages == nil { + vObj.validationErrors = append(vObj.validationErrors, "AssociatedDhcpMessages is required field on interface Dhcpv6ClientOptionsVendorInfo") + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ClientOptionsVendorInfo) setDefault() { + +} diff --git a/gosnappi/dhcpv6_interface_state.go b/gosnappi/dhcpv6_interface_state.go new file mode 100644 index 00000000..a22b9b5e --- /dev/null +++ b/gosnappi/dhcpv6_interface_state.go @@ -0,0 +1,512 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6InterfaceState ***** +type dhcpv6InterfaceState struct { + validation + obj *otg.Dhcpv6InterfaceState + marshaller marshalDhcpv6InterfaceState + unMarshaller unMarshalDhcpv6InterfaceState +} + +func NewDhcpv6InterfaceState() Dhcpv6InterfaceState { + obj := dhcpv6InterfaceState{obj: &otg.Dhcpv6InterfaceState{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6InterfaceState) msg() *otg.Dhcpv6InterfaceState { + return obj.obj +} + +func (obj *dhcpv6InterfaceState) setMsg(msg *otg.Dhcpv6InterfaceState) Dhcpv6InterfaceState { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6InterfaceState struct { + obj *dhcpv6InterfaceState +} + +type marshalDhcpv6InterfaceState interface { + // ToProto marshals Dhcpv6InterfaceState to protobuf object *otg.Dhcpv6InterfaceState + ToProto() (*otg.Dhcpv6InterfaceState, error) + // ToPbText marshals Dhcpv6InterfaceState to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6InterfaceState to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6InterfaceState to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6InterfaceState struct { + obj *dhcpv6InterfaceState +} + +type unMarshalDhcpv6InterfaceState interface { + // FromProto unmarshals Dhcpv6InterfaceState from protobuf object *otg.Dhcpv6InterfaceState + FromProto(msg *otg.Dhcpv6InterfaceState) (Dhcpv6InterfaceState, error) + // FromPbText unmarshals Dhcpv6InterfaceState from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6InterfaceState from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6InterfaceState from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6InterfaceState) Marshal() marshalDhcpv6InterfaceState { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6InterfaceState{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6InterfaceState) Unmarshal() unMarshalDhcpv6InterfaceState { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6InterfaceState{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6InterfaceState) ToProto() (*otg.Dhcpv6InterfaceState, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6InterfaceState) FromProto(msg *otg.Dhcpv6InterfaceState) (Dhcpv6InterfaceState, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6InterfaceState) 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 *unMarshaldhcpv6InterfaceState) 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 *marshaldhcpv6InterfaceState) 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 *unMarshaldhcpv6InterfaceState) 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 *marshaldhcpv6InterfaceState) 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 *unMarshaldhcpv6InterfaceState) 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 *dhcpv6InterfaceState) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6InterfaceState) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6InterfaceState) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6InterfaceState) Clone() (Dhcpv6InterfaceState, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6InterfaceState() + 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 +} + +// Dhcpv6InterfaceState is the IPv6 address associated with this DHCP Client session. +type Dhcpv6InterfaceState interface { + Validation + // msg marshals Dhcpv6InterfaceState to protobuf object *otg.Dhcpv6InterfaceState + // and doesn't set defaults + msg() *otg.Dhcpv6InterfaceState + // setMsg unmarshals Dhcpv6InterfaceState from protobuf object *otg.Dhcpv6InterfaceState + // and doesn't set defaults + setMsg(*otg.Dhcpv6InterfaceState) Dhcpv6InterfaceState + // provides marshal interface + Marshal() marshalDhcpv6InterfaceState + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6InterfaceState + // validate validates Dhcpv6InterfaceState + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6InterfaceState, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // DhcpClientName returns string, set in Dhcpv6InterfaceState. + DhcpClientName() string + // SetDhcpClientName assigns string provided by user to Dhcpv6InterfaceState + SetDhcpClientName(value string) Dhcpv6InterfaceState + // HasDhcpClientName checks if DhcpClientName has been set in Dhcpv6InterfaceState + HasDhcpClientName() bool + // Ipv6IapdAddress returns string, set in Dhcpv6InterfaceState. + Ipv6IapdAddress() string + // SetIpv6IapdAddress assigns string provided by user to Dhcpv6InterfaceState + SetIpv6IapdAddress(value string) Dhcpv6InterfaceState + // HasIpv6IapdAddress checks if Ipv6IapdAddress has been set in Dhcpv6InterfaceState + HasIpv6IapdAddress() bool + // IapdPrefixLength returns uint32, set in Dhcpv6InterfaceState. + IapdPrefixLength() uint32 + // SetIapdPrefixLength assigns uint32 provided by user to Dhcpv6InterfaceState + SetIapdPrefixLength(value uint32) Dhcpv6InterfaceState + // HasIapdPrefixLength checks if IapdPrefixLength has been set in Dhcpv6InterfaceState + HasIapdPrefixLength() bool + // Ipv6Address returns string, set in Dhcpv6InterfaceState. + Ipv6Address() string + // SetIpv6Address assigns string provided by user to Dhcpv6InterfaceState + SetIpv6Address(value string) Dhcpv6InterfaceState + // HasIpv6Address checks if Ipv6Address has been set in Dhcpv6InterfaceState + HasIpv6Address() bool + // GatewayAddress returns string, set in Dhcpv6InterfaceState. + GatewayAddress() string + // SetGatewayAddress assigns string provided by user to Dhcpv6InterfaceState + SetGatewayAddress(value string) Dhcpv6InterfaceState + // HasGatewayAddress checks if GatewayAddress has been set in Dhcpv6InterfaceState + HasGatewayAddress() bool + // LeaseTime returns uint32, set in Dhcpv6InterfaceState. + LeaseTime() uint32 + // SetLeaseTime assigns uint32 provided by user to Dhcpv6InterfaceState + SetLeaseTime(value uint32) Dhcpv6InterfaceState + // HasLeaseTime checks if LeaseTime has been set in Dhcpv6InterfaceState + HasLeaseTime() bool + // RenewTime returns uint32, set in Dhcpv6InterfaceState. + RenewTime() uint32 + // SetRenewTime assigns uint32 provided by user to Dhcpv6InterfaceState + SetRenewTime(value uint32) Dhcpv6InterfaceState + // HasRenewTime checks if RenewTime has been set in Dhcpv6InterfaceState + HasRenewTime() bool + // RebindTime returns uint32, set in Dhcpv6InterfaceState. + RebindTime() uint32 + // SetRebindTime assigns uint32 provided by user to Dhcpv6InterfaceState + SetRebindTime(value uint32) Dhcpv6InterfaceState + // HasRebindTime checks if RebindTime has been set in Dhcpv6InterfaceState + HasRebindTime() bool +} + +// The name of a DHCPv6 Client. +// DhcpClientName returns a string +func (obj *dhcpv6InterfaceState) DhcpClientName() string { + + return *obj.obj.DhcpClientName + +} + +// The name of a DHCPv6 Client. +// DhcpClientName returns a string +func (obj *dhcpv6InterfaceState) HasDhcpClientName() bool { + return obj.obj.DhcpClientName != nil +} + +// The name of a DHCPv6 Client. +// SetDhcpClientName sets the string value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetDhcpClientName(value string) Dhcpv6InterfaceState { + + obj.obj.DhcpClientName = &value + return obj +} + +// The IPv6 IAPD address associated with this DHCP Client session. +// Ipv6IapdAddress returns a string +func (obj *dhcpv6InterfaceState) Ipv6IapdAddress() string { + + return *obj.obj.Ipv6IapdAddress + +} + +// The IPv6 IAPD address associated with this DHCP Client session. +// Ipv6IapdAddress returns a string +func (obj *dhcpv6InterfaceState) HasIpv6IapdAddress() bool { + return obj.obj.Ipv6IapdAddress != nil +} + +// The IPv6 IAPD address associated with this DHCP Client session. +// SetIpv6IapdAddress sets the string value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetIpv6IapdAddress(value string) Dhcpv6InterfaceState { + + obj.obj.Ipv6IapdAddress = &value + return obj +} + +// The prefix length of the IPv6 IAPD address associated with this DHCP Client session. +// IapdPrefixLength returns a uint32 +func (obj *dhcpv6InterfaceState) IapdPrefixLength() uint32 { + + return *obj.obj.IapdPrefixLength + +} + +// The prefix length of the IPv6 IAPD address associated with this DHCP Client session. +// IapdPrefixLength returns a uint32 +func (obj *dhcpv6InterfaceState) HasIapdPrefixLength() bool { + return obj.obj.IapdPrefixLength != nil +} + +// The prefix length of the IPv6 IAPD address associated with this DHCP Client session. +// SetIapdPrefixLength sets the uint32 value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetIapdPrefixLength(value uint32) Dhcpv6InterfaceState { + + obj.obj.IapdPrefixLength = &value + return obj +} + +// The IPv6 address associated with this DHCP Client session. +// Ipv6Address returns a string +func (obj *dhcpv6InterfaceState) Ipv6Address() string { + + return *obj.obj.Ipv6Address + +} + +// The IPv6 address associated with this DHCP Client session. +// Ipv6Address returns a string +func (obj *dhcpv6InterfaceState) HasIpv6Address() bool { + return obj.obj.Ipv6Address != nil +} + +// The IPv6 address associated with this DHCP Client session. +// SetIpv6Address sets the string value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetIpv6Address(value string) Dhcpv6InterfaceState { + + obj.obj.Ipv6Address = &value + return obj +} + +// The Gateway IPV6 address associated with this DHCP Client session. +// GatewayAddress returns a string +func (obj *dhcpv6InterfaceState) GatewayAddress() string { + + return *obj.obj.GatewayAddress + +} + +// The Gateway IPV6 address associated with this DHCP Client session. +// GatewayAddress returns a string +func (obj *dhcpv6InterfaceState) HasGatewayAddress() bool { + return obj.obj.GatewayAddress != nil +} + +// The Gateway IPV6 address associated with this DHCP Client session. +// SetGatewayAddress sets the string value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetGatewayAddress(value string) Dhcpv6InterfaceState { + + obj.obj.GatewayAddress = &value + return obj +} + +// The duration of the IPv6 address lease, in seconds. +// LeaseTime returns a uint32 +func (obj *dhcpv6InterfaceState) LeaseTime() uint32 { + + return *obj.obj.LeaseTime + +} + +// The duration of the IPv6 address lease, in seconds. +// LeaseTime returns a uint32 +func (obj *dhcpv6InterfaceState) HasLeaseTime() bool { + return obj.obj.LeaseTime != nil +} + +// The duration of the IPv6 address lease, in seconds. +// SetLeaseTime sets the uint32 value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetLeaseTime(value uint32) Dhcpv6InterfaceState { + + obj.obj.LeaseTime = &value + return obj +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// RenewTime returns a uint32 +func (obj *dhcpv6InterfaceState) RenewTime() uint32 { + + return *obj.obj.RenewTime + +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// RenewTime returns a uint32 +func (obj *dhcpv6InterfaceState) HasRenewTime() bool { + return obj.obj.RenewTime != nil +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// SetRenewTime sets the uint32 value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetRenewTime(value uint32) Dhcpv6InterfaceState { + + obj.obj.RenewTime = &value + return obj +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// RebindTime returns a uint32 +func (obj *dhcpv6InterfaceState) RebindTime() uint32 { + + return *obj.obj.RebindTime + +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// RebindTime returns a uint32 +func (obj *dhcpv6InterfaceState) HasRebindTime() bool { + return obj.obj.RebindTime != nil +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// SetRebindTime sets the uint32 value in the Dhcpv6InterfaceState object +func (obj *dhcpv6InterfaceState) SetRebindTime(value uint32) Dhcpv6InterfaceState { + + obj.obj.RebindTime = &value + return obj +} + +func (obj *dhcpv6InterfaceState) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.IapdPrefixLength != nil { + + if *obj.obj.IapdPrefixLength > 128 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6InterfaceState.IapdPrefixLength <= 128 but Got %d", *obj.obj.IapdPrefixLength)) + } + + } + +} + +func (obj *dhcpv6InterfaceState) setDefault() { + +} diff --git a/gosnappi/dhcpv6_interface_state_request.go b/gosnappi/dhcpv6_interface_state_request.go new file mode 100644 index 00000000..e6726e90 --- /dev/null +++ b/gosnappi/dhcpv6_interface_state_request.go @@ -0,0 +1,317 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6InterfaceStateRequest ***** +type dhcpv6InterfaceStateRequest struct { + validation + obj *otg.Dhcpv6InterfaceStateRequest + marshaller marshalDhcpv6InterfaceStateRequest + unMarshaller unMarshalDhcpv6InterfaceStateRequest +} + +func NewDhcpv6InterfaceStateRequest() Dhcpv6InterfaceStateRequest { + obj := dhcpv6InterfaceStateRequest{obj: &otg.Dhcpv6InterfaceStateRequest{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6InterfaceStateRequest) msg() *otg.Dhcpv6InterfaceStateRequest { + return obj.obj +} + +func (obj *dhcpv6InterfaceStateRequest) setMsg(msg *otg.Dhcpv6InterfaceStateRequest) Dhcpv6InterfaceStateRequest { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6InterfaceStateRequest struct { + obj *dhcpv6InterfaceStateRequest +} + +type marshalDhcpv6InterfaceStateRequest interface { + // ToProto marshals Dhcpv6InterfaceStateRequest to protobuf object *otg.Dhcpv6InterfaceStateRequest + ToProto() (*otg.Dhcpv6InterfaceStateRequest, error) + // ToPbText marshals Dhcpv6InterfaceStateRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6InterfaceStateRequest to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6InterfaceStateRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6InterfaceStateRequest struct { + obj *dhcpv6InterfaceStateRequest +} + +type unMarshalDhcpv6InterfaceStateRequest interface { + // FromProto unmarshals Dhcpv6InterfaceStateRequest from protobuf object *otg.Dhcpv6InterfaceStateRequest + FromProto(msg *otg.Dhcpv6InterfaceStateRequest) (Dhcpv6InterfaceStateRequest, error) + // FromPbText unmarshals Dhcpv6InterfaceStateRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6InterfaceStateRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6InterfaceStateRequest from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6InterfaceStateRequest) Marshal() marshalDhcpv6InterfaceStateRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6InterfaceStateRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6InterfaceStateRequest) Unmarshal() unMarshalDhcpv6InterfaceStateRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6InterfaceStateRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6InterfaceStateRequest) ToProto() (*otg.Dhcpv6InterfaceStateRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6InterfaceStateRequest) FromProto(msg *otg.Dhcpv6InterfaceStateRequest) (Dhcpv6InterfaceStateRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6InterfaceStateRequest) 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 *unMarshaldhcpv6InterfaceStateRequest) 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 *marshaldhcpv6InterfaceStateRequest) 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 *unMarshaldhcpv6InterfaceStateRequest) 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 *marshaldhcpv6InterfaceStateRequest) 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 *unMarshaldhcpv6InterfaceStateRequest) 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 *dhcpv6InterfaceStateRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6InterfaceStateRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6InterfaceStateRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6InterfaceStateRequest) Clone() (Dhcpv6InterfaceStateRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6InterfaceStateRequest() + 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 +} + +// Dhcpv6InterfaceStateRequest is the request for assigned IPv6 address information associated with DHCP Client sessions. +type Dhcpv6InterfaceStateRequest interface { + Validation + // msg marshals Dhcpv6InterfaceStateRequest to protobuf object *otg.Dhcpv6InterfaceStateRequest + // and doesn't set defaults + msg() *otg.Dhcpv6InterfaceStateRequest + // setMsg unmarshals Dhcpv6InterfaceStateRequest from protobuf object *otg.Dhcpv6InterfaceStateRequest + // and doesn't set defaults + setMsg(*otg.Dhcpv6InterfaceStateRequest) Dhcpv6InterfaceStateRequest + // provides marshal interface + Marshal() marshalDhcpv6InterfaceStateRequest + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6InterfaceStateRequest + // validate validates Dhcpv6InterfaceStateRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6InterfaceStateRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // DhcpClientNames returns []string, set in Dhcpv6InterfaceStateRequest. + DhcpClientNames() []string + // SetDhcpClientNames assigns []string provided by user to Dhcpv6InterfaceStateRequest + SetDhcpClientNames(value []string) Dhcpv6InterfaceStateRequest +} + +// The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// DhcpClientNames returns a []string +func (obj *dhcpv6InterfaceStateRequest) DhcpClientNames() []string { + if obj.obj.DhcpClientNames == nil { + obj.obj.DhcpClientNames = make([]string, 0) + } + return obj.obj.DhcpClientNames +} + +// The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6client/properties/name +// +// SetDhcpClientNames sets the []string value in the Dhcpv6InterfaceStateRequest object +func (obj *dhcpv6InterfaceStateRequest) SetDhcpClientNames(value []string) Dhcpv6InterfaceStateRequest { + + if obj.obj.DhcpClientNames == nil { + obj.obj.DhcpClientNames = make([]string, 0) + } + obj.obj.DhcpClientNames = value + + return obj +} + +func (obj *dhcpv6InterfaceStateRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6InterfaceStateRequest) setDefault() { + +} diff --git a/gosnappi/dhcpv6_lease_state_request.go b/gosnappi/dhcpv6_lease_state_request.go new file mode 100644 index 00000000..f24f3caf --- /dev/null +++ b/gosnappi/dhcpv6_lease_state_request.go @@ -0,0 +1,317 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6LeaseStateRequest ***** +type dhcpv6LeaseStateRequest struct { + validation + obj *otg.Dhcpv6LeaseStateRequest + marshaller marshalDhcpv6LeaseStateRequest + unMarshaller unMarshalDhcpv6LeaseStateRequest +} + +func NewDhcpv6LeaseStateRequest() Dhcpv6LeaseStateRequest { + obj := dhcpv6LeaseStateRequest{obj: &otg.Dhcpv6LeaseStateRequest{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6LeaseStateRequest) msg() *otg.Dhcpv6LeaseStateRequest { + return obj.obj +} + +func (obj *dhcpv6LeaseStateRequest) setMsg(msg *otg.Dhcpv6LeaseStateRequest) Dhcpv6LeaseStateRequest { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6LeaseStateRequest struct { + obj *dhcpv6LeaseStateRequest +} + +type marshalDhcpv6LeaseStateRequest interface { + // ToProto marshals Dhcpv6LeaseStateRequest to protobuf object *otg.Dhcpv6LeaseStateRequest + ToProto() (*otg.Dhcpv6LeaseStateRequest, error) + // ToPbText marshals Dhcpv6LeaseStateRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6LeaseStateRequest to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6LeaseStateRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6LeaseStateRequest struct { + obj *dhcpv6LeaseStateRequest +} + +type unMarshalDhcpv6LeaseStateRequest interface { + // FromProto unmarshals Dhcpv6LeaseStateRequest from protobuf object *otg.Dhcpv6LeaseStateRequest + FromProto(msg *otg.Dhcpv6LeaseStateRequest) (Dhcpv6LeaseStateRequest, error) + // FromPbText unmarshals Dhcpv6LeaseStateRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6LeaseStateRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6LeaseStateRequest from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6LeaseStateRequest) Marshal() marshalDhcpv6LeaseStateRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6LeaseStateRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6LeaseStateRequest) Unmarshal() unMarshalDhcpv6LeaseStateRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6LeaseStateRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6LeaseStateRequest) ToProto() (*otg.Dhcpv6LeaseStateRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6LeaseStateRequest) FromProto(msg *otg.Dhcpv6LeaseStateRequest) (Dhcpv6LeaseStateRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6LeaseStateRequest) 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 *unMarshaldhcpv6LeaseStateRequest) 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 *marshaldhcpv6LeaseStateRequest) 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 *unMarshaldhcpv6LeaseStateRequest) 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 *marshaldhcpv6LeaseStateRequest) 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 *unMarshaldhcpv6LeaseStateRequest) 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 *dhcpv6LeaseStateRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6LeaseStateRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6LeaseStateRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6LeaseStateRequest) Clone() (Dhcpv6LeaseStateRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6LeaseStateRequest() + 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 +} + +// Dhcpv6LeaseStateRequest is the request to retrieve DHCP Server host allocated status. +type Dhcpv6LeaseStateRequest interface { + Validation + // msg marshals Dhcpv6LeaseStateRequest to protobuf object *otg.Dhcpv6LeaseStateRequest + // and doesn't set defaults + msg() *otg.Dhcpv6LeaseStateRequest + // setMsg unmarshals Dhcpv6LeaseStateRequest from protobuf object *otg.Dhcpv6LeaseStateRequest + // and doesn't set defaults + setMsg(*otg.Dhcpv6LeaseStateRequest) Dhcpv6LeaseStateRequest + // provides marshal interface + Marshal() marshalDhcpv6LeaseStateRequest + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6LeaseStateRequest + // validate validates Dhcpv6LeaseStateRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6LeaseStateRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // DhcpServerNames returns []string, set in Dhcpv6LeaseStateRequest. + DhcpServerNames() []string + // SetDhcpServerNames assigns []string provided by user to Dhcpv6LeaseStateRequest + SetDhcpServerNames(value []string) Dhcpv6LeaseStateRequest +} + +// The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6server/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6server/properties/name +// +// DhcpServerNames returns a []string +func (obj *dhcpv6LeaseStateRequest) DhcpServerNames() []string { + if obj.obj.DhcpServerNames == nil { + obj.obj.DhcpServerNames = make([]string, 0) + } + return obj.obj.DhcpServerNames +} + +// The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6server/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6server/properties/name +// +// SetDhcpServerNames sets the []string value in the Dhcpv6LeaseStateRequest object +func (obj *dhcpv6LeaseStateRequest) SetDhcpServerNames(value []string) Dhcpv6LeaseStateRequest { + + if obj.obj.DhcpServerNames == nil { + obj.obj.DhcpServerNames = make([]string, 0) + } + obj.obj.DhcpServerNames = value + + return obj +} + +func (obj *dhcpv6LeaseStateRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6LeaseStateRequest) setDefault() { + +} diff --git a/gosnappi/dhcpv6_leases_state.go b/gosnappi/dhcpv6_leases_state.go new file mode 100644 index 00000000..b0b86cc1 --- /dev/null +++ b/gosnappi/dhcpv6_leases_state.go @@ -0,0 +1,418 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6LeasesState ***** +type dhcpv6LeasesState struct { + validation + obj *otg.Dhcpv6LeasesState + marshaller marshalDhcpv6LeasesState + unMarshaller unMarshalDhcpv6LeasesState + leasesHolder Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter +} + +func NewDhcpv6LeasesState() Dhcpv6LeasesState { + obj := dhcpv6LeasesState{obj: &otg.Dhcpv6LeasesState{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6LeasesState) msg() *otg.Dhcpv6LeasesState { + return obj.obj +} + +func (obj *dhcpv6LeasesState) setMsg(msg *otg.Dhcpv6LeasesState) Dhcpv6LeasesState { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6LeasesState struct { + obj *dhcpv6LeasesState +} + +type marshalDhcpv6LeasesState interface { + // ToProto marshals Dhcpv6LeasesState to protobuf object *otg.Dhcpv6LeasesState + ToProto() (*otg.Dhcpv6LeasesState, error) + // ToPbText marshals Dhcpv6LeasesState to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6LeasesState to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6LeasesState to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6LeasesState struct { + obj *dhcpv6LeasesState +} + +type unMarshalDhcpv6LeasesState interface { + // FromProto unmarshals Dhcpv6LeasesState from protobuf object *otg.Dhcpv6LeasesState + FromProto(msg *otg.Dhcpv6LeasesState) (Dhcpv6LeasesState, error) + // FromPbText unmarshals Dhcpv6LeasesState from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6LeasesState from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6LeasesState from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6LeasesState) Marshal() marshalDhcpv6LeasesState { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6LeasesState{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6LeasesState) Unmarshal() unMarshalDhcpv6LeasesState { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6LeasesState{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6LeasesState) ToProto() (*otg.Dhcpv6LeasesState, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6LeasesState) FromProto(msg *otg.Dhcpv6LeasesState) (Dhcpv6LeasesState, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6LeasesState) 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 *unMarshaldhcpv6LeasesState) 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 *marshaldhcpv6LeasesState) 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 *unMarshaldhcpv6LeasesState) 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 *marshaldhcpv6LeasesState) 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 *unMarshaldhcpv6LeasesState) 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 *dhcpv6LeasesState) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6LeasesState) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6LeasesState) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6LeasesState) Clone() (Dhcpv6LeasesState, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6LeasesState() + 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 *dhcpv6LeasesState) setNil() { + obj.leasesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6LeasesState is lease information of DHCP Server. +type Dhcpv6LeasesState interface { + Validation + // msg marshals Dhcpv6LeasesState to protobuf object *otg.Dhcpv6LeasesState + // and doesn't set defaults + msg() *otg.Dhcpv6LeasesState + // setMsg unmarshals Dhcpv6LeasesState from protobuf object *otg.Dhcpv6LeasesState + // and doesn't set defaults + setMsg(*otg.Dhcpv6LeasesState) Dhcpv6LeasesState + // provides marshal interface + Marshal() marshalDhcpv6LeasesState + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6LeasesState + // validate validates Dhcpv6LeasesState + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6LeasesState, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // DhcpServerName returns string, set in Dhcpv6LeasesState. + DhcpServerName() string + // SetDhcpServerName assigns string provided by user to Dhcpv6LeasesState + SetDhcpServerName(value string) Dhcpv6LeasesState + // HasDhcpServerName checks if DhcpServerName has been set in Dhcpv6LeasesState + HasDhcpServerName() bool + // Leases returns Dhcpv6LeasesStateDhcpv6ServerLeaseStateIterIter, set in Dhcpv6LeasesState + Leases() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + setNil() +} + +// The name of a DHCP Server. +// DhcpServerName returns a string +func (obj *dhcpv6LeasesState) DhcpServerName() string { + + return *obj.obj.DhcpServerName + +} + +// The name of a DHCP Server. +// DhcpServerName returns a string +func (obj *dhcpv6LeasesState) HasDhcpServerName() bool { + return obj.obj.DhcpServerName != nil +} + +// The name of a DHCP Server. +// SetDhcpServerName sets the string value in the Dhcpv6LeasesState object +func (obj *dhcpv6LeasesState) SetDhcpServerName(value string) Dhcpv6LeasesState { + + obj.obj.DhcpServerName = &value + return obj +} + +// description is TBD +// Leases returns a []Dhcpv6ServerLeaseState +func (obj *dhcpv6LeasesState) Leases() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + if len(obj.obj.Leases) == 0 { + obj.obj.Leases = []*otg.Dhcpv6ServerLeaseState{} + } + if obj.leasesHolder == nil { + obj.leasesHolder = newDhcpv6LeasesStateDhcpv6ServerLeaseStateIter(&obj.obj.Leases).setMsg(obj) + } + return obj.leasesHolder +} + +type dhcpv6LeasesStateDhcpv6ServerLeaseStateIter struct { + obj *dhcpv6LeasesState + dhcpv6ServerLeaseStateSlice []Dhcpv6ServerLeaseState + fieldPtr *[]*otg.Dhcpv6ServerLeaseState +} + +func newDhcpv6LeasesStateDhcpv6ServerLeaseStateIter(ptr *[]*otg.Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + return &dhcpv6LeasesStateDhcpv6ServerLeaseStateIter{fieldPtr: ptr} +} + +type Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter interface { + setMsg(*dhcpv6LeasesState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + Items() []Dhcpv6ServerLeaseState + Add() Dhcpv6ServerLeaseState + Append(items ...Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + Set(index int, newObj Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + Clear() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + clearHolderSlice() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter + appendHolderSlice(item Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter +} + +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) setMsg(msg *dhcpv6LeasesState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ServerLeaseState{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) Items() []Dhcpv6ServerLeaseState { + return obj.dhcpv6ServerLeaseStateSlice +} + +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) Add() Dhcpv6ServerLeaseState { + newObj := &otg.Dhcpv6ServerLeaseState{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ServerLeaseState{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ServerLeaseStateSlice = append(obj.dhcpv6ServerLeaseStateSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) Append(items ...Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ServerLeaseStateSlice = append(obj.dhcpv6ServerLeaseStateSlice, item) + } + return obj +} + +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) Set(index int, newObj Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ServerLeaseStateSlice[index] = newObj + return obj +} +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) Clear() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ServerLeaseState{} + obj.dhcpv6ServerLeaseStateSlice = []Dhcpv6ServerLeaseState{} + } + return obj +} +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) clearHolderSlice() Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + if len(obj.dhcpv6ServerLeaseStateSlice) > 0 { + obj.dhcpv6ServerLeaseStateSlice = []Dhcpv6ServerLeaseState{} + } + return obj +} +func (obj *dhcpv6LeasesStateDhcpv6ServerLeaseStateIter) appendHolderSlice(item Dhcpv6ServerLeaseState) Dhcpv6LeasesStateDhcpv6ServerLeaseStateIter { + obj.dhcpv6ServerLeaseStateSlice = append(obj.dhcpv6ServerLeaseStateSlice, item) + return obj +} + +func (obj *dhcpv6LeasesState) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.Leases) != 0 { + + if set_default { + obj.Leases().clearHolderSlice() + for _, item := range obj.obj.Leases { + obj.Leases().appendHolderSlice(&dhcpv6ServerLeaseState{obj: item}) + } + } + for _, item := range obj.Leases().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *dhcpv6LeasesState) setDefault() { + +} diff --git a/gosnappi/dhcpv6_options_vendor_specific_options.go b/gosnappi/dhcpv6_options_vendor_specific_options.go new file mode 100644 index 00000000..edb95d1e --- /dev/null +++ b/gosnappi/dhcpv6_options_vendor_specific_options.go @@ -0,0 +1,336 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6OptionsVendorSpecificOptions ***** +type dhcpv6OptionsVendorSpecificOptions struct { + validation + obj *otg.Dhcpv6OptionsVendorSpecificOptions + marshaller marshalDhcpv6OptionsVendorSpecificOptions + unMarshaller unMarshalDhcpv6OptionsVendorSpecificOptions +} + +func NewDhcpv6OptionsVendorSpecificOptions() Dhcpv6OptionsVendorSpecificOptions { + obj := dhcpv6OptionsVendorSpecificOptions{obj: &otg.Dhcpv6OptionsVendorSpecificOptions{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) msg() *otg.Dhcpv6OptionsVendorSpecificOptions { + return obj.obj +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) setMsg(msg *otg.Dhcpv6OptionsVendorSpecificOptions) Dhcpv6OptionsVendorSpecificOptions { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6OptionsVendorSpecificOptions struct { + obj *dhcpv6OptionsVendorSpecificOptions +} + +type marshalDhcpv6OptionsVendorSpecificOptions interface { + // ToProto marshals Dhcpv6OptionsVendorSpecificOptions to protobuf object *otg.Dhcpv6OptionsVendorSpecificOptions + ToProto() (*otg.Dhcpv6OptionsVendorSpecificOptions, error) + // ToPbText marshals Dhcpv6OptionsVendorSpecificOptions to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6OptionsVendorSpecificOptions to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6OptionsVendorSpecificOptions to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6OptionsVendorSpecificOptions struct { + obj *dhcpv6OptionsVendorSpecificOptions +} + +type unMarshalDhcpv6OptionsVendorSpecificOptions interface { + // FromProto unmarshals Dhcpv6OptionsVendorSpecificOptions from protobuf object *otg.Dhcpv6OptionsVendorSpecificOptions + FromProto(msg *otg.Dhcpv6OptionsVendorSpecificOptions) (Dhcpv6OptionsVendorSpecificOptions, error) + // FromPbText unmarshals Dhcpv6OptionsVendorSpecificOptions from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6OptionsVendorSpecificOptions from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6OptionsVendorSpecificOptions from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) Marshal() marshalDhcpv6OptionsVendorSpecificOptions { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6OptionsVendorSpecificOptions{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) Unmarshal() unMarshalDhcpv6OptionsVendorSpecificOptions { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6OptionsVendorSpecificOptions{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6OptionsVendorSpecificOptions) ToProto() (*otg.Dhcpv6OptionsVendorSpecificOptions, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6OptionsVendorSpecificOptions) FromProto(msg *otg.Dhcpv6OptionsVendorSpecificOptions) (Dhcpv6OptionsVendorSpecificOptions, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6OptionsVendorSpecificOptions) 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 *unMarshaldhcpv6OptionsVendorSpecificOptions) 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 *marshaldhcpv6OptionsVendorSpecificOptions) 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 *unMarshaldhcpv6OptionsVendorSpecificOptions) 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 *marshaldhcpv6OptionsVendorSpecificOptions) 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 *unMarshaldhcpv6OptionsVendorSpecificOptions) 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 *dhcpv6OptionsVendorSpecificOptions) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) Clone() (Dhcpv6OptionsVendorSpecificOptions, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6OptionsVendorSpecificOptions() + 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 +} + +// Dhcpv6OptionsVendorSpecificOptions is the encapsulated vendor-specific options field is encoded as a sequence of code/length/value fields of identical format to the DHCP options field. The option codes are defined by the vendor identified in the enterprise-number field and are not managed by IANA. +type Dhcpv6OptionsVendorSpecificOptions interface { + Validation + // msg marshals Dhcpv6OptionsVendorSpecificOptions to protobuf object *otg.Dhcpv6OptionsVendorSpecificOptions + // and doesn't set defaults + msg() *otg.Dhcpv6OptionsVendorSpecificOptions + // setMsg unmarshals Dhcpv6OptionsVendorSpecificOptions from protobuf object *otg.Dhcpv6OptionsVendorSpecificOptions + // and doesn't set defaults + setMsg(*otg.Dhcpv6OptionsVendorSpecificOptions) Dhcpv6OptionsVendorSpecificOptions + // provides marshal interface + Marshal() marshalDhcpv6OptionsVendorSpecificOptions + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6OptionsVendorSpecificOptions + // validate validates Dhcpv6OptionsVendorSpecificOptions + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6OptionsVendorSpecificOptions, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Code returns uint32, set in Dhcpv6OptionsVendorSpecificOptions. + Code() uint32 + // SetCode assigns uint32 provided by user to Dhcpv6OptionsVendorSpecificOptions + SetCode(value uint32) Dhcpv6OptionsVendorSpecificOptions + // Data returns string, set in Dhcpv6OptionsVendorSpecificOptions. + Data() string + // SetData assigns string provided by user to Dhcpv6OptionsVendorSpecificOptions + SetData(value string) Dhcpv6OptionsVendorSpecificOptions +} + +// The code for the encapsulated option. +// Code returns a uint32 +func (obj *dhcpv6OptionsVendorSpecificOptions) Code() uint32 { + + return *obj.obj.Code + +} + +// The code for the encapsulated option. +// SetCode sets the uint32 value in the Dhcpv6OptionsVendorSpecificOptions object +func (obj *dhcpv6OptionsVendorSpecificOptions) SetCode(value uint32) Dhcpv6OptionsVendorSpecificOptions { + + obj.obj.Code = &value + return obj +} + +// The data for the encapsulated option. +// Data returns a string +func (obj *dhcpv6OptionsVendorSpecificOptions) Data() string { + + return *obj.obj.Data + +} + +// The data for the encapsulated option. +// SetData sets the string value in the Dhcpv6OptionsVendorSpecificOptions object +func (obj *dhcpv6OptionsVendorSpecificOptions) SetData(value string) Dhcpv6OptionsVendorSpecificOptions { + + obj.obj.Data = &value + return obj +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Code is required + if obj.obj.Code == nil { + vObj.validationErrors = append(vObj.validationErrors, "Code is required field on interface Dhcpv6OptionsVendorSpecificOptions") + } + if obj.obj.Code != nil { + + if *obj.obj.Code > 65535 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6OptionsVendorSpecificOptions.Code <= 65535 but Got %d", *obj.obj.Code)) + } + + } + + // Data is required + if obj.obj.Data == nil { + vObj.validationErrors = append(vObj.validationErrors, "Data is required field on interface Dhcpv6OptionsVendorSpecificOptions") + } +} + +func (obj *dhcpv6OptionsVendorSpecificOptions) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_ia_type.go b/gosnappi/dhcpv6_server_ia_type.go new file mode 100644 index 00000000..f8611710 --- /dev/null +++ b/gosnappi/dhcpv6_server_ia_type.go @@ -0,0 +1,564 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerIaType ***** +type dhcpv6ServerIaType struct { + validation + obj *otg.Dhcpv6ServerIaType + marshaller marshalDhcpv6ServerIaType + unMarshaller unMarshalDhcpv6ServerIaType + ianaHolder Dhcpv6ServerPoolInfo + iataHolder Dhcpv6ServerPoolInfo + iapdHolder Dhcpv6ServerIapdPoolInfo + ianapdHolder Dhcpv6ServerIanapdPoolInfo +} + +func NewDhcpv6ServerIaType() Dhcpv6ServerIaType { + obj := dhcpv6ServerIaType{obj: &otg.Dhcpv6ServerIaType{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerIaType) msg() *otg.Dhcpv6ServerIaType { + return obj.obj +} + +func (obj *dhcpv6ServerIaType) setMsg(msg *otg.Dhcpv6ServerIaType) Dhcpv6ServerIaType { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerIaType struct { + obj *dhcpv6ServerIaType +} + +type marshalDhcpv6ServerIaType interface { + // ToProto marshals Dhcpv6ServerIaType to protobuf object *otg.Dhcpv6ServerIaType + ToProto() (*otg.Dhcpv6ServerIaType, error) + // ToPbText marshals Dhcpv6ServerIaType to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerIaType to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerIaType to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerIaType struct { + obj *dhcpv6ServerIaType +} + +type unMarshalDhcpv6ServerIaType interface { + // FromProto unmarshals Dhcpv6ServerIaType from protobuf object *otg.Dhcpv6ServerIaType + FromProto(msg *otg.Dhcpv6ServerIaType) (Dhcpv6ServerIaType, error) + // FromPbText unmarshals Dhcpv6ServerIaType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerIaType from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerIaType from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerIaType) Marshal() marshalDhcpv6ServerIaType { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerIaType{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerIaType) Unmarshal() unMarshalDhcpv6ServerIaType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerIaType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerIaType) ToProto() (*otg.Dhcpv6ServerIaType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerIaType) FromProto(msg *otg.Dhcpv6ServerIaType) (Dhcpv6ServerIaType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerIaType) 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 *unMarshaldhcpv6ServerIaType) 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 *marshaldhcpv6ServerIaType) 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 *unMarshaldhcpv6ServerIaType) 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 *marshaldhcpv6ServerIaType) 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 *unMarshaldhcpv6ServerIaType) 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 *dhcpv6ServerIaType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIaType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIaType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerIaType) Clone() (Dhcpv6ServerIaType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerIaType() + 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 *dhcpv6ServerIaType) setNil() { + obj.ianaHolder = nil + obj.iataHolder = nil + obj.iapdHolder = nil + obj.ianapdHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerIaType is description is TBD +type Dhcpv6ServerIaType interface { + Validation + // msg marshals Dhcpv6ServerIaType to protobuf object *otg.Dhcpv6ServerIaType + // and doesn't set defaults + msg() *otg.Dhcpv6ServerIaType + // setMsg unmarshals Dhcpv6ServerIaType from protobuf object *otg.Dhcpv6ServerIaType + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerIaType) Dhcpv6ServerIaType + // provides marshal interface + Marshal() marshalDhcpv6ServerIaType + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerIaType + // validate validates Dhcpv6ServerIaType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerIaType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ServerIaTypeChoiceEnum, set in Dhcpv6ServerIaType + Choice() Dhcpv6ServerIaTypeChoiceEnum + // setChoice assigns Dhcpv6ServerIaTypeChoiceEnum provided by user to Dhcpv6ServerIaType + setChoice(value Dhcpv6ServerIaTypeChoiceEnum) Dhcpv6ServerIaType + // HasChoice checks if Choice has been set in Dhcpv6ServerIaType + HasChoice() bool + // Iana returns Dhcpv6ServerPoolInfo, set in Dhcpv6ServerIaType. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + Iana() Dhcpv6ServerPoolInfo + // SetIana assigns Dhcpv6ServerPoolInfo provided by user to Dhcpv6ServerIaType. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + SetIana(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIaType + // HasIana checks if Iana has been set in Dhcpv6ServerIaType + HasIana() bool + // Iata returns Dhcpv6ServerPoolInfo, set in Dhcpv6ServerIaType. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + Iata() Dhcpv6ServerPoolInfo + // SetIata assigns Dhcpv6ServerPoolInfo provided by user to Dhcpv6ServerIaType. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + SetIata(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIaType + // HasIata checks if Iata has been set in Dhcpv6ServerIaType + HasIata() bool + // Iapd returns Dhcpv6ServerIapdPoolInfo, set in Dhcpv6ServerIaType. + // Dhcpv6ServerIapdPoolInfo is the container for prefix pool configurations for IA type iapd. + Iapd() Dhcpv6ServerIapdPoolInfo + // SetIapd assigns Dhcpv6ServerIapdPoolInfo provided by user to Dhcpv6ServerIaType. + // Dhcpv6ServerIapdPoolInfo is the container for prefix pool configurations for IA type iapd. + SetIapd(value Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIaType + // HasIapd checks if Iapd has been set in Dhcpv6ServerIaType + HasIapd() bool + // Ianapd returns Dhcpv6ServerIanapdPoolInfo, set in Dhcpv6ServerIaType. + // Dhcpv6ServerIanapdPoolInfo is the container for pool configurations for IA type ianapd. + Ianapd() Dhcpv6ServerIanapdPoolInfo + // SetIanapd assigns Dhcpv6ServerIanapdPoolInfo provided by user to Dhcpv6ServerIaType. + // Dhcpv6ServerIanapdPoolInfo is the container for pool configurations for IA type ianapd. + SetIanapd(value Dhcpv6ServerIanapdPoolInfo) Dhcpv6ServerIaType + // HasIanapd checks if Ianapd has been set in Dhcpv6ServerIaType + HasIanapd() bool + setNil() +} + +type Dhcpv6ServerIaTypeChoiceEnum string + +// Enum of Choice on Dhcpv6ServerIaType +var Dhcpv6ServerIaTypeChoice = struct { + IANA Dhcpv6ServerIaTypeChoiceEnum + IATA Dhcpv6ServerIaTypeChoiceEnum + IAPD Dhcpv6ServerIaTypeChoiceEnum + IANAPD Dhcpv6ServerIaTypeChoiceEnum +}{ + IANA: Dhcpv6ServerIaTypeChoiceEnum("iana"), + IATA: Dhcpv6ServerIaTypeChoiceEnum("iata"), + IAPD: Dhcpv6ServerIaTypeChoiceEnum("iapd"), + IANAPD: Dhcpv6ServerIaTypeChoiceEnum("ianapd"), +} + +func (obj *dhcpv6ServerIaType) Choice() Dhcpv6ServerIaTypeChoiceEnum { + return Dhcpv6ServerIaTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// Identity Association: a collection of leases assigned to a client. Each IA has an associated IAID. Each IA holds one type of lease, like an identity association for temporary addresses (IA_TA) holds temporary addresses, and an identity association for prefix delegation (IA_PD). +// Choice returns a string +func (obj *dhcpv6ServerIaType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ServerIaType) setChoice(value Dhcpv6ServerIaTypeChoiceEnum) Dhcpv6ServerIaType { + intValue, ok := otg.Dhcpv6ServerIaType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ServerIaTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ServerIaType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.Ianapd = nil + obj.ianapdHolder = nil + obj.obj.Iapd = nil + obj.iapdHolder = nil + obj.obj.Iata = nil + obj.iataHolder = nil + obj.obj.Iana = nil + obj.ianaHolder = nil + + if value == Dhcpv6ServerIaTypeChoice.IANA { + obj.obj.Iana = NewDhcpv6ServerPoolInfo().msg() + } + + if value == Dhcpv6ServerIaTypeChoice.IATA { + obj.obj.Iata = NewDhcpv6ServerPoolInfo().msg() + } + + if value == Dhcpv6ServerIaTypeChoice.IAPD { + obj.obj.Iapd = NewDhcpv6ServerIapdPoolInfo().msg() + } + + if value == Dhcpv6ServerIaTypeChoice.IANAPD { + obj.obj.Ianapd = NewDhcpv6ServerIanapdPoolInfo().msg() + } + + return obj +} + +// description is TBD +// Iana returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIaType) Iana() Dhcpv6ServerPoolInfo { + if obj.obj.Iana == nil { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IANA) + } + if obj.ianaHolder == nil { + obj.ianaHolder = &dhcpv6ServerPoolInfo{obj: obj.obj.Iana} + } + return obj.ianaHolder +} + +// description is TBD +// Iana returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIaType) HasIana() bool { + return obj.obj.Iana != nil +} + +// description is TBD +// SetIana sets the Dhcpv6ServerPoolInfo value in the Dhcpv6ServerIaType object +func (obj *dhcpv6ServerIaType) SetIana(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIaType { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IANA) + obj.ianaHolder = nil + obj.obj.Iana = value.msg() + + return obj +} + +// description is TBD +// Iata returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIaType) Iata() Dhcpv6ServerPoolInfo { + if obj.obj.Iata == nil { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IATA) + } + if obj.iataHolder == nil { + obj.iataHolder = &dhcpv6ServerPoolInfo{obj: obj.obj.Iata} + } + return obj.iataHolder +} + +// description is TBD +// Iata returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIaType) HasIata() bool { + return obj.obj.Iata != nil +} + +// description is TBD +// SetIata sets the Dhcpv6ServerPoolInfo value in the Dhcpv6ServerIaType object +func (obj *dhcpv6ServerIaType) SetIata(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIaType { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IATA) + obj.iataHolder = nil + obj.obj.Iata = value.msg() + + return obj +} + +// description is TBD +// Iapd returns a Dhcpv6ServerIapdPoolInfo +func (obj *dhcpv6ServerIaType) Iapd() Dhcpv6ServerIapdPoolInfo { + if obj.obj.Iapd == nil { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IAPD) + } + if obj.iapdHolder == nil { + obj.iapdHolder = &dhcpv6ServerIapdPoolInfo{obj: obj.obj.Iapd} + } + return obj.iapdHolder +} + +// description is TBD +// Iapd returns a Dhcpv6ServerIapdPoolInfo +func (obj *dhcpv6ServerIaType) HasIapd() bool { + return obj.obj.Iapd != nil +} + +// description is TBD +// SetIapd sets the Dhcpv6ServerIapdPoolInfo value in the Dhcpv6ServerIaType object +func (obj *dhcpv6ServerIaType) SetIapd(value Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIaType { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IAPD) + obj.iapdHolder = nil + obj.obj.Iapd = value.msg() + + return obj +} + +// description is TBD +// Ianapd returns a Dhcpv6ServerIanapdPoolInfo +func (obj *dhcpv6ServerIaType) Ianapd() Dhcpv6ServerIanapdPoolInfo { + if obj.obj.Ianapd == nil { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IANAPD) + } + if obj.ianapdHolder == nil { + obj.ianapdHolder = &dhcpv6ServerIanapdPoolInfo{obj: obj.obj.Ianapd} + } + return obj.ianapdHolder +} + +// description is TBD +// Ianapd returns a Dhcpv6ServerIanapdPoolInfo +func (obj *dhcpv6ServerIaType) HasIanapd() bool { + return obj.obj.Ianapd != nil +} + +// description is TBD +// SetIanapd sets the Dhcpv6ServerIanapdPoolInfo value in the Dhcpv6ServerIaType object +func (obj *dhcpv6ServerIaType) SetIanapd(value Dhcpv6ServerIanapdPoolInfo) Dhcpv6ServerIaType { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IANAPD) + obj.ianapdHolder = nil + obj.obj.Ianapd = value.msg() + + return obj +} + +func (obj *dhcpv6ServerIaType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Iana != nil { + + obj.Iana().validateObj(vObj, set_default) + } + + if obj.obj.Iata != nil { + + obj.Iata().validateObj(vObj, set_default) + } + + if obj.obj.Iapd != nil { + + obj.Iapd().validateObj(vObj, set_default) + } + + if obj.obj.Ianapd != nil { + + obj.Ianapd().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ServerIaType) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ServerIaTypeChoiceEnum + + if obj.obj.Iana != nil { + choices_set += 1 + choice = Dhcpv6ServerIaTypeChoice.IANA + } + + if obj.obj.Iata != nil { + choices_set += 1 + choice = Dhcpv6ServerIaTypeChoice.IATA + } + + if obj.obj.Iapd != nil { + choices_set += 1 + choice = Dhcpv6ServerIaTypeChoice.IAPD + } + + if obj.obj.Ianapd != nil { + choices_set += 1 + choice = Dhcpv6ServerIaTypeChoice.IANAPD + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ServerIaTypeChoice.IANA) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ServerIaType") + } + } else { + intVal := otg.Dhcpv6ServerIaType_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ServerIaType_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_server_ianapd_pool_info.go b/gosnappi/dhcpv6_server_ianapd_pool_info.go new file mode 100644 index 00000000..615b42c1 --- /dev/null +++ b/gosnappi/dhcpv6_server_ianapd_pool_info.go @@ -0,0 +1,371 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerIanapdPoolInfo ***** +type dhcpv6ServerIanapdPoolInfo struct { + validation + obj *otg.Dhcpv6ServerIanapdPoolInfo + marshaller marshalDhcpv6ServerIanapdPoolInfo + unMarshaller unMarshalDhcpv6ServerIanapdPoolInfo + ianaHolder Dhcpv6ServerPoolInfo + iapdHolder Dhcpv6ServerIapdPoolInfo +} + +func NewDhcpv6ServerIanapdPoolInfo() Dhcpv6ServerIanapdPoolInfo { + obj := dhcpv6ServerIanapdPoolInfo{obj: &otg.Dhcpv6ServerIanapdPoolInfo{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerIanapdPoolInfo) msg() *otg.Dhcpv6ServerIanapdPoolInfo { + return obj.obj +} + +func (obj *dhcpv6ServerIanapdPoolInfo) setMsg(msg *otg.Dhcpv6ServerIanapdPoolInfo) Dhcpv6ServerIanapdPoolInfo { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerIanapdPoolInfo struct { + obj *dhcpv6ServerIanapdPoolInfo +} + +type marshalDhcpv6ServerIanapdPoolInfo interface { + // ToProto marshals Dhcpv6ServerIanapdPoolInfo to protobuf object *otg.Dhcpv6ServerIanapdPoolInfo + ToProto() (*otg.Dhcpv6ServerIanapdPoolInfo, error) + // ToPbText marshals Dhcpv6ServerIanapdPoolInfo to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerIanapdPoolInfo to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerIanapdPoolInfo to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerIanapdPoolInfo struct { + obj *dhcpv6ServerIanapdPoolInfo +} + +type unMarshalDhcpv6ServerIanapdPoolInfo interface { + // FromProto unmarshals Dhcpv6ServerIanapdPoolInfo from protobuf object *otg.Dhcpv6ServerIanapdPoolInfo + FromProto(msg *otg.Dhcpv6ServerIanapdPoolInfo) (Dhcpv6ServerIanapdPoolInfo, error) + // FromPbText unmarshals Dhcpv6ServerIanapdPoolInfo from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerIanapdPoolInfo from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerIanapdPoolInfo from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerIanapdPoolInfo) Marshal() marshalDhcpv6ServerIanapdPoolInfo { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerIanapdPoolInfo{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerIanapdPoolInfo) Unmarshal() unMarshalDhcpv6ServerIanapdPoolInfo { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerIanapdPoolInfo{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerIanapdPoolInfo) ToProto() (*otg.Dhcpv6ServerIanapdPoolInfo, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerIanapdPoolInfo) FromProto(msg *otg.Dhcpv6ServerIanapdPoolInfo) (Dhcpv6ServerIanapdPoolInfo, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerIanapdPoolInfo) 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 *unMarshaldhcpv6ServerIanapdPoolInfo) 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 *marshaldhcpv6ServerIanapdPoolInfo) 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 *unMarshaldhcpv6ServerIanapdPoolInfo) 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 *marshaldhcpv6ServerIanapdPoolInfo) 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 *unMarshaldhcpv6ServerIanapdPoolInfo) 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 *dhcpv6ServerIanapdPoolInfo) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIanapdPoolInfo) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIanapdPoolInfo) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerIanapdPoolInfo) Clone() (Dhcpv6ServerIanapdPoolInfo, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerIanapdPoolInfo() + 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 *dhcpv6ServerIanapdPoolInfo) setNil() { + obj.ianaHolder = nil + obj.iapdHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerIanapdPoolInfo is the container for pool configurations for IA type ianapd. +type Dhcpv6ServerIanapdPoolInfo interface { + Validation + // msg marshals Dhcpv6ServerIanapdPoolInfo to protobuf object *otg.Dhcpv6ServerIanapdPoolInfo + // and doesn't set defaults + msg() *otg.Dhcpv6ServerIanapdPoolInfo + // setMsg unmarshals Dhcpv6ServerIanapdPoolInfo from protobuf object *otg.Dhcpv6ServerIanapdPoolInfo + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerIanapdPoolInfo) Dhcpv6ServerIanapdPoolInfo + // provides marshal interface + Marshal() marshalDhcpv6ServerIanapdPoolInfo + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerIanapdPoolInfo + // validate validates Dhcpv6ServerIanapdPoolInfo + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerIanapdPoolInfo, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Iana returns Dhcpv6ServerPoolInfo, set in Dhcpv6ServerIanapdPoolInfo. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + Iana() Dhcpv6ServerPoolInfo + // SetIana assigns Dhcpv6ServerPoolInfo provided by user to Dhcpv6ServerIanapdPoolInfo. + // Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. + SetIana(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIanapdPoolInfo + // HasIana checks if Iana has been set in Dhcpv6ServerIanapdPoolInfo + HasIana() bool + // Iapd returns Dhcpv6ServerIapdPoolInfo, set in Dhcpv6ServerIanapdPoolInfo. + // Dhcpv6ServerIapdPoolInfo is the container for prefix pool configurations for IA type iapd. + Iapd() Dhcpv6ServerIapdPoolInfo + // SetIapd assigns Dhcpv6ServerIapdPoolInfo provided by user to Dhcpv6ServerIanapdPoolInfo. + // Dhcpv6ServerIapdPoolInfo is the container for prefix pool configurations for IA type iapd. + SetIapd(value Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIanapdPoolInfo + // HasIapd checks if Iapd has been set in Dhcpv6ServerIanapdPoolInfo + HasIapd() bool + setNil() +} + +// The pool configurations for IA types iana in ianapd. +// Iana returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIanapdPoolInfo) Iana() Dhcpv6ServerPoolInfo { + if obj.obj.Iana == nil { + obj.obj.Iana = NewDhcpv6ServerPoolInfo().msg() + } + if obj.ianaHolder == nil { + obj.ianaHolder = &dhcpv6ServerPoolInfo{obj: obj.obj.Iana} + } + return obj.ianaHolder +} + +// The pool configurations for IA types iana in ianapd. +// Iana returns a Dhcpv6ServerPoolInfo +func (obj *dhcpv6ServerIanapdPoolInfo) HasIana() bool { + return obj.obj.Iana != nil +} + +// The pool configurations for IA types iana in ianapd. +// SetIana sets the Dhcpv6ServerPoolInfo value in the Dhcpv6ServerIanapdPoolInfo object +func (obj *dhcpv6ServerIanapdPoolInfo) SetIana(value Dhcpv6ServerPoolInfo) Dhcpv6ServerIanapdPoolInfo { + + obj.ianaHolder = nil + obj.obj.Iana = value.msg() + + return obj +} + +// The pool configurations for IA types iapd in ianapd. +// Iapd returns a Dhcpv6ServerIapdPoolInfo +func (obj *dhcpv6ServerIanapdPoolInfo) Iapd() Dhcpv6ServerIapdPoolInfo { + if obj.obj.Iapd == nil { + obj.obj.Iapd = NewDhcpv6ServerIapdPoolInfo().msg() + } + if obj.iapdHolder == nil { + obj.iapdHolder = &dhcpv6ServerIapdPoolInfo{obj: obj.obj.Iapd} + } + return obj.iapdHolder +} + +// The pool configurations for IA types iapd in ianapd. +// Iapd returns a Dhcpv6ServerIapdPoolInfo +func (obj *dhcpv6ServerIanapdPoolInfo) HasIapd() bool { + return obj.obj.Iapd != nil +} + +// The pool configurations for IA types iapd in ianapd. +// SetIapd sets the Dhcpv6ServerIapdPoolInfo value in the Dhcpv6ServerIanapdPoolInfo object +func (obj *dhcpv6ServerIanapdPoolInfo) SetIapd(value Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIanapdPoolInfo { + + obj.iapdHolder = nil + obj.obj.Iapd = value.msg() + + return obj +} + +func (obj *dhcpv6ServerIanapdPoolInfo) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Iana != nil { + + obj.Iana().validateObj(vObj, set_default) + } + + if obj.obj.Iapd != nil { + + obj.Iapd().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ServerIanapdPoolInfo) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_iapd_pool_info.go b/gosnappi/dhcpv6_server_iapd_pool_info.go new file mode 100644 index 00000000..ffcd9ef6 --- /dev/null +++ b/gosnappi/dhcpv6_server_iapd_pool_info.go @@ -0,0 +1,479 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerIapdPoolInfo ***** +type dhcpv6ServerIapdPoolInfo struct { + validation + obj *otg.Dhcpv6ServerIapdPoolInfo + marshaller marshalDhcpv6ServerIapdPoolInfo + unMarshaller unMarshalDhcpv6ServerIapdPoolInfo +} + +func NewDhcpv6ServerIapdPoolInfo() Dhcpv6ServerIapdPoolInfo { + obj := dhcpv6ServerIapdPoolInfo{obj: &otg.Dhcpv6ServerIapdPoolInfo{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerIapdPoolInfo) msg() *otg.Dhcpv6ServerIapdPoolInfo { + return obj.obj +} + +func (obj *dhcpv6ServerIapdPoolInfo) setMsg(msg *otg.Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIapdPoolInfo { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerIapdPoolInfo struct { + obj *dhcpv6ServerIapdPoolInfo +} + +type marshalDhcpv6ServerIapdPoolInfo interface { + // ToProto marshals Dhcpv6ServerIapdPoolInfo to protobuf object *otg.Dhcpv6ServerIapdPoolInfo + ToProto() (*otg.Dhcpv6ServerIapdPoolInfo, error) + // ToPbText marshals Dhcpv6ServerIapdPoolInfo to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerIapdPoolInfo to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerIapdPoolInfo to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerIapdPoolInfo struct { + obj *dhcpv6ServerIapdPoolInfo +} + +type unMarshalDhcpv6ServerIapdPoolInfo interface { + // FromProto unmarshals Dhcpv6ServerIapdPoolInfo from protobuf object *otg.Dhcpv6ServerIapdPoolInfo + FromProto(msg *otg.Dhcpv6ServerIapdPoolInfo) (Dhcpv6ServerIapdPoolInfo, error) + // FromPbText unmarshals Dhcpv6ServerIapdPoolInfo from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerIapdPoolInfo from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerIapdPoolInfo from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerIapdPoolInfo) Marshal() marshalDhcpv6ServerIapdPoolInfo { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerIapdPoolInfo{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerIapdPoolInfo) Unmarshal() unMarshalDhcpv6ServerIapdPoolInfo { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerIapdPoolInfo{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerIapdPoolInfo) ToProto() (*otg.Dhcpv6ServerIapdPoolInfo, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerIapdPoolInfo) FromProto(msg *otg.Dhcpv6ServerIapdPoolInfo) (Dhcpv6ServerIapdPoolInfo, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerIapdPoolInfo) 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 *unMarshaldhcpv6ServerIapdPoolInfo) 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 *marshaldhcpv6ServerIapdPoolInfo) 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 *unMarshaldhcpv6ServerIapdPoolInfo) 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 *marshaldhcpv6ServerIapdPoolInfo) 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 *unMarshaldhcpv6ServerIapdPoolInfo) 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 *dhcpv6ServerIapdPoolInfo) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIapdPoolInfo) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerIapdPoolInfo) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerIapdPoolInfo) Clone() (Dhcpv6ServerIapdPoolInfo, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerIapdPoolInfo() + 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 +} + +// Dhcpv6ServerIapdPoolInfo is the container for prefix pool configurations for IA type iapd. +type Dhcpv6ServerIapdPoolInfo interface { + Validation + // msg marshals Dhcpv6ServerIapdPoolInfo to protobuf object *otg.Dhcpv6ServerIapdPoolInfo + // and doesn't set defaults + msg() *otg.Dhcpv6ServerIapdPoolInfo + // setMsg unmarshals Dhcpv6ServerIapdPoolInfo from protobuf object *otg.Dhcpv6ServerIapdPoolInfo + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerIapdPoolInfo) Dhcpv6ServerIapdPoolInfo + // provides marshal interface + Marshal() marshalDhcpv6ServerIapdPoolInfo + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerIapdPoolInfo + // validate validates Dhcpv6ServerIapdPoolInfo + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerIapdPoolInfo, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // StartPrefixAddress returns string, set in Dhcpv6ServerIapdPoolInfo. + StartPrefixAddress() string + // SetStartPrefixAddress assigns string provided by user to Dhcpv6ServerIapdPoolInfo + SetStartPrefixAddress(value string) Dhcpv6ServerIapdPoolInfo + // HasStartPrefixAddress checks if StartPrefixAddress has been set in Dhcpv6ServerIapdPoolInfo + HasStartPrefixAddress() bool + // ConfiguredPrefixLen returns uint32, set in Dhcpv6ServerIapdPoolInfo. + ConfiguredPrefixLen() uint32 + // SetConfiguredPrefixLen assigns uint32 provided by user to Dhcpv6ServerIapdPoolInfo + SetConfiguredPrefixLen(value uint32) Dhcpv6ServerIapdPoolInfo + // HasConfiguredPrefixLen checks if ConfiguredPrefixLen has been set in Dhcpv6ServerIapdPoolInfo + HasConfiguredPrefixLen() bool + // PrefixSize returns uint32, set in Dhcpv6ServerIapdPoolInfo. + PrefixSize() uint32 + // SetPrefixSize assigns uint32 provided by user to Dhcpv6ServerIapdPoolInfo + SetPrefixSize(value uint32) Dhcpv6ServerIapdPoolInfo + // HasPrefixSize checks if PrefixSize has been set in Dhcpv6ServerIapdPoolInfo + HasPrefixSize() bool + // PrefixStep returns uint32, set in Dhcpv6ServerIapdPoolInfo. + PrefixStep() uint32 + // SetPrefixStep assigns uint32 provided by user to Dhcpv6ServerIapdPoolInfo + SetPrefixStep(value uint32) Dhcpv6ServerIapdPoolInfo + // HasPrefixStep checks if PrefixStep has been set in Dhcpv6ServerIapdPoolInfo + HasPrefixStep() bool + // AdvertisedPrefixLen returns uint32, set in Dhcpv6ServerIapdPoolInfo. + AdvertisedPrefixLen() uint32 + // SetAdvertisedPrefixLen assigns uint32 provided by user to Dhcpv6ServerIapdPoolInfo + SetAdvertisedPrefixLen(value uint32) Dhcpv6ServerIapdPoolInfo + // HasAdvertisedPrefixLen checks if AdvertisedPrefixLen has been set in Dhcpv6ServerIapdPoolInfo + HasAdvertisedPrefixLen() bool +} + +// The first IP address of the prefix pool. +// StartPrefixAddress returns a string +func (obj *dhcpv6ServerIapdPoolInfo) StartPrefixAddress() string { + + return *obj.obj.StartPrefixAddress + +} + +// The first IP address of the prefix pool. +// StartPrefixAddress returns a string +func (obj *dhcpv6ServerIapdPoolInfo) HasStartPrefixAddress() bool { + return obj.obj.StartPrefixAddress != nil +} + +// The first IP address of the prefix pool. +// SetStartPrefixAddress sets the string value in the Dhcpv6ServerIapdPoolInfo object +func (obj *dhcpv6ServerIapdPoolInfo) SetStartPrefixAddress(value string) Dhcpv6ServerIapdPoolInfo { + + obj.obj.StartPrefixAddress = &value + return obj +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// ConfiguredPrefixLen returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) ConfiguredPrefixLen() uint32 { + + return *obj.obj.ConfiguredPrefixLen + +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// ConfiguredPrefixLen returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) HasConfiguredPrefixLen() bool { + return obj.obj.ConfiguredPrefixLen != nil +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// SetConfiguredPrefixLen sets the uint32 value in the Dhcpv6ServerIapdPoolInfo object +func (obj *dhcpv6ServerIapdPoolInfo) SetConfiguredPrefixLen(value uint32) Dhcpv6ServerIapdPoolInfo { + + obj.obj.ConfiguredPrefixLen = &value + return obj +} + +// The total number of addresses in the pool. +// PrefixSize returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) PrefixSize() uint32 { + + return *obj.obj.PrefixSize + +} + +// The total number of addresses in the pool. +// PrefixSize returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) HasPrefixSize() bool { + return obj.obj.PrefixSize != nil +} + +// The total number of addresses in the pool. +// SetPrefixSize sets the uint32 value in the Dhcpv6ServerIapdPoolInfo object +func (obj *dhcpv6ServerIapdPoolInfo) SetPrefixSize(value uint32) Dhcpv6ServerIapdPoolInfo { + + obj.obj.PrefixSize = &value + return obj +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. +// PrefixStep returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) PrefixStep() uint32 { + + return *obj.obj.PrefixStep + +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. +// PrefixStep returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) HasPrefixStep() bool { + return obj.obj.PrefixStep != nil +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. +// SetPrefixStep sets the uint32 value in the Dhcpv6ServerIapdPoolInfo object +func (obj *dhcpv6ServerIapdPoolInfo) SetPrefixStep(value uint32) Dhcpv6ServerIapdPoolInfo { + + obj.obj.PrefixStep = &value + return obj +} + +// The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 client. +// AdvertisedPrefixLen returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) AdvertisedPrefixLen() uint32 { + + return *obj.obj.AdvertisedPrefixLen + +} + +// The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 client. +// AdvertisedPrefixLen returns a uint32 +func (obj *dhcpv6ServerIapdPoolInfo) HasAdvertisedPrefixLen() bool { + return obj.obj.AdvertisedPrefixLen != nil +} + +// The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 client. +// SetAdvertisedPrefixLen sets the uint32 value in the Dhcpv6ServerIapdPoolInfo object +func (obj *dhcpv6ServerIapdPoolInfo) SetAdvertisedPrefixLen(value uint32) Dhcpv6ServerIapdPoolInfo { + + obj.obj.AdvertisedPrefixLen = &value + return obj +} + +func (obj *dhcpv6ServerIapdPoolInfo) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.StartPrefixAddress != nil { + + err := obj.validateIpv6(obj.StartPrefixAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on Dhcpv6ServerIapdPoolInfo.StartPrefixAddress")) + } + + } + + if obj.obj.ConfiguredPrefixLen != nil { + + if *obj.obj.ConfiguredPrefixLen > 128 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ServerIapdPoolInfo.ConfiguredPrefixLen <= 128 but Got %d", *obj.obj.ConfiguredPrefixLen)) + } + + } + + if obj.obj.PrefixSize != nil { + + if *obj.obj.PrefixSize < 1 || *obj.obj.PrefixSize > 1000000 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= Dhcpv6ServerIapdPoolInfo.PrefixSize <= 1000000 but Got %d", *obj.obj.PrefixSize)) + } + + } + + if obj.obj.PrefixStep != nil { + + if *obj.obj.PrefixStep < 1 || *obj.obj.PrefixStep > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= Dhcpv6ServerIapdPoolInfo.PrefixStep <= 4294967295 but Got %d", *obj.obj.PrefixStep)) + } + + } + + if obj.obj.AdvertisedPrefixLen != nil { + + if *obj.obj.AdvertisedPrefixLen > 128 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ServerIapdPoolInfo.AdvertisedPrefixLen <= 128 but Got %d", *obj.obj.AdvertisedPrefixLen)) + } + + } + +} + +func (obj *dhcpv6ServerIapdPoolInfo) setDefault() { + if obj.obj.ConfiguredPrefixLen == nil { + obj.SetConfiguredPrefixLen(64) + } + if obj.obj.PrefixSize == nil { + obj.SetPrefixSize(10) + } + if obj.obj.PrefixStep == nil { + obj.SetPrefixStep(1) + } + if obj.obj.AdvertisedPrefixLen == nil { + obj.SetAdvertisedPrefixLen(64) + } + +} diff --git a/gosnappi/dhcpv6_server_lease_state.go b/gosnappi/dhcpv6_server_lease_state.go new file mode 100644 index 00000000..3b9ee570 --- /dev/null +++ b/gosnappi/dhcpv6_server_lease_state.go @@ -0,0 +1,502 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerLeaseState ***** +type dhcpv6ServerLeaseState struct { + validation + obj *otg.Dhcpv6ServerLeaseState + marshaller marshalDhcpv6ServerLeaseState + unMarshaller unMarshalDhcpv6ServerLeaseState +} + +func NewDhcpv6ServerLeaseState() Dhcpv6ServerLeaseState { + obj := dhcpv6ServerLeaseState{obj: &otg.Dhcpv6ServerLeaseState{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerLeaseState) msg() *otg.Dhcpv6ServerLeaseState { + return obj.obj +} + +func (obj *dhcpv6ServerLeaseState) setMsg(msg *otg.Dhcpv6ServerLeaseState) Dhcpv6ServerLeaseState { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerLeaseState struct { + obj *dhcpv6ServerLeaseState +} + +type marshalDhcpv6ServerLeaseState interface { + // ToProto marshals Dhcpv6ServerLeaseState to protobuf object *otg.Dhcpv6ServerLeaseState + ToProto() (*otg.Dhcpv6ServerLeaseState, error) + // ToPbText marshals Dhcpv6ServerLeaseState to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerLeaseState to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerLeaseState to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerLeaseState struct { + obj *dhcpv6ServerLeaseState +} + +type unMarshalDhcpv6ServerLeaseState interface { + // FromProto unmarshals Dhcpv6ServerLeaseState from protobuf object *otg.Dhcpv6ServerLeaseState + FromProto(msg *otg.Dhcpv6ServerLeaseState) (Dhcpv6ServerLeaseState, error) + // FromPbText unmarshals Dhcpv6ServerLeaseState from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerLeaseState from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerLeaseState from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerLeaseState) Marshal() marshalDhcpv6ServerLeaseState { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerLeaseState{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerLeaseState) Unmarshal() unMarshalDhcpv6ServerLeaseState { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerLeaseState{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerLeaseState) ToProto() (*otg.Dhcpv6ServerLeaseState, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerLeaseState) FromProto(msg *otg.Dhcpv6ServerLeaseState) (Dhcpv6ServerLeaseState, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerLeaseState) 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 *unMarshaldhcpv6ServerLeaseState) 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 *marshaldhcpv6ServerLeaseState) 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 *unMarshaldhcpv6ServerLeaseState) 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 *marshaldhcpv6ServerLeaseState) 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 *unMarshaldhcpv6ServerLeaseState) 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 *dhcpv6ServerLeaseState) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerLeaseState) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerLeaseState) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerLeaseState) Clone() (Dhcpv6ServerLeaseState, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerLeaseState() + 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 +} + +// Dhcpv6ServerLeaseState is iPv6 unicast prefix. +type Dhcpv6ServerLeaseState interface { + Validation + // msg marshals Dhcpv6ServerLeaseState to protobuf object *otg.Dhcpv6ServerLeaseState + // and doesn't set defaults + msg() *otg.Dhcpv6ServerLeaseState + // setMsg unmarshals Dhcpv6ServerLeaseState from protobuf object *otg.Dhcpv6ServerLeaseState + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerLeaseState) Dhcpv6ServerLeaseState + // provides marshal interface + Marshal() marshalDhcpv6ServerLeaseState + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerLeaseState + // validate validates Dhcpv6ServerLeaseState + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerLeaseState, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Address returns string, set in Dhcpv6ServerLeaseState. + Address() string + // SetAddress assigns string provided by user to Dhcpv6ServerLeaseState + SetAddress(value string) Dhcpv6ServerLeaseState + // HasAddress checks if Address has been set in Dhcpv6ServerLeaseState + HasAddress() bool + // ValidTime returns uint32, set in Dhcpv6ServerLeaseState. + ValidTime() uint32 + // SetValidTime assigns uint32 provided by user to Dhcpv6ServerLeaseState + SetValidTime(value uint32) Dhcpv6ServerLeaseState + // HasValidTime checks if ValidTime has been set in Dhcpv6ServerLeaseState + HasValidTime() bool + // PreferredTime returns uint32, set in Dhcpv6ServerLeaseState. + PreferredTime() uint32 + // SetPreferredTime assigns uint32 provided by user to Dhcpv6ServerLeaseState + SetPreferredTime(value uint32) Dhcpv6ServerLeaseState + // HasPreferredTime checks if PreferredTime has been set in Dhcpv6ServerLeaseState + HasPreferredTime() bool + // RenewTime returns uint32, set in Dhcpv6ServerLeaseState. + RenewTime() uint32 + // SetRenewTime assigns uint32 provided by user to Dhcpv6ServerLeaseState + SetRenewTime(value uint32) Dhcpv6ServerLeaseState + // HasRenewTime checks if RenewTime has been set in Dhcpv6ServerLeaseState + HasRenewTime() bool + // RebindTime returns uint32, set in Dhcpv6ServerLeaseState. + RebindTime() uint32 + // SetRebindTime assigns uint32 provided by user to Dhcpv6ServerLeaseState + SetRebindTime(value uint32) Dhcpv6ServerLeaseState + // HasRebindTime checks if RebindTime has been set in Dhcpv6ServerLeaseState + HasRebindTime() bool + // ClientId returns string, set in Dhcpv6ServerLeaseState. + ClientId() string + // SetClientId assigns string provided by user to Dhcpv6ServerLeaseState + SetClientId(value string) Dhcpv6ServerLeaseState + // HasClientId checks if ClientId has been set in Dhcpv6ServerLeaseState + HasClientId() bool + // RemoteId returns string, set in Dhcpv6ServerLeaseState. + RemoteId() string + // SetRemoteId assigns string provided by user to Dhcpv6ServerLeaseState + SetRemoteId(value string) Dhcpv6ServerLeaseState + // HasRemoteId checks if RemoteId has been set in Dhcpv6ServerLeaseState + HasRemoteId() bool + // InterfaceId returns string, set in Dhcpv6ServerLeaseState. + InterfaceId() string + // SetInterfaceId assigns string provided by user to Dhcpv6ServerLeaseState + SetInterfaceId(value string) Dhcpv6ServerLeaseState + // HasInterfaceId checks if InterfaceId has been set in Dhcpv6ServerLeaseState + HasInterfaceId() bool +} + +// The IPv6 address associated with this lease. +// Address returns a string +func (obj *dhcpv6ServerLeaseState) Address() string { + + return *obj.obj.Address + +} + +// The IPv6 address associated with this lease. +// Address returns a string +func (obj *dhcpv6ServerLeaseState) HasAddress() bool { + return obj.obj.Address != nil +} + +// The IPv6 address associated with this lease. +// SetAddress sets the string value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetAddress(value string) Dhcpv6ServerLeaseState { + + obj.obj.Address = &value + return obj +} + +// The time in seconds, IP address lease will expire. +// ValidTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) ValidTime() uint32 { + + return *obj.obj.ValidTime + +} + +// The time in seconds, IP address lease will expire. +// ValidTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) HasValidTime() bool { + return obj.obj.ValidTime != nil +} + +// The time in seconds, IP address lease will expire. +// SetValidTime sets the uint32 value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetValidTime(value uint32) Dhcpv6ServerLeaseState { + + obj.obj.ValidTime = &value + return obj +} + +// The time in seconds, elapsed time since address has been renewed. +// PreferredTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) PreferredTime() uint32 { + + return *obj.obj.PreferredTime + +} + +// The time in seconds, elapsed time since address has been renewed. +// PreferredTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) HasPreferredTime() bool { + return obj.obj.PreferredTime != nil +} + +// The time in seconds, elapsed time since address has been renewed. +// SetPreferredTime sets the uint32 value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetPreferredTime(value uint32) Dhcpv6ServerLeaseState { + + obj.obj.PreferredTime = &value + return obj +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// RenewTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) RenewTime() uint32 { + + return *obj.obj.RenewTime + +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// RenewTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) HasRenewTime() bool { + return obj.obj.RenewTime != nil +} + +// Time in seconds until the DHCPv6 client starts renewing the lease. +// SetRenewTime sets the uint32 value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetRenewTime(value uint32) Dhcpv6ServerLeaseState { + + obj.obj.RenewTime = &value + return obj +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// RebindTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) RebindTime() uint32 { + + return *obj.obj.RebindTime + +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// RebindTime returns a uint32 +func (obj *dhcpv6ServerLeaseState) HasRebindTime() bool { + return obj.obj.RebindTime != nil +} + +// Time in seconds until the DHCPv6 client starts rebinding. +// SetRebindTime sets the uint32 value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetRebindTime(value uint32) Dhcpv6ServerLeaseState { + + obj.obj.RebindTime = &value + return obj +} + +// The ID of the DHCPv6 client holding this lease. +// ClientId returns a string +func (obj *dhcpv6ServerLeaseState) ClientId() string { + + return *obj.obj.ClientId + +} + +// The ID of the DHCPv6 client holding this lease. +// ClientId returns a string +func (obj *dhcpv6ServerLeaseState) HasClientId() bool { + return obj.obj.ClientId != nil +} + +// The ID of the DHCPv6 client holding this lease. +// SetClientId sets the string value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetClientId(value string) Dhcpv6ServerLeaseState { + + obj.obj.ClientId = &value + return obj +} + +// The Remote ID option found in the last request message. +// RemoteId returns a string +func (obj *dhcpv6ServerLeaseState) RemoteId() string { + + return *obj.obj.RemoteId + +} + +// The Remote ID option found in the last request message. +// RemoteId returns a string +func (obj *dhcpv6ServerLeaseState) HasRemoteId() bool { + return obj.obj.RemoteId != nil +} + +// The Remote ID option found in the last request message. +// SetRemoteId sets the string value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetRemoteId(value string) Dhcpv6ServerLeaseState { + + obj.obj.RemoteId = &value + return obj +} + +// The Interface ID option found in the last request message. +// InterfaceId returns a string +func (obj *dhcpv6ServerLeaseState) InterfaceId() string { + + return *obj.obj.InterfaceId + +} + +// The Interface ID option found in the last request message. +// InterfaceId returns a string +func (obj *dhcpv6ServerLeaseState) HasInterfaceId() bool { + return obj.obj.InterfaceId != nil +} + +// The Interface ID option found in the last request message. +// SetInterfaceId sets the string value in the Dhcpv6ServerLeaseState object +func (obj *dhcpv6ServerLeaseState) SetInterfaceId(value string) Dhcpv6ServerLeaseState { + + obj.obj.InterfaceId = &value + return obj +} + +func (obj *dhcpv6ServerLeaseState) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ServerLeaseState) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_metric.go b/gosnappi/dhcpv6_server_metric.go new file mode 100644 index 00000000..f91418ea --- /dev/null +++ b/gosnappi/dhcpv6_server_metric.go @@ -0,0 +1,726 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerMetric ***** +type dhcpv6ServerMetric struct { + validation + obj *otg.Dhcpv6ServerMetric + marshaller marshalDhcpv6ServerMetric + unMarshaller unMarshalDhcpv6ServerMetric +} + +func NewDhcpv6ServerMetric() Dhcpv6ServerMetric { + obj := dhcpv6ServerMetric{obj: &otg.Dhcpv6ServerMetric{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerMetric) msg() *otg.Dhcpv6ServerMetric { + return obj.obj +} + +func (obj *dhcpv6ServerMetric) setMsg(msg *otg.Dhcpv6ServerMetric) Dhcpv6ServerMetric { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerMetric struct { + obj *dhcpv6ServerMetric +} + +type marshalDhcpv6ServerMetric interface { + // ToProto marshals Dhcpv6ServerMetric to protobuf object *otg.Dhcpv6ServerMetric + ToProto() (*otg.Dhcpv6ServerMetric, error) + // ToPbText marshals Dhcpv6ServerMetric to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerMetric to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerMetric to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerMetric struct { + obj *dhcpv6ServerMetric +} + +type unMarshalDhcpv6ServerMetric interface { + // FromProto unmarshals Dhcpv6ServerMetric from protobuf object *otg.Dhcpv6ServerMetric + FromProto(msg *otg.Dhcpv6ServerMetric) (Dhcpv6ServerMetric, error) + // FromPbText unmarshals Dhcpv6ServerMetric from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerMetric from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerMetric from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerMetric) Marshal() marshalDhcpv6ServerMetric { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerMetric{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerMetric) Unmarshal() unMarshalDhcpv6ServerMetric { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerMetric{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerMetric) ToProto() (*otg.Dhcpv6ServerMetric, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerMetric) FromProto(msg *otg.Dhcpv6ServerMetric) (Dhcpv6ServerMetric, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerMetric) 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 *unMarshaldhcpv6ServerMetric) 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 *marshaldhcpv6ServerMetric) 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 *unMarshaldhcpv6ServerMetric) 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 *marshaldhcpv6ServerMetric) 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 *unMarshaldhcpv6ServerMetric) 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 *dhcpv6ServerMetric) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerMetric) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerMetric) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerMetric) Clone() (Dhcpv6ServerMetric, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerMetric() + 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 +} + +// Dhcpv6ServerMetric is dHCPv6 per server statistics information. +type Dhcpv6ServerMetric interface { + Validation + // msg marshals Dhcpv6ServerMetric to protobuf object *otg.Dhcpv6ServerMetric + // and doesn't set defaults + msg() *otg.Dhcpv6ServerMetric + // setMsg unmarshals Dhcpv6ServerMetric from protobuf object *otg.Dhcpv6ServerMetric + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerMetric) Dhcpv6ServerMetric + // provides marshal interface + Marshal() marshalDhcpv6ServerMetric + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerMetric + // validate validates Dhcpv6ServerMetric + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerMetric, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Name returns string, set in Dhcpv6ServerMetric. + Name() string + // SetName assigns string provided by user to Dhcpv6ServerMetric + SetName(value string) Dhcpv6ServerMetric + // HasName checks if Name has been set in Dhcpv6ServerMetric + HasName() bool + // SolicitsReceived returns uint64, set in Dhcpv6ServerMetric. + SolicitsReceived() uint64 + // SetSolicitsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetSolicitsReceived(value uint64) Dhcpv6ServerMetric + // HasSolicitsReceived checks if SolicitsReceived has been set in Dhcpv6ServerMetric + HasSolicitsReceived() bool + // SolicitsIgnored returns uint64, set in Dhcpv6ServerMetric. + SolicitsIgnored() uint64 + // SetSolicitsIgnored assigns uint64 provided by user to Dhcpv6ServerMetric + SetSolicitsIgnored(value uint64) Dhcpv6ServerMetric + // HasSolicitsIgnored checks if SolicitsIgnored has been set in Dhcpv6ServerMetric + HasSolicitsIgnored() bool + // AdvertisementsSent returns uint64, set in Dhcpv6ServerMetric. + AdvertisementsSent() uint64 + // SetAdvertisementsSent assigns uint64 provided by user to Dhcpv6ServerMetric + SetAdvertisementsSent(value uint64) Dhcpv6ServerMetric + // HasAdvertisementsSent checks if AdvertisementsSent has been set in Dhcpv6ServerMetric + HasAdvertisementsSent() bool + // RequestsReceived returns uint64, set in Dhcpv6ServerMetric. + RequestsReceived() uint64 + // SetRequestsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetRequestsReceived(value uint64) Dhcpv6ServerMetric + // HasRequestsReceived checks if RequestsReceived has been set in Dhcpv6ServerMetric + HasRequestsReceived() bool + // NacksSent returns uint64, set in Dhcpv6ServerMetric. + NacksSent() uint64 + // SetNacksSent assigns uint64 provided by user to Dhcpv6ServerMetric + SetNacksSent(value uint64) Dhcpv6ServerMetric + // HasNacksSent checks if NacksSent has been set in Dhcpv6ServerMetric + HasNacksSent() bool + // ConfirmsReceived returns uint64, set in Dhcpv6ServerMetric. + ConfirmsReceived() uint64 + // SetConfirmsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetConfirmsReceived(value uint64) Dhcpv6ServerMetric + // HasConfirmsReceived checks if ConfirmsReceived has been set in Dhcpv6ServerMetric + HasConfirmsReceived() bool + // RenewalsReceived returns uint64, set in Dhcpv6ServerMetric. + RenewalsReceived() uint64 + // SetRenewalsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetRenewalsReceived(value uint64) Dhcpv6ServerMetric + // HasRenewalsReceived checks if RenewalsReceived has been set in Dhcpv6ServerMetric + HasRenewalsReceived() bool + // RebindsReceived returns uint64, set in Dhcpv6ServerMetric. + RebindsReceived() uint64 + // SetRebindsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetRebindsReceived(value uint64) Dhcpv6ServerMetric + // HasRebindsReceived checks if RebindsReceived has been set in Dhcpv6ServerMetric + HasRebindsReceived() bool + // RepliesSent returns uint64, set in Dhcpv6ServerMetric. + RepliesSent() uint64 + // SetRepliesSent assigns uint64 provided by user to Dhcpv6ServerMetric + SetRepliesSent(value uint64) Dhcpv6ServerMetric + // HasRepliesSent checks if RepliesSent has been set in Dhcpv6ServerMetric + HasRepliesSent() bool + // ReleasesReceived returns uint64, set in Dhcpv6ServerMetric. + ReleasesReceived() uint64 + // SetReleasesReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetReleasesReceived(value uint64) Dhcpv6ServerMetric + // HasReleasesReceived checks if ReleasesReceived has been set in Dhcpv6ServerMetric + HasReleasesReceived() bool + // DeclinesReceived returns uint64, set in Dhcpv6ServerMetric. + DeclinesReceived() uint64 + // SetDeclinesReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetDeclinesReceived(value uint64) Dhcpv6ServerMetric + // HasDeclinesReceived checks if DeclinesReceived has been set in Dhcpv6ServerMetric + HasDeclinesReceived() bool + // InformationRequestsReceived returns uint64, set in Dhcpv6ServerMetric. + InformationRequestsReceived() uint64 + // SetInformationRequestsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetInformationRequestsReceived(value uint64) Dhcpv6ServerMetric + // HasInformationRequestsReceived checks if InformationRequestsReceived has been set in Dhcpv6ServerMetric + HasInformationRequestsReceived() bool + // RelayForwardsReceived returns uint64, set in Dhcpv6ServerMetric. + RelayForwardsReceived() uint64 + // SetRelayForwardsReceived assigns uint64 provided by user to Dhcpv6ServerMetric + SetRelayForwardsReceived(value uint64) Dhcpv6ServerMetric + // HasRelayForwardsReceived checks if RelayForwardsReceived has been set in Dhcpv6ServerMetric + HasRelayForwardsReceived() bool + // RelayRepliesSent returns uint64, set in Dhcpv6ServerMetric. + RelayRepliesSent() uint64 + // SetRelayRepliesSent assigns uint64 provided by user to Dhcpv6ServerMetric + SetRelayRepliesSent(value uint64) Dhcpv6ServerMetric + // HasRelayRepliesSent checks if RelayRepliesSent has been set in Dhcpv6ServerMetric + HasRelayRepliesSent() bool + // ReconfiguresSent returns uint64, set in Dhcpv6ServerMetric. + ReconfiguresSent() uint64 + // SetReconfiguresSent assigns uint64 provided by user to Dhcpv6ServerMetric + SetReconfiguresSent(value uint64) Dhcpv6ServerMetric + // HasReconfiguresSent checks if ReconfiguresSent has been set in Dhcpv6ServerMetric + HasReconfiguresSent() bool +} + +// The name of a configured DHCPv6 Server. +// Name returns a string +func (obj *dhcpv6ServerMetric) Name() string { + + return *obj.obj.Name + +} + +// The name of a configured DHCPv6 Server. +// Name returns a string +func (obj *dhcpv6ServerMetric) HasName() bool { + return obj.obj.Name != nil +} + +// The name of a configured DHCPv6 Server. +// SetName sets the string value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetName(value string) Dhcpv6ServerMetric { + + obj.obj.Name = &value + return obj +} + +// Number of DHCPSOLICIT messages received. +// SolicitsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) SolicitsReceived() uint64 { + + return *obj.obj.SolicitsReceived + +} + +// Number of DHCPSOLICIT messages received. +// SolicitsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasSolicitsReceived() bool { + return obj.obj.SolicitsReceived != nil +} + +// Number of DHCPSOLICIT messages received. +// SetSolicitsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetSolicitsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.SolicitsReceived = &value + return obj +} + +// Number of DHCPSOLICIT messages ignored. +// SolicitsIgnored returns a uint64 +func (obj *dhcpv6ServerMetric) SolicitsIgnored() uint64 { + + return *obj.obj.SolicitsIgnored + +} + +// Number of DHCPSOLICIT messages ignored. +// SolicitsIgnored returns a uint64 +func (obj *dhcpv6ServerMetric) HasSolicitsIgnored() bool { + return obj.obj.SolicitsIgnored != nil +} + +// Number of DHCPSOLICIT messages ignored. +// SetSolicitsIgnored sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetSolicitsIgnored(value uint64) Dhcpv6ServerMetric { + + obj.obj.SolicitsIgnored = &value + return obj +} + +// Number of DHCP Advertise messages sent. +// AdvertisementsSent returns a uint64 +func (obj *dhcpv6ServerMetric) AdvertisementsSent() uint64 { + + return *obj.obj.AdvertisementsSent + +} + +// Number of DHCP Advertise messages sent. +// AdvertisementsSent returns a uint64 +func (obj *dhcpv6ServerMetric) HasAdvertisementsSent() bool { + return obj.obj.AdvertisementsSent != nil +} + +// Number of DHCP Advertise messages sent. +// SetAdvertisementsSent sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetAdvertisementsSent(value uint64) Dhcpv6ServerMetric { + + obj.obj.AdvertisementsSent = &value + return obj +} + +// Number of DHCPREQUEST messages received. +// RequestsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) RequestsReceived() uint64 { + + return *obj.obj.RequestsReceived + +} + +// Number of DHCPREQUEST messages received. +// RequestsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasRequestsReceived() bool { + return obj.obj.RequestsReceived != nil +} + +// Number of DHCPREQUEST messages received. +// SetRequestsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRequestsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.RequestsReceived = &value + return obj +} + +// Number of naks sent for DHCPREQUEST messages. +// NacksSent returns a uint64 +func (obj *dhcpv6ServerMetric) NacksSent() uint64 { + + return *obj.obj.NacksSent + +} + +// Number of naks sent for DHCPREQUEST messages. +// NacksSent returns a uint64 +func (obj *dhcpv6ServerMetric) HasNacksSent() bool { + return obj.obj.NacksSent != nil +} + +// Number of naks sent for DHCPREQUEST messages. +// SetNacksSent sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetNacksSent(value uint64) Dhcpv6ServerMetric { + + obj.obj.NacksSent = &value + return obj +} + +// Number of DHCP Confirm messages received. +// ConfirmsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) ConfirmsReceived() uint64 { + + return *obj.obj.ConfirmsReceived + +} + +// Number of DHCP Confirm messages received. +// ConfirmsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasConfirmsReceived() bool { + return obj.obj.ConfirmsReceived != nil +} + +// Number of DHCP Confirm messages received. +// SetConfirmsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetConfirmsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.ConfirmsReceived = &value + return obj +} + +// Number of DHCP Renewal messages received. +// RenewalsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) RenewalsReceived() uint64 { + + return *obj.obj.RenewalsReceived + +} + +// Number of DHCP Renewal messages received. +// RenewalsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasRenewalsReceived() bool { + return obj.obj.RenewalsReceived != nil +} + +// Number of DHCP Renewal messages received. +// SetRenewalsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRenewalsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.RenewalsReceived = &value + return obj +} + +// Number of DHCP Rebind messages received. +// RebindsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) RebindsReceived() uint64 { + + return *obj.obj.RebindsReceived + +} + +// Number of DHCP Rebind messages received. +// RebindsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasRebindsReceived() bool { + return obj.obj.RebindsReceived != nil +} + +// Number of DHCP Rebind messages received. +// SetRebindsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRebindsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.RebindsReceived = &value + return obj +} + +// Number of DHCP Reply messages sent. +// RepliesSent returns a uint64 +func (obj *dhcpv6ServerMetric) RepliesSent() uint64 { + + return *obj.obj.RepliesSent + +} + +// Number of DHCP Reply messages sent. +// RepliesSent returns a uint64 +func (obj *dhcpv6ServerMetric) HasRepliesSent() bool { + return obj.obj.RepliesSent != nil +} + +// Number of DHCP Reply messages sent. +// SetRepliesSent sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRepliesSent(value uint64) Dhcpv6ServerMetric { + + obj.obj.RepliesSent = &value + return obj +} + +// Number of DHCP Release messages received. +// ReleasesReceived returns a uint64 +func (obj *dhcpv6ServerMetric) ReleasesReceived() uint64 { + + return *obj.obj.ReleasesReceived + +} + +// Number of DHCP Release messages received. +// ReleasesReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasReleasesReceived() bool { + return obj.obj.ReleasesReceived != nil +} + +// Number of DHCP Release messages received. +// SetReleasesReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetReleasesReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.ReleasesReceived = &value + return obj +} + +// Number of DHCP Decline messages received. +// DeclinesReceived returns a uint64 +func (obj *dhcpv6ServerMetric) DeclinesReceived() uint64 { + + return *obj.obj.DeclinesReceived + +} + +// Number of DHCP Decline messages received. +// DeclinesReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasDeclinesReceived() bool { + return obj.obj.DeclinesReceived != nil +} + +// Number of DHCP Decline messages received. +// SetDeclinesReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetDeclinesReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.DeclinesReceived = &value + return obj +} + +// Number of DHCP Information Request messages received. +// InformationRequestsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) InformationRequestsReceived() uint64 { + + return *obj.obj.InformationRequestsReceived + +} + +// Number of DHCP Information Request messages received. +// InformationRequestsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasInformationRequestsReceived() bool { + return obj.obj.InformationRequestsReceived != nil +} + +// Number of DHCP Information Request messages received. +// SetInformationRequestsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetInformationRequestsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.InformationRequestsReceived = &value + return obj +} + +// Number of DHCP Relay agent forward messages received. +// RelayForwardsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) RelayForwardsReceived() uint64 { + + return *obj.obj.RelayForwardsReceived + +} + +// Number of DHCP Relay agent forward messages received. +// RelayForwardsReceived returns a uint64 +func (obj *dhcpv6ServerMetric) HasRelayForwardsReceived() bool { + return obj.obj.RelayForwardsReceived != nil +} + +// Number of DHCP Relay agent forward messages received. +// SetRelayForwardsReceived sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRelayForwardsReceived(value uint64) Dhcpv6ServerMetric { + + obj.obj.RelayForwardsReceived = &value + return obj +} + +// Number of DHCP reply messages sent to Relay agent. +// RelayRepliesSent returns a uint64 +func (obj *dhcpv6ServerMetric) RelayRepliesSent() uint64 { + + return *obj.obj.RelayRepliesSent + +} + +// Number of DHCP reply messages sent to Relay agent. +// RelayRepliesSent returns a uint64 +func (obj *dhcpv6ServerMetric) HasRelayRepliesSent() bool { + return obj.obj.RelayRepliesSent != nil +} + +// Number of DHCP reply messages sent to Relay agent. +// SetRelayRepliesSent sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetRelayRepliesSent(value uint64) Dhcpv6ServerMetric { + + obj.obj.RelayRepliesSent = &value + return obj +} + +// Number of DHCP Reconfigure messages sent. +// ReconfiguresSent returns a uint64 +func (obj *dhcpv6ServerMetric) ReconfiguresSent() uint64 { + + return *obj.obj.ReconfiguresSent + +} + +// Number of DHCP Reconfigure messages sent. +// ReconfiguresSent returns a uint64 +func (obj *dhcpv6ServerMetric) HasReconfiguresSent() bool { + return obj.obj.ReconfiguresSent != nil +} + +// Number of DHCP Reconfigure messages sent. +// SetReconfiguresSent sets the uint64 value in the Dhcpv6ServerMetric object +func (obj *dhcpv6ServerMetric) SetReconfiguresSent(value uint64) Dhcpv6ServerMetric { + + obj.obj.ReconfiguresSent = &value + return obj +} + +func (obj *dhcpv6ServerMetric) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ServerMetric) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_metrics_request.go b/gosnappi/dhcpv6_server_metrics_request.go new file mode 100644 index 00000000..8b99c314 --- /dev/null +++ b/gosnappi/dhcpv6_server_metrics_request.go @@ -0,0 +1,379 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerMetricsRequest ***** +type dhcpv6ServerMetricsRequest struct { + validation + obj *otg.Dhcpv6ServerMetricsRequest + marshaller marshalDhcpv6ServerMetricsRequest + unMarshaller unMarshalDhcpv6ServerMetricsRequest +} + +func NewDhcpv6ServerMetricsRequest() Dhcpv6ServerMetricsRequest { + obj := dhcpv6ServerMetricsRequest{obj: &otg.Dhcpv6ServerMetricsRequest{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerMetricsRequest) msg() *otg.Dhcpv6ServerMetricsRequest { + return obj.obj +} + +func (obj *dhcpv6ServerMetricsRequest) setMsg(msg *otg.Dhcpv6ServerMetricsRequest) Dhcpv6ServerMetricsRequest { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerMetricsRequest struct { + obj *dhcpv6ServerMetricsRequest +} + +type marshalDhcpv6ServerMetricsRequest interface { + // ToProto marshals Dhcpv6ServerMetricsRequest to protobuf object *otg.Dhcpv6ServerMetricsRequest + ToProto() (*otg.Dhcpv6ServerMetricsRequest, error) + // ToPbText marshals Dhcpv6ServerMetricsRequest to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerMetricsRequest to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerMetricsRequest to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerMetricsRequest struct { + obj *dhcpv6ServerMetricsRequest +} + +type unMarshalDhcpv6ServerMetricsRequest interface { + // FromProto unmarshals Dhcpv6ServerMetricsRequest from protobuf object *otg.Dhcpv6ServerMetricsRequest + FromProto(msg *otg.Dhcpv6ServerMetricsRequest) (Dhcpv6ServerMetricsRequest, error) + // FromPbText unmarshals Dhcpv6ServerMetricsRequest from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerMetricsRequest from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerMetricsRequest from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerMetricsRequest) Marshal() marshalDhcpv6ServerMetricsRequest { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerMetricsRequest{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerMetricsRequest) Unmarshal() unMarshalDhcpv6ServerMetricsRequest { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerMetricsRequest{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerMetricsRequest) ToProto() (*otg.Dhcpv6ServerMetricsRequest, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerMetricsRequest) FromProto(msg *otg.Dhcpv6ServerMetricsRequest) (Dhcpv6ServerMetricsRequest, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerMetricsRequest) 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 *unMarshaldhcpv6ServerMetricsRequest) 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 *marshaldhcpv6ServerMetricsRequest) 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 *unMarshaldhcpv6ServerMetricsRequest) 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 *marshaldhcpv6ServerMetricsRequest) 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 *unMarshaldhcpv6ServerMetricsRequest) 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 *dhcpv6ServerMetricsRequest) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerMetricsRequest) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerMetricsRequest) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerMetricsRequest) Clone() (Dhcpv6ServerMetricsRequest, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerMetricsRequest() + 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 +} + +// Dhcpv6ServerMetricsRequest is the request to retrieve DHCPv6 per Server metrics/statistics. +type Dhcpv6ServerMetricsRequest interface { + Validation + // msg marshals Dhcpv6ServerMetricsRequest to protobuf object *otg.Dhcpv6ServerMetricsRequest + // and doesn't set defaults + msg() *otg.Dhcpv6ServerMetricsRequest + // setMsg unmarshals Dhcpv6ServerMetricsRequest from protobuf object *otg.Dhcpv6ServerMetricsRequest + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerMetricsRequest) Dhcpv6ServerMetricsRequest + // provides marshal interface + Marshal() marshalDhcpv6ServerMetricsRequest + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerMetricsRequest + // validate validates Dhcpv6ServerMetricsRequest + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerMetricsRequest, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // ServerNames returns []string, set in Dhcpv6ServerMetricsRequest. + ServerNames() []string + // SetServerNames assigns []string provided by user to Dhcpv6ServerMetricsRequest + SetServerNames(value []string) Dhcpv6ServerMetricsRequest + // ColumnNames returns []Dhcpv6ServerMetricsRequestColumnNamesEnum, set in Dhcpv6ServerMetricsRequest + ColumnNames() []Dhcpv6ServerMetricsRequestColumnNamesEnum + // SetColumnNames assigns []Dhcpv6ServerMetricsRequestColumnNamesEnum provided by user to Dhcpv6ServerMetricsRequest + SetColumnNames(value []Dhcpv6ServerMetricsRequestColumnNamesEnum) Dhcpv6ServerMetricsRequest +} + +// The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6Server/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6Server/properties/name +// +// ServerNames returns a []string +func (obj *dhcpv6ServerMetricsRequest) ServerNames() []string { + if obj.obj.ServerNames == nil { + obj.obj.ServerNames = make([]string, 0) + } + return obj.obj.ServerNames +} + +// The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server. +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6Server/properties/name +// +// x-constraint: +// - /components/schemas/Device.Dhcpv6Server/properties/name +// +// SetServerNames sets the []string value in the Dhcpv6ServerMetricsRequest object +func (obj *dhcpv6ServerMetricsRequest) SetServerNames(value []string) Dhcpv6ServerMetricsRequest { + + if obj.obj.ServerNames == nil { + obj.obj.ServerNames = make([]string, 0) + } + obj.obj.ServerNames = value + + return obj +} + +type Dhcpv6ServerMetricsRequestColumnNamesEnum string + +// Enum of ColumnNames on Dhcpv6ServerMetricsRequest +var Dhcpv6ServerMetricsRequestColumnNames = struct { + SOLICITS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + SOLICITS_IGNORED Dhcpv6ServerMetricsRequestColumnNamesEnum + ADVERTISEMENTS_SENT Dhcpv6ServerMetricsRequestColumnNamesEnum + REQUESTS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + NACKS_SENT Dhcpv6ServerMetricsRequestColumnNamesEnum + CONFIRMS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + RENEWALS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + REBINDS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + REPLIES_SENT Dhcpv6ServerMetricsRequestColumnNamesEnum + RELEASES_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + DECLINES_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + INFORMATION_REQUESTS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + RELAY_FORWARDS_RECEIVED Dhcpv6ServerMetricsRequestColumnNamesEnum + RELAY_REPLIES_SENT Dhcpv6ServerMetricsRequestColumnNamesEnum + RECONFIGURES_SENT Dhcpv6ServerMetricsRequestColumnNamesEnum +}{ + SOLICITS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("solicits_received"), + SOLICITS_IGNORED: Dhcpv6ServerMetricsRequestColumnNamesEnum("solicits_ignored"), + ADVERTISEMENTS_SENT: Dhcpv6ServerMetricsRequestColumnNamesEnum("advertisements_sent"), + REQUESTS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("requests_received"), + NACKS_SENT: Dhcpv6ServerMetricsRequestColumnNamesEnum("nacks_sent"), + CONFIRMS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("confirms_received"), + RENEWALS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("renewals_received"), + REBINDS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("rebinds_received"), + REPLIES_SENT: Dhcpv6ServerMetricsRequestColumnNamesEnum("replies_sent"), + RELEASES_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("releases_received"), + DECLINES_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("declines_received"), + INFORMATION_REQUESTS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("information_requests_received"), + RELAY_FORWARDS_RECEIVED: Dhcpv6ServerMetricsRequestColumnNamesEnum("relay_forwards_received"), + RELAY_REPLIES_SENT: Dhcpv6ServerMetricsRequestColumnNamesEnum("relay_replies_sent"), + RECONFIGURES_SENT: Dhcpv6ServerMetricsRequestColumnNamesEnum("reconfigures_sent"), +} + +func (obj *dhcpv6ServerMetricsRequest) ColumnNames() []Dhcpv6ServerMetricsRequestColumnNamesEnum { + items := []Dhcpv6ServerMetricsRequestColumnNamesEnum{} + for _, item := range obj.obj.ColumnNames { + items = append(items, Dhcpv6ServerMetricsRequestColumnNamesEnum(item.String())) + } + return items +} + +// The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 server cannot be excluded. +// SetColumnNames sets the []string value in the Dhcpv6ServerMetricsRequest object +func (obj *dhcpv6ServerMetricsRequest) SetColumnNames(value []Dhcpv6ServerMetricsRequestColumnNamesEnum) Dhcpv6ServerMetricsRequest { + + items := []otg.Dhcpv6ServerMetricsRequest_ColumnNames_Enum{} + for _, item := range value { + intValue := otg.Dhcpv6ServerMetricsRequest_ColumnNames_Enum_value[string(item)] + items = append(items, otg.Dhcpv6ServerMetricsRequest_ColumnNames_Enum(intValue)) + } + obj.obj.ColumnNames = items + return obj +} + +func (obj *dhcpv6ServerMetricsRequest) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ServerMetricsRequest) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_options.go b/gosnappi/dhcpv6_server_options.go new file mode 100644 index 00000000..41617864 --- /dev/null +++ b/gosnappi/dhcpv6_server_options.go @@ -0,0 +1,417 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptions ***** +type dhcpv6ServerOptions struct { + validation + obj *otg.Dhcpv6ServerOptions + marshaller marshalDhcpv6ServerOptions + unMarshaller unMarshalDhcpv6ServerOptions + dnsHolder DhcpV6ServerDns + vendorInfoHolder Dhcpv6ServerOptionsVendorInfo + bootfileUrlHolder Dhcpv6ServerOptionsBootfileUrl +} + +func NewDhcpv6ServerOptions() Dhcpv6ServerOptions { + obj := dhcpv6ServerOptions{obj: &otg.Dhcpv6ServerOptions{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptions) msg() *otg.Dhcpv6ServerOptions { + return obj.obj +} + +func (obj *dhcpv6ServerOptions) setMsg(msg *otg.Dhcpv6ServerOptions) Dhcpv6ServerOptions { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptions struct { + obj *dhcpv6ServerOptions +} + +type marshalDhcpv6ServerOptions interface { + // ToProto marshals Dhcpv6ServerOptions to protobuf object *otg.Dhcpv6ServerOptions + ToProto() (*otg.Dhcpv6ServerOptions, error) + // ToPbText marshals Dhcpv6ServerOptions to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptions to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptions to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptions struct { + obj *dhcpv6ServerOptions +} + +type unMarshalDhcpv6ServerOptions interface { + // FromProto unmarshals Dhcpv6ServerOptions from protobuf object *otg.Dhcpv6ServerOptions + FromProto(msg *otg.Dhcpv6ServerOptions) (Dhcpv6ServerOptions, error) + // FromPbText unmarshals Dhcpv6ServerOptions from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptions from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptions from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptions) Marshal() marshalDhcpv6ServerOptions { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptions{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptions) Unmarshal() unMarshalDhcpv6ServerOptions { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptions{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptions) ToProto() (*otg.Dhcpv6ServerOptions, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptions) FromProto(msg *otg.Dhcpv6ServerOptions) (Dhcpv6ServerOptions, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptions) 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 *unMarshaldhcpv6ServerOptions) 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 *marshaldhcpv6ServerOptions) 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 *unMarshaldhcpv6ServerOptions) 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 *marshaldhcpv6ServerOptions) 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 *unMarshaldhcpv6ServerOptions) 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 *dhcpv6ServerOptions) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptions) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptions) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptions) Clone() (Dhcpv6ServerOptions, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptions() + 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 *dhcpv6ServerOptions) setNil() { + obj.dnsHolder = nil + obj.vendorInfoHolder = nil + obj.bootfileUrlHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerOptions is dHCP server options, these configured options are sent in Dhcp server messages. +type Dhcpv6ServerOptions interface { + Validation + // msg marshals Dhcpv6ServerOptions to protobuf object *otg.Dhcpv6ServerOptions + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptions + // setMsg unmarshals Dhcpv6ServerOptions from protobuf object *otg.Dhcpv6ServerOptions + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptions) Dhcpv6ServerOptions + // provides marshal interface + Marshal() marshalDhcpv6ServerOptions + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptions + // validate validates Dhcpv6ServerOptions + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptions, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Dns returns DhcpV6ServerDns, set in Dhcpv6ServerOptions. + // DhcpV6ServerDns is optional Dns configuration for DHCPv6 server. + Dns() DhcpV6ServerDns + // SetDns assigns DhcpV6ServerDns provided by user to Dhcpv6ServerOptions. + // DhcpV6ServerDns is optional Dns configuration for DHCPv6 server. + SetDns(value DhcpV6ServerDns) Dhcpv6ServerOptions + // HasDns checks if Dns has been set in Dhcpv6ServerOptions + HasDns() bool + // VendorInfo returns Dhcpv6ServerOptionsVendorInfo, set in Dhcpv6ServerOptions. + // Dhcpv6ServerOptionsVendorInfo is this option is used by servers to exchange vendor-specific information. The option code is 17. + VendorInfo() Dhcpv6ServerOptionsVendorInfo + // SetVendorInfo assigns Dhcpv6ServerOptionsVendorInfo provided by user to Dhcpv6ServerOptions. + // Dhcpv6ServerOptionsVendorInfo is this option is used by servers to exchange vendor-specific information. The option code is 17. + SetVendorInfo(value Dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptions + // HasVendorInfo checks if VendorInfo has been set in Dhcpv6ServerOptions + HasVendorInfo() bool + // BootfileUrl returns Dhcpv6ServerOptionsBootfileUrl, set in Dhcpv6ServerOptions. + // Dhcpv6ServerOptionsBootfileUrl is the server sends this option to inform the client about a URL to a boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, a subdomain, a domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than a domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of a boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi". + BootfileUrl() Dhcpv6ServerOptionsBootfileUrl + // SetBootfileUrl assigns Dhcpv6ServerOptionsBootfileUrl provided by user to Dhcpv6ServerOptions. + // Dhcpv6ServerOptionsBootfileUrl is the server sends this option to inform the client about a URL to a boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, a subdomain, a domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than a domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of a boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi". + SetBootfileUrl(value Dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptions + // HasBootfileUrl checks if BootfileUrl has been set in Dhcpv6ServerOptions + HasBootfileUrl() bool + setNil() +} + +// Additional DHCP server primary dns and other configuration options. +// Dns returns a DhcpV6ServerDns +func (obj *dhcpv6ServerOptions) Dns() DhcpV6ServerDns { + if obj.obj.Dns == nil { + obj.obj.Dns = NewDhcpV6ServerDns().msg() + } + if obj.dnsHolder == nil { + obj.dnsHolder = &dhcpV6ServerDns{obj: obj.obj.Dns} + } + return obj.dnsHolder +} + +// Additional DHCP server primary dns and other configuration options. +// Dns returns a DhcpV6ServerDns +func (obj *dhcpv6ServerOptions) HasDns() bool { + return obj.obj.Dns != nil +} + +// Additional DHCP server primary dns and other configuration options. +// SetDns sets the DhcpV6ServerDns value in the Dhcpv6ServerOptions object +func (obj *dhcpv6ServerOptions) SetDns(value DhcpV6ServerDns) Dhcpv6ServerOptions { + + obj.dnsHolder = nil + obj.obj.Dns = value.msg() + + return obj +} + +// This option is used by servers to exchange vendor-specific information with clients. +// VendorInfo returns a Dhcpv6ServerOptionsVendorInfo +func (obj *dhcpv6ServerOptions) VendorInfo() Dhcpv6ServerOptionsVendorInfo { + if obj.obj.VendorInfo == nil { + obj.obj.VendorInfo = NewDhcpv6ServerOptionsVendorInfo().msg() + } + if obj.vendorInfoHolder == nil { + obj.vendorInfoHolder = &dhcpv6ServerOptionsVendorInfo{obj: obj.obj.VendorInfo} + } + return obj.vendorInfoHolder +} + +// This option is used by servers to exchange vendor-specific information with clients. +// VendorInfo returns a Dhcpv6ServerOptionsVendorInfo +func (obj *dhcpv6ServerOptions) HasVendorInfo() bool { + return obj.obj.VendorInfo != nil +} + +// This option is used by servers to exchange vendor-specific information with clients. +// SetVendorInfo sets the Dhcpv6ServerOptionsVendorInfo value in the Dhcpv6ServerOptions object +func (obj *dhcpv6ServerOptions) SetVendorInfo(value Dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptions { + + obj.vendorInfoHolder = nil + obj.obj.VendorInfo = value.msg() + + return obj +} + +// The server sends this option to inform the client about a URL to a boot file which client will use for +// network boots. +// BootfileUrl returns a Dhcpv6ServerOptionsBootfileUrl +func (obj *dhcpv6ServerOptions) BootfileUrl() Dhcpv6ServerOptionsBootfileUrl { + if obj.obj.BootfileUrl == nil { + obj.obj.BootfileUrl = NewDhcpv6ServerOptionsBootfileUrl().msg() + } + if obj.bootfileUrlHolder == nil { + obj.bootfileUrlHolder = &dhcpv6ServerOptionsBootfileUrl{obj: obj.obj.BootfileUrl} + } + return obj.bootfileUrlHolder +} + +// The server sends this option to inform the client about a URL to a boot file which client will use for +// network boots. +// BootfileUrl returns a Dhcpv6ServerOptionsBootfileUrl +func (obj *dhcpv6ServerOptions) HasBootfileUrl() bool { + return obj.obj.BootfileUrl != nil +} + +// The server sends this option to inform the client about a URL to a boot file which client will use for +// network boots. +// SetBootfileUrl sets the Dhcpv6ServerOptionsBootfileUrl value in the Dhcpv6ServerOptions object +func (obj *dhcpv6ServerOptions) SetBootfileUrl(value Dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptions { + + obj.bootfileUrlHolder = nil + obj.obj.BootfileUrl = value.msg() + + return obj +} + +func (obj *dhcpv6ServerOptions) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.Dns != nil { + + obj.Dns().validateObj(vObj, set_default) + } + + if obj.obj.VendorInfo != nil { + + obj.VendorInfo().validateObj(vObj, set_default) + } + + if obj.obj.BootfileUrl != nil { + + obj.BootfileUrl().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ServerOptions) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_options_boot_file_params.go b/gosnappi/dhcpv6_server_options_boot_file_params.go new file mode 100644 index 00000000..836fc8b6 --- /dev/null +++ b/gosnappi/dhcpv6_server_options_boot_file_params.go @@ -0,0 +1,302 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptionsBootFileParams ***** +type dhcpv6ServerOptionsBootFileParams struct { + validation + obj *otg.Dhcpv6ServerOptionsBootFileParams + marshaller marshalDhcpv6ServerOptionsBootFileParams + unMarshaller unMarshalDhcpv6ServerOptionsBootFileParams +} + +func NewDhcpv6ServerOptionsBootFileParams() Dhcpv6ServerOptionsBootFileParams { + obj := dhcpv6ServerOptionsBootFileParams{obj: &otg.Dhcpv6ServerOptionsBootFileParams{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptionsBootFileParams) msg() *otg.Dhcpv6ServerOptionsBootFileParams { + return obj.obj +} + +func (obj *dhcpv6ServerOptionsBootFileParams) setMsg(msg *otg.Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootFileParams { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptionsBootFileParams struct { + obj *dhcpv6ServerOptionsBootFileParams +} + +type marshalDhcpv6ServerOptionsBootFileParams interface { + // ToProto marshals Dhcpv6ServerOptionsBootFileParams to protobuf object *otg.Dhcpv6ServerOptionsBootFileParams + ToProto() (*otg.Dhcpv6ServerOptionsBootFileParams, error) + // ToPbText marshals Dhcpv6ServerOptionsBootFileParams to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptionsBootFileParams to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptionsBootFileParams to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptionsBootFileParams struct { + obj *dhcpv6ServerOptionsBootFileParams +} + +type unMarshalDhcpv6ServerOptionsBootFileParams interface { + // FromProto unmarshals Dhcpv6ServerOptionsBootFileParams from protobuf object *otg.Dhcpv6ServerOptionsBootFileParams + FromProto(msg *otg.Dhcpv6ServerOptionsBootFileParams) (Dhcpv6ServerOptionsBootFileParams, error) + // FromPbText unmarshals Dhcpv6ServerOptionsBootFileParams from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptionsBootFileParams from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptionsBootFileParams from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptionsBootFileParams) Marshal() marshalDhcpv6ServerOptionsBootFileParams { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptionsBootFileParams{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptionsBootFileParams) Unmarshal() unMarshalDhcpv6ServerOptionsBootFileParams { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptionsBootFileParams{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptionsBootFileParams) ToProto() (*otg.Dhcpv6ServerOptionsBootFileParams, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptionsBootFileParams) FromProto(msg *otg.Dhcpv6ServerOptionsBootFileParams) (Dhcpv6ServerOptionsBootFileParams, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptionsBootFileParams) 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 *unMarshaldhcpv6ServerOptionsBootFileParams) 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 *marshaldhcpv6ServerOptionsBootFileParams) 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 *unMarshaldhcpv6ServerOptionsBootFileParams) 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 *marshaldhcpv6ServerOptionsBootFileParams) 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 *unMarshaldhcpv6ServerOptionsBootFileParams) 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 *dhcpv6ServerOptionsBootFileParams) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsBootFileParams) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsBootFileParams) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptionsBootFileParams) Clone() (Dhcpv6ServerOptionsBootFileParams, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptionsBootFileParams() + 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 +} + +// Dhcpv6ServerOptionsBootFileParams is the option code is 60. They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which a second-stage boot-loader program can download its configuration file. +type Dhcpv6ServerOptionsBootFileParams interface { + Validation + // msg marshals Dhcpv6ServerOptionsBootFileParams to protobuf object *otg.Dhcpv6ServerOptionsBootFileParams + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptionsBootFileParams + // setMsg unmarshals Dhcpv6ServerOptionsBootFileParams from protobuf object *otg.Dhcpv6ServerOptionsBootFileParams + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootFileParams + // provides marshal interface + Marshal() marshalDhcpv6ServerOptionsBootFileParams + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptionsBootFileParams + // validate validates Dhcpv6ServerOptionsBootFileParams + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptionsBootFileParams, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Parameter returns string, set in Dhcpv6ServerOptionsBootFileParams. + Parameter() string + // SetParameter assigns string provided by user to Dhcpv6ServerOptionsBootFileParams + SetParameter(value string) Dhcpv6ServerOptionsBootFileParams +} + +// UTF-8 strings are parameters needed for booting, e.g., kernel parameters. +// Parameter returns a string +func (obj *dhcpv6ServerOptionsBootFileParams) Parameter() string { + + return *obj.obj.Parameter + +} + +// UTF-8 strings are parameters needed for booting, e.g., kernel parameters. +// SetParameter sets the string value in the Dhcpv6ServerOptionsBootFileParams object +func (obj *dhcpv6ServerOptionsBootFileParams) SetParameter(value string) Dhcpv6ServerOptionsBootFileParams { + + obj.obj.Parameter = &value + return obj +} + +func (obj *dhcpv6ServerOptionsBootFileParams) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Parameter is required + if obj.obj.Parameter == nil { + vObj.validationErrors = append(vObj.validationErrors, "Parameter is required field on interface Dhcpv6ServerOptionsBootFileParams") + } +} + +func (obj *dhcpv6ServerOptionsBootFileParams) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_options_bootfile_url.go b/gosnappi/dhcpv6_server_options_bootfile_url.go new file mode 100644 index 00000000..e8c42a1e --- /dev/null +++ b/gosnappi/dhcpv6_server_options_bootfile_url.go @@ -0,0 +1,458 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptionsBootfileUrl ***** +type dhcpv6ServerOptionsBootfileUrl struct { + validation + obj *otg.Dhcpv6ServerOptionsBootfileUrl + marshaller marshalDhcpv6ServerOptionsBootfileUrl + unMarshaller unMarshalDhcpv6ServerOptionsBootfileUrl + bootfileParamsHolder Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + associatedDhcpMessagesHolder Dhcpv6ServerOptionsIncludedMessages +} + +func NewDhcpv6ServerOptionsBootfileUrl() Dhcpv6ServerOptionsBootfileUrl { + obj := dhcpv6ServerOptionsBootfileUrl{obj: &otg.Dhcpv6ServerOptionsBootfileUrl{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) msg() *otg.Dhcpv6ServerOptionsBootfileUrl { + return obj.obj +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) setMsg(msg *otg.Dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptionsBootfileUrl { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptionsBootfileUrl struct { + obj *dhcpv6ServerOptionsBootfileUrl +} + +type marshalDhcpv6ServerOptionsBootfileUrl interface { + // ToProto marshals Dhcpv6ServerOptionsBootfileUrl to protobuf object *otg.Dhcpv6ServerOptionsBootfileUrl + ToProto() (*otg.Dhcpv6ServerOptionsBootfileUrl, error) + // ToPbText marshals Dhcpv6ServerOptionsBootfileUrl to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptionsBootfileUrl to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptionsBootfileUrl to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptionsBootfileUrl struct { + obj *dhcpv6ServerOptionsBootfileUrl +} + +type unMarshalDhcpv6ServerOptionsBootfileUrl interface { + // FromProto unmarshals Dhcpv6ServerOptionsBootfileUrl from protobuf object *otg.Dhcpv6ServerOptionsBootfileUrl + FromProto(msg *otg.Dhcpv6ServerOptionsBootfileUrl) (Dhcpv6ServerOptionsBootfileUrl, error) + // FromPbText unmarshals Dhcpv6ServerOptionsBootfileUrl from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptionsBootfileUrl from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptionsBootfileUrl from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) Marshal() marshalDhcpv6ServerOptionsBootfileUrl { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptionsBootfileUrl{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) Unmarshal() unMarshalDhcpv6ServerOptionsBootfileUrl { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptionsBootfileUrl{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptionsBootfileUrl) ToProto() (*otg.Dhcpv6ServerOptionsBootfileUrl, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptionsBootfileUrl) FromProto(msg *otg.Dhcpv6ServerOptionsBootfileUrl) (Dhcpv6ServerOptionsBootfileUrl, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptionsBootfileUrl) 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 *unMarshaldhcpv6ServerOptionsBootfileUrl) 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 *marshaldhcpv6ServerOptionsBootfileUrl) 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 *unMarshaldhcpv6ServerOptionsBootfileUrl) 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 *marshaldhcpv6ServerOptionsBootfileUrl) 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 *unMarshaldhcpv6ServerOptionsBootfileUrl) 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 *dhcpv6ServerOptionsBootfileUrl) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) Clone() (Dhcpv6ServerOptionsBootfileUrl, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptionsBootfileUrl() + 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 *dhcpv6ServerOptionsBootfileUrl) setNil() { + obj.bootfileParamsHolder = nil + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerOptionsBootfileUrl is the server sends this option to inform the client about a URL to a boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, a subdomain, a domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than a domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of a boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi". +type Dhcpv6ServerOptionsBootfileUrl interface { + Validation + // msg marshals Dhcpv6ServerOptionsBootfileUrl to protobuf object *otg.Dhcpv6ServerOptionsBootfileUrl + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptionsBootfileUrl + // setMsg unmarshals Dhcpv6ServerOptionsBootfileUrl from protobuf object *otg.Dhcpv6ServerOptionsBootfileUrl + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptionsBootfileUrl + // provides marshal interface + Marshal() marshalDhcpv6ServerOptionsBootfileUrl + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptionsBootfileUrl + // validate validates Dhcpv6ServerOptionsBootfileUrl + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptionsBootfileUrl, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Url returns string, set in Dhcpv6ServerOptionsBootfileUrl. + Url() string + // SetUrl assigns string provided by user to Dhcpv6ServerOptionsBootfileUrl + SetUrl(value string) Dhcpv6ServerOptionsBootfileUrl + // BootfileParams returns Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIterIter, set in Dhcpv6ServerOptionsBootfileUrl + BootfileParams() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + // AssociatedDhcpMessages returns Dhcpv6ServerOptionsIncludedMessages, set in Dhcpv6ServerOptionsBootfileUrl. + // Dhcpv6ServerOptionsIncludedMessages is the dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ServerOptionsIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ServerOptionsIncludedMessages provided by user to Dhcpv6ServerOptionsBootfileUrl. + // Dhcpv6ServerOptionsIncludedMessages is the dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsBootfileUrl + // HasAssociatedDhcpMessages checks if AssociatedDhcpMessages has been set in Dhcpv6ServerOptionsBootfileUrl + HasAssociatedDhcpMessages() bool + setNil() +} + +// The URL for the boot file. It must comply with STD 66 format. +// Url returns a string +func (obj *dhcpv6ServerOptionsBootfileUrl) Url() string { + + return *obj.obj.Url + +} + +// The URL for the boot file. It must comply with STD 66 format. +// SetUrl sets the string value in the Dhcpv6ServerOptionsBootfileUrl object +func (obj *dhcpv6ServerOptionsBootfileUrl) SetUrl(value string) Dhcpv6ServerOptionsBootfileUrl { + + obj.obj.Url = &value + return obj +} + +// They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which a second-stage boot-loader program can download its configuration file. +// BootfileParams returns a []Dhcpv6ServerOptionsBootFileParams +func (obj *dhcpv6ServerOptionsBootfileUrl) BootfileParams() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + if len(obj.obj.BootfileParams) == 0 { + obj.obj.BootfileParams = []*otg.Dhcpv6ServerOptionsBootFileParams{} + } + if obj.bootfileParamsHolder == nil { + obj.bootfileParamsHolder = newDhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter(&obj.obj.BootfileParams).setMsg(obj) + } + return obj.bootfileParamsHolder +} + +type dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter struct { + obj *dhcpv6ServerOptionsBootfileUrl + dhcpv6ServerOptionsBootFileParamsSlice []Dhcpv6ServerOptionsBootFileParams + fieldPtr *[]*otg.Dhcpv6ServerOptionsBootFileParams +} + +func newDhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter(ptr *[]*otg.Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + return &dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter{fieldPtr: ptr} +} + +type Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter interface { + setMsg(*dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + Items() []Dhcpv6ServerOptionsBootFileParams + Add() Dhcpv6ServerOptionsBootFileParams + Append(items ...Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + Set(index int, newObj Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + Clear() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + clearHolderSlice() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter + appendHolderSlice(item Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter +} + +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) setMsg(msg *dhcpv6ServerOptionsBootfileUrl) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ServerOptionsBootFileParams{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) Items() []Dhcpv6ServerOptionsBootFileParams { + return obj.dhcpv6ServerOptionsBootFileParamsSlice +} + +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) Add() Dhcpv6ServerOptionsBootFileParams { + newObj := &otg.Dhcpv6ServerOptionsBootFileParams{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ServerOptionsBootFileParams{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ServerOptionsBootFileParamsSlice = append(obj.dhcpv6ServerOptionsBootFileParamsSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) Append(items ...Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ServerOptionsBootFileParamsSlice = append(obj.dhcpv6ServerOptionsBootFileParamsSlice, item) + } + return obj +} + +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) Set(index int, newObj Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ServerOptionsBootFileParamsSlice[index] = newObj + return obj +} +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) Clear() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ServerOptionsBootFileParams{} + obj.dhcpv6ServerOptionsBootFileParamsSlice = []Dhcpv6ServerOptionsBootFileParams{} + } + return obj +} +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) clearHolderSlice() Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + if len(obj.dhcpv6ServerOptionsBootFileParamsSlice) > 0 { + obj.dhcpv6ServerOptionsBootFileParamsSlice = []Dhcpv6ServerOptionsBootFileParams{} + } + return obj +} +func (obj *dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter) appendHolderSlice(item Dhcpv6ServerOptionsBootFileParams) Dhcpv6ServerOptionsBootfileUrlDhcpv6ServerOptionsBootFileParamsIter { + obj.dhcpv6ServerOptionsBootFileParamsSlice = append(obj.dhcpv6ServerOptionsBootFileParamsSlice, item) + return obj +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ServerOptionsIncludedMessages +func (obj *dhcpv6ServerOptionsBootfileUrl) AssociatedDhcpMessages() Dhcpv6ServerOptionsIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ServerOptionsIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ServerOptionsIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ServerOptionsIncludedMessages +func (obj *dhcpv6ServerOptionsBootfileUrl) HasAssociatedDhcpMessages() bool { + return obj.obj.AssociatedDhcpMessages != nil +} + +// The list of dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ServerOptionsIncludedMessages value in the Dhcpv6ServerOptionsBootfileUrl object +func (obj *dhcpv6ServerOptionsBootfileUrl) SetAssociatedDhcpMessages(value Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsBootfileUrl { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // Url is required + if obj.obj.Url == nil { + vObj.validationErrors = append(vObj.validationErrors, "Url is required field on interface Dhcpv6ServerOptionsBootfileUrl") + } + + if len(obj.obj.BootfileParams) != 0 { + + if set_default { + obj.BootfileParams().clearHolderSlice() + for _, item := range obj.obj.BootfileParams { + obj.BootfileParams().appendHolderSlice(&dhcpv6ServerOptionsBootFileParams{obj: item}) + } + } + for _, item := range obj.BootfileParams().Items() { + item.validateObj(vObj, set_default) + } + + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ServerOptionsBootfileUrl) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_options_included_messages.go b/gosnappi/dhcpv6_server_options_included_messages.go new file mode 100644 index 00000000..c2d23a24 --- /dev/null +++ b/gosnappi/dhcpv6_server_options_included_messages.go @@ -0,0 +1,467 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptionsIncludedMessages ***** +type dhcpv6ServerOptionsIncludedMessages struct { + validation + obj *otg.Dhcpv6ServerOptionsIncludedMessages + marshaller marshalDhcpv6ServerOptionsIncludedMessages + unMarshaller unMarshalDhcpv6ServerOptionsIncludedMessages + msgTypesHolder Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter +} + +func NewDhcpv6ServerOptionsIncludedMessages() Dhcpv6ServerOptionsIncludedMessages { + obj := dhcpv6ServerOptionsIncludedMessages{obj: &otg.Dhcpv6ServerOptionsIncludedMessages{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) msg() *otg.Dhcpv6ServerOptionsIncludedMessages { + return obj.obj +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) setMsg(msg *otg.Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsIncludedMessages { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptionsIncludedMessages struct { + obj *dhcpv6ServerOptionsIncludedMessages +} + +type marshalDhcpv6ServerOptionsIncludedMessages interface { + // ToProto marshals Dhcpv6ServerOptionsIncludedMessages to protobuf object *otg.Dhcpv6ServerOptionsIncludedMessages + ToProto() (*otg.Dhcpv6ServerOptionsIncludedMessages, error) + // ToPbText marshals Dhcpv6ServerOptionsIncludedMessages to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptionsIncludedMessages to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptionsIncludedMessages to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptionsIncludedMessages struct { + obj *dhcpv6ServerOptionsIncludedMessages +} + +type unMarshalDhcpv6ServerOptionsIncludedMessages interface { + // FromProto unmarshals Dhcpv6ServerOptionsIncludedMessages from protobuf object *otg.Dhcpv6ServerOptionsIncludedMessages + FromProto(msg *otg.Dhcpv6ServerOptionsIncludedMessages) (Dhcpv6ServerOptionsIncludedMessages, error) + // FromPbText unmarshals Dhcpv6ServerOptionsIncludedMessages from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptionsIncludedMessages from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptionsIncludedMessages from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) Marshal() marshalDhcpv6ServerOptionsIncludedMessages { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptionsIncludedMessages{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) Unmarshal() unMarshalDhcpv6ServerOptionsIncludedMessages { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptionsIncludedMessages{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptionsIncludedMessages) ToProto() (*otg.Dhcpv6ServerOptionsIncludedMessages, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptionsIncludedMessages) FromProto(msg *otg.Dhcpv6ServerOptionsIncludedMessages) (Dhcpv6ServerOptionsIncludedMessages, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptionsIncludedMessages) 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 *unMarshaldhcpv6ServerOptionsIncludedMessages) 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 *marshaldhcpv6ServerOptionsIncludedMessages) 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 *unMarshaldhcpv6ServerOptionsIncludedMessages) 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 *marshaldhcpv6ServerOptionsIncludedMessages) 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 *unMarshaldhcpv6ServerOptionsIncludedMessages) 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 *dhcpv6ServerOptionsIncludedMessages) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) Clone() (Dhcpv6ServerOptionsIncludedMessages, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptionsIncludedMessages() + 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 *dhcpv6ServerOptionsIncludedMessages) setNil() { + obj.msgTypesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerOptionsIncludedMessages is the dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. +type Dhcpv6ServerOptionsIncludedMessages interface { + Validation + // msg marshals Dhcpv6ServerOptionsIncludedMessages to protobuf object *otg.Dhcpv6ServerOptionsIncludedMessages + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptionsIncludedMessages + // setMsg unmarshals Dhcpv6ServerOptionsIncludedMessages from protobuf object *otg.Dhcpv6ServerOptionsIncludedMessages + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsIncludedMessages + // provides marshal interface + Marshal() marshalDhcpv6ServerOptionsIncludedMessages + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptionsIncludedMessages + // validate validates Dhcpv6ServerOptionsIncludedMessages + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptionsIncludedMessages, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ServerOptionsIncludedMessagesChoiceEnum, set in Dhcpv6ServerOptionsIncludedMessages + Choice() Dhcpv6ServerOptionsIncludedMessagesChoiceEnum + // setChoice assigns Dhcpv6ServerOptionsIncludedMessagesChoiceEnum provided by user to Dhcpv6ServerOptionsIncludedMessages + setChoice(value Dhcpv6ServerOptionsIncludedMessagesChoiceEnum) Dhcpv6ServerOptionsIncludedMessages + // HasChoice checks if Choice has been set in Dhcpv6ServerOptionsIncludedMessages + HasChoice() bool + // getter for All to set choice. + All() + // MsgTypes returns Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIterIter, set in Dhcpv6ServerOptionsIncludedMessages + MsgTypes() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + setNil() +} + +type Dhcpv6ServerOptionsIncludedMessagesChoiceEnum string + +// Enum of Choice on Dhcpv6ServerOptionsIncludedMessages +var Dhcpv6ServerOptionsIncludedMessagesChoice = struct { + ALL Dhcpv6ServerOptionsIncludedMessagesChoiceEnum + MSG_TYPES Dhcpv6ServerOptionsIncludedMessagesChoiceEnum +}{ + ALL: Dhcpv6ServerOptionsIncludedMessagesChoiceEnum("all"), + MSG_TYPES: Dhcpv6ServerOptionsIncludedMessagesChoiceEnum("msg_types"), +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) Choice() Dhcpv6ServerOptionsIncludedMessagesChoiceEnum { + return Dhcpv6ServerOptionsIncludedMessagesChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for All to set choice +func (obj *dhcpv6ServerOptionsIncludedMessages) All() { + obj.setChoice(Dhcpv6ServerOptionsIncludedMessagesChoice.ALL) +} + +// The server message name where the option is included, by default it is all. +// Choice returns a string +func (obj *dhcpv6ServerOptionsIncludedMessages) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) setChoice(value Dhcpv6ServerOptionsIncludedMessagesChoiceEnum) Dhcpv6ServerOptionsIncludedMessages { + intValue, ok := otg.Dhcpv6ServerOptionsIncludedMessages_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ServerOptionsIncludedMessagesChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ServerOptionsIncludedMessages_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + obj.obj.MsgTypes = nil + obj.msgTypesHolder = nil + + if value == Dhcpv6ServerOptionsIncludedMessagesChoice.MSG_TYPES { + obj.obj.MsgTypes = []*otg.Dhcpv6ServerOptionsMessageType{} + } + + return obj +} + +// User must specify the Dhcpv6 message type. +// MsgTypes returns a []Dhcpv6ServerOptionsMessageType +func (obj *dhcpv6ServerOptionsIncludedMessages) MsgTypes() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + if len(obj.obj.MsgTypes) == 0 { + obj.setChoice(Dhcpv6ServerOptionsIncludedMessagesChoice.MSG_TYPES) + } + if obj.msgTypesHolder == nil { + obj.msgTypesHolder = newDhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter(&obj.obj.MsgTypes).setMsg(obj) + } + return obj.msgTypesHolder +} + +type dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter struct { + obj *dhcpv6ServerOptionsIncludedMessages + dhcpv6ServerOptionsMessageTypeSlice []Dhcpv6ServerOptionsMessageType + fieldPtr *[]*otg.Dhcpv6ServerOptionsMessageType +} + +func newDhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter(ptr *[]*otg.Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + return &dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter{fieldPtr: ptr} +} + +type Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter interface { + setMsg(*dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + Items() []Dhcpv6ServerOptionsMessageType + Add() Dhcpv6ServerOptionsMessageType + Append(items ...Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + Set(index int, newObj Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + Clear() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + clearHolderSlice() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter + appendHolderSlice(item Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter +} + +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) setMsg(msg *dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ServerOptionsMessageType{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) Items() []Dhcpv6ServerOptionsMessageType { + return obj.dhcpv6ServerOptionsMessageTypeSlice +} + +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) Add() Dhcpv6ServerOptionsMessageType { + newObj := &otg.Dhcpv6ServerOptionsMessageType{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ServerOptionsMessageType{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ServerOptionsMessageTypeSlice = append(obj.dhcpv6ServerOptionsMessageTypeSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) Append(items ...Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ServerOptionsMessageTypeSlice = append(obj.dhcpv6ServerOptionsMessageTypeSlice, item) + } + return obj +} + +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) Set(index int, newObj Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ServerOptionsMessageTypeSlice[index] = newObj + return obj +} +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) Clear() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ServerOptionsMessageType{} + obj.dhcpv6ServerOptionsMessageTypeSlice = []Dhcpv6ServerOptionsMessageType{} + } + return obj +} +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) clearHolderSlice() Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + if len(obj.dhcpv6ServerOptionsMessageTypeSlice) > 0 { + obj.dhcpv6ServerOptionsMessageTypeSlice = []Dhcpv6ServerOptionsMessageType{} + } + return obj +} +func (obj *dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter) appendHolderSlice(item Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsIncludedMessagesDhcpv6ServerOptionsMessageTypeIter { + obj.dhcpv6ServerOptionsMessageTypeSlice = append(obj.dhcpv6ServerOptionsMessageTypeSlice, item) + return obj +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if len(obj.obj.MsgTypes) != 0 { + + if set_default { + obj.MsgTypes().clearHolderSlice() + for _, item := range obj.obj.MsgTypes { + obj.MsgTypes().appendHolderSlice(&dhcpv6ServerOptionsMessageType{obj: item}) + } + } + for _, item := range obj.MsgTypes().Items() { + item.validateObj(vObj, set_default) + } + + } + +} + +func (obj *dhcpv6ServerOptionsIncludedMessages) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ServerOptionsIncludedMessagesChoiceEnum + + if len(obj.obj.MsgTypes) > 0 { + choices_set += 1 + choice = Dhcpv6ServerOptionsIncludedMessagesChoice.MSG_TYPES + } + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ServerOptionsIncludedMessagesChoice.ALL) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ServerOptionsIncludedMessages") + } + } else { + intVal := otg.Dhcpv6ServerOptionsIncludedMessages_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ServerOptionsIncludedMessages_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_server_options_message_type.go b/gosnappi/dhcpv6_server_options_message_type.go new file mode 100644 index 00000000..404e5df0 --- /dev/null +++ b/gosnappi/dhcpv6_server_options_message_type.go @@ -0,0 +1,360 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptionsMessageType ***** +type dhcpv6ServerOptionsMessageType struct { + validation + obj *otg.Dhcpv6ServerOptionsMessageType + marshaller marshalDhcpv6ServerOptionsMessageType + unMarshaller unMarshalDhcpv6ServerOptionsMessageType +} + +func NewDhcpv6ServerOptionsMessageType() Dhcpv6ServerOptionsMessageType { + obj := dhcpv6ServerOptionsMessageType{obj: &otg.Dhcpv6ServerOptionsMessageType{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptionsMessageType) msg() *otg.Dhcpv6ServerOptionsMessageType { + return obj.obj +} + +func (obj *dhcpv6ServerOptionsMessageType) setMsg(msg *otg.Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsMessageType { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptionsMessageType struct { + obj *dhcpv6ServerOptionsMessageType +} + +type marshalDhcpv6ServerOptionsMessageType interface { + // ToProto marshals Dhcpv6ServerOptionsMessageType to protobuf object *otg.Dhcpv6ServerOptionsMessageType + ToProto() (*otg.Dhcpv6ServerOptionsMessageType, error) + // ToPbText marshals Dhcpv6ServerOptionsMessageType to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptionsMessageType to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptionsMessageType to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptionsMessageType struct { + obj *dhcpv6ServerOptionsMessageType +} + +type unMarshalDhcpv6ServerOptionsMessageType interface { + // FromProto unmarshals Dhcpv6ServerOptionsMessageType from protobuf object *otg.Dhcpv6ServerOptionsMessageType + FromProto(msg *otg.Dhcpv6ServerOptionsMessageType) (Dhcpv6ServerOptionsMessageType, error) + // FromPbText unmarshals Dhcpv6ServerOptionsMessageType from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptionsMessageType from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptionsMessageType from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptionsMessageType) Marshal() marshalDhcpv6ServerOptionsMessageType { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptionsMessageType{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptionsMessageType) Unmarshal() unMarshalDhcpv6ServerOptionsMessageType { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptionsMessageType{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptionsMessageType) ToProto() (*otg.Dhcpv6ServerOptionsMessageType, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptionsMessageType) FromProto(msg *otg.Dhcpv6ServerOptionsMessageType) (Dhcpv6ServerOptionsMessageType, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptionsMessageType) 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 *unMarshaldhcpv6ServerOptionsMessageType) 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 *marshaldhcpv6ServerOptionsMessageType) 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 *unMarshaldhcpv6ServerOptionsMessageType) 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 *marshaldhcpv6ServerOptionsMessageType) 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 *unMarshaldhcpv6ServerOptionsMessageType) 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 *dhcpv6ServerOptionsMessageType) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsMessageType) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsMessageType) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptionsMessageType) Clone() (Dhcpv6ServerOptionsMessageType, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptionsMessageType() + 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 +} + +// Dhcpv6ServerOptionsMessageType is the dhcpv6 server messages where the option will be included. +type Dhcpv6ServerOptionsMessageType interface { + Validation + // msg marshals Dhcpv6ServerOptionsMessageType to protobuf object *otg.Dhcpv6ServerOptionsMessageType + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptionsMessageType + // setMsg unmarshals Dhcpv6ServerOptionsMessageType from protobuf object *otg.Dhcpv6ServerOptionsMessageType + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptionsMessageType) Dhcpv6ServerOptionsMessageType + // provides marshal interface + Marshal() marshalDhcpv6ServerOptionsMessageType + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptionsMessageType + // validate validates Dhcpv6ServerOptionsMessageType + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptionsMessageType, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns Dhcpv6ServerOptionsMessageTypeChoiceEnum, set in Dhcpv6ServerOptionsMessageType + Choice() Dhcpv6ServerOptionsMessageTypeChoiceEnum + // setChoice assigns Dhcpv6ServerOptionsMessageTypeChoiceEnum provided by user to Dhcpv6ServerOptionsMessageType + setChoice(value Dhcpv6ServerOptionsMessageTypeChoiceEnum) Dhcpv6ServerOptionsMessageType + // HasChoice checks if Choice has been set in Dhcpv6ServerOptionsMessageType + HasChoice() bool + // getter for Reply to set choice. + Reply() + // getter for ReConfigure to set choice. + ReConfigure() + // getter for Advertise to set choice. + Advertise() +} + +type Dhcpv6ServerOptionsMessageTypeChoiceEnum string + +// Enum of Choice on Dhcpv6ServerOptionsMessageType +var Dhcpv6ServerOptionsMessageTypeChoice = struct { + ADVERTISE Dhcpv6ServerOptionsMessageTypeChoiceEnum + REPLY Dhcpv6ServerOptionsMessageTypeChoiceEnum + RE_CONFIGURE Dhcpv6ServerOptionsMessageTypeChoiceEnum +}{ + ADVERTISE: Dhcpv6ServerOptionsMessageTypeChoiceEnum("advertise"), + REPLY: Dhcpv6ServerOptionsMessageTypeChoiceEnum("reply"), + RE_CONFIGURE: Dhcpv6ServerOptionsMessageTypeChoiceEnum("re_configure"), +} + +func (obj *dhcpv6ServerOptionsMessageType) Choice() Dhcpv6ServerOptionsMessageTypeChoiceEnum { + return Dhcpv6ServerOptionsMessageTypeChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Reply to set choice +func (obj *dhcpv6ServerOptionsMessageType) Reply() { + obj.setChoice(Dhcpv6ServerOptionsMessageTypeChoice.REPLY) +} + +// getter for ReConfigure to set choice +func (obj *dhcpv6ServerOptionsMessageType) ReConfigure() { + obj.setChoice(Dhcpv6ServerOptionsMessageTypeChoice.RE_CONFIGURE) +} + +// getter for Advertise to set choice +func (obj *dhcpv6ServerOptionsMessageType) Advertise() { + obj.setChoice(Dhcpv6ServerOptionsMessageTypeChoice.ADVERTISE) +} + +// The server message name where the option is included, by default it is all. +// Choice returns a string +func (obj *dhcpv6ServerOptionsMessageType) HasChoice() bool { + return obj.obj.Choice != nil +} + +func (obj *dhcpv6ServerOptionsMessageType) setChoice(value Dhcpv6ServerOptionsMessageTypeChoiceEnum) Dhcpv6ServerOptionsMessageType { + intValue, ok := otg.Dhcpv6ServerOptionsMessageType_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on Dhcpv6ServerOptionsMessageTypeChoiceEnum", string(value))) + return obj + } + enumValue := otg.Dhcpv6ServerOptionsMessageType_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + + return obj +} + +func (obj *dhcpv6ServerOptionsMessageType) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + +} + +func (obj *dhcpv6ServerOptionsMessageType) setDefault() { + var choices_set int = 0 + var choice Dhcpv6ServerOptionsMessageTypeChoiceEnum + if choices_set == 0 { + if obj.obj.Choice == nil { + obj.setChoice(Dhcpv6ServerOptionsMessageTypeChoice.ADVERTISE) + + } + + } else if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in Dhcpv6ServerOptionsMessageType") + } + } else { + intVal := otg.Dhcpv6ServerOptionsMessageType_Choice_Enum_value[string(choice)] + enumValue := otg.Dhcpv6ServerOptionsMessageType_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/dhcpv6_server_options_vendor_info.go b/gosnappi/dhcpv6_server_options_vendor_info.go new file mode 100644 index 00000000..e3463a2d --- /dev/null +++ b/gosnappi/dhcpv6_server_options_vendor_info.go @@ -0,0 +1,464 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerOptionsVendorInfo ***** +type dhcpv6ServerOptionsVendorInfo struct { + validation + obj *otg.Dhcpv6ServerOptionsVendorInfo + marshaller marshalDhcpv6ServerOptionsVendorInfo + unMarshaller unMarshalDhcpv6ServerOptionsVendorInfo + optionDataHolder Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + associatedDhcpMessagesHolder Dhcpv6ServerOptionsIncludedMessages +} + +func NewDhcpv6ServerOptionsVendorInfo() Dhcpv6ServerOptionsVendorInfo { + obj := dhcpv6ServerOptionsVendorInfo{obj: &otg.Dhcpv6ServerOptionsVendorInfo{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerOptionsVendorInfo) msg() *otg.Dhcpv6ServerOptionsVendorInfo { + return obj.obj +} + +func (obj *dhcpv6ServerOptionsVendorInfo) setMsg(msg *otg.Dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptionsVendorInfo { + obj.setNil() + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerOptionsVendorInfo struct { + obj *dhcpv6ServerOptionsVendorInfo +} + +type marshalDhcpv6ServerOptionsVendorInfo interface { + // ToProto marshals Dhcpv6ServerOptionsVendorInfo to protobuf object *otg.Dhcpv6ServerOptionsVendorInfo + ToProto() (*otg.Dhcpv6ServerOptionsVendorInfo, error) + // ToPbText marshals Dhcpv6ServerOptionsVendorInfo to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerOptionsVendorInfo to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerOptionsVendorInfo to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerOptionsVendorInfo struct { + obj *dhcpv6ServerOptionsVendorInfo +} + +type unMarshalDhcpv6ServerOptionsVendorInfo interface { + // FromProto unmarshals Dhcpv6ServerOptionsVendorInfo from protobuf object *otg.Dhcpv6ServerOptionsVendorInfo + FromProto(msg *otg.Dhcpv6ServerOptionsVendorInfo) (Dhcpv6ServerOptionsVendorInfo, error) + // FromPbText unmarshals Dhcpv6ServerOptionsVendorInfo from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerOptionsVendorInfo from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerOptionsVendorInfo from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerOptionsVendorInfo) Marshal() marshalDhcpv6ServerOptionsVendorInfo { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerOptionsVendorInfo{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerOptionsVendorInfo) Unmarshal() unMarshalDhcpv6ServerOptionsVendorInfo { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerOptionsVendorInfo{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerOptionsVendorInfo) ToProto() (*otg.Dhcpv6ServerOptionsVendorInfo, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerOptionsVendorInfo) FromProto(msg *otg.Dhcpv6ServerOptionsVendorInfo) (Dhcpv6ServerOptionsVendorInfo, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerOptionsVendorInfo) 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 *unMarshaldhcpv6ServerOptionsVendorInfo) 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 *marshaldhcpv6ServerOptionsVendorInfo) 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 *unMarshaldhcpv6ServerOptionsVendorInfo) 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 *marshaldhcpv6ServerOptionsVendorInfo) 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 *unMarshaldhcpv6ServerOptionsVendorInfo) 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 *dhcpv6ServerOptionsVendorInfo) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsVendorInfo) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerOptionsVendorInfo) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerOptionsVendorInfo) Clone() (Dhcpv6ServerOptionsVendorInfo, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerOptionsVendorInfo() + 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 *dhcpv6ServerOptionsVendorInfo) setNil() { + obj.optionDataHolder = nil + obj.associatedDhcpMessagesHolder = nil + obj.validationErrors = nil + obj.warnings = nil + obj.constraints = make(map[string]map[string]Constraints) +} + +// Dhcpv6ServerOptionsVendorInfo is this option is used by servers to exchange vendor-specific information. The option code is 17. +type Dhcpv6ServerOptionsVendorInfo interface { + Validation + // msg marshals Dhcpv6ServerOptionsVendorInfo to protobuf object *otg.Dhcpv6ServerOptionsVendorInfo + // and doesn't set defaults + msg() *otg.Dhcpv6ServerOptionsVendorInfo + // setMsg unmarshals Dhcpv6ServerOptionsVendorInfo from protobuf object *otg.Dhcpv6ServerOptionsVendorInfo + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptionsVendorInfo + // provides marshal interface + Marshal() marshalDhcpv6ServerOptionsVendorInfo + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerOptionsVendorInfo + // validate validates Dhcpv6ServerOptionsVendorInfo + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerOptionsVendorInfo, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // EnterpriseNumber returns uint32, set in Dhcpv6ServerOptionsVendorInfo. + EnterpriseNumber() uint32 + // SetEnterpriseNumber assigns uint32 provided by user to Dhcpv6ServerOptionsVendorInfo + SetEnterpriseNumber(value uint32) Dhcpv6ServerOptionsVendorInfo + // OptionData returns Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIterIter, set in Dhcpv6ServerOptionsVendorInfo + OptionData() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + // AssociatedDhcpMessages returns Dhcpv6ServerOptionsIncludedMessages, set in Dhcpv6ServerOptionsVendorInfo. + // Dhcpv6ServerOptionsIncludedMessages is the dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. + AssociatedDhcpMessages() Dhcpv6ServerOptionsIncludedMessages + // SetAssociatedDhcpMessages assigns Dhcpv6ServerOptionsIncludedMessages provided by user to Dhcpv6ServerOptionsVendorInfo. + // Dhcpv6ServerOptionsIncludedMessages is the dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. + SetAssociatedDhcpMessages(value Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsVendorInfo + setNil() +} + +// The vendor's registered Enterprise Number as registered with IANA. +// EnterpriseNumber returns a uint32 +func (obj *dhcpv6ServerOptionsVendorInfo) EnterpriseNumber() uint32 { + + return *obj.obj.EnterpriseNumber + +} + +// The vendor's registered Enterprise Number as registered with IANA. +// SetEnterpriseNumber sets the uint32 value in the Dhcpv6ServerOptionsVendorInfo object +func (obj *dhcpv6ServerOptionsVendorInfo) SetEnterpriseNumber(value uint32) Dhcpv6ServerOptionsVendorInfo { + + obj.obj.EnterpriseNumber = &value + return obj +} + +// An opaque object of octets,interpreted by vendor-specific code on the clients and servers. +// OptionData returns a []Dhcpv6OptionsVendorSpecificOptions +func (obj *dhcpv6ServerOptionsVendorInfo) OptionData() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(obj.obj.OptionData) == 0 { + obj.obj.OptionData = []*otg.Dhcpv6OptionsVendorSpecificOptions{} + } + if obj.optionDataHolder == nil { + obj.optionDataHolder = newDhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter(&obj.obj.OptionData).setMsg(obj) + } + return obj.optionDataHolder +} + +type dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter struct { + obj *dhcpv6ServerOptionsVendorInfo + dhcpv6OptionsVendorSpecificOptionsSlice []Dhcpv6OptionsVendorSpecificOptions + fieldPtr *[]*otg.Dhcpv6OptionsVendorSpecificOptions +} + +func newDhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter(ptr *[]*otg.Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + return &dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter{fieldPtr: ptr} +} + +type Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter interface { + setMsg(*dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Items() []Dhcpv6OptionsVendorSpecificOptions + Add() Dhcpv6OptionsVendorSpecificOptions + Append(items ...Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Set(index int, newObj Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + Clear() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + clearHolderSlice() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter + appendHolderSlice(item Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter +} + +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) setMsg(msg *dhcpv6ServerOptionsVendorInfo) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6OptionsVendorSpecificOptions{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Items() []Dhcpv6OptionsVendorSpecificOptions { + return obj.dhcpv6OptionsVendorSpecificOptionsSlice +} + +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Add() Dhcpv6OptionsVendorSpecificOptions { + newObj := &otg.Dhcpv6OptionsVendorSpecificOptions{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6OptionsVendorSpecificOptions{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, newLibObj) + return newLibObj +} + +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Append(items ...Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, item) + } + return obj +} + +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Set(index int, newObj Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6OptionsVendorSpecificOptionsSlice[index] = newObj + return obj +} +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) Clear() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6OptionsVendorSpecificOptions{} + obj.dhcpv6OptionsVendorSpecificOptionsSlice = []Dhcpv6OptionsVendorSpecificOptions{} + } + return obj +} +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) clearHolderSlice() Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + if len(obj.dhcpv6OptionsVendorSpecificOptionsSlice) > 0 { + obj.dhcpv6OptionsVendorSpecificOptionsSlice = []Dhcpv6OptionsVendorSpecificOptions{} + } + return obj +} +func (obj *dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter) appendHolderSlice(item Dhcpv6OptionsVendorSpecificOptions) Dhcpv6ServerOptionsVendorInfoDhcpv6OptionsVendorSpecificOptionsIter { + obj.dhcpv6OptionsVendorSpecificOptionsSlice = append(obj.dhcpv6OptionsVendorSpecificOptionsSlice, item) + return obj +} + +// The list of dhcpv6 client messages where this option is included. +// AssociatedDhcpMessages returns a Dhcpv6ServerOptionsIncludedMessages +func (obj *dhcpv6ServerOptionsVendorInfo) AssociatedDhcpMessages() Dhcpv6ServerOptionsIncludedMessages { + if obj.obj.AssociatedDhcpMessages == nil { + obj.obj.AssociatedDhcpMessages = NewDhcpv6ServerOptionsIncludedMessages().msg() + } + if obj.associatedDhcpMessagesHolder == nil { + obj.associatedDhcpMessagesHolder = &dhcpv6ServerOptionsIncludedMessages{obj: obj.obj.AssociatedDhcpMessages} + } + return obj.associatedDhcpMessagesHolder +} + +// The list of dhcpv6 client messages where this option is included. +// SetAssociatedDhcpMessages sets the Dhcpv6ServerOptionsIncludedMessages value in the Dhcpv6ServerOptionsVendorInfo object +func (obj *dhcpv6ServerOptionsVendorInfo) SetAssociatedDhcpMessages(value Dhcpv6ServerOptionsIncludedMessages) Dhcpv6ServerOptionsVendorInfo { + + obj.associatedDhcpMessagesHolder = nil + obj.obj.AssociatedDhcpMessages = value.msg() + + return obj +} + +func (obj *dhcpv6ServerOptionsVendorInfo) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + // EnterpriseNumber is required + if obj.obj.EnterpriseNumber == nil { + vObj.validationErrors = append(vObj.validationErrors, "EnterpriseNumber is required field on interface Dhcpv6ServerOptionsVendorInfo") + } + if obj.obj.EnterpriseNumber != nil { + + if *obj.obj.EnterpriseNumber > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ServerOptionsVendorInfo.EnterpriseNumber <= 4294967295 but Got %d", *obj.obj.EnterpriseNumber)) + } + + } + + if len(obj.obj.OptionData) != 0 { + + if set_default { + obj.OptionData().clearHolderSlice() + for _, item := range obj.obj.OptionData { + obj.OptionData().appendHolderSlice(&dhcpv6OptionsVendorSpecificOptions{obj: item}) + } + } + for _, item := range obj.OptionData().Items() { + item.validateObj(vObj, set_default) + } + + } + + // AssociatedDhcpMessages is required + if obj.obj.AssociatedDhcpMessages == nil { + vObj.validationErrors = append(vObj.validationErrors, "AssociatedDhcpMessages is required field on interface Dhcpv6ServerOptionsVendorInfo") + } + + if obj.obj.AssociatedDhcpMessages != nil { + + obj.AssociatedDhcpMessages().validateObj(vObj, set_default) + } + +} + +func (obj *dhcpv6ServerOptionsVendorInfo) setDefault() { + +} diff --git a/gosnappi/dhcpv6_server_pool_info.go b/gosnappi/dhcpv6_server_pool_info.go new file mode 100644 index 00000000..14909281 --- /dev/null +++ b/gosnappi/dhcpv6_server_pool_info.go @@ -0,0 +1,438 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** Dhcpv6ServerPoolInfo ***** +type dhcpv6ServerPoolInfo struct { + validation + obj *otg.Dhcpv6ServerPoolInfo + marshaller marshalDhcpv6ServerPoolInfo + unMarshaller unMarshalDhcpv6ServerPoolInfo +} + +func NewDhcpv6ServerPoolInfo() Dhcpv6ServerPoolInfo { + obj := dhcpv6ServerPoolInfo{obj: &otg.Dhcpv6ServerPoolInfo{}} + obj.setDefault() + return &obj +} + +func (obj *dhcpv6ServerPoolInfo) msg() *otg.Dhcpv6ServerPoolInfo { + return obj.obj +} + +func (obj *dhcpv6ServerPoolInfo) setMsg(msg *otg.Dhcpv6ServerPoolInfo) Dhcpv6ServerPoolInfo { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshaldhcpv6ServerPoolInfo struct { + obj *dhcpv6ServerPoolInfo +} + +type marshalDhcpv6ServerPoolInfo interface { + // ToProto marshals Dhcpv6ServerPoolInfo to protobuf object *otg.Dhcpv6ServerPoolInfo + ToProto() (*otg.Dhcpv6ServerPoolInfo, error) + // ToPbText marshals Dhcpv6ServerPoolInfo to protobuf text + ToPbText() (string, error) + // ToYaml marshals Dhcpv6ServerPoolInfo to YAML text + ToYaml() (string, error) + // ToJson marshals Dhcpv6ServerPoolInfo to JSON text + ToJson() (string, error) +} + +type unMarshaldhcpv6ServerPoolInfo struct { + obj *dhcpv6ServerPoolInfo +} + +type unMarshalDhcpv6ServerPoolInfo interface { + // FromProto unmarshals Dhcpv6ServerPoolInfo from protobuf object *otg.Dhcpv6ServerPoolInfo + FromProto(msg *otg.Dhcpv6ServerPoolInfo) (Dhcpv6ServerPoolInfo, error) + // FromPbText unmarshals Dhcpv6ServerPoolInfo from protobuf text + FromPbText(value string) error + // FromYaml unmarshals Dhcpv6ServerPoolInfo from YAML text + FromYaml(value string) error + // FromJson unmarshals Dhcpv6ServerPoolInfo from JSON text + FromJson(value string) error +} + +func (obj *dhcpv6ServerPoolInfo) Marshal() marshalDhcpv6ServerPoolInfo { + if obj.marshaller == nil { + obj.marshaller = &marshaldhcpv6ServerPoolInfo{obj: obj} + } + return obj.marshaller +} + +func (obj *dhcpv6ServerPoolInfo) Unmarshal() unMarshalDhcpv6ServerPoolInfo { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshaldhcpv6ServerPoolInfo{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshaldhcpv6ServerPoolInfo) ToProto() (*otg.Dhcpv6ServerPoolInfo, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshaldhcpv6ServerPoolInfo) FromProto(msg *otg.Dhcpv6ServerPoolInfo) (Dhcpv6ServerPoolInfo, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshaldhcpv6ServerPoolInfo) 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 *unMarshaldhcpv6ServerPoolInfo) 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 *marshaldhcpv6ServerPoolInfo) 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 *unMarshaldhcpv6ServerPoolInfo) 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 *marshaldhcpv6ServerPoolInfo) 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 *unMarshaldhcpv6ServerPoolInfo) 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 *dhcpv6ServerPoolInfo) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *dhcpv6ServerPoolInfo) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *dhcpv6ServerPoolInfo) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *dhcpv6ServerPoolInfo) Clone() (Dhcpv6ServerPoolInfo, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewDhcpv6ServerPoolInfo() + 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 +} + +// Dhcpv6ServerPoolInfo is the container for pool configurations for IA types iana and iata. +type Dhcpv6ServerPoolInfo interface { + Validation + // msg marshals Dhcpv6ServerPoolInfo to protobuf object *otg.Dhcpv6ServerPoolInfo + // and doesn't set defaults + msg() *otg.Dhcpv6ServerPoolInfo + // setMsg unmarshals Dhcpv6ServerPoolInfo from protobuf object *otg.Dhcpv6ServerPoolInfo + // and doesn't set defaults + setMsg(*otg.Dhcpv6ServerPoolInfo) Dhcpv6ServerPoolInfo + // provides marshal interface + Marshal() marshalDhcpv6ServerPoolInfo + // provides unmarshal interface + Unmarshal() unMarshalDhcpv6ServerPoolInfo + // validate validates Dhcpv6ServerPoolInfo + validate() error + // A stringer function + String() string + // Clones the object + Clone() (Dhcpv6ServerPoolInfo, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // StartAddress returns string, set in Dhcpv6ServerPoolInfo. + StartAddress() string + // SetStartAddress assigns string provided by user to Dhcpv6ServerPoolInfo + SetStartAddress(value string) Dhcpv6ServerPoolInfo + // HasStartAddress checks if StartAddress has been set in Dhcpv6ServerPoolInfo + HasStartAddress() bool + // PrefixLen returns uint32, set in Dhcpv6ServerPoolInfo. + PrefixLen() uint32 + // SetPrefixLen assigns uint32 provided by user to Dhcpv6ServerPoolInfo + SetPrefixLen(value uint32) Dhcpv6ServerPoolInfo + // HasPrefixLen checks if PrefixLen has been set in Dhcpv6ServerPoolInfo + HasPrefixLen() bool + // Size returns uint32, set in Dhcpv6ServerPoolInfo. + Size() uint32 + // SetSize assigns uint32 provided by user to Dhcpv6ServerPoolInfo + SetSize(value uint32) Dhcpv6ServerPoolInfo + // HasSize checks if Size has been set in Dhcpv6ServerPoolInfo + HasSize() bool + // Step returns uint32, set in Dhcpv6ServerPoolInfo. + Step() uint32 + // SetStep assigns uint32 provided by user to Dhcpv6ServerPoolInfo + SetStep(value uint32) Dhcpv6ServerPoolInfo + // HasStep checks if Step has been set in Dhcpv6ServerPoolInfo + HasStep() bool +} + +// The first IP address of the lease pool. +// StartAddress returns a string +func (obj *dhcpv6ServerPoolInfo) StartAddress() string { + + return *obj.obj.StartAddress + +} + +// The first IP address of the lease pool. +// StartAddress returns a string +func (obj *dhcpv6ServerPoolInfo) HasStartAddress() bool { + return obj.obj.StartAddress != nil +} + +// The first IP address of the lease pool. +// SetStartAddress sets the string value in the Dhcpv6ServerPoolInfo object +func (obj *dhcpv6ServerPoolInfo) SetStartAddress(value string) Dhcpv6ServerPoolInfo { + + obj.obj.StartAddress = &value + return obj +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// PrefixLen returns a uint32 +func (obj *dhcpv6ServerPoolInfo) PrefixLen() uint32 { + + return *obj.obj.PrefixLen + +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// PrefixLen returns a uint32 +func (obj *dhcpv6ServerPoolInfo) HasPrefixLen() bool { + return obj.obj.PrefixLen != nil +} + +// The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. +// SetPrefixLen sets the uint32 value in the Dhcpv6ServerPoolInfo object +func (obj *dhcpv6ServerPoolInfo) SetPrefixLen(value uint32) Dhcpv6ServerPoolInfo { + + obj.obj.PrefixLen = &value + return obj +} + +// The total number of addresses in the pool. +// Size returns a uint32 +func (obj *dhcpv6ServerPoolInfo) Size() uint32 { + + return *obj.obj.Size + +} + +// The total number of addresses in the pool. +// Size returns a uint32 +func (obj *dhcpv6ServerPoolInfo) HasSize() bool { + return obj.obj.Size != nil +} + +// The total number of addresses in the pool. +// SetSize sets the uint32 value in the Dhcpv6ServerPoolInfo object +func (obj *dhcpv6ServerPoolInfo) SetSize(value uint32) Dhcpv6ServerPoolInfo { + + obj.obj.Size = &value + return obj +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. +// Step returns a uint32 +func (obj *dhcpv6ServerPoolInfo) Step() uint32 { + + return *obj.obj.Step + +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. +// Step returns a uint32 +func (obj *dhcpv6ServerPoolInfo) HasStep() bool { + return obj.obj.Step != nil +} + +// The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. +// SetStep sets the uint32 value in the Dhcpv6ServerPoolInfo object +func (obj *dhcpv6ServerPoolInfo) SetStep(value uint32) Dhcpv6ServerPoolInfo { + + obj.obj.Step = &value + return obj +} + +func (obj *dhcpv6ServerPoolInfo) validateObj(vObj *validation, set_default bool) { + if set_default { + obj.setDefault() + } + + if obj.obj.StartAddress != nil { + + err := obj.validateIpv6(obj.StartAddress()) + if err != nil { + vObj.validationErrors = append(vObj.validationErrors, fmt.Sprintf("%s %s", err.Error(), "on Dhcpv6ServerPoolInfo.StartAddress")) + } + + } + + if obj.obj.PrefixLen != nil { + + if *obj.obj.PrefixLen > 128 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("0 <= Dhcpv6ServerPoolInfo.PrefixLen <= 128 but Got %d", *obj.obj.PrefixLen)) + } + + } + + if obj.obj.Size != nil { + + if *obj.obj.Size < 1 || *obj.obj.Size > 1000000 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= Dhcpv6ServerPoolInfo.Size <= 1000000 but Got %d", *obj.obj.Size)) + } + + } + + if obj.obj.Step != nil { + + if *obj.obj.Step < 1 || *obj.obj.Step > 4294967295 { + vObj.validationErrors = append( + vObj.validationErrors, + fmt.Sprintf("1 <= Dhcpv6ServerPoolInfo.Step <= 4294967295 but Got %d", *obj.obj.Step)) + } + + } + +} + +func (obj *dhcpv6ServerPoolInfo) setDefault() { + if obj.obj.PrefixLen == nil { + obj.SetPrefixLen(64) + } + if obj.obj.Size == nil { + obj.SetSize(1) + } + if obj.obj.Step == nil { + obj.SetStep(1) + } + +} diff --git a/gosnappi/flow_ipv6_auto.go b/gosnappi/flow_ipv6_auto.go new file mode 100644 index 00000000..db706e16 --- /dev/null +++ b/gosnappi/flow_ipv6_auto.go @@ -0,0 +1,332 @@ +package gosnappi + +import ( + "fmt" + "strings" + + "github.com/ghodss/yaml" + otg "github.com/open-traffic-generator/snappi/gosnappi/otg" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +// ***** FlowIpv6Auto ***** +type flowIpv6Auto struct { + validation + obj *otg.FlowIpv6Auto + marshaller marshalFlowIpv6Auto + unMarshaller unMarshalFlowIpv6Auto +} + +func NewFlowIpv6Auto() FlowIpv6Auto { + obj := flowIpv6Auto{obj: &otg.FlowIpv6Auto{}} + obj.setDefault() + return &obj +} + +func (obj *flowIpv6Auto) msg() *otg.FlowIpv6Auto { + return obj.obj +} + +func (obj *flowIpv6Auto) setMsg(msg *otg.FlowIpv6Auto) FlowIpv6Auto { + + proto.Merge(obj.obj, msg) + return obj +} + +type marshalflowIpv6Auto struct { + obj *flowIpv6Auto +} + +type marshalFlowIpv6Auto interface { + // ToProto marshals FlowIpv6Auto to protobuf object *otg.FlowIpv6Auto + ToProto() (*otg.FlowIpv6Auto, error) + // ToPbText marshals FlowIpv6Auto to protobuf text + ToPbText() (string, error) + // ToYaml marshals FlowIpv6Auto to YAML text + ToYaml() (string, error) + // ToJson marshals FlowIpv6Auto to JSON text + ToJson() (string, error) +} + +type unMarshalflowIpv6Auto struct { + obj *flowIpv6Auto +} + +type unMarshalFlowIpv6Auto interface { + // FromProto unmarshals FlowIpv6Auto from protobuf object *otg.FlowIpv6Auto + FromProto(msg *otg.FlowIpv6Auto) (FlowIpv6Auto, error) + // FromPbText unmarshals FlowIpv6Auto from protobuf text + FromPbText(value string) error + // FromYaml unmarshals FlowIpv6Auto from YAML text + FromYaml(value string) error + // FromJson unmarshals FlowIpv6Auto from JSON text + FromJson(value string) error +} + +func (obj *flowIpv6Auto) Marshal() marshalFlowIpv6Auto { + if obj.marshaller == nil { + obj.marshaller = &marshalflowIpv6Auto{obj: obj} + } + return obj.marshaller +} + +func (obj *flowIpv6Auto) Unmarshal() unMarshalFlowIpv6Auto { + if obj.unMarshaller == nil { + obj.unMarshaller = &unMarshalflowIpv6Auto{obj: obj} + } + return obj.unMarshaller +} + +func (m *marshalflowIpv6Auto) ToProto() (*otg.FlowIpv6Auto, error) { + err := m.obj.validateToAndFrom() + if err != nil { + return nil, err + } + return m.obj.msg(), nil +} + +func (m *unMarshalflowIpv6Auto) FromProto(msg *otg.FlowIpv6Auto) (FlowIpv6Auto, error) { + newObj := m.obj.setMsg(msg) + err := newObj.validateToAndFrom() + if err != nil { + return nil, err + } + return newObj, nil +} + +func (m *marshalflowIpv6Auto) 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 *unMarshalflowIpv6Auto) 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 *marshalflowIpv6Auto) 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 *unMarshalflowIpv6Auto) 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 *marshalflowIpv6Auto) 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 *unMarshalflowIpv6Auto) 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 *flowIpv6Auto) validateToAndFrom() error { + // emptyVars() + obj.validateObj(&obj.validation, true) + return obj.validationResult() +} + +func (obj *flowIpv6Auto) validate() error { + // emptyVars() + obj.validateObj(&obj.validation, false) + return obj.validationResult() +} + +func (obj *flowIpv6Auto) String() string { + str, err := obj.Marshal().ToYaml() + if err != nil { + return err.Error() + } + return str +} + +func (obj *flowIpv6Auto) Clone() (FlowIpv6Auto, error) { + vErr := obj.validate() + if vErr != nil { + return nil, vErr + } + newObj := NewFlowIpv6Auto() + 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 +} + +// FlowIpv6Auto is the OTG implementation can provide a system generated, value for this property. +type FlowIpv6Auto interface { + Validation + // msg marshals FlowIpv6Auto to protobuf object *otg.FlowIpv6Auto + // and doesn't set defaults + msg() *otg.FlowIpv6Auto + // setMsg unmarshals FlowIpv6Auto from protobuf object *otg.FlowIpv6Auto + // and doesn't set defaults + setMsg(*otg.FlowIpv6Auto) FlowIpv6Auto + // provides marshal interface + Marshal() marshalFlowIpv6Auto + // provides unmarshal interface + Unmarshal() unMarshalFlowIpv6Auto + // validate validates FlowIpv6Auto + validate() error + // A stringer function + String() string + // Clones the object + Clone() (FlowIpv6Auto, error) + validateToAndFrom() error + validateObj(vObj *validation, set_default bool) + setDefault() + // Choice returns FlowIpv6AutoChoiceEnum, set in FlowIpv6Auto + Choice() FlowIpv6AutoChoiceEnum + // setChoice assigns FlowIpv6AutoChoiceEnum provided by user to FlowIpv6Auto + setChoice(value FlowIpv6AutoChoiceEnum) FlowIpv6Auto + // getter for Dhcp to set choice. + Dhcp() +} + +type FlowIpv6AutoChoiceEnum string + +// Enum of Choice on FlowIpv6Auto +var FlowIpv6AutoChoice = struct { + DHCP FlowIpv6AutoChoiceEnum +}{ + DHCP: FlowIpv6AutoChoiceEnum("dhcp"), +} + +func (obj *flowIpv6Auto) Choice() FlowIpv6AutoChoiceEnum { + return FlowIpv6AutoChoiceEnum(obj.obj.Choice.Enum().String()) +} + +// getter for Dhcp to set choice +func (obj *flowIpv6Auto) Dhcp() { + obj.setChoice(FlowIpv6AutoChoice.DHCP) +} + +func (obj *flowIpv6Auto) setChoice(value FlowIpv6AutoChoiceEnum) FlowIpv6Auto { + intValue, ok := otg.FlowIpv6Auto_Choice_Enum_value[string(value)] + if !ok { + obj.validationErrors = append(obj.validationErrors, fmt.Sprintf( + "%s is not a valid choice on FlowIpv6AutoChoiceEnum", string(value))) + return obj + } + enumValue := otg.FlowIpv6Auto_Choice_Enum(intValue) + obj.obj.Choice = &enumValue + + return obj +} + +func (obj *flowIpv6Auto) 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 FlowIpv6Auto") + } +} + +func (obj *flowIpv6Auto) setDefault() { + var choices_set int = 0 + var choice FlowIpv6AutoChoiceEnum + if choices_set == 1 && choice != "" { + if obj.obj.Choice != nil { + if obj.Choice() != choice { + obj.validationErrors = append(obj.validationErrors, "choice not matching with property in FlowIpv6Auto") + } + } else { + intVal := otg.FlowIpv6Auto_Choice_Enum_value[string(choice)] + enumValue := otg.FlowIpv6Auto_Choice_Enum(intVal) + obj.obj.Choice = &enumValue + } + } + +} diff --git a/gosnappi/flow_router.go b/gosnappi/flow_router.go index baaf89c3..10cf6848 100644 --- a/gosnappi/flow_router.go +++ b/gosnappi/flow_router.go @@ -353,6 +353,7 @@ func (obj *flowRouter) SetMode(value FlowRouterModeEnum) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name @@ -365,6 +366,7 @@ func (obj *flowRouter) SetMode(value FlowRouterModeEnum) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // TxNames returns a []string func (obj *flowRouter) TxNames() []string { @@ -387,6 +389,7 @@ func (obj *flowRouter) TxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name @@ -399,6 +402,7 @@ func (obj *flowRouter) TxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // SetTxNames sets the []string value in the FlowRouter object func (obj *flowRouter) SetTxNames(value []string) FlowRouter { @@ -424,6 +428,7 @@ func (obj *flowRouter) SetTxNames(value []string) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name @@ -436,6 +441,7 @@ func (obj *flowRouter) SetTxNames(value []string) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // RxNames returns a []string func (obj *flowRouter) RxNames() []string { @@ -458,6 +464,7 @@ func (obj *flowRouter) RxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name @@ -470,6 +477,7 @@ func (obj *flowRouter) RxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name +// - /components/schemas/Device.Dhcpv6client/properties/name // // SetRxNames sets the []string value in the FlowRouter object func (obj *flowRouter) SetRxNames(value []string) FlowRouter { diff --git a/gosnappi/go.mod b/gosnappi/go.mod index 7ee71472..f195f500 100644 --- a/gosnappi/go.mod +++ b/gosnappi/go.mod @@ -2,7 +2,7 @@ module github.com/open-traffic-generator/snappi/gosnappi go 1.21 -toolchain go1.21.12 +toolchain go1.21.13 require ( github.com/Masterminds/semver/v3 v3.2.1 diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index 9ae1e236..1d6c538e 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 1.7.1 +/* Open Traffic Generator API 1.8.0 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -246,7 +246,7 @@ type Api interface { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("1.7.1").SetSdkVersion("1.7.2") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("1.8.0").SetSdkVersion("1.8.0") } return api.versionMeta.localVersion diff --git a/gosnappi/metrics_request.go b/gosnappi/metrics_request.go index 01ee3581..4a778db8 100644 --- a/gosnappi/metrics_request.go +++ b/gosnappi/metrics_request.go @@ -27,6 +27,8 @@ type metricsRequest struct { rsvpHolder RsvpMetricsRequest dhcpv4ClientHolder Dhcpv4ClientMetricsRequest dhcpv4ServerHolder Dhcpv4ServerMetricsRequest + dhcpv6ClientHolder Dhcpv6ClientMetricsRequest + dhcpv6ServerHolder Dhcpv6ServerMetricsRequest } func NewMetricsRequest() MetricsRequest { @@ -265,6 +267,8 @@ func (obj *metricsRequest) setNil() { obj.rsvpHolder = nil obj.dhcpv4ClientHolder = nil obj.dhcpv4ServerHolder = nil + obj.dhcpv6ClientHolder = nil + obj.dhcpv6ServerHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -386,6 +390,22 @@ type MetricsRequest interface { SetDhcpv4Server(value Dhcpv4ServerMetricsRequest) MetricsRequest // HasDhcpv4Server checks if Dhcpv4Server has been set in MetricsRequest HasDhcpv4Server() bool + // Dhcpv6Client returns Dhcpv6ClientMetricsRequest, set in MetricsRequest. + // Dhcpv6ClientMetricsRequest is the request to retrieve DHCPv6 per client metrics/statistics. + Dhcpv6Client() Dhcpv6ClientMetricsRequest + // SetDhcpv6Client assigns Dhcpv6ClientMetricsRequest provided by user to MetricsRequest. + // Dhcpv6ClientMetricsRequest is the request to retrieve DHCPv6 per client metrics/statistics. + SetDhcpv6Client(value Dhcpv6ClientMetricsRequest) MetricsRequest + // HasDhcpv6Client checks if Dhcpv6Client has been set in MetricsRequest + HasDhcpv6Client() bool + // Dhcpv6Server returns Dhcpv6ServerMetricsRequest, set in MetricsRequest. + // Dhcpv6ServerMetricsRequest is the request to retrieve DHCPv6 per Server metrics/statistics. + Dhcpv6Server() Dhcpv6ServerMetricsRequest + // SetDhcpv6Server assigns Dhcpv6ServerMetricsRequest provided by user to MetricsRequest. + // Dhcpv6ServerMetricsRequest is the request to retrieve DHCPv6 per Server metrics/statistics. + SetDhcpv6Server(value Dhcpv6ServerMetricsRequest) MetricsRequest + // HasDhcpv6Server checks if Dhcpv6Server has been set in MetricsRequest + HasDhcpv6Server() bool setNil() } @@ -404,6 +424,8 @@ var MetricsRequestChoice = struct { RSVP MetricsRequestChoiceEnum DHCPV4_CLIENT MetricsRequestChoiceEnum DHCPV4_SERVER MetricsRequestChoiceEnum + DHCPV6_CLIENT MetricsRequestChoiceEnum + DHCPV6_SERVER MetricsRequestChoiceEnum }{ PORT: MetricsRequestChoiceEnum("port"), FLOW: MetricsRequestChoiceEnum("flow"), @@ -416,6 +438,8 @@ var MetricsRequestChoice = struct { RSVP: MetricsRequestChoiceEnum("rsvp"), DHCPV4_CLIENT: MetricsRequestChoiceEnum("dhcpv4_client"), DHCPV4_SERVER: MetricsRequestChoiceEnum("dhcpv4_server"), + DHCPV6_CLIENT: MetricsRequestChoiceEnum("dhcpv6_client"), + DHCPV6_SERVER: MetricsRequestChoiceEnum("dhcpv6_server"), } func (obj *metricsRequest) Choice() MetricsRequestChoiceEnum { @@ -437,6 +461,10 @@ func (obj *metricsRequest) setChoice(value MetricsRequestChoiceEnum) MetricsRequ } enumValue := otg.MetricsRequest_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Dhcpv6Server = nil + obj.dhcpv6ServerHolder = nil + obj.obj.Dhcpv6Client = nil + obj.dhcpv6ClientHolder = nil obj.obj.Dhcpv4Server = nil obj.dhcpv4ServerHolder = nil obj.obj.Dhcpv4Client = nil @@ -504,6 +532,14 @@ func (obj *metricsRequest) setChoice(value MetricsRequestChoiceEnum) MetricsRequ obj.obj.Dhcpv4Server = NewDhcpv4ServerMetricsRequest().msg() } + if value == MetricsRequestChoice.DHCPV6_CLIENT { + obj.obj.Dhcpv6Client = NewDhcpv6ClientMetricsRequest().msg() + } + + if value == MetricsRequestChoice.DHCPV6_SERVER { + obj.obj.Dhcpv6Server = NewDhcpv6ServerMetricsRequest().msg() + } + return obj } @@ -815,6 +851,62 @@ func (obj *metricsRequest) SetDhcpv4Server(value Dhcpv4ServerMetricsRequest) Met return obj } +// description is TBD +// Dhcpv6Client returns a Dhcpv6ClientMetricsRequest +func (obj *metricsRequest) Dhcpv6Client() Dhcpv6ClientMetricsRequest { + if obj.obj.Dhcpv6Client == nil { + obj.setChoice(MetricsRequestChoice.DHCPV6_CLIENT) + } + if obj.dhcpv6ClientHolder == nil { + obj.dhcpv6ClientHolder = &dhcpv6ClientMetricsRequest{obj: obj.obj.Dhcpv6Client} + } + return obj.dhcpv6ClientHolder +} + +// description is TBD +// Dhcpv6Client returns a Dhcpv6ClientMetricsRequest +func (obj *metricsRequest) HasDhcpv6Client() bool { + return obj.obj.Dhcpv6Client != nil +} + +// description is TBD +// SetDhcpv6Client sets the Dhcpv6ClientMetricsRequest value in the MetricsRequest object +func (obj *metricsRequest) SetDhcpv6Client(value Dhcpv6ClientMetricsRequest) MetricsRequest { + obj.setChoice(MetricsRequestChoice.DHCPV6_CLIENT) + obj.dhcpv6ClientHolder = nil + obj.obj.Dhcpv6Client = value.msg() + + return obj +} + +// description is TBD +// Dhcpv6Server returns a Dhcpv6ServerMetricsRequest +func (obj *metricsRequest) Dhcpv6Server() Dhcpv6ServerMetricsRequest { + if obj.obj.Dhcpv6Server == nil { + obj.setChoice(MetricsRequestChoice.DHCPV6_SERVER) + } + if obj.dhcpv6ServerHolder == nil { + obj.dhcpv6ServerHolder = &dhcpv6ServerMetricsRequest{obj: obj.obj.Dhcpv6Server} + } + return obj.dhcpv6ServerHolder +} + +// description is TBD +// Dhcpv6Server returns a Dhcpv6ServerMetricsRequest +func (obj *metricsRequest) HasDhcpv6Server() bool { + return obj.obj.Dhcpv6Server != nil +} + +// description is TBD +// SetDhcpv6Server sets the Dhcpv6ServerMetricsRequest value in the MetricsRequest object +func (obj *metricsRequest) SetDhcpv6Server(value Dhcpv6ServerMetricsRequest) MetricsRequest { + obj.setChoice(MetricsRequestChoice.DHCPV6_SERVER) + obj.dhcpv6ServerHolder = nil + obj.obj.Dhcpv6Server = value.msg() + + return obj +} + func (obj *metricsRequest) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -875,6 +967,16 @@ func (obj *metricsRequest) validateObj(vObj *validation, set_default bool) { obj.Dhcpv4Server().validateObj(vObj, set_default) } + if obj.obj.Dhcpv6Client != nil { + + obj.Dhcpv6Client().validateObj(vObj, set_default) + } + + if obj.obj.Dhcpv6Server != nil { + + obj.Dhcpv6Server().validateObj(vObj, set_default) + } + } func (obj *metricsRequest) setDefault() { @@ -935,6 +1037,16 @@ func (obj *metricsRequest) setDefault() { choices_set += 1 choice = MetricsRequestChoice.DHCPV4_SERVER } + + if obj.obj.Dhcpv6Client != nil { + choices_set += 1 + choice = MetricsRequestChoice.DHCPV6_CLIENT + } + + if obj.obj.Dhcpv6Server != nil { + choices_set += 1 + choice = MetricsRequestChoice.DHCPV6_SERVER + } if choices_set == 0 { if obj.obj.Choice == nil { obj.setChoice(MetricsRequestChoice.PORT) diff --git a/gosnappi/metrics_response.go b/gosnappi/metrics_response.go index 7719521c..58599912 100644 --- a/gosnappi/metrics_response.go +++ b/gosnappi/metrics_response.go @@ -27,6 +27,8 @@ type metricsResponse struct { rsvpMetricsHolder MetricsResponseRsvpMetricIter dhcpv4ClientMetricsHolder MetricsResponseDhcpv4ClientMetricIter dhcpv4ServerMetricsHolder MetricsResponseDhcpv4ServerMetricIter + dhcpv6ClientMetricsHolder MetricsResponseDhcpv6ClientMetricIter + dhcpv6ServerMetricsHolder MetricsResponseDhcpv6ServerMetricIter } func NewMetricsResponse() MetricsResponse { @@ -265,6 +267,8 @@ func (obj *metricsResponse) setNil() { obj.rsvpMetricsHolder = nil obj.dhcpv4ClientMetricsHolder = nil obj.dhcpv4ServerMetricsHolder = nil + obj.dhcpv6ClientMetricsHolder = nil + obj.dhcpv6ServerMetricsHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -298,10 +302,14 @@ type MetricsResponse interface { setChoice(value MetricsResponseChoiceEnum) MetricsResponse // HasChoice checks if Choice has been set in MetricsResponse HasChoice() bool - // getter for Dhcpv4Server to set choice. - Dhcpv4Server() // getter for Dhcpv4Client to set choice. Dhcpv4Client() + // getter for Dhcpv6Client to set choice. + Dhcpv6Client() + // getter for Dhcpv6Server to set choice. + Dhcpv6Server() + // getter for Dhcpv4Server to set choice. + Dhcpv4Server() // PortMetrics returns MetricsResponsePortMetricIterIter, set in MetricsResponse PortMetrics() MetricsResponsePortMetricIter // FlowMetrics returns MetricsResponseFlowMetricIterIter, set in MetricsResponse @@ -324,6 +332,10 @@ type MetricsResponse interface { Dhcpv4ClientMetrics() MetricsResponseDhcpv4ClientMetricIter // Dhcpv4ServerMetrics returns MetricsResponseDhcpv4ServerMetricIterIter, set in MetricsResponse Dhcpv4ServerMetrics() MetricsResponseDhcpv4ServerMetricIter + // Dhcpv6ClientMetrics returns MetricsResponseDhcpv6ClientMetricIterIter, set in MetricsResponse + Dhcpv6ClientMetrics() MetricsResponseDhcpv6ClientMetricIter + // Dhcpv6ServerMetrics returns MetricsResponseDhcpv6ServerMetricIterIter, set in MetricsResponse + Dhcpv6ServerMetrics() MetricsResponseDhcpv6ServerMetricIter setNil() } @@ -342,6 +354,8 @@ var MetricsResponseChoice = struct { RSVP_METRICS MetricsResponseChoiceEnum DHCPV4_CLIENT MetricsResponseChoiceEnum DHCPV4_SERVER MetricsResponseChoiceEnum + DHCPV6_CLIENT MetricsResponseChoiceEnum + DHCPV6_SERVER MetricsResponseChoiceEnum }{ FLOW_METRICS: MetricsResponseChoiceEnum("flow_metrics"), PORT_METRICS: MetricsResponseChoiceEnum("port_metrics"), @@ -354,22 +368,34 @@ var MetricsResponseChoice = struct { RSVP_METRICS: MetricsResponseChoiceEnum("rsvp_metrics"), DHCPV4_CLIENT: MetricsResponseChoiceEnum("dhcpv4_client"), DHCPV4_SERVER: MetricsResponseChoiceEnum("dhcpv4_server"), + DHCPV6_CLIENT: MetricsResponseChoiceEnum("dhcpv6_client"), + DHCPV6_SERVER: MetricsResponseChoiceEnum("dhcpv6_server"), } func (obj *metricsResponse) Choice() MetricsResponseChoiceEnum { return MetricsResponseChoiceEnum(obj.obj.Choice.Enum().String()) } -// getter for Dhcpv4Server to set choice -func (obj *metricsResponse) Dhcpv4Server() { - obj.setChoice(MetricsResponseChoice.DHCPV4_SERVER) -} - // getter for Dhcpv4Client to set choice func (obj *metricsResponse) Dhcpv4Client() { obj.setChoice(MetricsResponseChoice.DHCPV4_CLIENT) } +// getter for Dhcpv6Client to set choice +func (obj *metricsResponse) Dhcpv6Client() { + obj.setChoice(MetricsResponseChoice.DHCPV6_CLIENT) +} + +// getter for Dhcpv6Server to set choice +func (obj *metricsResponse) Dhcpv6Server() { + obj.setChoice(MetricsResponseChoice.DHCPV6_SERVER) +} + +// getter for Dhcpv4Server to set choice +func (obj *metricsResponse) Dhcpv4Server() { + obj.setChoice(MetricsResponseChoice.DHCPV4_SERVER) +} + // description is TBD // Choice returns a string func (obj *metricsResponse) HasChoice() bool { @@ -1400,6 +1426,180 @@ func (obj *metricsResponseDhcpv4ServerMetricIter) appendHolderSlice(item Dhcpv4S return obj } +// description is TBD +// Dhcpv6ClientMetrics returns a []Dhcpv6ClientMetric +func (obj *metricsResponse) Dhcpv6ClientMetrics() MetricsResponseDhcpv6ClientMetricIter { + if len(obj.obj.Dhcpv6ClientMetrics) == 0 { + obj.obj.Dhcpv6ClientMetrics = []*otg.Dhcpv6ClientMetric{} + } + if obj.dhcpv6ClientMetricsHolder == nil { + obj.dhcpv6ClientMetricsHolder = newMetricsResponseDhcpv6ClientMetricIter(&obj.obj.Dhcpv6ClientMetrics).setMsg(obj) + } + return obj.dhcpv6ClientMetricsHolder +} + +type metricsResponseDhcpv6ClientMetricIter struct { + obj *metricsResponse + dhcpv6ClientMetricSlice []Dhcpv6ClientMetric + fieldPtr *[]*otg.Dhcpv6ClientMetric +} + +func newMetricsResponseDhcpv6ClientMetricIter(ptr *[]*otg.Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter { + return &metricsResponseDhcpv6ClientMetricIter{fieldPtr: ptr} +} + +type MetricsResponseDhcpv6ClientMetricIter interface { + setMsg(*metricsResponse) MetricsResponseDhcpv6ClientMetricIter + Items() []Dhcpv6ClientMetric + Add() Dhcpv6ClientMetric + Append(items ...Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter + Set(index int, newObj Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter + Clear() MetricsResponseDhcpv6ClientMetricIter + clearHolderSlice() MetricsResponseDhcpv6ClientMetricIter + appendHolderSlice(item Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter +} + +func (obj *metricsResponseDhcpv6ClientMetricIter) setMsg(msg *metricsResponse) MetricsResponseDhcpv6ClientMetricIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ClientMetric{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *metricsResponseDhcpv6ClientMetricIter) Items() []Dhcpv6ClientMetric { + return obj.dhcpv6ClientMetricSlice +} + +func (obj *metricsResponseDhcpv6ClientMetricIter) Add() Dhcpv6ClientMetric { + newObj := &otg.Dhcpv6ClientMetric{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ClientMetric{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ClientMetricSlice = append(obj.dhcpv6ClientMetricSlice, newLibObj) + return newLibObj +} + +func (obj *metricsResponseDhcpv6ClientMetricIter) Append(items ...Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ClientMetricSlice = append(obj.dhcpv6ClientMetricSlice, item) + } + return obj +} + +func (obj *metricsResponseDhcpv6ClientMetricIter) Set(index int, newObj Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ClientMetricSlice[index] = newObj + return obj +} +func (obj *metricsResponseDhcpv6ClientMetricIter) Clear() MetricsResponseDhcpv6ClientMetricIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ClientMetric{} + obj.dhcpv6ClientMetricSlice = []Dhcpv6ClientMetric{} + } + return obj +} +func (obj *metricsResponseDhcpv6ClientMetricIter) clearHolderSlice() MetricsResponseDhcpv6ClientMetricIter { + if len(obj.dhcpv6ClientMetricSlice) > 0 { + obj.dhcpv6ClientMetricSlice = []Dhcpv6ClientMetric{} + } + return obj +} +func (obj *metricsResponseDhcpv6ClientMetricIter) appendHolderSlice(item Dhcpv6ClientMetric) MetricsResponseDhcpv6ClientMetricIter { + obj.dhcpv6ClientMetricSlice = append(obj.dhcpv6ClientMetricSlice, item) + return obj +} + +// description is TBD +// Dhcpv6ServerMetrics returns a []Dhcpv6ServerMetric +func (obj *metricsResponse) Dhcpv6ServerMetrics() MetricsResponseDhcpv6ServerMetricIter { + if len(obj.obj.Dhcpv6ServerMetrics) == 0 { + obj.obj.Dhcpv6ServerMetrics = []*otg.Dhcpv6ServerMetric{} + } + if obj.dhcpv6ServerMetricsHolder == nil { + obj.dhcpv6ServerMetricsHolder = newMetricsResponseDhcpv6ServerMetricIter(&obj.obj.Dhcpv6ServerMetrics).setMsg(obj) + } + return obj.dhcpv6ServerMetricsHolder +} + +type metricsResponseDhcpv6ServerMetricIter struct { + obj *metricsResponse + dhcpv6ServerMetricSlice []Dhcpv6ServerMetric + fieldPtr *[]*otg.Dhcpv6ServerMetric +} + +func newMetricsResponseDhcpv6ServerMetricIter(ptr *[]*otg.Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter { + return &metricsResponseDhcpv6ServerMetricIter{fieldPtr: ptr} +} + +type MetricsResponseDhcpv6ServerMetricIter interface { + setMsg(*metricsResponse) MetricsResponseDhcpv6ServerMetricIter + Items() []Dhcpv6ServerMetric + Add() Dhcpv6ServerMetric + Append(items ...Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter + Set(index int, newObj Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter + Clear() MetricsResponseDhcpv6ServerMetricIter + clearHolderSlice() MetricsResponseDhcpv6ServerMetricIter + appendHolderSlice(item Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter +} + +func (obj *metricsResponseDhcpv6ServerMetricIter) setMsg(msg *metricsResponse) MetricsResponseDhcpv6ServerMetricIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6ServerMetric{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *metricsResponseDhcpv6ServerMetricIter) Items() []Dhcpv6ServerMetric { + return obj.dhcpv6ServerMetricSlice +} + +func (obj *metricsResponseDhcpv6ServerMetricIter) Add() Dhcpv6ServerMetric { + newObj := &otg.Dhcpv6ServerMetric{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6ServerMetric{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6ServerMetricSlice = append(obj.dhcpv6ServerMetricSlice, newLibObj) + return newLibObj +} + +func (obj *metricsResponseDhcpv6ServerMetricIter) Append(items ...Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6ServerMetricSlice = append(obj.dhcpv6ServerMetricSlice, item) + } + return obj +} + +func (obj *metricsResponseDhcpv6ServerMetricIter) Set(index int, newObj Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6ServerMetricSlice[index] = newObj + return obj +} +func (obj *metricsResponseDhcpv6ServerMetricIter) Clear() MetricsResponseDhcpv6ServerMetricIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6ServerMetric{} + obj.dhcpv6ServerMetricSlice = []Dhcpv6ServerMetric{} + } + return obj +} +func (obj *metricsResponseDhcpv6ServerMetricIter) clearHolderSlice() MetricsResponseDhcpv6ServerMetricIter { + if len(obj.dhcpv6ServerMetricSlice) > 0 { + obj.dhcpv6ServerMetricSlice = []Dhcpv6ServerMetric{} + } + return obj +} +func (obj *metricsResponseDhcpv6ServerMetricIter) appendHolderSlice(item Dhcpv6ServerMetric) MetricsResponseDhcpv6ServerMetricIter { + obj.dhcpv6ServerMetricSlice = append(obj.dhcpv6ServerMetricSlice, item) + return obj +} + func (obj *metricsResponse) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -1559,6 +1759,34 @@ func (obj *metricsResponse) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.Dhcpv6ClientMetrics) != 0 { + + if set_default { + obj.Dhcpv6ClientMetrics().clearHolderSlice() + for _, item := range obj.obj.Dhcpv6ClientMetrics { + obj.Dhcpv6ClientMetrics().appendHolderSlice(&dhcpv6ClientMetric{obj: item}) + } + } + for _, item := range obj.Dhcpv6ClientMetrics().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.Dhcpv6ServerMetrics) != 0 { + + if set_default { + obj.Dhcpv6ServerMetrics().clearHolderSlice() + for _, item := range obj.obj.Dhcpv6ServerMetrics { + obj.Dhcpv6ServerMetrics().appendHolderSlice(&dhcpv6ServerMetric{obj: item}) + } + } + for _, item := range obj.Dhcpv6ServerMetrics().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *metricsResponse) setDefault() { diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index 1ae42c79..30dc4a8f 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 1.7.1 +// Open Traffic Generator API 1.8.0 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -389,6 +389,602 @@ func (DeviceDhcpv4Client_Choice_Enum) EnumDescriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{20, 0, 0} } +type DeviceDhcpv6ClientIaType_Choice_Enum int32 + +const ( + DeviceDhcpv6ClientIaType_Choice_unspecified DeviceDhcpv6ClientIaType_Choice_Enum = 0 + DeviceDhcpv6ClientIaType_Choice_iana DeviceDhcpv6ClientIaType_Choice_Enum = 1 + DeviceDhcpv6ClientIaType_Choice_iata DeviceDhcpv6ClientIaType_Choice_Enum = 2 + DeviceDhcpv6ClientIaType_Choice_iapd DeviceDhcpv6ClientIaType_Choice_Enum = 3 + DeviceDhcpv6ClientIaType_Choice_ianapd DeviceDhcpv6ClientIaType_Choice_Enum = 4 +) + +// Enum value maps for DeviceDhcpv6ClientIaType_Choice_Enum. +var ( + DeviceDhcpv6ClientIaType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "iana", + 2: "iata", + 3: "iapd", + 4: "ianapd", + } + DeviceDhcpv6ClientIaType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "iana": 1, + "iata": 2, + "iapd": 3, + "ianapd": 4, + } +) + +func (x DeviceDhcpv6ClientIaType_Choice_Enum) Enum() *DeviceDhcpv6ClientIaType_Choice_Enum { + p := new(DeviceDhcpv6ClientIaType_Choice_Enum) + *p = x + return p +} + +func (x DeviceDhcpv6ClientIaType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeviceDhcpv6ClientIaType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[7].Descriptor() +} + +func (DeviceDhcpv6ClientIaType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[7] +} + +func (x DeviceDhcpv6ClientIaType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DeviceDhcpv6ClientIaType_Choice_Enum.Descriptor instead. +func (DeviceDhcpv6ClientIaType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{25, 0, 0} +} + +type DeviceDhcpv6ClientDuidType_Choice_Enum int32 + +const ( + DeviceDhcpv6ClientDuidType_Choice_unspecified DeviceDhcpv6ClientDuidType_Choice_Enum = 0 + DeviceDhcpv6ClientDuidType_Choice_llt DeviceDhcpv6ClientDuidType_Choice_Enum = 1 + DeviceDhcpv6ClientDuidType_Choice_en DeviceDhcpv6ClientDuidType_Choice_Enum = 2 + DeviceDhcpv6ClientDuidType_Choice_ll DeviceDhcpv6ClientDuidType_Choice_Enum = 3 +) + +// Enum value maps for DeviceDhcpv6ClientDuidType_Choice_Enum. +var ( + DeviceDhcpv6ClientDuidType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "llt", + 2: "en", + 3: "ll", + } + DeviceDhcpv6ClientDuidType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "llt": 1, + "en": 2, + "ll": 3, + } +) + +func (x DeviceDhcpv6ClientDuidType_Choice_Enum) Enum() *DeviceDhcpv6ClientDuidType_Choice_Enum { + p := new(DeviceDhcpv6ClientDuidType_Choice_Enum) + *p = x + return p +} + +func (x DeviceDhcpv6ClientDuidType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeviceDhcpv6ClientDuidType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[8].Descriptor() +} + +func (DeviceDhcpv6ClientDuidType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[8] +} + +func (x DeviceDhcpv6ClientDuidType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DeviceDhcpv6ClientDuidType_Choice_Enum.Descriptor instead. +func (DeviceDhcpv6ClientDuidType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{27, 0, 0} +} + +type Dhcpv6ClientOptionsServerIdentifier_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsServerIdentifier_Choice_unspecified Dhcpv6ClientOptionsServerIdentifier_Choice_Enum = 0 + Dhcpv6ClientOptionsServerIdentifier_Choice_duid_llt Dhcpv6ClientOptionsServerIdentifier_Choice_Enum = 1 + Dhcpv6ClientOptionsServerIdentifier_Choice_duid_en Dhcpv6ClientOptionsServerIdentifier_Choice_Enum = 2 + Dhcpv6ClientOptionsServerIdentifier_Choice_duid_ll Dhcpv6ClientOptionsServerIdentifier_Choice_Enum = 3 + Dhcpv6ClientOptionsServerIdentifier_Choice_duid_uuid Dhcpv6ClientOptionsServerIdentifier_Choice_Enum = 4 +) + +// Enum value maps for Dhcpv6ClientOptionsServerIdentifier_Choice_Enum. +var ( + Dhcpv6ClientOptionsServerIdentifier_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "duid_llt", + 2: "duid_en", + 3: "duid_ll", + 4: "duid_uuid", + } + Dhcpv6ClientOptionsServerIdentifier_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "duid_llt": 1, + "duid_en": 2, + "duid_ll": 3, + "duid_uuid": 4, + } +) + +func (x Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) Enum() *Dhcpv6ClientOptionsServerIdentifier_Choice_Enum { + p := new(Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[9].Descriptor() +} + +func (Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[9] +} + +func (x Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsServerIdentifier_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsServerIdentifier_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{30, 0, 0} +} + +type Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsDuidUuidVersion_Choice_unspecified Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 0 + Dhcpv6ClientOptionsDuidUuidVersion_Choice_v_1 Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 1 + Dhcpv6ClientOptionsDuidUuidVersion_Choice_v_2 Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 2 + Dhcpv6ClientOptionsDuidUuidVersion_Choice_v_3 Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 3 + Dhcpv6ClientOptionsDuidUuidVersion_Choice_v_4 Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 4 + Dhcpv6ClientOptionsDuidUuidVersion_Choice_v_5 Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum = 5 +) + +// Enum value maps for Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum. +var ( + Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "v_1", + 2: "v_2", + 3: "v_3", + 4: "v_4", + 5: "v_5", + } + Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "v_1": 1, + "v_2": 2, + "v_3": 3, + "v_4": 4, + "v_5": 5, + } +) + +func (x Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) Enum() *Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum { + p := new(Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[10].Descriptor() +} + +func (Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[10] +} + +func (x Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{35, 0, 0} +} + +type Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsDuidUuidVariant_Choice_unspecified Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum = 0 + Dhcpv6ClientOptionsDuidUuidVariant_Choice_ncs Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum = 1 + Dhcpv6ClientOptionsDuidUuidVariant_Choice_dce Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum = 2 + Dhcpv6ClientOptionsDuidUuidVariant_Choice_guid Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum = 3 + Dhcpv6ClientOptionsDuidUuidVariant_Choice_var_reserved Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum = 4 +) + +// Enum value maps for Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum. +var ( + Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "ncs", + 2: "dce", + 3: "guid", + 4: "var_reserved", + } + Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "ncs": 1, + "dce": 2, + "guid": 3, + "var_reserved": 4, + } +) + +func (x Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) Enum() *Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum { + p := new(Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[11].Descriptor() +} + +func (Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[11] +} + +func (x Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{36, 0, 0} +} + +type Dhcpv6ClientOptionsOptionsRequest_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsOptionsRequest_Choice_unspecified Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 0 + Dhcpv6ClientOptionsOptionsRequest_Choice_vendor_information Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 1 + Dhcpv6ClientOptionsOptionsRequest_Choice_name_servers Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 2 + Dhcpv6ClientOptionsOptionsRequest_Choice_fqdn Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 3 + Dhcpv6ClientOptionsOptionsRequest_Choice_bootfile_url Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 4 + Dhcpv6ClientOptionsOptionsRequest_Choice_sztp Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 5 + Dhcpv6ClientOptionsOptionsRequest_Choice_custom Dhcpv6ClientOptionsOptionsRequest_Choice_Enum = 6 +) + +// Enum value maps for Dhcpv6ClientOptionsOptionsRequest_Choice_Enum. +var ( + Dhcpv6ClientOptionsOptionsRequest_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "vendor_information", + 2: "name_servers", + 3: "fqdn", + 4: "bootfile_url", + 5: "sztp", + 6: "custom", + } + Dhcpv6ClientOptionsOptionsRequest_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "vendor_information": 1, + "name_servers": 2, + "fqdn": 3, + "bootfile_url": 4, + "sztp": 5, + "custom": 6, + } +) + +func (x Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) Enum() *Dhcpv6ClientOptionsOptionsRequest_Choice_Enum { + p := new(Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[12].Descriptor() +} + +func (Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[12] +} + +func (x Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequest_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsOptionsRequest_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{38, 0, 0} +} + +type Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_unspecified Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum = 0 + Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_all Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum = 1 + Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_msg_types Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum = 2 +) + +// Enum value maps for Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum. +var ( + Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "all", + 2: "msg_types", + } + Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "all": 1, + "msg_types": 2, + } +) + +func (x Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) Enum() *Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum { + p := new(Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[13].Descriptor() +} + +func (Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[13] +} + +func (x Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{41, 0, 0} +} + +type Dhcpv6ClientOptionsIncludedMessages_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsIncludedMessages_Choice_unspecified Dhcpv6ClientOptionsIncludedMessages_Choice_Enum = 0 + Dhcpv6ClientOptionsIncludedMessages_Choice_all Dhcpv6ClientOptionsIncludedMessages_Choice_Enum = 1 + Dhcpv6ClientOptionsIncludedMessages_Choice_msg_types Dhcpv6ClientOptionsIncludedMessages_Choice_Enum = 2 +) + +// Enum value maps for Dhcpv6ClientOptionsIncludedMessages_Choice_Enum. +var ( + Dhcpv6ClientOptionsIncludedMessages_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "all", + 2: "msg_types", + } + Dhcpv6ClientOptionsIncludedMessages_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "all": 1, + "msg_types": 2, + } +) + +func (x Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) Enum() *Dhcpv6ClientOptionsIncludedMessages_Choice_Enum { + p := new(Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[14].Descriptor() +} + +func (Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[14] +} + +func (x Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsIncludedMessages_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsIncludedMessages_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42, 0, 0} +} + +type Dhcpv6ClientOptionsMessageType_Choice_Enum int32 + +const ( + Dhcpv6ClientOptionsMessageType_Choice_unspecified Dhcpv6ClientOptionsMessageType_Choice_Enum = 0 + Dhcpv6ClientOptionsMessageType_Choice_solicit Dhcpv6ClientOptionsMessageType_Choice_Enum = 1 + Dhcpv6ClientOptionsMessageType_Choice_request Dhcpv6ClientOptionsMessageType_Choice_Enum = 2 + Dhcpv6ClientOptionsMessageType_Choice_inform_request Dhcpv6ClientOptionsMessageType_Choice_Enum = 3 + Dhcpv6ClientOptionsMessageType_Choice_release Dhcpv6ClientOptionsMessageType_Choice_Enum = 4 + Dhcpv6ClientOptionsMessageType_Choice_renew Dhcpv6ClientOptionsMessageType_Choice_Enum = 5 + Dhcpv6ClientOptionsMessageType_Choice_rebind Dhcpv6ClientOptionsMessageType_Choice_Enum = 6 +) + +// Enum value maps for Dhcpv6ClientOptionsMessageType_Choice_Enum. +var ( + Dhcpv6ClientOptionsMessageType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "solicit", + 2: "request", + 3: "inform_request", + 4: "release", + 5: "renew", + 6: "rebind", + } + Dhcpv6ClientOptionsMessageType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "solicit": 1, + "request": 2, + "inform_request": 3, + "release": 4, + "renew": 5, + "rebind": 6, + } +) + +func (x Dhcpv6ClientOptionsMessageType_Choice_Enum) Enum() *Dhcpv6ClientOptionsMessageType_Choice_Enum { + p := new(Dhcpv6ClientOptionsMessageType_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientOptionsMessageType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientOptionsMessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[15].Descriptor() +} + +func (Dhcpv6ClientOptionsMessageType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[15] +} + +func (x Dhcpv6ClientOptionsMessageType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientOptionsMessageType_Choice_Enum.Descriptor instead. +func (Dhcpv6ClientOptionsMessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{43, 0, 0} +} + +type Dhcpv6ServerOptionsIncludedMessages_Choice_Enum int32 + +const ( + Dhcpv6ServerOptionsIncludedMessages_Choice_unspecified Dhcpv6ServerOptionsIncludedMessages_Choice_Enum = 0 + Dhcpv6ServerOptionsIncludedMessages_Choice_all Dhcpv6ServerOptionsIncludedMessages_Choice_Enum = 1 + Dhcpv6ServerOptionsIncludedMessages_Choice_msg_types Dhcpv6ServerOptionsIncludedMessages_Choice_Enum = 2 +) + +// Enum value maps for Dhcpv6ServerOptionsIncludedMessages_Choice_Enum. +var ( + Dhcpv6ServerOptionsIncludedMessages_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "all", + 2: "msg_types", + } + Dhcpv6ServerOptionsIncludedMessages_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "all": 1, + "msg_types": 2, + } +) + +func (x Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) Enum() *Dhcpv6ServerOptionsIncludedMessages_Choice_Enum { + p := new(Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[16].Descriptor() +} + +func (Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[16] +} + +func (x Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ServerOptionsIncludedMessages_Choice_Enum.Descriptor instead. +func (Dhcpv6ServerOptionsIncludedMessages_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{46, 0, 0} +} + +type Dhcpv6ServerOptionsMessageType_Choice_Enum int32 + +const ( + Dhcpv6ServerOptionsMessageType_Choice_unspecified Dhcpv6ServerOptionsMessageType_Choice_Enum = 0 + Dhcpv6ServerOptionsMessageType_Choice_advertise Dhcpv6ServerOptionsMessageType_Choice_Enum = 1 + Dhcpv6ServerOptionsMessageType_Choice_reply Dhcpv6ServerOptionsMessageType_Choice_Enum = 2 + Dhcpv6ServerOptionsMessageType_Choice_re_configure Dhcpv6ServerOptionsMessageType_Choice_Enum = 3 +) + +// Enum value maps for Dhcpv6ServerOptionsMessageType_Choice_Enum. +var ( + Dhcpv6ServerOptionsMessageType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "advertise", + 2: "reply", + 3: "re_configure", + } + Dhcpv6ServerOptionsMessageType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "advertise": 1, + "reply": 2, + "re_configure": 3, + } +) + +func (x Dhcpv6ServerOptionsMessageType_Choice_Enum) Enum() *Dhcpv6ServerOptionsMessageType_Choice_Enum { + p := new(Dhcpv6ServerOptionsMessageType_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ServerOptionsMessageType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ServerOptionsMessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[17].Descriptor() +} + +func (Dhcpv6ServerOptionsMessageType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[17] +} + +func (x Dhcpv6ServerOptionsMessageType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ServerOptionsMessageType_Choice_Enum.Descriptor instead. +func (Dhcpv6ServerOptionsMessageType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{47, 0, 0} +} + type Layer1_Speed_Enum int32 const ( @@ -455,11 +1051,11 @@ func (x Layer1_Speed_Enum) String() string { } func (Layer1_Speed_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[7].Descriptor() + return file_otg_proto_enumTypes[18].Descriptor() } func (Layer1_Speed_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[7] + return &file_otg_proto_enumTypes[18] } func (x Layer1_Speed_Enum) Number() protoreflect.EnumNumber { @@ -468,7 +1064,7 @@ func (x Layer1_Speed_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Layer1_Speed_Enum.Descriptor instead. func (Layer1_Speed_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{22, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{52, 0, 0} } type Layer1_Media_Enum int32 @@ -507,11 +1103,11 @@ func (x Layer1_Media_Enum) String() string { } func (Layer1_Media_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[8].Descriptor() + return file_otg_proto_enumTypes[19].Descriptor() } func (Layer1_Media_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[8] + return &file_otg_proto_enumTypes[19] } func (x Layer1_Media_Enum) Number() protoreflect.EnumNumber { @@ -520,7 +1116,7 @@ func (x Layer1_Media_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Layer1_Media_Enum.Descriptor instead. func (Layer1_Media_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{22, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{52, 1, 0} } type Layer1FlowControl_Choice_Enum int32 @@ -556,11 +1152,11 @@ func (x Layer1FlowControl_Choice_Enum) String() string { } func (Layer1FlowControl_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[9].Descriptor() + return file_otg_proto_enumTypes[20].Descriptor() } func (Layer1FlowControl_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[9] + return &file_otg_proto_enumTypes[20] } func (x Layer1FlowControl_Choice_Enum) Number() protoreflect.EnumNumber { @@ -569,7 +1165,7 @@ func (x Layer1FlowControl_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Layer1FlowControl_Choice_Enum.Descriptor instead. func (Layer1FlowControl_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{24, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{54, 0, 0} } type Capture_Format_Enum int32 @@ -605,11 +1201,11 @@ func (x Capture_Format_Enum) String() string { } func (Capture_Format_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[10].Descriptor() + return file_otg_proto_enumTypes[21].Descriptor() } func (Capture_Format_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[10] + return &file_otg_proto_enumTypes[21] } func (x Capture_Format_Enum) Number() protoreflect.EnumNumber { @@ -618,7 +1214,7 @@ func (x Capture_Format_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use Capture_Format_Enum.Descriptor instead. func (Capture_Format_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{27, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{57, 0, 0} } type CaptureFilter_Choice_Enum int32 @@ -663,11 +1259,11 @@ func (x CaptureFilter_Choice_Enum) String() string { } func (CaptureFilter_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[11].Descriptor() + return file_otg_proto_enumTypes[22].Descriptor() } func (CaptureFilter_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[11] + return &file_otg_proto_enumTypes[22] } func (x CaptureFilter_Choice_Enum) Number() protoreflect.EnumNumber { @@ -676,7 +1272,7 @@ func (x CaptureFilter_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use CaptureFilter_Choice_Enum.Descriptor instead. func (CaptureFilter_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{28, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{58, 0, 0} } type IsisInterface_NetworkType_Enum int32 @@ -712,11 +1308,11 @@ func (x IsisInterface_NetworkType_Enum) String() string { } func (IsisInterface_NetworkType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[12].Descriptor() + return file_otg_proto_enumTypes[23].Descriptor() } func (IsisInterface_NetworkType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[12] + return &file_otg_proto_enumTypes[23] } func (x IsisInterface_NetworkType_Enum) Number() protoreflect.EnumNumber { @@ -725,7 +1321,7 @@ func (x IsisInterface_NetworkType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisInterface_NetworkType_Enum.Descriptor instead. func (IsisInterface_NetworkType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{39, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{69, 0, 0} } type IsisInterface_LevelType_Enum int32 @@ -764,11 +1360,11 @@ func (x IsisInterface_LevelType_Enum) String() string { } func (IsisInterface_LevelType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[13].Descriptor() + return file_otg_proto_enumTypes[24].Descriptor() } func (IsisInterface_LevelType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[13] + return &file_otg_proto_enumTypes[24] } func (x IsisInterface_LevelType_Enum) Number() protoreflect.EnumNumber { @@ -777,7 +1373,7 @@ func (x IsisInterface_LevelType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisInterface_LevelType_Enum.Descriptor instead. func (IsisInterface_LevelType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{39, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{69, 1, 0} } type IsisInterfaceAuthentication_AuthType_Enum int32 @@ -813,11 +1409,11 @@ func (x IsisInterfaceAuthentication_AuthType_Enum) String() string { } func (IsisInterfaceAuthentication_AuthType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[14].Descriptor() + return file_otg_proto_enumTypes[25].Descriptor() } func (IsisInterfaceAuthentication_AuthType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[14] + return &file_otg_proto_enumTypes[25] } func (x IsisInterfaceAuthentication_AuthType_Enum) Number() protoreflect.EnumNumber { @@ -826,7 +1422,7 @@ func (x IsisInterfaceAuthentication_AuthType_Enum) Number() protoreflect.EnumNum // Deprecated: Use IsisInterfaceAuthentication_AuthType_Enum.Descriptor instead. func (IsisInterfaceAuthentication_AuthType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{44, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{74, 0, 0} } type IsisAuthenticationBase_AuthType_Enum int32 @@ -862,11 +1458,11 @@ func (x IsisAuthenticationBase_AuthType_Enum) String() string { } func (IsisAuthenticationBase_AuthType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[15].Descriptor() + return file_otg_proto_enumTypes[26].Descriptor() } func (IsisAuthenticationBase_AuthType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[15] + return &file_otg_proto_enumTypes[26] } func (x IsisAuthenticationBase_AuthType_Enum) Number() protoreflect.EnumNumber { @@ -875,7 +1471,7 @@ func (x IsisAuthenticationBase_AuthType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisAuthenticationBase_AuthType_Enum.Descriptor instead. func (IsisAuthenticationBase_AuthType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{50, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{80, 0, 0} } type IsisV4RouteRange_OriginType_Enum int32 @@ -911,11 +1507,11 @@ func (x IsisV4RouteRange_OriginType_Enum) String() string { } func (IsisV4RouteRange_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[16].Descriptor() + return file_otg_proto_enumTypes[27].Descriptor() } func (IsisV4RouteRange_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[16] + return &file_otg_proto_enumTypes[27] } func (x IsisV4RouteRange_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -924,7 +1520,7 @@ func (x IsisV4RouteRange_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisV4RouteRange_OriginType_Enum.Descriptor instead. func (IsisV4RouteRange_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{51, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{81, 0, 0} } type IsisV4RouteRange_RedistributionType_Enum int32 @@ -960,11 +1556,11 @@ func (x IsisV4RouteRange_RedistributionType_Enum) String() string { } func (IsisV4RouteRange_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[17].Descriptor() + return file_otg_proto_enumTypes[28].Descriptor() } func (IsisV4RouteRange_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[17] + return &file_otg_proto_enumTypes[28] } func (x IsisV4RouteRange_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -973,7 +1569,7 @@ func (x IsisV4RouteRange_RedistributionType_Enum) Number() protoreflect.EnumNumb // Deprecated: Use IsisV4RouteRange_RedistributionType_Enum.Descriptor instead. func (IsisV4RouteRange_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{51, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{81, 1, 0} } type IsisV6RouteRange_OriginType_Enum int32 @@ -1009,11 +1605,11 @@ func (x IsisV6RouteRange_OriginType_Enum) String() string { } func (IsisV6RouteRange_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[18].Descriptor() + return file_otg_proto_enumTypes[29].Descriptor() } func (IsisV6RouteRange_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[18] + return &file_otg_proto_enumTypes[29] } func (x IsisV6RouteRange_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -1022,7 +1618,7 @@ func (x IsisV6RouteRange_OriginType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use IsisV6RouteRange_OriginType_Enum.Descriptor instead. func (IsisV6RouteRange_OriginType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{85, 0, 0} } type IsisV6RouteRange_RedistributionType_Enum int32 @@ -1058,11 +1654,11 @@ func (x IsisV6RouteRange_RedistributionType_Enum) String() string { } func (IsisV6RouteRange_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[19].Descriptor() + return file_otg_proto_enumTypes[30].Descriptor() } func (IsisV6RouteRange_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[19] + return &file_otg_proto_enumTypes[30] } func (x IsisV6RouteRange_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -1071,7 +1667,7 @@ func (x IsisV6RouteRange_RedistributionType_Enum) Number() protoreflect.EnumNumb // Deprecated: Use IsisV6RouteRange_RedistributionType_Enum.Descriptor instead. func (IsisV6RouteRange_RedistributionType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{85, 1, 0} } type DeviceBgpMessageHeaderError_Subcode_Enum int32 @@ -1110,11 +1706,11 @@ func (x DeviceBgpMessageHeaderError_Subcode_Enum) String() string { } func (DeviceBgpMessageHeaderError_Subcode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[20].Descriptor() + return file_otg_proto_enumTypes[31].Descriptor() } func (DeviceBgpMessageHeaderError_Subcode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[20] + return &file_otg_proto_enumTypes[31] } func (x DeviceBgpMessageHeaderError_Subcode_Enum) Number() protoreflect.EnumNumber { @@ -1123,7 +1719,7 @@ func (x DeviceBgpMessageHeaderError_Subcode_Enum) Number() protoreflect.EnumNumb // Deprecated: Use DeviceBgpMessageHeaderError_Subcode_Enum.Descriptor instead. func (DeviceBgpMessageHeaderError_Subcode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{57, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{87, 0, 0} } type DeviceBgpOpenMessageError_Subcode_Enum int32 @@ -1174,11 +1770,11 @@ func (x DeviceBgpOpenMessageError_Subcode_Enum) String() string { } func (DeviceBgpOpenMessageError_Subcode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[21].Descriptor() + return file_otg_proto_enumTypes[32].Descriptor() } func (DeviceBgpOpenMessageError_Subcode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[21] + return &file_otg_proto_enumTypes[32] } func (x DeviceBgpOpenMessageError_Subcode_Enum) Number() protoreflect.EnumNumber { @@ -1187,7 +1783,7 @@ func (x DeviceBgpOpenMessageError_Subcode_Enum) Number() protoreflect.EnumNumber // Deprecated: Use DeviceBgpOpenMessageError_Subcode_Enum.Descriptor instead. func (DeviceBgpOpenMessageError_Subcode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{58, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{88, 0, 0} } type DeviceBgpUpdateMessageError_Subcode_Enum int32 @@ -1250,11 +1846,11 @@ func (x DeviceBgpUpdateMessageError_Subcode_Enum) String() string { } func (DeviceBgpUpdateMessageError_Subcode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[22].Descriptor() + return file_otg_proto_enumTypes[33].Descriptor() } func (DeviceBgpUpdateMessageError_Subcode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[22] + return &file_otg_proto_enumTypes[33] } func (x DeviceBgpUpdateMessageError_Subcode_Enum) Number() protoreflect.EnumNumber { @@ -1263,7 +1859,7 @@ func (x DeviceBgpUpdateMessageError_Subcode_Enum) Number() protoreflect.EnumNumb // Deprecated: Use DeviceBgpUpdateMessageError_Subcode_Enum.Descriptor instead. func (DeviceBgpUpdateMessageError_Subcode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{59, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{89, 0, 0} } type DeviceBgpCeaseError_Subcode_Enum int32 @@ -1320,11 +1916,11 @@ func (x DeviceBgpCeaseError_Subcode_Enum) String() string { } func (DeviceBgpCeaseError_Subcode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[23].Descriptor() + return file_otg_proto_enumTypes[34].Descriptor() } func (DeviceBgpCeaseError_Subcode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[23] + return &file_otg_proto_enumTypes[34] } func (x DeviceBgpCeaseError_Subcode_Enum) Number() protoreflect.EnumNumber { @@ -1333,7 +1929,7 @@ func (x DeviceBgpCeaseError_Subcode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use DeviceBgpCeaseError_Subcode_Enum.Descriptor instead. func (DeviceBgpCeaseError_Subcode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{92, 0, 0} } type BgpV4Peer_AsType_Enum int32 @@ -1369,11 +1965,11 @@ func (x BgpV4Peer_AsType_Enum) String() string { } func (BgpV4Peer_AsType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[24].Descriptor() + return file_otg_proto_enumTypes[35].Descriptor() } func (BgpV4Peer_AsType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[24] + return &file_otg_proto_enumTypes[35] } func (x BgpV4Peer_AsType_Enum) Number() protoreflect.EnumNumber { @@ -1382,7 +1978,7 @@ func (x BgpV4Peer_AsType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4Peer_AsType_Enum.Descriptor instead. func (BgpV4Peer_AsType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{94, 0, 0} } type BgpV4Peer_AsNumberWidth_Enum int32 @@ -1418,11 +2014,11 @@ func (x BgpV4Peer_AsNumberWidth_Enum) String() string { } func (BgpV4Peer_AsNumberWidth_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[25].Descriptor() + return file_otg_proto_enumTypes[36].Descriptor() } func (BgpV4Peer_AsNumberWidth_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[25] + return &file_otg_proto_enumTypes[36] } func (x BgpV4Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { @@ -1431,7 +2027,7 @@ func (x BgpV4Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4Peer_AsNumberWidth_Enum.Descriptor instead. func (BgpV4Peer_AsNumberWidth_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{94, 1, 0} } type BgpV4EthernetSegment_ActiveMode_Enum int32 @@ -1467,11 +2063,11 @@ func (x BgpV4EthernetSegment_ActiveMode_Enum) String() string { } func (BgpV4EthernetSegment_ActiveMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[26].Descriptor() + return file_otg_proto_enumTypes[37].Descriptor() } func (BgpV4EthernetSegment_ActiveMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[26] + return &file_otg_proto_enumTypes[37] } func (x BgpV4EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { @@ -1480,7 +2076,7 @@ func (x BgpV4EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4EthernetSegment_ActiveMode_Enum.Descriptor instead. func (BgpV4EthernetSegment_ActiveMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{66, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{96, 0, 0} } type BgpRouteAdvanced_Origin_Enum int32 @@ -1519,11 +2115,11 @@ func (x BgpRouteAdvanced_Origin_Enum) String() string { } func (BgpRouteAdvanced_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[27].Descriptor() + return file_otg_proto_enumTypes[38].Descriptor() } func (BgpRouteAdvanced_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[27] + return &file_otg_proto_enumTypes[38] } func (x BgpRouteAdvanced_Origin_Enum) Number() protoreflect.EnumNumber { @@ -1532,7 +2128,7 @@ func (x BgpRouteAdvanced_Origin_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpRouteAdvanced_Origin_Enum.Descriptor instead. func (BgpRouteAdvanced_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{98, 0, 0} } type BgpCommunity_Type_Enum int32 @@ -1580,11 +2176,11 @@ func (x BgpCommunity_Type_Enum) String() string { } func (BgpCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[28].Descriptor() + return file_otg_proto_enumTypes[39].Descriptor() } func (BgpCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[28] + return &file_otg_proto_enumTypes[39] } func (x BgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -1593,7 +2189,7 @@ func (x BgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpCommunity_Type_Enum.Descriptor instead. func (BgpCommunity_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{69, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{99, 0, 0} } type BgpExtCommunity_Type_Enum int32 @@ -1641,11 +2237,11 @@ func (x BgpExtCommunity_Type_Enum) String() string { } func (BgpExtCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[29].Descriptor() + return file_otg_proto_enumTypes[40].Descriptor() } func (BgpExtCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[29] + return &file_otg_proto_enumTypes[40] } func (x BgpExtCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -1654,7 +2250,7 @@ func (x BgpExtCommunity_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpExtCommunity_Type_Enum.Descriptor instead. func (BgpExtCommunity_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 0, 0} } type BgpExtCommunity_Subtype_Enum int32 @@ -1702,11 +2298,11 @@ func (x BgpExtCommunity_Subtype_Enum) String() string { } func (BgpExtCommunity_Subtype_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[30].Descriptor() + return file_otg_proto_enumTypes[41].Descriptor() } func (BgpExtCommunity_Subtype_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[30] + return &file_otg_proto_enumTypes[41] } func (x BgpExtCommunity_Subtype_Enum) Number() protoreflect.EnumNumber { @@ -1715,7 +2311,7 @@ func (x BgpExtCommunity_Subtype_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpExtCommunity_Subtype_Enum.Descriptor instead. func (BgpExtCommunity_Subtype_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{100, 1, 0} } type BgpAsPath_AsSetMode_Enum int32 @@ -1763,11 +2359,11 @@ func (x BgpAsPath_AsSetMode_Enum) String() string { } func (BgpAsPath_AsSetMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[31].Descriptor() + return file_otg_proto_enumTypes[42].Descriptor() } func (BgpAsPath_AsSetMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[31] + return &file_otg_proto_enumTypes[42] } func (x BgpAsPath_AsSetMode_Enum) Number() protoreflect.EnumNumber { @@ -1776,7 +2372,7 @@ func (x BgpAsPath_AsSetMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAsPath_AsSetMode_Enum.Descriptor instead. func (BgpAsPath_AsSetMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{71, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{101, 0, 0} } type BgpAsPathSegment_Type_Enum int32 @@ -1818,11 +2414,11 @@ func (x BgpAsPathSegment_Type_Enum) String() string { } func (BgpAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[32].Descriptor() + return file_otg_proto_enumTypes[43].Descriptor() } func (BgpAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[32] + return &file_otg_proto_enumTypes[43] } func (x BgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -1831,7 +2427,7 @@ func (x BgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAsPathSegment_Type_Enum.Descriptor instead. func (BgpAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{72, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{102, 0, 0} } type BgpV4EvpnEvis_Choice_Enum int32 @@ -1864,11 +2460,11 @@ func (x BgpV4EvpnEvis_Choice_Enum) String() string { } func (BgpV4EvpnEvis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[33].Descriptor() + return file_otg_proto_enumTypes[44].Descriptor() } func (BgpV4EvpnEvis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[33] + return &file_otg_proto_enumTypes[44] } func (x BgpV4EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -1877,7 +2473,7 @@ func (x BgpV4EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4EvpnEvis_Choice_Enum.Descriptor instead. func (BgpV4EvpnEvis_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{73, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{103, 0, 0} } type BgpV4EviVxlan_ReplicationType_Enum int32 @@ -1910,11 +2506,11 @@ func (x BgpV4EviVxlan_ReplicationType_Enum) String() string { } func (BgpV4EviVxlan_ReplicationType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[34].Descriptor() + return file_otg_proto_enumTypes[45].Descriptor() } func (BgpV4EviVxlan_ReplicationType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[34] + return &file_otg_proto_enumTypes[45] } func (x BgpV4EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { @@ -1923,7 +2519,7 @@ func (x BgpV4EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4EviVxlan_ReplicationType_Enum.Descriptor instead. func (BgpV4EviVxlan_ReplicationType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{74, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{104, 0, 0} } type BgpRouteDistinguisher_RdType_Enum int32 @@ -1962,11 +2558,11 @@ func (x BgpRouteDistinguisher_RdType_Enum) String() string { } func (BgpRouteDistinguisher_RdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[35].Descriptor() + return file_otg_proto_enumTypes[46].Descriptor() } func (BgpRouteDistinguisher_RdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[35] + return &file_otg_proto_enumTypes[46] } func (x BgpRouteDistinguisher_RdType_Enum) Number() protoreflect.EnumNumber { @@ -1975,7 +2571,7 @@ func (x BgpRouteDistinguisher_RdType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpRouteDistinguisher_RdType_Enum.Descriptor instead. func (BgpRouteDistinguisher_RdType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{77, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{107, 0, 0} } type BgpRouteTarget_RtType_Enum int32 @@ -2014,11 +2610,11 @@ func (x BgpRouteTarget_RtType_Enum) String() string { } func (BgpRouteTarget_RtType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[36].Descriptor() + return file_otg_proto_enumTypes[47].Descriptor() } func (BgpRouteTarget_RtType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[36] + return &file_otg_proto_enumTypes[47] } func (x BgpRouteTarget_RtType_Enum) Number() protoreflect.EnumNumber { @@ -2027,7 +2623,7 @@ func (x BgpRouteTarget_RtType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpRouteTarget_RtType_Enum.Descriptor instead. func (BgpRouteTarget_RtType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{78, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{108, 0, 0} } type BgpV4RouteRange_NextHopMode_Enum int32 @@ -2063,11 +2659,11 @@ func (x BgpV4RouteRange_NextHopMode_Enum) String() string { } func (BgpV4RouteRange_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[37].Descriptor() + return file_otg_proto_enumTypes[48].Descriptor() } func (BgpV4RouteRange_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[37] + return &file_otg_proto_enumTypes[48] } func (x BgpV4RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2076,7 +2672,7 @@ func (x BgpV4RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV4RouteRange_NextHopMode_Enum.Descriptor instead. func (BgpV4RouteRange_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{112, 0, 0} } type BgpV4RouteRange_NextHopAddressType_Enum int32 @@ -2112,11 +2708,11 @@ func (x BgpV4RouteRange_NextHopAddressType_Enum) String() string { } func (BgpV4RouteRange_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[38].Descriptor() + return file_otg_proto_enumTypes[49].Descriptor() } func (BgpV4RouteRange_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[38] + return &file_otg_proto_enumTypes[49] } func (x BgpV4RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2125,7 +2721,7 @@ func (x BgpV4RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpV4RouteRange_NextHopAddressType_Enum.Descriptor instead. func (BgpV4RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{112, 1, 0} } type BgpExtendedCommunity_Choice_Enum int32 @@ -2176,11 +2772,11 @@ func (x BgpExtendedCommunity_Choice_Enum) String() string { } func (BgpExtendedCommunity_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[39].Descriptor() + return file_otg_proto_enumTypes[50].Descriptor() } func (BgpExtendedCommunity_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[39] + return &file_otg_proto_enumTypes[50] } func (x BgpExtendedCommunity_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2189,7 +2785,7 @@ func (x BgpExtendedCommunity_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpExtendedCommunity_Choice_Enum.Descriptor instead. func (BgpExtendedCommunity_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{84, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{114, 0, 0} } type BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum int32 @@ -2225,11 +2821,11 @@ func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) String() string } func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[40].Descriptor() + return file_otg_proto_enumTypes[51].Descriptor() } func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[40] + return &file_otg_proto_enumTypes[51] } func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2238,7 +2834,7 @@ func (x BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() protore // Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{117, 0, 0} } type BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum int32 @@ -2274,11 +2870,11 @@ func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) String() stri } func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[41].Descriptor() + return file_otg_proto_enumTypes[52].Descriptor() } func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[41] + return &file_otg_proto_enumTypes[52] } func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2287,7 +2883,7 @@ func (x BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() prot // Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{90, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{120, 0, 0} } type BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum int32 @@ -2323,11 +2919,11 @@ func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) String() string } func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[42].Descriptor() + return file_otg_proto_enumTypes[53].Descriptor() } func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[42] + return &file_otg_proto_enumTypes[53] } func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2336,7 +2932,7 @@ func (x BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() protore // Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{123, 0, 0} } type BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum int32 @@ -2372,11 +2968,11 @@ func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) String() string { } func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[43].Descriptor() + return file_otg_proto_enumTypes[54].Descriptor() } func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[43] + return &file_otg_proto_enumTypes[54] } func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2385,7 +2981,7 @@ func (x BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protorefl // Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{96, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{126, 0, 0} } type BgpExtendedCommunityTransitiveEvpnType_Choice_Enum int32 @@ -2418,11 +3014,11 @@ func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) String() string { } func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[44].Descriptor() + return file_otg_proto_enumTypes[55].Descriptor() } func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[44] + return &file_otg_proto_enumTypes[55] } func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2431,7 +3027,7 @@ func (x BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) Number() protoreflec // Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{98, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{128, 0, 0} } type BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum int32 @@ -2464,11 +3060,11 @@ func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) String() stri } func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[45].Descriptor() + return file_otg_proto_enumTypes[56].Descriptor() } func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[45] + return &file_otg_proto_enumTypes[56] } func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -2477,7 +3073,7 @@ func (x BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() prot // Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum.Descriptor instead. func (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{100, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{130, 0, 0} } type BgpV6RouteRange_NextHopMode_Enum int32 @@ -2513,11 +3109,11 @@ func (x BgpV6RouteRange_NextHopMode_Enum) String() string { } func (BgpV6RouteRange_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[46].Descriptor() + return file_otg_proto_enumTypes[57].Descriptor() } func (BgpV6RouteRange_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[46] + return &file_otg_proto_enumTypes[57] } func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2526,7 +3122,7 @@ func (x BgpV6RouteRange_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6RouteRange_NextHopMode_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{102, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{132, 0, 0} } type BgpV6RouteRange_NextHopAddressType_Enum int32 @@ -2562,11 +3158,11 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) String() string { } func (BgpV6RouteRange_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[47].Descriptor() + return file_otg_proto_enumTypes[58].Descriptor() } func (BgpV6RouteRange_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[47] + return &file_otg_proto_enumTypes[58] } func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2575,7 +3171,7 @@ func (x BgpV6RouteRange_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpV6RouteRange_NextHopAddressType_Enum.Descriptor instead. func (BgpV6RouteRange_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{102, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{132, 1, 0} } type BgpSrteV4Policy_NextHopMode_Enum int32 @@ -2611,11 +3207,11 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) String() string { } func (BgpSrteV4Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[48].Descriptor() + return file_otg_proto_enumTypes[59].Descriptor() } func (BgpSrteV4Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[48] + return &file_otg_proto_enumTypes[59] } func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2624,7 +3220,7 @@ func (x BgpSrteV4Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV4Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{133, 0, 0} } type BgpSrteV4Policy_NextHopAddressType_Enum int32 @@ -2660,11 +3256,11 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV4Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[49].Descriptor() + return file_otg_proto_enumTypes[60].Descriptor() } func (BgpSrteV4Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[49] + return &file_otg_proto_enumTypes[60] } func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -2673,7 +3269,7 @@ func (x BgpSrteV4Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV4Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV4Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{133, 1, 0} } type BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum int32 @@ -2709,11 +3305,11 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) String() string { } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[50].Descriptor() + return file_otg_proto_enumTypes[61].Descriptor() } func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[50] + return &file_otg_proto_enumTypes[61] } func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.EnumNumber { @@ -2722,7 +3318,7 @@ func (x BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) Number() protoreflect.En // Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum.Descriptor instead. func (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{135, 0, 0} } type BgpSrteBindingSubTlv_BindingSidType_Enum int32 @@ -2761,11 +3357,11 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) String() string { } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[51].Descriptor() + return file_otg_proto_enumTypes[62].Descriptor() } func (BgpSrteBindingSubTlv_BindingSidType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[51] + return &file_otg_proto_enumTypes[62] } func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumber { @@ -2774,7 +3370,7 @@ func (x BgpSrteBindingSubTlv_BindingSidType_Enum) Number() protoreflect.EnumNumb // Deprecated: Use BgpSrteBindingSubTlv_BindingSidType_Enum.Descriptor instead. func (BgpSrteBindingSubTlv_BindingSidType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{137, 0, 0} } type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum int32 @@ -2819,11 +3415,11 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Strin } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[52].Descriptor() + return file_otg_proto_enumTypes[63].Descriptor() } func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[52] + return &file_otg_proto_enumTypes[63] } func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Number() protoreflect.EnumNumber { @@ -2832,7 +3428,7 @@ func (x BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) Numbe // Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum.Descriptor instead. func (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{111, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{141, 0, 0} } type BgpSrteSegment_SegmentType_Enum int32 @@ -2895,11 +3491,11 @@ func (x BgpSrteSegment_SegmentType_Enum) String() string { } func (BgpSrteSegment_SegmentType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[53].Descriptor() + return file_otg_proto_enumTypes[64].Descriptor() } func (BgpSrteSegment_SegmentType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[53] + return &file_otg_proto_enumTypes[64] } func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { @@ -2908,7 +3504,7 @@ func (x BgpSrteSegment_SegmentType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteSegment_SegmentType_Enum.Descriptor instead. func (BgpSrteSegment_SegmentType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{143, 0, 0} } type BgpSrteV6Policy_NextHopMode_Enum int32 @@ -2944,11 +3540,11 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) String() string { } func (BgpSrteV6Policy_NextHopMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[54].Descriptor() + return file_otg_proto_enumTypes[65].Descriptor() } func (BgpSrteV6Policy_NextHopMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[54] + return &file_otg_proto_enumTypes[65] } func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { @@ -2957,7 +3553,7 @@ func (x BgpSrteV6Policy_NextHopMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpSrteV6Policy_NextHopMode_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{127, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 0, 0} } type BgpSrteV6Policy_NextHopAddressType_Enum int32 @@ -2993,11 +3589,11 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) String() string { } func (BgpSrteV6Policy_NextHopAddressType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[55].Descriptor() + return file_otg_proto_enumTypes[66].Descriptor() } func (BgpSrteV6Policy_NextHopAddressType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[55] + return &file_otg_proto_enumTypes[66] } func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumber { @@ -3006,7 +3602,7 @@ func (x BgpSrteV6Policy_NextHopAddressType_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use BgpSrteV6Policy_NextHopAddressType_Enum.Descriptor instead. func (BgpSrteV6Policy_NextHopAddressType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{127, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{157, 1, 0} } type BgpUpdateReplay_Choice_Enum int32 @@ -3042,11 +3638,11 @@ func (x BgpUpdateReplay_Choice_Enum) String() string { } func (BgpUpdateReplay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[56].Descriptor() + return file_otg_proto_enumTypes[67].Descriptor() } func (BgpUpdateReplay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[56] + return &file_otg_proto_enumTypes[67] } func (x BgpUpdateReplay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3055,7 +3651,7 @@ func (x BgpUpdateReplay_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpUpdateReplay_Choice_Enum.Descriptor instead. func (BgpUpdateReplay_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{130, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{160, 0, 0} } type BgpAttributes_Origin_Enum int32 @@ -3094,11 +3690,11 @@ func (x BgpAttributes_Origin_Enum) String() string { } func (BgpAttributes_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[57].Descriptor() + return file_otg_proto_enumTypes[68].Descriptor() } func (BgpAttributes_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[57] + return &file_otg_proto_enumTypes[68] } func (x BgpAttributes_Origin_Enum) Number() protoreflect.EnumNumber { @@ -3107,7 +3703,7 @@ func (x BgpAttributes_Origin_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributes_Origin_Enum.Descriptor instead. func (BgpAttributes_Origin_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{171, 0, 0} } type BgpAttributesAsPath_Choice_Enum int32 @@ -3143,11 +3739,11 @@ func (x BgpAttributesAsPath_Choice_Enum) String() string { } func (BgpAttributesAsPath_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[58].Descriptor() + return file_otg_proto_enumTypes[69].Descriptor() } func (BgpAttributesAsPath_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[58] + return &file_otg_proto_enumTypes[69] } func (x BgpAttributesAsPath_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3156,7 +3752,7 @@ func (x BgpAttributesAsPath_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesAsPath_Choice_Enum.Descriptor instead. func (BgpAttributesAsPath_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{173, 0, 0} } type BgpAttributesFourByteAsPathSegment_Type_Enum int32 @@ -3198,11 +3794,11 @@ func (x BgpAttributesFourByteAsPathSegment_Type_Enum) String() string { } func (BgpAttributesFourByteAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[59].Descriptor() + return file_otg_proto_enumTypes[70].Descriptor() } func (BgpAttributesFourByteAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[59] + return &file_otg_proto_enumTypes[70] } func (x BgpAttributesFourByteAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -3211,7 +3807,7 @@ func (x BgpAttributesFourByteAsPathSegment_Type_Enum) Number() protoreflect.Enum // Deprecated: Use BgpAttributesFourByteAsPathSegment_Type_Enum.Descriptor instead. func (BgpAttributesFourByteAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{145, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{175, 0, 0} } type BgpAttributesTwoByteAsPathSegment_Type_Enum int32 @@ -3253,11 +3849,11 @@ func (x BgpAttributesTwoByteAsPathSegment_Type_Enum) String() string { } func (BgpAttributesTwoByteAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[60].Descriptor() + return file_otg_proto_enumTypes[71].Descriptor() } func (BgpAttributesTwoByteAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[60] + return &file_otg_proto_enumTypes[71] } func (x BgpAttributesTwoByteAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -3266,7 +3862,7 @@ func (x BgpAttributesTwoByteAsPathSegment_Type_Enum) Number() protoreflect.EnumN // Deprecated: Use BgpAttributesTwoByteAsPathSegment_Type_Enum.Descriptor instead. func (BgpAttributesTwoByteAsPathSegment_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{147, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{177, 0, 0} } type BgpAttributesAggregator_Choice_Enum int32 @@ -3302,11 +3898,11 @@ func (x BgpAttributesAggregator_Choice_Enum) String() string { } func (BgpAttributesAggregator_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[61].Descriptor() + return file_otg_proto_enumTypes[72].Descriptor() } func (BgpAttributesAggregator_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[61] + return &file_otg_proto_enumTypes[72] } func (x BgpAttributesAggregator_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3315,7 +3911,7 @@ func (x BgpAttributesAggregator_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesAggregator_Choice_Enum.Descriptor instead. func (BgpAttributesAggregator_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{149, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{179, 0, 0} } type BgpAttributesCommunity_Choice_Enum int32 @@ -3363,11 +3959,11 @@ func (x BgpAttributesCommunity_Choice_Enum) String() string { } func (BgpAttributesCommunity_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[62].Descriptor() + return file_otg_proto_enumTypes[73].Descriptor() } func (BgpAttributesCommunity_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[62] + return &file_otg_proto_enumTypes[73] } func (x BgpAttributesCommunity_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3376,7 +3972,7 @@ func (x BgpAttributesCommunity_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesCommunity_Choice_Enum.Descriptor instead. func (BgpAttributesCommunity_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{181, 0, 0} } type BgpAttributesNextHop_Choice_Enum int32 @@ -3415,11 +4011,11 @@ func (x BgpAttributesNextHop_Choice_Enum) String() string { } func (BgpAttributesNextHop_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[63].Descriptor() + return file_otg_proto_enumTypes[74].Descriptor() } func (BgpAttributesNextHop_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[63] + return &file_otg_proto_enumTypes[74] } func (x BgpAttributesNextHop_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3428,7 +4024,7 @@ func (x BgpAttributesNextHop_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesNextHop_Choice_Enum.Descriptor instead. func (BgpAttributesNextHop_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{153, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{183, 0, 0} } type BgpAttributesMpReachNlri_Choice_Enum int32 @@ -3470,11 +4066,11 @@ func (x BgpAttributesMpReachNlri_Choice_Enum) String() string { } func (BgpAttributesMpReachNlri_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[64].Descriptor() + return file_otg_proto_enumTypes[75].Descriptor() } func (BgpAttributesMpReachNlri_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[64] + return &file_otg_proto_enumTypes[75] } func (x BgpAttributesMpReachNlri_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3483,7 +4079,7 @@ func (x BgpAttributesMpReachNlri_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesMpReachNlri_Choice_Enum.Descriptor instead. func (BgpAttributesMpReachNlri_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{155, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{185, 0, 0} } type BgpAttributesMpUnreachNlri_Choice_Enum int32 @@ -3525,11 +4121,11 @@ func (x BgpAttributesMpUnreachNlri_Choice_Enum) String() string { } func (BgpAttributesMpUnreachNlri_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[65].Descriptor() + return file_otg_proto_enumTypes[76].Descriptor() } func (BgpAttributesMpUnreachNlri_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[65] + return &file_otg_proto_enumTypes[76] } func (x BgpAttributesMpUnreachNlri_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3538,7 +4134,7 @@ func (x BgpAttributesMpUnreachNlri_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use BgpAttributesMpUnreachNlri_Choice_Enum.Descriptor instead. func (BgpAttributesMpUnreachNlri_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{156, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{186, 0, 0} } type BgpAttributesTunnelEncapsulation_Choice_Enum int32 @@ -3571,11 +4167,11 @@ func (x BgpAttributesTunnelEncapsulation_Choice_Enum) String() string { } func (BgpAttributesTunnelEncapsulation_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[66].Descriptor() + return file_otg_proto_enumTypes[77].Descriptor() } func (BgpAttributesTunnelEncapsulation_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[66] + return &file_otg_proto_enumTypes[77] } func (x BgpAttributesTunnelEncapsulation_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3584,7 +4180,7 @@ func (x BgpAttributesTunnelEncapsulation_Choice_Enum) Number() protoreflect.Enum // Deprecated: Use BgpAttributesTunnelEncapsulation_Choice_Enum.Descriptor instead. func (BgpAttributesTunnelEncapsulation_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{160, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{190, 0, 0} } type BgpAttributesBsid_Choice_Enum int32 @@ -3620,11 +4216,11 @@ func (x BgpAttributesBsid_Choice_Enum) String() string { } func (BgpAttributesBsid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[67].Descriptor() + return file_otg_proto_enumTypes[78].Descriptor() } func (BgpAttributesBsid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[67] + return &file_otg_proto_enumTypes[78] } func (x BgpAttributesBsid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3633,7 +4229,7 @@ func (x BgpAttributesBsid_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpAttributesBsid_Choice_Enum.Descriptor instead. func (BgpAttributesBsid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{192, 0, 0} } type BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum int32 @@ -3678,11 +4274,11 @@ func (x BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) String() string { } func (BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[68].Descriptor() + return file_otg_proto_enumTypes[79].Descriptor() } func (BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[68] + return &file_otg_proto_enumTypes[79] } func (x BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3691,7 +4287,7 @@ func (x BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) Number() protorefle // Deprecated: Use BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum.Descriptor instead. func (BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{202, 0, 0} } type BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum int32 @@ -3754,11 +4350,11 @@ func (x BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) String( } func (BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[69].Descriptor() + return file_otg_proto_enumTypes[80].Descriptor() } func (BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[69] + return &file_otg_proto_enumTypes[80] } func (x BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3767,7 +4363,7 @@ func (x BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) Number( // Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum.Descriptor instead. func (BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{175, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{205, 0, 0} } type BgpV6Peer_AsType_Enum int32 @@ -3803,11 +4399,11 @@ func (x BgpV6Peer_AsType_Enum) String() string { } func (BgpV6Peer_AsType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[70].Descriptor() + return file_otg_proto_enumTypes[81].Descriptor() } func (BgpV6Peer_AsType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[70] + return &file_otg_proto_enumTypes[81] } func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { @@ -3816,7 +4412,7 @@ func (x BgpV6Peer_AsType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsType_Enum.Descriptor instead. func (BgpV6Peer_AsType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{190, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{220, 0, 0} } type BgpV6Peer_AsNumberWidth_Enum int32 @@ -3852,11 +4448,11 @@ func (x BgpV6Peer_AsNumberWidth_Enum) String() string { } func (BgpV6Peer_AsNumberWidth_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[71].Descriptor() + return file_otg_proto_enumTypes[82].Descriptor() } func (BgpV6Peer_AsNumberWidth_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[71] + return &file_otg_proto_enumTypes[82] } func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { @@ -3865,7 +4461,7 @@ func (x BgpV6Peer_AsNumberWidth_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6Peer_AsNumberWidth_Enum.Descriptor instead. func (BgpV6Peer_AsNumberWidth_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{190, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{220, 1, 0} } type BgpV6EthernetSegment_ActiveMode_Enum int32 @@ -3901,11 +4497,11 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) String() string { } func (BgpV6EthernetSegment_ActiveMode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[72].Descriptor() + return file_otg_proto_enumTypes[83].Descriptor() } func (BgpV6EthernetSegment_ActiveMode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[72] + return &file_otg_proto_enumTypes[83] } func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { @@ -3914,7 +4510,7 @@ func (x BgpV6EthernetSegment_ActiveMode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EthernetSegment_ActiveMode_Enum.Descriptor instead. func (BgpV6EthernetSegment_ActiveMode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{223, 0, 0} } type BgpV6EvpnEvis_Choice_Enum int32 @@ -3947,11 +4543,11 @@ func (x BgpV6EvpnEvis_Choice_Enum) String() string { } func (BgpV6EvpnEvis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[73].Descriptor() + return file_otg_proto_enumTypes[84].Descriptor() } func (BgpV6EvpnEvis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[73] + return &file_otg_proto_enumTypes[84] } func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -3960,7 +4556,7 @@ func (x BgpV6EvpnEvis_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EvpnEvis_Choice_Enum.Descriptor instead. func (BgpV6EvpnEvis_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{194, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{224, 0, 0} } type BgpV6EviVxlan_ReplicationType_Enum int32 @@ -3993,11 +4589,11 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) String() string { } func (BgpV6EviVxlan_ReplicationType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[74].Descriptor() + return file_otg_proto_enumTypes[85].Descriptor() } func (BgpV6EviVxlan_ReplicationType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[74] + return &file_otg_proto_enumTypes[85] } func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { @@ -4006,7 +4602,7 @@ func (x BgpV6EviVxlan_ReplicationType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use BgpV6EviVxlan_ReplicationType_Enum.Descriptor instead. func (BgpV6EviVxlan_ReplicationType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{195, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{225, 0, 0} } type VxlanV4TunnelDestinationIPMode_Choice_Enum int32 @@ -4042,11 +4638,11 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[75].Descriptor() + return file_otg_proto_enumTypes[86].Descriptor() } func (VxlanV4TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[75] + return &file_otg_proto_enumTypes[86] } func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4055,7 +4651,7 @@ func (x VxlanV4TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV4TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{230, 0, 0} } type VxlanV6TunnelDestinationIPMode_Choice_Enum int32 @@ -4091,11 +4687,11 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) String() string { } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[76].Descriptor() + return file_otg_proto_enumTypes[87].Descriptor() } func (VxlanV6TunnelDestinationIPMode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[76] + return &file_otg_proto_enumTypes[87] } func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4104,7 +4700,7 @@ func (x VxlanV6TunnelDestinationIPMode_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice_Enum.Descriptor instead. func (VxlanV6TunnelDestinationIPMode_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{231, 0, 0} } type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum int32 @@ -4143,11 +4739,11 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) String() str } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[77].Descriptor() + return file_otg_proto_enumTypes[88].Descriptor() } func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[77] + return &file_otg_proto_enumTypes[88] } func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() protoreflect.EnumNumber { @@ -4156,7 +4752,7 @@ func (x RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) Number() pro // Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum.Descriptor instead. func (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} } type RsvpEro_PrependNeighborIp_Enum int32 @@ -4195,11 +4791,11 @@ func (x RsvpEro_PrependNeighborIp_Enum) String() string { } func (RsvpEro_PrependNeighborIp_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[78].Descriptor() + return file_otg_proto_enumTypes[89].Descriptor() } func (RsvpEro_PrependNeighborIp_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[78] + return &file_otg_proto_enumTypes[89] } func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { @@ -4208,7 +4804,7 @@ func (x RsvpEro_PrependNeighborIp_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEro_PrependNeighborIp_Enum.Descriptor instead. func (RsvpEro_PrependNeighborIp_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{218, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{248, 0, 0} } type RsvpEroSubobject_Type_Enum int32 @@ -4244,11 +4840,11 @@ func (x RsvpEroSubobject_Type_Enum) String() string { } func (RsvpEroSubobject_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[79].Descriptor() + return file_otg_proto_enumTypes[90].Descriptor() } func (RsvpEroSubobject_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[79] + return &file_otg_proto_enumTypes[90] } func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { @@ -4257,7 +4853,7 @@ func (x RsvpEroSubobject_Type_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_Type_Enum.Descriptor instead. func (RsvpEroSubobject_Type_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{249, 0, 0} } type RsvpEroSubobject_HopType_Enum int32 @@ -4293,11 +4889,11 @@ func (x RsvpEroSubobject_HopType_Enum) String() string { } func (RsvpEroSubobject_HopType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[80].Descriptor() + return file_otg_proto_enumTypes[91].Descriptor() } func (RsvpEroSubobject_HopType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[80] + return &file_otg_proto_enumTypes[91] } func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { @@ -4306,7 +4902,62 @@ func (x RsvpEroSubobject_HopType_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use RsvpEroSubobject_HopType_Enum.Descriptor instead. func (RsvpEroSubobject_HopType_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{249, 1, 0} +} + +type Dhcpv6ServerIaType_Choice_Enum int32 + +const ( + Dhcpv6ServerIaType_Choice_unspecified Dhcpv6ServerIaType_Choice_Enum = 0 + Dhcpv6ServerIaType_Choice_iana Dhcpv6ServerIaType_Choice_Enum = 1 + Dhcpv6ServerIaType_Choice_iata Dhcpv6ServerIaType_Choice_Enum = 2 + Dhcpv6ServerIaType_Choice_iapd Dhcpv6ServerIaType_Choice_Enum = 3 + Dhcpv6ServerIaType_Choice_ianapd Dhcpv6ServerIaType_Choice_Enum = 4 +) + +// Enum value maps for Dhcpv6ServerIaType_Choice_Enum. +var ( + Dhcpv6ServerIaType_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "iana", + 2: "iata", + 3: "iapd", + 4: "ianapd", + } + Dhcpv6ServerIaType_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "iana": 1, + "iata": 2, + "iapd": 3, + "ianapd": 4, + } +) + +func (x Dhcpv6ServerIaType_Choice_Enum) Enum() *Dhcpv6ServerIaType_Choice_Enum { + p := new(Dhcpv6ServerIaType_Choice_Enum) + *p = x + return p +} + +func (x Dhcpv6ServerIaType_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ServerIaType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[92].Descriptor() +} + +func (Dhcpv6ServerIaType_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[92] +} + +func (x Dhcpv6ServerIaType_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ServerIaType_Choice_Enum.Descriptor instead. +func (Dhcpv6ServerIaType_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257, 0, 0} } type FlowTxRx_Choice_Enum int32 @@ -4342,11 +4993,11 @@ func (x FlowTxRx_Choice_Enum) String() string { } func (FlowTxRx_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[81].Descriptor() + return file_otg_proto_enumTypes[93].Descriptor() } func (FlowTxRx_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[81] + return &file_otg_proto_enumTypes[93] } func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4355,7 +5006,7 @@ func (x FlowTxRx_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowTxRx_Choice_Enum.Descriptor instead. func (FlowTxRx_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{225, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{264, 0, 0} } type FlowRouter_Mode_Enum int32 @@ -4391,11 +5042,11 @@ func (x FlowRouter_Mode_Enum) String() string { } func (FlowRouter_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[82].Descriptor() + return file_otg_proto_enumTypes[94].Descriptor() } func (FlowRouter_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[82] + return &file_otg_proto_enumTypes[94] } func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { @@ -4404,7 +5055,7 @@ func (x FlowRouter_Mode_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRouter_Mode_Enum.Descriptor instead. func (FlowRouter_Mode_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{266, 0, 0} } type FlowHeader_Choice_Enum int32 @@ -4497,11 +5148,11 @@ func (x FlowHeader_Choice_Enum) String() string { } func (FlowHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[83].Descriptor() + return file_otg_proto_enumTypes[95].Descriptor() } func (FlowHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[83] + return &file_otg_proto_enumTypes[95] } func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4510,7 +5161,7 @@ func (x FlowHeader_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowHeader_Choice_Enum.Descriptor instead. func (FlowHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{267, 0, 0} } type FlowIpv4Options_Choice_Enum int32 @@ -4546,11 +5197,11 @@ func (x FlowIpv4Options_Choice_Enum) String() string { } func (FlowIpv4Options_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[84].Descriptor() + return file_otg_proto_enumTypes[96].Descriptor() } func (FlowIpv4Options_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[84] + return &file_otg_proto_enumTypes[96] } func (x FlowIpv4Options_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4559,7 +5210,7 @@ func (x FlowIpv4Options_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIpv4Options_Choice_Enum.Descriptor instead. func (FlowIpv4Options_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{235, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{274, 0, 0} } type FlowIpv4OptionsCustomLength_Choice_Enum int32 @@ -4595,11 +5246,11 @@ func (x FlowIpv4OptionsCustomLength_Choice_Enum) String() string { } func (FlowIpv4OptionsCustomLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[85].Descriptor() + return file_otg_proto_enumTypes[97].Descriptor() } func (FlowIpv4OptionsCustomLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[85] + return &file_otg_proto_enumTypes[97] } func (x FlowIpv4OptionsCustomLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4608,7 +5259,7 @@ func (x FlowIpv4OptionsCustomLength_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use FlowIpv4OptionsCustomLength_Choice_Enum.Descriptor instead. func (FlowIpv4OptionsCustomLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{238, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} } type FlowIpv4Priority_Choice_Enum int32 @@ -4647,11 +5298,11 @@ func (x FlowIpv4Priority_Choice_Enum) String() string { } func (FlowIpv4Priority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[86].Descriptor() + return file_otg_proto_enumTypes[98].Descriptor() } func (FlowIpv4Priority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[86] + return &file_otg_proto_enumTypes[98] } func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4660,7 +5311,7 @@ func (x FlowIpv4Priority_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIpv4Priority_Choice_Enum.Descriptor instead. func (FlowIpv4Priority_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{239, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{278, 0, 0} } type FlowIpv4Auto_Choice_Enum int32 @@ -4693,11 +5344,11 @@ func (x FlowIpv4Auto_Choice_Enum) String() string { } func (FlowIpv4Auto_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[87].Descriptor() + return file_otg_proto_enumTypes[99].Descriptor() } func (FlowIpv4Auto_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[87] + return &file_otg_proto_enumTypes[99] } func (x FlowIpv4Auto_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4706,7 +5357,53 @@ func (x FlowIpv4Auto_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIpv4Auto_Choice_Enum.Descriptor instead. func (FlowIpv4Auto_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{281, 0, 0} +} + +type FlowIpv6Auto_Choice_Enum int32 + +const ( + FlowIpv6Auto_Choice_unspecified FlowIpv6Auto_Choice_Enum = 0 + FlowIpv6Auto_Choice_dhcp FlowIpv6Auto_Choice_Enum = 1 +) + +// Enum value maps for FlowIpv6Auto_Choice_Enum. +var ( + FlowIpv6Auto_Choice_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "dhcp", + } + FlowIpv6Auto_Choice_Enum_value = map[string]int32{ + "unspecified": 0, + "dhcp": 1, + } +) + +func (x FlowIpv6Auto_Choice_Enum) Enum() *FlowIpv6Auto_Choice_Enum { + p := new(FlowIpv6Auto_Choice_Enum) + *p = x + return p +} + +func (x FlowIpv6Auto_Choice_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FlowIpv6Auto_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[100].Descriptor() +} + +func (FlowIpv6Auto_Choice_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[100] +} + +func (x FlowIpv6Auto_Choice_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FlowIpv6Auto_Choice_Enum.Descriptor instead. +func (FlowIpv6Auto_Choice_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283, 0, 0} } type FlowIcmp_Choice_Enum int32 @@ -4739,11 +5436,11 @@ func (x FlowIcmp_Choice_Enum) String() string { } func (FlowIcmp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[88].Descriptor() + return file_otg_proto_enumTypes[101].Descriptor() } func (FlowIcmp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[88] + return &file_otg_proto_enumTypes[101] } func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4752,7 +5449,7 @@ func (x FlowIcmp_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmp_Choice_Enum.Descriptor instead. func (FlowIcmp_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{253, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{293, 0, 0} } type FlowIcmpv6_Choice_Enum int32 @@ -4785,11 +5482,11 @@ func (x FlowIcmpv6_Choice_Enum) String() string { } func (FlowIcmpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[89].Descriptor() + return file_otg_proto_enumTypes[102].Descriptor() } func (FlowIcmpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[89] + return &file_otg_proto_enumTypes[102] } func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4798,7 +5495,7 @@ func (x FlowIcmpv6_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowIcmpv6_Choice_Enum.Descriptor instead. func (FlowIcmpv6_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{255, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{295, 0, 0} } type FlowSnmpv2CData_Choice_Enum int32 @@ -4852,11 +5549,11 @@ func (x FlowSnmpv2CData_Choice_Enum) String() string { } func (FlowSnmpv2CData_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[90].Descriptor() + return file_otg_proto_enumTypes[103].Descriptor() } func (FlowSnmpv2CData_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[90] + return &file_otg_proto_enumTypes[103] } func (x FlowSnmpv2CData_Choice_Enum) Number() protoreflect.EnumNumber { @@ -4865,7 +5562,7 @@ func (x FlowSnmpv2CData_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSnmpv2CData_Choice_Enum.Descriptor instead. func (FlowSnmpv2CData_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{301, 0, 0} } type FlowSnmpv2CPDU_ErrorStatus_Enum int32 @@ -4952,11 +5649,11 @@ func (x FlowSnmpv2CPDU_ErrorStatus_Enum) String() string { } func (FlowSnmpv2CPDU_ErrorStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[91].Descriptor() + return file_otg_proto_enumTypes[104].Descriptor() } func (FlowSnmpv2CPDU_ErrorStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[91] + return &file_otg_proto_enumTypes[104] } func (x FlowSnmpv2CPDU_ErrorStatus_Enum) Number() protoreflect.EnumNumber { @@ -4965,7 +5662,7 @@ func (x FlowSnmpv2CPDU_ErrorStatus_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowSnmpv2CPDU_ErrorStatus_Enum.Descriptor instead. func (FlowSnmpv2CPDU_ErrorStatus_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{302, 0, 0} } type FlowSnmpv2CVariableBindingValue_Choice_Enum int32 @@ -5025,11 +5722,11 @@ func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) String() string { } func (FlowSnmpv2CVariableBindingValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[92].Descriptor() + return file_otg_proto_enumTypes[105].Descriptor() } func (FlowSnmpv2CVariableBindingValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[92] + return &file_otg_proto_enumTypes[105] } func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5038,7 +5735,7 @@ func (x FlowSnmpv2CVariableBindingValue_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use FlowSnmpv2CVariableBindingValue_Choice_Enum.Descriptor instead. func (FlowSnmpv2CVariableBindingValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{305, 0, 0} } type FlowSnmpv2CVariableBindingStringValue_Choice_Enum int32 @@ -5074,11 +5771,11 @@ func (x FlowSnmpv2CVariableBindingStringValue_Choice_Enum) String() string { } func (FlowSnmpv2CVariableBindingStringValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[93].Descriptor() + return file_otg_proto_enumTypes[106].Descriptor() } func (FlowSnmpv2CVariableBindingStringValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[93] + return &file_otg_proto_enumTypes[106] } func (x FlowSnmpv2CVariableBindingStringValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5087,7 +5784,7 @@ func (x FlowSnmpv2CVariableBindingStringValue_Choice_Enum) Number() protoreflect // Deprecated: Use FlowSnmpv2CVariableBindingStringValue_Choice_Enum.Descriptor instead. func (FlowSnmpv2CVariableBindingStringValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{306, 0, 0} } type FlowRsvp_Flag_Enum int32 @@ -5123,11 +5820,11 @@ func (x FlowRsvp_Flag_Enum) String() string { } func (FlowRsvp_Flag_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[94].Descriptor() + return file_otg_proto_enumTypes[107].Descriptor() } func (FlowRsvp_Flag_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[94] + return &file_otg_proto_enumTypes[107] } func (x FlowRsvp_Flag_Enum) Number() protoreflect.EnumNumber { @@ -5136,7 +5833,7 @@ func (x FlowRsvp_Flag_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRsvp_Flag_Enum.Descriptor instead. func (FlowRsvp_Flag_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{307, 0, 0} } type FlowRSVPLength_Choice_Enum int32 @@ -5172,11 +5869,11 @@ func (x FlowRSVPLength_Choice_Enum) String() string { } func (FlowRSVPLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[95].Descriptor() + return file_otg_proto_enumTypes[108].Descriptor() } func (FlowRSVPLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[95] + return &file_otg_proto_enumTypes[108] } func (x FlowRSVPLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5185,7 +5882,7 @@ func (x FlowRSVPLength_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRSVPLength_Choice_Enum.Descriptor instead. func (FlowRSVPLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{308, 0, 0} } type FlowRSVPMessage_Choice_Enum int32 @@ -5218,11 +5915,11 @@ func (x FlowRSVPMessage_Choice_Enum) String() string { } func (FlowRSVPMessage_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[96].Descriptor() + return file_otg_proto_enumTypes[109].Descriptor() } func (FlowRSVPMessage_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[96] + return &file_otg_proto_enumTypes[109] } func (x FlowRSVPMessage_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5231,7 +5928,7 @@ func (x FlowRSVPMessage_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRSVPMessage_Choice_Enum.Descriptor instead. func (FlowRSVPMessage_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{309, 0, 0} } type FlowRSVPObjectLength_Choice_Enum int32 @@ -5267,11 +5964,11 @@ func (x FlowRSVPObjectLength_Choice_Enum) String() string { } func (FlowRSVPObjectLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[97].Descriptor() + return file_otg_proto_enumTypes[110].Descriptor() } func (FlowRSVPObjectLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[97] + return &file_otg_proto_enumTypes[110] } func (x FlowRSVPObjectLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5280,7 +5977,7 @@ func (x FlowRSVPObjectLength_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRSVPObjectLength_Choice_Enum.Descriptor instead. func (FlowRSVPObjectLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} } type FlowRSVPPathObjectsClass_Choice_Enum int32 @@ -5340,11 +6037,11 @@ func (x FlowRSVPPathObjectsClass_Choice_Enum) String() string { } func (FlowRSVPPathObjectsClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[98].Descriptor() + return file_otg_proto_enumTypes[111].Descriptor() } func (FlowRSVPPathObjectsClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[98] + return &file_otg_proto_enumTypes[111] } func (x FlowRSVPPathObjectsClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5353,7 +6050,7 @@ func (x FlowRSVPPathObjectsClass_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRSVPPathObjectsClass_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsClass_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{273, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{313, 0, 0} } type FlowRSVPPathObjectsSessionCType_Choice_Enum int32 @@ -5386,11 +6083,11 @@ func (x FlowRSVPPathObjectsSessionCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsSessionCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[99].Descriptor() + return file_otg_proto_enumTypes[112].Descriptor() } func (FlowRSVPPathObjectsSessionCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[99] + return &file_otg_proto_enumTypes[112] } func (x FlowRSVPPathObjectsSessionCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5399,7 +6096,7 @@ func (x FlowRSVPPathObjectsSessionCType_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use FlowRSVPPathObjectsSessionCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsSessionCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{315, 0, 0} } type FlowRSVPPathSessionExtTunnelId_Choice_Enum int32 @@ -5435,11 +6132,11 @@ func (x FlowRSVPPathSessionExtTunnelId_Choice_Enum) String() string { } func (FlowRSVPPathSessionExtTunnelId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[100].Descriptor() + return file_otg_proto_enumTypes[113].Descriptor() } func (FlowRSVPPathSessionExtTunnelId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[100] + return &file_otg_proto_enumTypes[113] } func (x FlowRSVPPathSessionExtTunnelId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5448,7 +6145,7 @@ func (x FlowRSVPPathSessionExtTunnelId_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use FlowRSVPPathSessionExtTunnelId_Choice_Enum.Descriptor instead. func (FlowRSVPPathSessionExtTunnelId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{317, 0, 0} } type FlowRSVPPathObjectsRsvpHopCType_Choice_Enum int32 @@ -5481,11 +6178,11 @@ func (x FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[101].Descriptor() + return file_otg_proto_enumTypes[114].Descriptor() } func (FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[101] + return &file_otg_proto_enumTypes[114] } func (x FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5494,7 +6191,7 @@ func (x FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use FlowRSVPPathObjectsRsvpHopCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsRsvpHopCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{319, 0, 0} } type FlowRSVPPathObjectsTimeValuesCType_Choice_Enum int32 @@ -5527,11 +6224,11 @@ func (x FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[102].Descriptor() + return file_otg_proto_enumTypes[115].Descriptor() } func (FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[102] + return &file_otg_proto_enumTypes[115] } func (x FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5540,7 +6237,7 @@ func (x FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) Number() protoreflect.En // Deprecated: Use FlowRSVPPathObjectsTimeValuesCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsTimeValuesCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{282, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{322, 0, 0} } type FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum int32 @@ -5573,11 +6270,11 @@ func (x FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) String() string } func (FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[103].Descriptor() + return file_otg_proto_enumTypes[116].Descriptor() } func (FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[103] + return &file_otg_proto_enumTypes[116] } func (x FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5586,7 +6283,7 @@ func (x FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) Number() protore // Deprecated: Use FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{325, 0, 0} } type FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum int32 @@ -5622,11 +6319,11 @@ func (x FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) String() string { } func (FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[104].Descriptor() + return file_otg_proto_enumTypes[117].Descriptor() } func (FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[104] + return &file_otg_proto_enumTypes[117] } func (x FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5635,7 +6332,7 @@ func (x FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) Number() protorefl // Deprecated: Use FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum.Descriptor instead. func (FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{288, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{328, 0, 0} } type FlowRSVPExplicitRouteLength_Choice_Enum int32 @@ -5671,11 +6368,11 @@ func (x FlowRSVPExplicitRouteLength_Choice_Enum) String() string { } func (FlowRSVPExplicitRouteLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[105].Descriptor() + return file_otg_proto_enumTypes[118].Descriptor() } func (FlowRSVPExplicitRouteLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[105] + return &file_otg_proto_enumTypes[118] } func (x FlowRSVPExplicitRouteLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5684,7 +6381,7 @@ func (x FlowRSVPExplicitRouteLength_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use FlowRSVPExplicitRouteLength_Choice_Enum.Descriptor instead. func (FlowRSVPExplicitRouteLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{331, 0, 0} } type FlowRSVPExplicitRouteASNumberLength_Choice_Enum int32 @@ -5720,11 +6417,11 @@ func (x FlowRSVPExplicitRouteASNumberLength_Choice_Enum) String() string { } func (FlowRSVPExplicitRouteASNumberLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[106].Descriptor() + return file_otg_proto_enumTypes[119].Descriptor() } func (FlowRSVPExplicitRouteASNumberLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[106] + return &file_otg_proto_enumTypes[119] } func (x FlowRSVPExplicitRouteASNumberLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5733,7 +6430,7 @@ func (x FlowRSVPExplicitRouteASNumberLength_Choice_Enum) Number() protoreflect.E // Deprecated: Use FlowRSVPExplicitRouteASNumberLength_Choice_Enum.Descriptor instead. func (FlowRSVPExplicitRouteASNumberLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{332, 0, 0} } type FlowRSVPPathObjectsLabelRequestCType_Choice_Enum int32 @@ -5766,11 +6463,11 @@ func (x FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[107].Descriptor() + return file_otg_proto_enumTypes[120].Descriptor() } func (FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[107] + return &file_otg_proto_enumTypes[120] } func (x FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5779,7 +6476,7 @@ func (x FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) Number() protoreflect. // Deprecated: Use FlowRSVPPathObjectsLabelRequestCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsLabelRequestCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{334, 0, 0} } type FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum int32 @@ -5815,11 +6512,11 @@ func (x FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[108].Descriptor() + return file_otg_proto_enumTypes[121].Descriptor() } func (FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[108] + return &file_otg_proto_enumTypes[121] } func (x FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5828,7 +6525,7 @@ func (x FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) Number() protorefl // Deprecated: Use FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{337, 0, 0} } type FlowRSVPLspTunnelFlag_Choice_Enum int32 @@ -5867,11 +6564,11 @@ func (x FlowRSVPLspTunnelFlag_Choice_Enum) String() string { } func (FlowRSVPLspTunnelFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[109].Descriptor() + return file_otg_proto_enumTypes[122].Descriptor() } func (FlowRSVPLspTunnelFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[109] + return &file_otg_proto_enumTypes[122] } func (x FlowRSVPLspTunnelFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5880,7 +6577,7 @@ func (x FlowRSVPLspTunnelFlag_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use FlowRSVPLspTunnelFlag_Choice_Enum.Descriptor instead. func (FlowRSVPLspTunnelFlag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{300, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{340, 0, 0} } type FlowRSVPSessionAttributeNameLength_Choice_Enum int32 @@ -5916,11 +6613,11 @@ func (x FlowRSVPSessionAttributeNameLength_Choice_Enum) String() string { } func (FlowRSVPSessionAttributeNameLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[110].Descriptor() + return file_otg_proto_enumTypes[123].Descriptor() } func (FlowRSVPSessionAttributeNameLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[110] + return &file_otg_proto_enumTypes[123] } func (x FlowRSVPSessionAttributeNameLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5929,7 +6626,7 @@ func (x FlowRSVPSessionAttributeNameLength_Choice_Enum) Number() protoreflect.En // Deprecated: Use FlowRSVPSessionAttributeNameLength_Choice_Enum.Descriptor instead. func (FlowRSVPSessionAttributeNameLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{341, 0, 0} } type FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum int32 @@ -5962,11 +6659,11 @@ func (x FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[111].Descriptor() + return file_otg_proto_enumTypes[124].Descriptor() } func (FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[111] + return &file_otg_proto_enumTypes[124] } func (x FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -5975,7 +6672,7 @@ func (x FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) Number() protoreflec // Deprecated: Use FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{343, 0, 0} } type FlowRSVPPathObjectsSenderTspecCType_Choice_Enum int32 @@ -6008,11 +6705,11 @@ func (x FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[112].Descriptor() + return file_otg_proto_enumTypes[125].Descriptor() } func (FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[112] + return &file_otg_proto_enumTypes[125] } func (x FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6021,7 +6718,7 @@ func (x FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) Number() protoreflect.E // Deprecated: Use FlowRSVPPathObjectsSenderTspecCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsSenderTspecCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{306, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{346, 0, 0} } type FlowRSVPPathObjectsRecordRouteCType_Choice_Enum int32 @@ -6054,11 +6751,11 @@ func (x FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) String() string { } func (FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[113].Descriptor() + return file_otg_proto_enumTypes[126].Descriptor() } func (FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[113] + return &file_otg_proto_enumTypes[126] } func (x FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6067,7 +6764,7 @@ func (x FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) Number() protoreflect.E // Deprecated: Use FlowRSVPPathObjectsRecordRouteCType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsRecordRouteCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{349, 0, 0} } type FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum int32 @@ -6103,11 +6800,11 @@ func (x FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) String() string } func (FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[114].Descriptor() + return file_otg_proto_enumTypes[127].Descriptor() } func (FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[114] + return &file_otg_proto_enumTypes[127] } func (x FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6116,7 +6813,7 @@ func (x FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) Number() protor // Deprecated: Use FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum.Descriptor instead. func (FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{352, 0, 0} } type FlowRSVPRecordRouteIPv4Flag_Choice_Enum int32 @@ -6152,11 +6849,11 @@ func (x FlowRSVPRecordRouteIPv4Flag_Choice_Enum) String() string { } func (FlowRSVPRecordRouteIPv4Flag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[115].Descriptor() + return file_otg_proto_enumTypes[128].Descriptor() } func (FlowRSVPRecordRouteIPv4Flag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[115] + return &file_otg_proto_enumTypes[128] } func (x FlowRSVPRecordRouteIPv4Flag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6165,7 +6862,7 @@ func (x FlowRSVPRecordRouteIPv4Flag_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use FlowRSVPRecordRouteIPv4Flag_Choice_Enum.Descriptor instead. func (FlowRSVPRecordRouteIPv4Flag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{314, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{354, 0, 0} } type FlowRSVPPathRecordRouteLabel_Choice_Enum int32 @@ -6201,11 +6898,11 @@ func (x FlowRSVPPathRecordRouteLabel_Choice_Enum) String() string { } func (FlowRSVPPathRecordRouteLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[116].Descriptor() + return file_otg_proto_enumTypes[129].Descriptor() } func (FlowRSVPPathRecordRouteLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[116] + return &file_otg_proto_enumTypes[129] } func (x FlowRSVPPathRecordRouteLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6214,7 +6911,7 @@ func (x FlowRSVPPathRecordRouteLabel_Choice_Enum) Number() protoreflect.EnumNumb // Deprecated: Use FlowRSVPPathRecordRouteLabel_Choice_Enum.Descriptor instead. func (FlowRSVPPathRecordRouteLabel_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{316, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{356, 0, 0} } type FlowRSVPRouteRecordLength_Choice_Enum int32 @@ -6250,11 +6947,11 @@ func (x FlowRSVPRouteRecordLength_Choice_Enum) String() string { } func (FlowRSVPRouteRecordLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[117].Descriptor() + return file_otg_proto_enumTypes[130].Descriptor() } func (FlowRSVPRouteRecordLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[117] + return &file_otg_proto_enumTypes[130] } func (x FlowRSVPRouteRecordLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6263,7 +6960,7 @@ func (x FlowRSVPRouteRecordLength_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use FlowRSVPRouteRecordLength_Choice_Enum.Descriptor instead. func (FlowRSVPRouteRecordLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{357, 0, 0} } type FlowSize_Choice_Enum int32 @@ -6305,11 +7002,11 @@ func (x FlowSize_Choice_Enum) String() string { } func (FlowSize_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[118].Descriptor() + return file_otg_proto_enumTypes[131].Descriptor() } func (FlowSize_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[118] + return &file_otg_proto_enumTypes[131] } func (x FlowSize_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6318,7 +7015,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{319, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{359, 0, 0} } type FlowSizeWeightPairs_Choice_Enum int32 @@ -6354,11 +7051,11 @@ func (x FlowSizeWeightPairs_Choice_Enum) String() string { } func (FlowSizeWeightPairs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[119].Descriptor() + return file_otg_proto_enumTypes[132].Descriptor() } func (FlowSizeWeightPairs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[119] + return &file_otg_proto_enumTypes[132] } func (x FlowSizeWeightPairs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6367,7 +7064,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{322, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{362, 0, 0} } type FlowSizeWeightPairs_Predefined_Enum int32 @@ -6412,11 +7109,11 @@ func (x FlowSizeWeightPairs_Predefined_Enum) String() string { } func (FlowSizeWeightPairs_Predefined_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[120].Descriptor() + return file_otg_proto_enumTypes[133].Descriptor() } func (FlowSizeWeightPairs_Predefined_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[120] + return &file_otg_proto_enumTypes[133] } func (x FlowSizeWeightPairs_Predefined_Enum) Number() protoreflect.EnumNumber { @@ -6425,7 +7122,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{322, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{362, 1, 0} } type FlowRate_Choice_Enum int32 @@ -6473,11 +7170,11 @@ func (x FlowRate_Choice_Enum) String() string { } func (FlowRate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[121].Descriptor() + return file_otg_proto_enumTypes[134].Descriptor() } func (FlowRate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[121] + return &file_otg_proto_enumTypes[134] } func (x FlowRate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6486,7 +7183,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{324, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{364, 0, 0} } type FlowDuration_Choice_Enum int32 @@ -6528,11 +7225,11 @@ func (x FlowDuration_Choice_Enum) String() string { } func (FlowDuration_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[122].Descriptor() + return file_otg_proto_enumTypes[135].Descriptor() } func (FlowDuration_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[122] + return &file_otg_proto_enumTypes[135] } func (x FlowDuration_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6541,7 +7238,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{325, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{365, 0, 0} } type FlowDelay_Choice_Enum int32 @@ -6580,11 +7277,11 @@ func (x FlowDelay_Choice_Enum) String() string { } func (FlowDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[123].Descriptor() + return file_otg_proto_enumTypes[136].Descriptor() } func (FlowDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[123] + return &file_otg_proto_enumTypes[136] } func (x FlowDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6593,7 +7290,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{327, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{367, 0, 0} } type FlowDurationInterBurstGap_Choice_Enum int32 @@ -6632,11 +7329,11 @@ func (x FlowDurationInterBurstGap_Choice_Enum) String() string { } func (FlowDurationInterBurstGap_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[124].Descriptor() + return file_otg_proto_enumTypes[137].Descriptor() } func (FlowDurationInterBurstGap_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[124] + return &file_otg_proto_enumTypes[137] } func (x FlowDurationInterBurstGap_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6645,7 +7342,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{331, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{371, 0, 0} } type FlowLatencyMetrics_Mode_Enum int32 @@ -6681,11 +7378,11 @@ func (x FlowLatencyMetrics_Mode_Enum) String() string { } func (FlowLatencyMetrics_Mode_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[125].Descriptor() + return file_otg_proto_enumTypes[138].Descriptor() } func (FlowLatencyMetrics_Mode_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[125] + return &file_otg_proto_enumTypes[138] } func (x FlowLatencyMetrics_Mode_Enum) Number() protoreflect.EnumNumber { @@ -6694,7 +7391,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{333, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{373, 0, 0} } type FlowRxTxRatio_Choice_Enum int32 @@ -6730,11 +7427,11 @@ func (x FlowRxTxRatio_Choice_Enum) String() string { } func (FlowRxTxRatio_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[126].Descriptor() + return file_otg_proto_enumTypes[139].Descriptor() } func (FlowRxTxRatio_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[126] + return &file_otg_proto_enumTypes[139] } func (x FlowRxTxRatio_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6743,7 +7440,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{335, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{375, 0, 0} } type EventRequest_Type_Enum int32 @@ -6791,11 +7488,11 @@ func (x EventRequest_Type_Enum) String() string { } func (EventRequest_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[127].Descriptor() + return file_otg_proto_enumTypes[140].Descriptor() } func (EventRequest_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[127] + return &file_otg_proto_enumTypes[140] } func (x EventRequest_Type_Enum) Number() protoreflect.EnumNumber { @@ -6804,7 +7501,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{341, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{381, 0, 0} } type LldpConnection_Choice_Enum int32 @@ -6837,11 +7534,11 @@ func (x LldpConnection_Choice_Enum) String() string { } func (LldpConnection_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[128].Descriptor() + return file_otg_proto_enumTypes[141].Descriptor() } func (LldpConnection_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[128] + return &file_otg_proto_enumTypes[141] } func (x LldpConnection_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6850,7 +7547,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{344, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{384, 0, 0} } type LldpChassisId_Choice_Enum int32 @@ -6889,11 +7586,11 @@ func (x LldpChassisId_Choice_Enum) String() string { } func (LldpChassisId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[129].Descriptor() + return file_otg_proto_enumTypes[142].Descriptor() } func (LldpChassisId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[129] + return &file_otg_proto_enumTypes[142] } func (x LldpChassisId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6902,7 +7599,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{345, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{385, 0, 0} } type LldpPortId_Choice_Enum int32 @@ -6941,11 +7638,11 @@ func (x LldpPortId_Choice_Enum) String() string { } func (LldpPortId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[130].Descriptor() + return file_otg_proto_enumTypes[143].Descriptor() } func (LldpPortId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[130] + return &file_otg_proto_enumTypes[143] } func (x LldpPortId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -6954,7 +7651,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{346, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{386, 0, 0} } type LldpChassisMacSubType_Choice_Enum int32 @@ -6990,11 +7687,11 @@ func (x LldpChassisMacSubType_Choice_Enum) String() string { } func (LldpChassisMacSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[131].Descriptor() + return file_otg_proto_enumTypes[144].Descriptor() } func (LldpChassisMacSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[131] + return &file_otg_proto_enumTypes[144] } func (x LldpChassisMacSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7003,7 +7700,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{347, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{387, 0, 0} } type LldpPortInterfaceNameSubType_Choice_Enum int32 @@ -7039,11 +7736,11 @@ func (x LldpPortInterfaceNameSubType_Choice_Enum) String() string { } func (LldpPortInterfaceNameSubType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[132].Descriptor() + return file_otg_proto_enumTypes[145].Descriptor() } func (LldpPortInterfaceNameSubType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[132] + return &file_otg_proto_enumTypes[145] } func (x LldpPortInterfaceNameSubType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7052,7 +7749,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{348, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{388, 0, 0} } type LldpSystemName_Choice_Enum int32 @@ -7088,11 +7785,11 @@ func (x LldpSystemName_Choice_Enum) String() string { } func (LldpSystemName_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[133].Descriptor() + return file_otg_proto_enumTypes[146].Descriptor() } func (LldpSystemName_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[133] + return &file_otg_proto_enumTypes[146] } func (x LldpSystemName_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7101,7 +7798,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{349, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{389, 0, 0} } type Error_Kind_Enum int32 @@ -7137,11 +7834,11 @@ func (x Error_Kind_Enum) String() string { } func (Error_Kind_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[134].Descriptor() + return file_otg_proto_enumTypes[147].Descriptor() } func (Error_Kind_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[134] + return &file_otg_proto_enumTypes[147] } func (x Error_Kind_Enum) Number() protoreflect.EnumNumber { @@ -7150,7 +7847,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{350, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{390, 0, 0} } type ConfigUpdate_Choice_Enum int32 @@ -7183,11 +7880,11 @@ func (x ConfigUpdate_Choice_Enum) String() string { } func (ConfigUpdate_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[135].Descriptor() + return file_otg_proto_enumTypes[148].Descriptor() } func (ConfigUpdate_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[135] + return &file_otg_proto_enumTypes[148] } func (x ConfigUpdate_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7196,7 +7893,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{352, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{392, 0, 0} } type FlowsUpdate_PropertyNames_Enum int32 @@ -7232,11 +7929,11 @@ func (x FlowsUpdate_PropertyNames_Enum) String() string { } func (FlowsUpdate_PropertyNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[136].Descriptor() + return file_otg_proto_enumTypes[149].Descriptor() } func (FlowsUpdate_PropertyNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[136] + return &file_otg_proto_enumTypes[149] } func (x FlowsUpdate_PropertyNames_Enum) Number() protoreflect.EnumNumber { @@ -7245,7 +7942,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{353, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{393, 0, 0} } type ControlState_Choice_Enum int32 @@ -7284,11 +7981,11 @@ func (x ControlState_Choice_Enum) String() string { } func (ControlState_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[137].Descriptor() + return file_otg_proto_enumTypes[150].Descriptor() } func (ControlState_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[137] + return &file_otg_proto_enumTypes[150] } func (x ControlState_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7297,7 +7994,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{354, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{394, 0, 0} } type StatePort_Choice_Enum int32 @@ -7333,11 +8030,11 @@ func (x StatePort_Choice_Enum) String() string { } func (StatePort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[138].Descriptor() + return file_otg_proto_enumTypes[151].Descriptor() } func (StatePort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[138] + return &file_otg_proto_enumTypes[151] } func (x StatePort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7346,7 +8043,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{355, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{395, 0, 0} } type StateTraffic_Choice_Enum int32 @@ -7379,11 +8076,11 @@ func (x StateTraffic_Choice_Enum) String() string { } func (StateTraffic_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[139].Descriptor() + return file_otg_proto_enumTypes[152].Descriptor() } func (StateTraffic_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[139] + return &file_otg_proto_enumTypes[152] } func (x StateTraffic_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7392,7 +8089,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{356, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{396, 0, 0} } type StateProtocol_Choice_Enum int32 @@ -7437,11 +8134,11 @@ func (x StateProtocol_Choice_Enum) String() string { } func (StateProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[140].Descriptor() + return file_otg_proto_enumTypes[153].Descriptor() } func (StateProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[140] + return &file_otg_proto_enumTypes[153] } func (x StateProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7450,7 +8147,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{357, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{397, 0, 0} } type StatePortLink_State_Enum int32 @@ -7486,11 +8183,11 @@ func (x StatePortLink_State_Enum) String() string { } func (StatePortLink_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[141].Descriptor() + return file_otg_proto_enumTypes[154].Descriptor() } func (StatePortLink_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[141] + return &file_otg_proto_enumTypes[154] } func (x StatePortLink_State_Enum) Number() protoreflect.EnumNumber { @@ -7499,7 +8196,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{358, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{398, 0, 0} } type StatePortCapture_State_Enum int32 @@ -7535,11 +8232,11 @@ func (x StatePortCapture_State_Enum) String() string { } func (StatePortCapture_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[142].Descriptor() + return file_otg_proto_enumTypes[155].Descriptor() } func (StatePortCapture_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[142] + return &file_otg_proto_enumTypes[155] } func (x StatePortCapture_State_Enum) Number() protoreflect.EnumNumber { @@ -7548,7 +8245,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{359, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{399, 0, 0} } type StateTrafficFlowTransmit_State_Enum int32 @@ -7590,11 +8287,11 @@ func (x StateTrafficFlowTransmit_State_Enum) String() string { } func (StateTrafficFlowTransmit_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[143].Descriptor() + return file_otg_proto_enumTypes[156].Descriptor() } func (StateTrafficFlowTransmit_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[143] + return &file_otg_proto_enumTypes[156] } func (x StateTrafficFlowTransmit_State_Enum) Number() protoreflect.EnumNumber { @@ -7603,7 +8300,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{360, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{400, 0, 0} } type StateProtocolAll_State_Enum int32 @@ -7639,11 +8336,11 @@ func (x StateProtocolAll_State_Enum) String() string { } func (StateProtocolAll_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[144].Descriptor() + return file_otg_proto_enumTypes[157].Descriptor() } func (StateProtocolAll_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[144] + return &file_otg_proto_enumTypes[157] } func (x StateProtocolAll_State_Enum) Number() protoreflect.EnumNumber { @@ -7652,7 +8349,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{361, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{401, 0, 0} } type StateProtocolRoute_State_Enum int32 @@ -7688,11 +8385,11 @@ func (x StateProtocolRoute_State_Enum) String() string { } func (StateProtocolRoute_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[145].Descriptor() + return file_otg_proto_enumTypes[158].Descriptor() } func (StateProtocolRoute_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[145] + return &file_otg_proto_enumTypes[158] } func (x StateProtocolRoute_State_Enum) Number() protoreflect.EnumNumber { @@ -7701,7 +8398,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{362, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{402, 0, 0} } type StateProtocolLacp_Choice_Enum int32 @@ -7737,11 +8434,11 @@ func (x StateProtocolLacp_Choice_Enum) String() string { } func (StateProtocolLacp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[146].Descriptor() + return file_otg_proto_enumTypes[159].Descriptor() } func (StateProtocolLacp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[146] + return &file_otg_proto_enumTypes[159] } func (x StateProtocolLacp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7750,7 +8447,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{363, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{403, 0, 0} } type StateProtocolLacpAdmin_State_Enum int32 @@ -7786,11 +8483,11 @@ func (x StateProtocolLacpAdmin_State_Enum) String() string { } func (StateProtocolLacpAdmin_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[147].Descriptor() + return file_otg_proto_enumTypes[160].Descriptor() } func (StateProtocolLacpAdmin_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[147] + return &file_otg_proto_enumTypes[160] } func (x StateProtocolLacpAdmin_State_Enum) Number() protoreflect.EnumNumber { @@ -7799,7 +8496,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{364, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{404, 0, 0} } type StateProtocolLacpMemberPorts_State_Enum int32 @@ -7835,11 +8532,11 @@ func (x StateProtocolLacpMemberPorts_State_Enum) String() string { } func (StateProtocolLacpMemberPorts_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[148].Descriptor() + return file_otg_proto_enumTypes[161].Descriptor() } func (StateProtocolLacpMemberPorts_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[148] + return &file_otg_proto_enumTypes[161] } func (x StateProtocolLacpMemberPorts_State_Enum) Number() protoreflect.EnumNumber { @@ -7848,7 +8545,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{365, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{405, 0, 0} } type StateProtocolBgp_Choice_Enum int32 @@ -7881,11 +8578,11 @@ func (x StateProtocolBgp_Choice_Enum) String() string { } func (StateProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[149].Descriptor() + return file_otg_proto_enumTypes[162].Descriptor() } func (StateProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[149] + return &file_otg_proto_enumTypes[162] } func (x StateProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7894,7 +8591,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{366, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{406, 0, 0} } type StateProtocolBgpPeers_State_Enum int32 @@ -7930,11 +8627,11 @@ func (x StateProtocolBgpPeers_State_Enum) String() string { } func (StateProtocolBgpPeers_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[150].Descriptor() + return file_otg_proto_enumTypes[163].Descriptor() } func (StateProtocolBgpPeers_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[150] + return &file_otg_proto_enumTypes[163] } func (x StateProtocolBgpPeers_State_Enum) Number() protoreflect.EnumNumber { @@ -7943,7 +8640,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{367, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{407, 0, 0} } type StateProtocolIsis_Choice_Enum int32 @@ -7976,11 +8673,11 @@ func (x StateProtocolIsis_Choice_Enum) String() string { } func (StateProtocolIsis_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[151].Descriptor() + return file_otg_proto_enumTypes[164].Descriptor() } func (StateProtocolIsis_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[151] + return &file_otg_proto_enumTypes[164] } func (x StateProtocolIsis_Choice_Enum) Number() protoreflect.EnumNumber { @@ -7989,7 +8686,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{368, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{408, 0, 0} } type StateProtocolIsisRouters_State_Enum int32 @@ -8025,11 +8722,11 @@ func (x StateProtocolIsisRouters_State_Enum) String() string { } func (StateProtocolIsisRouters_State_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[152].Descriptor() + return file_otg_proto_enumTypes[165].Descriptor() } func (StateProtocolIsisRouters_State_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[152] + return &file_otg_proto_enumTypes[165] } func (x StateProtocolIsisRouters_State_Enum) Number() protoreflect.EnumNumber { @@ -8038,7 +8735,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{369, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{409, 0, 0} } type ControlAction_Choice_Enum int32 @@ -8071,11 +8768,11 @@ func (x ControlAction_Choice_Enum) String() string { } func (ControlAction_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[153].Descriptor() + return file_otg_proto_enumTypes[166].Descriptor() } func (ControlAction_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[153] + return &file_otg_proto_enumTypes[166] } func (x ControlAction_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8084,7 +8781,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{370, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{410, 0, 0} } type ActionResponse_Choice_Enum int32 @@ -8117,11 +8814,11 @@ func (x ActionResponse_Choice_Enum) String() string { } func (ActionResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[154].Descriptor() + return file_otg_proto_enumTypes[167].Descriptor() } func (ActionResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[154] + return &file_otg_proto_enumTypes[167] } func (x ActionResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8130,7 +8827,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{372, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{412, 0, 0} } type ActionProtocol_Choice_Enum int32 @@ -8169,11 +8866,11 @@ func (x ActionProtocol_Choice_Enum) String() string { } func (ActionProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[155].Descriptor() + return file_otg_proto_enumTypes[168].Descriptor() } func (ActionProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[155] + return &file_otg_proto_enumTypes[168] } func (x ActionProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8182,7 +8879,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{373, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{413, 0, 0} } type ActionResponseProtocol_Choice_Enum int32 @@ -8218,11 +8915,11 @@ func (x ActionResponseProtocol_Choice_Enum) String() string { } func (ActionResponseProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[156].Descriptor() + return file_otg_proto_enumTypes[169].Descriptor() } func (ActionResponseProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[156] + return &file_otg_proto_enumTypes[169] } func (x ActionResponseProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8231,7 +8928,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{374, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{414, 0, 0} } type ActionProtocolIpv4_Choice_Enum int32 @@ -8264,11 +8961,11 @@ func (x ActionProtocolIpv4_Choice_Enum) String() string { } func (ActionProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[157].Descriptor() + return file_otg_proto_enumTypes[170].Descriptor() } func (ActionProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[157] + return &file_otg_proto_enumTypes[170] } func (x ActionProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8277,7 +8974,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{375, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{415, 0, 0} } type ActionResponseProtocolIpv4_Choice_Enum int32 @@ -8310,11 +9007,11 @@ func (x ActionResponseProtocolIpv4_Choice_Enum) String() string { } func (ActionResponseProtocolIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[158].Descriptor() + return file_otg_proto_enumTypes[171].Descriptor() } func (ActionResponseProtocolIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[158] + return &file_otg_proto_enumTypes[171] } func (x ActionResponseProtocolIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8323,7 +9020,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{376, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{416, 0, 0} } type ActionResponseProtocolIpv4PingResponse_Result_Enum int32 @@ -8359,11 +9056,11 @@ func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[159].Descriptor() + return file_otg_proto_enumTypes[172].Descriptor() } func (ActionResponseProtocolIpv4PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[159] + return &file_otg_proto_enumTypes[172] } func (x ActionResponseProtocolIpv4PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -8372,7 +9069,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{380, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{420, 0, 0} } type ActionProtocolIpv6_Choice_Enum int32 @@ -8405,11 +9102,11 @@ func (x ActionProtocolIpv6_Choice_Enum) String() string { } func (ActionProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[160].Descriptor() + return file_otg_proto_enumTypes[173].Descriptor() } func (ActionProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[160] + return &file_otg_proto_enumTypes[173] } func (x ActionProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8418,7 +9115,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{381, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{421, 0, 0} } type ActionResponseProtocolIpv6_Choice_Enum int32 @@ -8451,11 +9148,11 @@ func (x ActionResponseProtocolIpv6_Choice_Enum) String() string { } func (ActionResponseProtocolIpv6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[161].Descriptor() + return file_otg_proto_enumTypes[174].Descriptor() } func (ActionResponseProtocolIpv6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[161] + return &file_otg_proto_enumTypes[174] } func (x ActionResponseProtocolIpv6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8464,7 +9161,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{382, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{422, 0, 0} } type ActionResponseProtocolIpv6PingResponse_Result_Enum int32 @@ -8500,11 +9197,11 @@ func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) String() string { } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[162].Descriptor() + return file_otg_proto_enumTypes[175].Descriptor() } func (ActionResponseProtocolIpv6PingResponse_Result_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[162] + return &file_otg_proto_enumTypes[175] } func (x ActionResponseProtocolIpv6PingResponse_Result_Enum) Number() protoreflect.EnumNumber { @@ -8513,7 +9210,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{386, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{426, 0, 0} } type ActionProtocolBgp_Choice_Enum int32 @@ -8549,11 +9246,11 @@ func (x ActionProtocolBgp_Choice_Enum) String() string { } func (ActionProtocolBgp_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[163].Descriptor() + return file_otg_proto_enumTypes[176].Descriptor() } func (ActionProtocolBgp_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[163] + return &file_otg_proto_enumTypes[176] } func (x ActionProtocolBgp_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8562,7 +9259,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{387, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{427, 0, 0} } type ActionProtocolBgpNotification_Choice_Enum int32 @@ -8613,11 +9310,11 @@ func (x ActionProtocolBgpNotification_Choice_Enum) String() string { } func (ActionProtocolBgpNotification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[164].Descriptor() + return file_otg_proto_enumTypes[177].Descriptor() } func (ActionProtocolBgpNotification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[164] + return &file_otg_proto_enumTypes[177] } func (x ActionProtocolBgpNotification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8626,7 +9323,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{388, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{428, 0, 0} } type MetricsRequest_Choice_Enum int32 @@ -8644,6 +9341,8 @@ const ( MetricsRequest_Choice_rsvp MetricsRequest_Choice_Enum = 9 MetricsRequest_Choice_dhcpv4_client MetricsRequest_Choice_Enum = 10 MetricsRequest_Choice_dhcpv4_server MetricsRequest_Choice_Enum = 11 + MetricsRequest_Choice_dhcpv6_client MetricsRequest_Choice_Enum = 12 + MetricsRequest_Choice_dhcpv6_server MetricsRequest_Choice_Enum = 13 ) // Enum value maps for MetricsRequest_Choice_Enum. @@ -8661,6 +9360,8 @@ var ( 9: "rsvp", 10: "dhcpv4_client", 11: "dhcpv4_server", + 12: "dhcpv6_client", + 13: "dhcpv6_server", } MetricsRequest_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -8675,6 +9376,8 @@ var ( "rsvp": 9, "dhcpv4_client": 10, "dhcpv4_server": 11, + "dhcpv6_client": 12, + "dhcpv6_server": 13, } ) @@ -8689,11 +9392,11 @@ func (x MetricsRequest_Choice_Enum) String() string { } func (MetricsRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[165].Descriptor() + return file_otg_proto_enumTypes[178].Descriptor() } func (MetricsRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[165] + return &file_otg_proto_enumTypes[178] } func (x MetricsRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8702,7 +9405,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{390, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{430, 0, 0} } type MetricsResponse_Choice_Enum int32 @@ -8720,6 +9423,8 @@ const ( MetricsResponse_Choice_rsvp_metrics MetricsResponse_Choice_Enum = 9 MetricsResponse_Choice_dhcpv4_client MetricsResponse_Choice_Enum = 10 MetricsResponse_Choice_dhcpv4_server MetricsResponse_Choice_Enum = 11 + MetricsResponse_Choice_dhcpv6_client MetricsResponse_Choice_Enum = 12 + MetricsResponse_Choice_dhcpv6_server MetricsResponse_Choice_Enum = 13 ) // Enum value maps for MetricsResponse_Choice_Enum. @@ -8737,6 +9442,8 @@ var ( 9: "rsvp_metrics", 10: "dhcpv4_client", 11: "dhcpv4_server", + 12: "dhcpv6_client", + 13: "dhcpv6_server", } MetricsResponse_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -8751,6 +9458,8 @@ var ( "rsvp_metrics": 9, "dhcpv4_client": 10, "dhcpv4_server": 11, + "dhcpv6_client": 12, + "dhcpv6_server": 13, } ) @@ -8765,11 +9474,11 @@ func (x MetricsResponse_Choice_Enum) String() string { } func (MetricsResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[166].Descriptor() + return file_otg_proto_enumTypes[179].Descriptor() } func (MetricsResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[166] + return &file_otg_proto_enumTypes[179] } func (x MetricsResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -8778,7 +9487,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{391, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{431, 0, 0} } type PortMetricsRequest_ColumnNames_Enum int32 @@ -8844,11 +9553,11 @@ func (x PortMetricsRequest_ColumnNames_Enum) String() string { } func (PortMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[167].Descriptor() + return file_otg_proto_enumTypes[180].Descriptor() } func (PortMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[167] + return &file_otg_proto_enumTypes[180] } func (x PortMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -8857,7 +9566,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{392, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{432, 0, 0} } type PortMetric_Link_Enum int32 @@ -8893,11 +9602,11 @@ func (x PortMetric_Link_Enum) String() string { } func (PortMetric_Link_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[168].Descriptor() + return file_otg_proto_enumTypes[181].Descriptor() } func (PortMetric_Link_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[168] + return &file_otg_proto_enumTypes[181] } func (x PortMetric_Link_Enum) Number() protoreflect.EnumNumber { @@ -8906,7 +9615,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{393, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 0, 0} } type PortMetric_Capture_Enum int32 @@ -8942,11 +9651,11 @@ func (x PortMetric_Capture_Enum) String() string { } func (PortMetric_Capture_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[169].Descriptor() + return file_otg_proto_enumTypes[182].Descriptor() } func (PortMetric_Capture_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[169] + return &file_otg_proto_enumTypes[182] } func (x PortMetric_Capture_Enum) Number() protoreflect.EnumNumber { @@ -8955,7 +9664,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{393, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 1, 0} } type PortMetric_Transmit_Enum int32 @@ -8991,11 +9700,11 @@ func (x PortMetric_Transmit_Enum) String() string { } func (PortMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[170].Descriptor() + return file_otg_proto_enumTypes[183].Descriptor() } func (PortMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[170] + return &file_otg_proto_enumTypes[183] } func (x PortMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -9004,7 +9713,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{393, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{433, 2, 0} } type FlowMetricsRequest_MetricNames_Enum int32 @@ -9055,11 +9764,11 @@ func (x FlowMetricsRequest_MetricNames_Enum) String() string { } func (FlowMetricsRequest_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[171].Descriptor() + return file_otg_proto_enumTypes[184].Descriptor() } func (FlowMetricsRequest_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[171] + return &file_otg_proto_enumTypes[184] } func (x FlowMetricsRequest_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -9068,7 +9777,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{394, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{434, 0, 0} } type FlowTaggedMetricsFilter_MetricNames_Enum int32 @@ -9116,11 +9825,11 @@ func (x FlowTaggedMetricsFilter_MetricNames_Enum) String() string { } func (FlowTaggedMetricsFilter_MetricNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[172].Descriptor() + return file_otg_proto_enumTypes[185].Descriptor() } func (FlowTaggedMetricsFilter_MetricNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[172] + return &file_otg_proto_enumTypes[185] } func (x FlowTaggedMetricsFilter_MetricNames_Enum) Number() protoreflect.EnumNumber { @@ -9129,7 +9838,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{395, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{435, 0, 0} } type FlowMetric_Transmit_Enum int32 @@ -9168,11 +9877,11 @@ func (x FlowMetric_Transmit_Enum) String() string { } func (FlowMetric_Transmit_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[173].Descriptor() + return file_otg_proto_enumTypes[186].Descriptor() } func (FlowMetric_Transmit_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[173] + return &file_otg_proto_enumTypes[186] } func (x FlowMetric_Transmit_Enum) Number() protoreflect.EnumNumber { @@ -9181,7 +9890,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{397, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{437, 0, 0} } type FlowMetricTagValue_Choice_Enum int32 @@ -9217,11 +9926,11 @@ func (x FlowMetricTagValue_Choice_Enum) String() string { } func (FlowMetricTagValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[174].Descriptor() + return file_otg_proto_enumTypes[187].Descriptor() } func (FlowMetricTagValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[174] + return &file_otg_proto_enumTypes[187] } func (x FlowMetricTagValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -9230,7 +9939,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{400, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{440, 0, 0} } type Bgpv4MetricsRequest_ColumnNames_Enum int32 @@ -9308,11 +10017,11 @@ func (x Bgpv4MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv4MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[175].Descriptor() + return file_otg_proto_enumTypes[188].Descriptor() } func (Bgpv4MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[175] + return &file_otg_proto_enumTypes[188] } func (x Bgpv4MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -9321,7 +10030,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{403, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{443, 0, 0} } type Bgpv4Metric_SessionState_Enum int32 @@ -9357,11 +10066,11 @@ func (x Bgpv4Metric_SessionState_Enum) String() string { } func (Bgpv4Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[176].Descriptor() + return file_otg_proto_enumTypes[189].Descriptor() } func (Bgpv4Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[176] + return &file_otg_proto_enumTypes[189] } func (x Bgpv4Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -9370,7 +10079,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{404, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{444, 0, 0} } type Bgpv4Metric_FsmState_Enum int32 @@ -9418,11 +10127,11 @@ func (x Bgpv4Metric_FsmState_Enum) String() string { } func (Bgpv4Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[177].Descriptor() + return file_otg_proto_enumTypes[190].Descriptor() } func (Bgpv4Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[177] + return &file_otg_proto_enumTypes[190] } func (x Bgpv4Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -9431,7 +10140,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{404, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{444, 1, 0} } type Bgpv6MetricsRequest_ColumnNames_Enum int32 @@ -9509,11 +10218,11 @@ func (x Bgpv6MetricsRequest_ColumnNames_Enum) String() string { } func (Bgpv6MetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[178].Descriptor() + return file_otg_proto_enumTypes[191].Descriptor() } func (Bgpv6MetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[178] + return &file_otg_proto_enumTypes[191] } func (x Bgpv6MetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -9522,7 +10231,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{405, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{445, 0, 0} } type Bgpv6Metric_SessionState_Enum int32 @@ -9558,11 +10267,11 @@ func (x Bgpv6Metric_SessionState_Enum) String() string { } func (Bgpv6Metric_SessionState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[179].Descriptor() + return file_otg_proto_enumTypes[192].Descriptor() } func (Bgpv6Metric_SessionState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[179] + return &file_otg_proto_enumTypes[192] } func (x Bgpv6Metric_SessionState_Enum) Number() protoreflect.EnumNumber { @@ -9571,7 +10280,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{406, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{446, 0, 0} } type Bgpv6Metric_FsmState_Enum int32 @@ -9619,11 +10328,11 @@ func (x Bgpv6Metric_FsmState_Enum) String() string { } func (Bgpv6Metric_FsmState_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[180].Descriptor() + return file_otg_proto_enumTypes[193].Descriptor() } func (Bgpv6Metric_FsmState_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[180] + return &file_otg_proto_enumTypes[193] } func (x Bgpv6Metric_FsmState_Enum) Number() protoreflect.EnumNumber { @@ -9632,7 +10341,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{406, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{446, 1, 0} } type IsisMetricsRequest_ColumnNames_Enum int32 @@ -9740,11 +10449,11 @@ func (x IsisMetricsRequest_ColumnNames_Enum) String() string { } func (IsisMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[181].Descriptor() + return file_otg_proto_enumTypes[194].Descriptor() } func (IsisMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[181] + return &file_otg_proto_enumTypes[194] } func (x IsisMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -9753,7 +10462,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{407, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{447, 0, 0} } type LagMetricsRequest_ColumnNames_Enum int32 @@ -9813,11 +10522,11 @@ func (x LagMetricsRequest_ColumnNames_Enum) String() string { } func (LagMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[182].Descriptor() + return file_otg_proto_enumTypes[195].Descriptor() } func (LagMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[182] + return &file_otg_proto_enumTypes[195] } func (x LagMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -9826,7 +10535,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{409, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{449, 0, 0} } type LagMetric_OperStatus_Enum int32 @@ -9862,11 +10571,11 @@ func (x LagMetric_OperStatus_Enum) String() string { } func (LagMetric_OperStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[183].Descriptor() + return file_otg_proto_enumTypes[196].Descriptor() } func (LagMetric_OperStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[183] + return &file_otg_proto_enumTypes[196] } func (x LagMetric_OperStatus_Enum) Number() protoreflect.EnumNumber { @@ -9875,7 +10584,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{410, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{450, 0, 0} } type LacpMetricsRequest_ColumnNames_Enum int32 @@ -9950,11 +10659,11 @@ func (x LacpMetricsRequest_ColumnNames_Enum) String() string { } func (LacpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[184].Descriptor() + return file_otg_proto_enumTypes[197].Descriptor() } func (LacpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[184] + return &file_otg_proto_enumTypes[197] } func (x LacpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -9963,7 +10672,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{411, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{451, 0, 0} } type LacpMetric_Activity_Enum int32 @@ -9999,11 +10708,11 @@ func (x LacpMetric_Activity_Enum) String() string { } func (LacpMetric_Activity_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[185].Descriptor() + return file_otg_proto_enumTypes[198].Descriptor() } func (LacpMetric_Activity_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[185] + return &file_otg_proto_enumTypes[198] } func (x LacpMetric_Activity_Enum) Number() protoreflect.EnumNumber { @@ -10012,7 +10721,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{412, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{452, 0, 0} } type LacpMetric_Timeout_Enum int32 @@ -10048,11 +10757,11 @@ func (x LacpMetric_Timeout_Enum) String() string { } func (LacpMetric_Timeout_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[186].Descriptor() + return file_otg_proto_enumTypes[199].Descriptor() } func (LacpMetric_Timeout_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[186] + return &file_otg_proto_enumTypes[199] } func (x LacpMetric_Timeout_Enum) Number() protoreflect.EnumNumber { @@ -10061,7 +10770,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{412, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{452, 1, 0} } type LacpMetric_Synchronization_Enum int32 @@ -10097,11 +10806,11 @@ func (x LacpMetric_Synchronization_Enum) String() string { } func (LacpMetric_Synchronization_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[187].Descriptor() + return file_otg_proto_enumTypes[200].Descriptor() } func (LacpMetric_Synchronization_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[187] + return &file_otg_proto_enumTypes[200] } func (x LacpMetric_Synchronization_Enum) Number() protoreflect.EnumNumber { @@ -10110,7 +10819,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{412, 2, 0} + return file_otg_proto_rawDescGZIP(), []int{452, 2, 0} } type LldpMetricsRequest_ColumnNames_Enum int32 @@ -10158,11 +10867,11 @@ func (x LldpMetricsRequest_ColumnNames_Enum) String() string { } func (LldpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[188].Descriptor() + return file_otg_proto_enumTypes[201].Descriptor() } func (LldpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[188] + return &file_otg_proto_enumTypes[201] } func (x LldpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -10171,7 +10880,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{413, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{453, 0, 0} } type RsvpMetricsRequest_ColumnNames_Enum int32 @@ -10291,11 +11000,11 @@ func (x RsvpMetricsRequest_ColumnNames_Enum) String() string { } func (RsvpMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[189].Descriptor() + return file_otg_proto_enumTypes[202].Descriptor() } func (RsvpMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[189] + return &file_otg_proto_enumTypes[202] } func (x RsvpMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -10304,7 +11013,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{415, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{455, 0, 0} } type Dhcpv4ClientMetricsRequest_ColumnNames_Enum int32 @@ -10355,11 +11064,11 @@ func (x Dhcpv4ClientMetricsRequest_ColumnNames_Enum) String() string { } func (Dhcpv4ClientMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[190].Descriptor() + return file_otg_proto_enumTypes[203].Descriptor() } func (Dhcpv4ClientMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[190] + return &file_otg_proto_enumTypes[203] } func (x Dhcpv4ClientMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -10368,7 +11077,7 @@ func (x Dhcpv4ClientMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumN // Deprecated: Use Dhcpv4ClientMetricsRequest_ColumnNames_Enum.Descriptor instead. func (Dhcpv4ClientMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{417, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{457, 0, 0} } type Dhcpv4ServerMetricsRequest_ColumnNames_Enum int32 @@ -10419,11 +11128,11 @@ func (x Dhcpv4ServerMetricsRequest_ColumnNames_Enum) String() string { } func (Dhcpv4ServerMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[191].Descriptor() + return file_otg_proto_enumTypes[204].Descriptor() } func (Dhcpv4ServerMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[191] + return &file_otg_proto_enumTypes[204] } func (x Dhcpv4ServerMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { @@ -10432,7 +11141,177 @@ func (x Dhcpv4ServerMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumN // Deprecated: Use Dhcpv4ServerMetricsRequest_ColumnNames_Enum.Descriptor instead. func (Dhcpv4ServerMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{419, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{459, 0, 0} +} + +type Dhcpv6ClientMetricsRequest_ColumnNames_Enum int32 + +const ( + Dhcpv6ClientMetricsRequest_ColumnNames_unspecified Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 0 + Dhcpv6ClientMetricsRequest_ColumnNames_solicits_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 1 + Dhcpv6ClientMetricsRequest_ColumnNames_advertisements_received Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 2 + Dhcpv6ClientMetricsRequest_ColumnNames_advertisements_ignored Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 3 + Dhcpv6ClientMetricsRequest_ColumnNames_requests_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 4 + Dhcpv6ClientMetricsRequest_ColumnNames_nacks_received Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 5 + Dhcpv6ClientMetricsRequest_ColumnNames_replies_received Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 6 + Dhcpv6ClientMetricsRequest_ColumnNames_information_requests_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 7 + Dhcpv6ClientMetricsRequest_ColumnNames_renews_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 8 + Dhcpv6ClientMetricsRequest_ColumnNames_rebinds_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 9 + Dhcpv6ClientMetricsRequest_ColumnNames_releases_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 10 + Dhcpv6ClientMetricsRequest_ColumnNames_reconfigures_received Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 11 + Dhcpv6ClientMetricsRequest_ColumnNames_rapid_commit_solicits_sent Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 12 + Dhcpv6ClientMetricsRequest_ColumnNames_rapid_commit_replies_received Dhcpv6ClientMetricsRequest_ColumnNames_Enum = 13 +) + +// Enum value maps for Dhcpv6ClientMetricsRequest_ColumnNames_Enum. +var ( + Dhcpv6ClientMetricsRequest_ColumnNames_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "solicits_sent", + 2: "advertisements_received", + 3: "advertisements_ignored", + 4: "requests_sent", + 5: "nacks_received", + 6: "replies_received", + 7: "information_requests_sent", + 8: "renews_sent", + 9: "rebinds_sent", + 10: "releases_sent", + 11: "reconfigures_received", + 12: "rapid_commit_solicits_sent", + 13: "rapid_commit_replies_received", + } + Dhcpv6ClientMetricsRequest_ColumnNames_Enum_value = map[string]int32{ + "unspecified": 0, + "solicits_sent": 1, + "advertisements_received": 2, + "advertisements_ignored": 3, + "requests_sent": 4, + "nacks_received": 5, + "replies_received": 6, + "information_requests_sent": 7, + "renews_sent": 8, + "rebinds_sent": 9, + "releases_sent": 10, + "reconfigures_received": 11, + "rapid_commit_solicits_sent": 12, + "rapid_commit_replies_received": 13, + } +) + +func (x Dhcpv6ClientMetricsRequest_ColumnNames_Enum) Enum() *Dhcpv6ClientMetricsRequest_ColumnNames_Enum { + p := new(Dhcpv6ClientMetricsRequest_ColumnNames_Enum) + *p = x + return p +} + +func (x Dhcpv6ClientMetricsRequest_ColumnNames_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ClientMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[205].Descriptor() +} + +func (Dhcpv6ClientMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[205] +} + +func (x Dhcpv6ClientMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ClientMetricsRequest_ColumnNames_Enum.Descriptor instead. +func (Dhcpv6ClientMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{461, 0, 0} +} + +type Dhcpv6ServerMetricsRequest_ColumnNames_Enum int32 + +const ( + Dhcpv6ServerMetricsRequest_ColumnNames_unspecified Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 0 + Dhcpv6ServerMetricsRequest_ColumnNames_solicits_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 1 + Dhcpv6ServerMetricsRequest_ColumnNames_solicits_ignored Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 2 + Dhcpv6ServerMetricsRequest_ColumnNames_advertisements_sent Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 3 + Dhcpv6ServerMetricsRequest_ColumnNames_requests_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 4 + Dhcpv6ServerMetricsRequest_ColumnNames_nacks_sent Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 5 + Dhcpv6ServerMetricsRequest_ColumnNames_confirms_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 6 + Dhcpv6ServerMetricsRequest_ColumnNames_renewals_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 7 + Dhcpv6ServerMetricsRequest_ColumnNames_rebinds_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 8 + Dhcpv6ServerMetricsRequest_ColumnNames_replies_sent Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 9 + Dhcpv6ServerMetricsRequest_ColumnNames_releases_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 10 + Dhcpv6ServerMetricsRequest_ColumnNames_declines_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 11 + Dhcpv6ServerMetricsRequest_ColumnNames_information_requests_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 12 + Dhcpv6ServerMetricsRequest_ColumnNames_relay_forwards_received Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 13 + Dhcpv6ServerMetricsRequest_ColumnNames_relay_replies_sent Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 14 + Dhcpv6ServerMetricsRequest_ColumnNames_reconfigures_sent Dhcpv6ServerMetricsRequest_ColumnNames_Enum = 15 +) + +// Enum value maps for Dhcpv6ServerMetricsRequest_ColumnNames_Enum. +var ( + Dhcpv6ServerMetricsRequest_ColumnNames_Enum_name = map[int32]string{ + 0: "unspecified", + 1: "solicits_received", + 2: "solicits_ignored", + 3: "advertisements_sent", + 4: "requests_received", + 5: "nacks_sent", + 6: "confirms_received", + 7: "renewals_received", + 8: "rebinds_received", + 9: "replies_sent", + 10: "releases_received", + 11: "declines_received", + 12: "information_requests_received", + 13: "relay_forwards_received", + 14: "relay_replies_sent", + 15: "reconfigures_sent", + } + Dhcpv6ServerMetricsRequest_ColumnNames_Enum_value = map[string]int32{ + "unspecified": 0, + "solicits_received": 1, + "solicits_ignored": 2, + "advertisements_sent": 3, + "requests_received": 4, + "nacks_sent": 5, + "confirms_received": 6, + "renewals_received": 7, + "rebinds_received": 8, + "replies_sent": 9, + "releases_received": 10, + "declines_received": 11, + "information_requests_received": 12, + "relay_forwards_received": 13, + "relay_replies_sent": 14, + "reconfigures_sent": 15, + } +) + +func (x Dhcpv6ServerMetricsRequest_ColumnNames_Enum) Enum() *Dhcpv6ServerMetricsRequest_ColumnNames_Enum { + p := new(Dhcpv6ServerMetricsRequest_ColumnNames_Enum) + *p = x + return p +} + +func (x Dhcpv6ServerMetricsRequest_ColumnNames_Enum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Dhcpv6ServerMetricsRequest_ColumnNames_Enum) Descriptor() protoreflect.EnumDescriptor { + return file_otg_proto_enumTypes[206].Descriptor() +} + +func (Dhcpv6ServerMetricsRequest_ColumnNames_Enum) Type() protoreflect.EnumType { + return &file_otg_proto_enumTypes[206] +} + +func (x Dhcpv6ServerMetricsRequest_ColumnNames_Enum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Dhcpv6ServerMetricsRequest_ColumnNames_Enum.Descriptor instead. +func (Dhcpv6ServerMetricsRequest_ColumnNames_Enum) EnumDescriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463, 0, 0} } type StatesRequest_Choice_Enum int32 @@ -10447,20 +11326,24 @@ const ( StatesRequest_Choice_rsvp_lsps StatesRequest_Choice_Enum = 6 StatesRequest_Choice_dhcpv4_interfaces StatesRequest_Choice_Enum = 7 StatesRequest_Choice_dhcpv4_leases StatesRequest_Choice_Enum = 8 + StatesRequest_Choice_dhcpv6_interfaces StatesRequest_Choice_Enum = 9 + StatesRequest_Choice_dhcpv6_leases StatesRequest_Choice_Enum = 10 ) // Enum value maps for StatesRequest_Choice_Enum. var ( StatesRequest_Choice_Enum_name = map[int32]string{ - 0: "unspecified", - 1: "ipv4_neighbors", - 2: "ipv6_neighbors", - 3: "bgp_prefixes", - 4: "isis_lsps", - 5: "lldp_neighbors", - 6: "rsvp_lsps", - 7: "dhcpv4_interfaces", - 8: "dhcpv4_leases", + 0: "unspecified", + 1: "ipv4_neighbors", + 2: "ipv6_neighbors", + 3: "bgp_prefixes", + 4: "isis_lsps", + 5: "lldp_neighbors", + 6: "rsvp_lsps", + 7: "dhcpv4_interfaces", + 8: "dhcpv4_leases", + 9: "dhcpv6_interfaces", + 10: "dhcpv6_leases", } StatesRequest_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -10472,6 +11355,8 @@ var ( "rsvp_lsps": 6, "dhcpv4_interfaces": 7, "dhcpv4_leases": 8, + "dhcpv6_interfaces": 9, + "dhcpv6_leases": 10, } ) @@ -10486,11 +11371,11 @@ func (x StatesRequest_Choice_Enum) String() string { } func (StatesRequest_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[192].Descriptor() + return file_otg_proto_enumTypes[207].Descriptor() } func (StatesRequest_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[192] + return &file_otg_proto_enumTypes[207] } func (x StatesRequest_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10499,7 +11384,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{421, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{465, 0, 0} } type StatesResponse_Choice_Enum int32 @@ -10514,20 +11399,24 @@ const ( StatesResponse_Choice_rsvp_lsps StatesResponse_Choice_Enum = 6 StatesResponse_Choice_dhcpv4_interfaces StatesResponse_Choice_Enum = 7 StatesResponse_Choice_dhcpv4_leases StatesResponse_Choice_Enum = 8 + StatesResponse_Choice_dhcpv6_interfaces StatesResponse_Choice_Enum = 9 + StatesResponse_Choice_dhcpv6_leases StatesResponse_Choice_Enum = 10 ) // Enum value maps for StatesResponse_Choice_Enum. var ( StatesResponse_Choice_Enum_name = map[int32]string{ - 0: "unspecified", - 1: "ipv4_neighbors", - 2: "ipv6_neighbors", - 3: "bgp_prefixes", - 4: "isis_lsps", - 5: "lldp_neighbors", - 6: "rsvp_lsps", - 7: "dhcpv4_interfaces", - 8: "dhcpv4_leases", + 0: "unspecified", + 1: "ipv4_neighbors", + 2: "ipv6_neighbors", + 3: "bgp_prefixes", + 4: "isis_lsps", + 5: "lldp_neighbors", + 6: "rsvp_lsps", + 7: "dhcpv4_interfaces", + 8: "dhcpv4_leases", + 9: "dhcpv6_interfaces", + 10: "dhcpv6_leases", } StatesResponse_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -10539,6 +11428,8 @@ var ( "rsvp_lsps": 6, "dhcpv4_interfaces": 7, "dhcpv4_leases": 8, + "dhcpv6_interfaces": 9, + "dhcpv6_leases": 10, } ) @@ -10553,11 +11444,11 @@ func (x StatesResponse_Choice_Enum) String() string { } func (StatesResponse_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[193].Descriptor() + return file_otg_proto_enumTypes[208].Descriptor() } func (StatesResponse_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[193] + return &file_otg_proto_enumTypes[208] } func (x StatesResponse_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10566,7 +11457,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{422, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{466, 0, 0} } type BgpPrefixStateRequest_PrefixFilters_Enum int32 @@ -10602,11 +11493,11 @@ func (x BgpPrefixStateRequest_PrefixFilters_Enum) String() string { } func (BgpPrefixStateRequest_PrefixFilters_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[194].Descriptor() + return file_otg_proto_enumTypes[209].Descriptor() } func (BgpPrefixStateRequest_PrefixFilters_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[194] + return &file_otg_proto_enumTypes[209] } func (x BgpPrefixStateRequest_PrefixFilters_Enum) Number() protoreflect.EnumNumber { @@ -10615,7 +11506,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{427, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{471, 0, 0} } type BgpPrefixIpv4UnicastFilter_Origin_Enum int32 @@ -10654,11 +11545,11 @@ func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[195].Descriptor() + return file_otg_proto_enumTypes[210].Descriptor() } func (BgpPrefixIpv4UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[195] + return &file_otg_proto_enumTypes[210] } func (x BgpPrefixIpv4UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -10667,7 +11558,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{428, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{472, 0, 0} } type BgpPrefixIpv6UnicastFilter_Origin_Enum int32 @@ -10706,11 +11597,11 @@ func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[196].Descriptor() + return file_otg_proto_enumTypes[211].Descriptor() } func (BgpPrefixIpv6UnicastFilter_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[196] + return &file_otg_proto_enumTypes[211] } func (x BgpPrefixIpv6UnicastFilter_Origin_Enum) Number() protoreflect.EnumNumber { @@ -10719,7 +11610,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{429, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{473, 0, 0} } type BgpPrefixIpv4UnicastState_Origin_Enum int32 @@ -10758,11 +11649,11 @@ func (x BgpPrefixIpv4UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv4UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[197].Descriptor() + return file_otg_proto_enumTypes[212].Descriptor() } func (BgpPrefixIpv4UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[197] + return &file_otg_proto_enumTypes[212] } func (x BgpPrefixIpv4UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -10771,7 +11662,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{431, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{475, 0, 0} } type BgpPrefixIpv6UnicastState_Origin_Enum int32 @@ -10810,11 +11701,11 @@ func (x BgpPrefixIpv6UnicastState_Origin_Enum) String() string { } func (BgpPrefixIpv6UnicastState_Origin_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[198].Descriptor() + return file_otg_proto_enumTypes[213].Descriptor() } func (BgpPrefixIpv6UnicastState_Origin_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[198] + return &file_otg_proto_enumTypes[213] } func (x BgpPrefixIpv6UnicastState_Origin_Enum) Number() protoreflect.EnumNumber { @@ -10823,7 +11714,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{432, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{476, 0, 0} } type ResultExtendedCommunityStructured_Choice_Enum int32 @@ -10868,11 +11759,11 @@ func (x ResultExtendedCommunityStructured_Choice_Enum) String() string { } func (ResultExtendedCommunityStructured_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[199].Descriptor() + return file_otg_proto_enumTypes[214].Descriptor() } func (ResultExtendedCommunityStructured_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[199] + return &file_otg_proto_enumTypes[214] } func (x ResultExtendedCommunityStructured_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10881,7 +11772,7 @@ func (x ResultExtendedCommunityStructured_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use ResultExtendedCommunityStructured_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityStructured_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{434, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{478, 0, 0} } type ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum int32 @@ -10917,11 +11808,11 @@ func (x ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) String() stri } func (ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[200].Descriptor() + return file_otg_proto_enumTypes[215].Descriptor() } func (ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[200] + return &file_otg_proto_enumTypes[215] } func (x ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10930,7 +11821,7 @@ func (x ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) Number() prot // Deprecated: Use ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{437, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{481, 0, 0} } type ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum int32 @@ -10966,11 +11857,11 @@ func (x ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) String() s } func (ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[201].Descriptor() + return file_otg_proto_enumTypes[216].Descriptor() } func (ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[201] + return &file_otg_proto_enumTypes[216] } func (x ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -10979,7 +11870,7 @@ func (x ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) Number() p // Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{440, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{484, 0, 0} } type ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum int32 @@ -11015,11 +11906,11 @@ func (x ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) String() stri } func (ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[202].Descriptor() + return file_otg_proto_enumTypes[217].Descriptor() } func (ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[202] + return &file_otg_proto_enumTypes[217] } func (x ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11028,7 +11919,7 @@ func (x ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) Number() prot // Deprecated: Use ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{443, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{487, 0, 0} } type ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum int32 @@ -11064,11 +11955,11 @@ func (x ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) String() string } func (ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[203].Descriptor() + return file_otg_proto_enumTypes[218].Descriptor() } func (ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[203] + return &file_otg_proto_enumTypes[218] } func (x ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11077,7 +11968,7 @@ func (x ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) Number() protor // Deprecated: Use ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{446, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{490, 0, 0} } type ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum int32 @@ -11110,11 +12001,11 @@ func (x ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) String() s } func (ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[204].Descriptor() + return file_otg_proto_enumTypes[219].Descriptor() } func (ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[204] + return &file_otg_proto_enumTypes[219] } func (x ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11123,7 +12014,7 @@ func (x ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) Number() p // Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum.Descriptor instead. func (ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{492, 0, 0} } type ResultBgpCommunity_Type_Enum int32 @@ -11171,11 +12062,11 @@ func (x ResultBgpCommunity_Type_Enum) String() string { } func (ResultBgpCommunity_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[205].Descriptor() + return file_otg_proto_enumTypes[220].Descriptor() } func (ResultBgpCommunity_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[205] + return &file_otg_proto_enumTypes[220] } func (x ResultBgpCommunity_Type_Enum) Number() protoreflect.EnumNumber { @@ -11184,7 +12075,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{449, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{493, 0, 0} } type ResultBgpAsPathSegment_Type_Enum int32 @@ -11226,11 +12117,11 @@ func (x ResultBgpAsPathSegment_Type_Enum) String() string { } func (ResultBgpAsPathSegment_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[206].Descriptor() + return file_otg_proto_enumTypes[221].Descriptor() } func (ResultBgpAsPathSegment_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[206] + return &file_otg_proto_enumTypes[221] } func (x ResultBgpAsPathSegment_Type_Enum) Number() protoreflect.EnumNumber { @@ -11239,7 +12130,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{451, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{495, 0, 0} } type IsisLspState_PduType_Enum int32 @@ -11275,11 +12166,11 @@ func (x IsisLspState_PduType_Enum) String() string { } func (IsisLspState_PduType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[207].Descriptor() + return file_otg_proto_enumTypes[222].Descriptor() } func (IsisLspState_PduType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[207] + return &file_otg_proto_enumTypes[222] } func (x IsisLspState_PduType_Enum) Number() protoreflect.EnumNumber { @@ -11288,7 +12179,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{454, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{498, 0, 0} } type IsisLspV4Prefix_RedistributionType_Enum int32 @@ -11324,11 +12215,11 @@ func (x IsisLspV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[208].Descriptor() + return file_otg_proto_enumTypes[223].Descriptor() } func (IsisLspV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[208] + return &file_otg_proto_enumTypes[223] } func (x IsisLspV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -11337,7 +12228,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{463, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{507, 0, 0} } type IsisLspV4Prefix_OriginType_Enum int32 @@ -11373,11 +12264,11 @@ func (x IsisLspV4Prefix_OriginType_Enum) String() string { } func (IsisLspV4Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[209].Descriptor() + return file_otg_proto_enumTypes[224].Descriptor() } func (IsisLspV4Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[209] + return &file_otg_proto_enumTypes[224] } func (x IsisLspV4Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -11386,7 +12277,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{463, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{507, 1, 0} } type IsisLspExtendedV4Prefix_RedistributionType_Enum int32 @@ -11422,11 +12313,11 @@ func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) String() string { } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[210].Descriptor() + return file_otg_proto_enumTypes[225].Descriptor() } func (IsisLspExtendedV4Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[210] + return &file_otg_proto_enumTypes[225] } func (x IsisLspExtendedV4Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -11435,7 +12326,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{465, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{509, 0, 0} } type IsisLspV6Prefix_RedistributionType_Enum int32 @@ -11471,11 +12362,11 @@ func (x IsisLspV6Prefix_RedistributionType_Enum) String() string { } func (IsisLspV6Prefix_RedistributionType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[211].Descriptor() + return file_otg_proto_enumTypes[226].Descriptor() } func (IsisLspV6Prefix_RedistributionType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[211] + return &file_otg_proto_enumTypes[226] } func (x IsisLspV6Prefix_RedistributionType_Enum) Number() protoreflect.EnumNumber { @@ -11484,7 +12375,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{467, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{511, 0, 0} } type IsisLspV6Prefix_OriginType_Enum int32 @@ -11520,11 +12411,11 @@ func (x IsisLspV6Prefix_OriginType_Enum) String() string { } func (IsisLspV6Prefix_OriginType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[212].Descriptor() + return file_otg_proto_enumTypes[227].Descriptor() } func (IsisLspV6Prefix_OriginType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[212] + return &file_otg_proto_enumTypes[227] } func (x IsisLspV6Prefix_OriginType_Enum) Number() protoreflect.EnumNumber { @@ -11533,7 +12424,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{467, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{511, 1, 0} } type LldpNeighborsState_ChassisIdType_Enum int32 @@ -11584,11 +12475,11 @@ func (x LldpNeighborsState_ChassisIdType_Enum) String() string { } func (LldpNeighborsState_ChassisIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[213].Descriptor() + return file_otg_proto_enumTypes[228].Descriptor() } func (LldpNeighborsState_ChassisIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[213] + return &file_otg_proto_enumTypes[228] } func (x LldpNeighborsState_ChassisIdType_Enum) Number() protoreflect.EnumNumber { @@ -11597,7 +12488,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{470, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{514, 0, 0} } type LldpNeighborsState_PortIdType_Enum int32 @@ -11648,11 +12539,11 @@ func (x LldpNeighborsState_PortIdType_Enum) String() string { } func (LldpNeighborsState_PortIdType_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[214].Descriptor() + return file_otg_proto_enumTypes[229].Descriptor() } func (LldpNeighborsState_PortIdType_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[214] + return &file_otg_proto_enumTypes[229] } func (x LldpNeighborsState_PortIdType_Enum) Number() protoreflect.EnumNumber { @@ -11661,7 +12552,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{470, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{514, 1, 0} } type LldpCapabilityState_CapabilityName_Enum int32 @@ -11724,11 +12615,11 @@ func (x LldpCapabilityState_CapabilityName_Enum) String() string { } func (LldpCapabilityState_CapabilityName_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[215].Descriptor() + return file_otg_proto_enumTypes[230].Descriptor() } func (LldpCapabilityState_CapabilityName_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[215] + return &file_otg_proto_enumTypes[230] } func (x LldpCapabilityState_CapabilityName_Enum) Number() protoreflect.EnumNumber { @@ -11737,7 +12628,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{472, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{516, 0, 0} } type RsvpLspState_SessionStatus_Enum int32 @@ -11773,11 +12664,11 @@ func (x RsvpLspState_SessionStatus_Enum) String() string { } func (RsvpLspState_SessionStatus_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[216].Descriptor() + return file_otg_proto_enumTypes[231].Descriptor() } func (RsvpLspState_SessionStatus_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[216] + return &file_otg_proto_enumTypes[231] } func (x RsvpLspState_SessionStatus_Enum) Number() protoreflect.EnumNumber { @@ -11786,7 +12677,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{476, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{520, 0, 0} } type RsvpLspState_LastFlapReason_Enum int32 @@ -11825,11 +12716,11 @@ func (x RsvpLspState_LastFlapReason_Enum) String() string { } func (RsvpLspState_LastFlapReason_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[217].Descriptor() + return file_otg_proto_enumTypes[232].Descriptor() } func (RsvpLspState_LastFlapReason_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[217] + return &file_otg_proto_enumTypes[232] } func (x RsvpLspState_LastFlapReason_Enum) Number() protoreflect.EnumNumber { @@ -11838,7 +12729,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{476, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{520, 1, 0} } type RsvpLspIpv4Ero_Type_Enum int32 @@ -11886,11 +12777,11 @@ func (x RsvpLspIpv4Ero_Type_Enum) String() string { } func (RsvpLspIpv4Ero_Type_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[218].Descriptor() + return file_otg_proto_enumTypes[233].Descriptor() } func (RsvpLspIpv4Ero_Type_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[218] + return &file_otg_proto_enumTypes[233] } func (x RsvpLspIpv4Ero_Type_Enum) Number() protoreflect.EnumNumber { @@ -11899,7 +12790,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{478, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{522, 0, 0} } type PatternFlowEthernetDst_Choice_Enum int32 @@ -11944,11 +12835,11 @@ func (x PatternFlowEthernetDst_Choice_Enum) String() string { } func (PatternFlowEthernetDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[219].Descriptor() + return file_otg_proto_enumTypes[234].Descriptor() } func (PatternFlowEthernetDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[219] + return &file_otg_proto_enumTypes[234] } func (x PatternFlowEthernetDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -11957,7 +12848,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{487, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{536, 0, 0} } type PatternFlowEthernetSrc_Choice_Enum int32 @@ -11999,11 +12890,11 @@ func (x PatternFlowEthernetSrc_Choice_Enum) String() string { } func (PatternFlowEthernetSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[220].Descriptor() + return file_otg_proto_enumTypes[235].Descriptor() } func (PatternFlowEthernetSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[220] + return &file_otg_proto_enumTypes[235] } func (x PatternFlowEthernetSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12012,7 +12903,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{490, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{539, 0, 0} } type PatternFlowEthernetEtherType_Choice_Enum int32 @@ -12057,11 +12948,11 @@ func (x PatternFlowEthernetEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[221].Descriptor() + return file_otg_proto_enumTypes[236].Descriptor() } func (PatternFlowEthernetEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[221] + return &file_otg_proto_enumTypes[236] } func (x PatternFlowEthernetEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12070,7 +12961,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{493, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{542, 0, 0} } type PatternFlowEthernetPfcQueue_Choice_Enum int32 @@ -12112,11 +13003,11 @@ func (x PatternFlowEthernetPfcQueue_Choice_Enum) String() string { } func (PatternFlowEthernetPfcQueue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[222].Descriptor() + return file_otg_proto_enumTypes[237].Descriptor() } func (PatternFlowEthernetPfcQueue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[222] + return &file_otg_proto_enumTypes[237] } func (x PatternFlowEthernetPfcQueue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12125,7 +13016,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{496, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{545, 0, 0} } type PatternFlowVlanPriority_Choice_Enum int32 @@ -12167,11 +13058,11 @@ func (x PatternFlowVlanPriority_Choice_Enum) String() string { } func (PatternFlowVlanPriority_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[223].Descriptor() + return file_otg_proto_enumTypes[238].Descriptor() } func (PatternFlowVlanPriority_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[223] + return &file_otg_proto_enumTypes[238] } func (x PatternFlowVlanPriority_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12180,7 +13071,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{499, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{548, 0, 0} } type PatternFlowVlanCfi_Choice_Enum int32 @@ -12222,11 +13113,11 @@ func (x PatternFlowVlanCfi_Choice_Enum) String() string { } func (PatternFlowVlanCfi_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[224].Descriptor() + return file_otg_proto_enumTypes[239].Descriptor() } func (PatternFlowVlanCfi_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[224] + return &file_otg_proto_enumTypes[239] } func (x PatternFlowVlanCfi_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12235,7 +13126,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{502, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{551, 0, 0} } type PatternFlowVlanId_Choice_Enum int32 @@ -12277,11 +13168,11 @@ func (x PatternFlowVlanId_Choice_Enum) String() string { } func (PatternFlowVlanId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[225].Descriptor() + return file_otg_proto_enumTypes[240].Descriptor() } func (PatternFlowVlanId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[225] + return &file_otg_proto_enumTypes[240] } func (x PatternFlowVlanId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12290,7 +13181,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{505, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{554, 0, 0} } type PatternFlowVlanTpid_Choice_Enum int32 @@ -12332,11 +13223,11 @@ func (x PatternFlowVlanTpid_Choice_Enum) String() string { } func (PatternFlowVlanTpid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[226].Descriptor() + return file_otg_proto_enumTypes[241].Descriptor() } func (PatternFlowVlanTpid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[226] + return &file_otg_proto_enumTypes[241] } func (x PatternFlowVlanTpid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12345,7 +13236,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{508, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{557, 0, 0} } type PatternFlowVxlanFlags_Choice_Enum int32 @@ -12387,11 +13278,11 @@ func (x PatternFlowVxlanFlags_Choice_Enum) String() string { } func (PatternFlowVxlanFlags_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[227].Descriptor() + return file_otg_proto_enumTypes[242].Descriptor() } func (PatternFlowVxlanFlags_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[227] + return &file_otg_proto_enumTypes[242] } func (x PatternFlowVxlanFlags_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12400,7 +13291,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{511, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{560, 0, 0} } type PatternFlowVxlanReserved0_Choice_Enum int32 @@ -12442,11 +13333,11 @@ func (x PatternFlowVxlanReserved0_Choice_Enum) String() string { } func (PatternFlowVxlanReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[228].Descriptor() + return file_otg_proto_enumTypes[243].Descriptor() } func (PatternFlowVxlanReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[228] + return &file_otg_proto_enumTypes[243] } func (x PatternFlowVxlanReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12455,7 +13346,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{514, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{563, 0, 0} } type PatternFlowVxlanVni_Choice_Enum int32 @@ -12500,11 +13391,11 @@ func (x PatternFlowVxlanVni_Choice_Enum) String() string { } func (PatternFlowVxlanVni_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[229].Descriptor() + return file_otg_proto_enumTypes[244].Descriptor() } func (PatternFlowVxlanVni_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[229] + return &file_otg_proto_enumTypes[244] } func (x PatternFlowVxlanVni_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12513,7 +13404,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{517, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{566, 0, 0} } type PatternFlowVxlanReserved1_Choice_Enum int32 @@ -12555,11 +13446,11 @@ func (x PatternFlowVxlanReserved1_Choice_Enum) String() string { } func (PatternFlowVxlanReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[230].Descriptor() + return file_otg_proto_enumTypes[245].Descriptor() } func (PatternFlowVxlanReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[230] + return &file_otg_proto_enumTypes[245] } func (x PatternFlowVxlanReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12568,7 +13459,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{520, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{569, 0, 0} } type PatternFlowIpv4Version_Choice_Enum int32 @@ -12610,11 +13501,11 @@ func (x PatternFlowIpv4Version_Choice_Enum) String() string { } func (PatternFlowIpv4Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[231].Descriptor() + return file_otg_proto_enumTypes[246].Descriptor() } func (PatternFlowIpv4Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[231] + return &file_otg_proto_enumTypes[246] } func (x PatternFlowIpv4Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12623,7 +13514,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{523, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{572, 0, 0} } type PatternFlowIpv4HeaderLength_Choice_Enum int32 @@ -12668,11 +13559,11 @@ func (x PatternFlowIpv4HeaderLength_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[232].Descriptor() + return file_otg_proto_enumTypes[247].Descriptor() } func (PatternFlowIpv4HeaderLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[232] + return &file_otg_proto_enumTypes[247] } func (x PatternFlowIpv4HeaderLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12681,7 +13572,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{526, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{575, 0, 0} } type PatternFlowIpv4TotalLength_Choice_Enum int32 @@ -12726,11 +13617,11 @@ func (x PatternFlowIpv4TotalLength_Choice_Enum) String() string { } func (PatternFlowIpv4TotalLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[233].Descriptor() + return file_otg_proto_enumTypes[248].Descriptor() } func (PatternFlowIpv4TotalLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[233] + return &file_otg_proto_enumTypes[248] } func (x PatternFlowIpv4TotalLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12739,7 +13630,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{529, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{578, 0, 0} } type PatternFlowIpv4Identification_Choice_Enum int32 @@ -12781,11 +13672,11 @@ func (x PatternFlowIpv4Identification_Choice_Enum) String() string { } func (PatternFlowIpv4Identification_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[234].Descriptor() + return file_otg_proto_enumTypes[249].Descriptor() } func (PatternFlowIpv4Identification_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[234] + return &file_otg_proto_enumTypes[249] } func (x PatternFlowIpv4Identification_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12794,7 +13685,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{532, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{581, 0, 0} } type PatternFlowIpv4Reserved_Choice_Enum int32 @@ -12836,11 +13727,11 @@ func (x PatternFlowIpv4Reserved_Choice_Enum) String() string { } func (PatternFlowIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[235].Descriptor() + return file_otg_proto_enumTypes[250].Descriptor() } func (PatternFlowIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[235] + return &file_otg_proto_enumTypes[250] } func (x PatternFlowIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12849,7 +13740,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{535, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{584, 0, 0} } type PatternFlowIpv4DontFragment_Choice_Enum int32 @@ -12891,11 +13782,11 @@ func (x PatternFlowIpv4DontFragment_Choice_Enum) String() string { } func (PatternFlowIpv4DontFragment_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[236].Descriptor() + return file_otg_proto_enumTypes[251].Descriptor() } func (PatternFlowIpv4DontFragment_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[236] + return &file_otg_proto_enumTypes[251] } func (x PatternFlowIpv4DontFragment_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12904,7 +13795,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{538, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{587, 0, 0} } type PatternFlowIpv4MoreFragments_Choice_Enum int32 @@ -12946,11 +13837,11 @@ func (x PatternFlowIpv4MoreFragments_Choice_Enum) String() string { } func (PatternFlowIpv4MoreFragments_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[237].Descriptor() + return file_otg_proto_enumTypes[252].Descriptor() } func (PatternFlowIpv4MoreFragments_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[237] + return &file_otg_proto_enumTypes[252] } func (x PatternFlowIpv4MoreFragments_Choice_Enum) Number() protoreflect.EnumNumber { @@ -12959,7 +13850,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{541, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{590, 0, 0} } type PatternFlowIpv4FragmentOffset_Choice_Enum int32 @@ -13001,11 +13892,11 @@ func (x PatternFlowIpv4FragmentOffset_Choice_Enum) String() string { } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[238].Descriptor() + return file_otg_proto_enumTypes[253].Descriptor() } func (PatternFlowIpv4FragmentOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[238] + return &file_otg_proto_enumTypes[253] } func (x PatternFlowIpv4FragmentOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13014,7 +13905,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{544, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{593, 0, 0} } type PatternFlowIpv4TimeToLive_Choice_Enum int32 @@ -13056,11 +13947,11 @@ func (x PatternFlowIpv4TimeToLive_Choice_Enum) String() string { } func (PatternFlowIpv4TimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[239].Descriptor() + return file_otg_proto_enumTypes[254].Descriptor() } func (PatternFlowIpv4TimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[239] + return &file_otg_proto_enumTypes[254] } func (x PatternFlowIpv4TimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13069,7 +13960,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{547, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{596, 0, 0} } type PatternFlowIpv4Protocol_Choice_Enum int32 @@ -13114,11 +14005,11 @@ func (x PatternFlowIpv4Protocol_Choice_Enum) String() string { } func (PatternFlowIpv4Protocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[240].Descriptor() + return file_otg_proto_enumTypes[255].Descriptor() } func (PatternFlowIpv4Protocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[240] + return &file_otg_proto_enumTypes[255] } func (x PatternFlowIpv4Protocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13127,7 +14018,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{550, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{599, 0, 0} } type PatternFlowIpv4HeaderChecksum_Choice_Enum int32 @@ -13163,11 +14054,11 @@ func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[241].Descriptor() + return file_otg_proto_enumTypes[256].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[241] + return &file_otg_proto_enumTypes[256] } func (x PatternFlowIpv4HeaderChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13176,7 +14067,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{551, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{600, 0, 0} } type PatternFlowIpv4HeaderChecksum_Generated_Enum int32 @@ -13212,11 +14103,11 @@ func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) String() string { } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[242].Descriptor() + return file_otg_proto_enumTypes[257].Descriptor() } func (PatternFlowIpv4HeaderChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[242] + return &file_otg_proto_enumTypes[257] } func (x PatternFlowIpv4HeaderChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -13225,7 +14116,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{551, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{600, 1, 0} } type PatternFlowIpv4Src_Choice_Enum int32 @@ -13273,11 +14164,11 @@ func (x PatternFlowIpv4Src_Choice_Enum) String() string { } func (PatternFlowIpv4Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[243].Descriptor() + return file_otg_proto_enumTypes[258].Descriptor() } func (PatternFlowIpv4Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[243] + return &file_otg_proto_enumTypes[258] } func (x PatternFlowIpv4Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13286,7 +14177,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{555, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{604, 0, 0} } type PatternFlowIpv4Dst_Choice_Enum int32 @@ -13334,11 +14225,11 @@ func (x PatternFlowIpv4Dst_Choice_Enum) String() string { } func (PatternFlowIpv4Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[244].Descriptor() + return file_otg_proto_enumTypes[259].Descriptor() } func (PatternFlowIpv4Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[244] + return &file_otg_proto_enumTypes[259] } func (x PatternFlowIpv4Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13347,7 +14238,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{559, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{608, 0, 0} } type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum int32 @@ -13389,11 +14280,11 @@ func (x PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) String() string } func (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[245].Descriptor() + return file_otg_proto_enumTypes[260].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[245] + return &file_otg_proto_enumTypes[260] } func (x PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13402,7 +14293,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{561, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{610, 0, 0} } type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum int32 @@ -13444,11 +14335,11 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) String() string } func (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[246].Descriptor() + return file_otg_proto_enumTypes[261].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[246] + return &file_otg_proto_enumTypes[261] } func (x PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13457,7 +14348,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{563, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{612, 0, 0} } type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum int32 @@ -13499,11 +14390,11 @@ func (x PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) String() strin } func (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[247].Descriptor() + return file_otg_proto_enumTypes[262].Descriptor() } func (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[247] + return &file_otg_proto_enumTypes[262] } func (x PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13512,7 +14403,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{565, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{614, 0, 0} } type PatternFlowIpv4PriorityRaw_Choice_Enum int32 @@ -13554,11 +14445,11 @@ func (x PatternFlowIpv4PriorityRaw_Choice_Enum) String() string { } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[248].Descriptor() + return file_otg_proto_enumTypes[263].Descriptor() } func (PatternFlowIpv4PriorityRaw_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[248] + return &file_otg_proto_enumTypes[263] } func (x PatternFlowIpv4PriorityRaw_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13567,7 +14458,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{568, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{617, 0, 0} } type PatternFlowIpv4DscpPhb_Choice_Enum int32 @@ -13609,11 +14500,11 @@ func (x PatternFlowIpv4DscpPhb_Choice_Enum) String() string { } func (PatternFlowIpv4DscpPhb_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[249].Descriptor() + return file_otg_proto_enumTypes[264].Descriptor() } func (PatternFlowIpv4DscpPhb_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[249] + return &file_otg_proto_enumTypes[264] } func (x PatternFlowIpv4DscpPhb_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13622,7 +14513,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{571, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{620, 0, 0} } type PatternFlowIpv4DscpEcn_Choice_Enum int32 @@ -13664,11 +14555,11 @@ func (x PatternFlowIpv4DscpEcn_Choice_Enum) String() string { } func (PatternFlowIpv4DscpEcn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[250].Descriptor() + return file_otg_proto_enumTypes[265].Descriptor() } func (PatternFlowIpv4DscpEcn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[250] + return &file_otg_proto_enumTypes[265] } func (x PatternFlowIpv4DscpEcn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13677,7 +14568,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{574, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{623, 0, 0} } type PatternFlowIpv4TosPrecedence_Choice_Enum int32 @@ -13719,11 +14610,11 @@ func (x PatternFlowIpv4TosPrecedence_Choice_Enum) String() string { } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[251].Descriptor() + return file_otg_proto_enumTypes[266].Descriptor() } func (PatternFlowIpv4TosPrecedence_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[251] + return &file_otg_proto_enumTypes[266] } func (x PatternFlowIpv4TosPrecedence_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13732,7 +14623,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{577, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{626, 0, 0} } type PatternFlowIpv4TosDelay_Choice_Enum int32 @@ -13774,11 +14665,11 @@ func (x PatternFlowIpv4TosDelay_Choice_Enum) String() string { } func (PatternFlowIpv4TosDelay_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[252].Descriptor() + return file_otg_proto_enumTypes[267].Descriptor() } func (PatternFlowIpv4TosDelay_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[252] + return &file_otg_proto_enumTypes[267] } func (x PatternFlowIpv4TosDelay_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13787,7 +14678,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{580, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{629, 0, 0} } type PatternFlowIpv4TosThroughput_Choice_Enum int32 @@ -13829,11 +14720,11 @@ func (x PatternFlowIpv4TosThroughput_Choice_Enum) String() string { } func (PatternFlowIpv4TosThroughput_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[253].Descriptor() + return file_otg_proto_enumTypes[268].Descriptor() } func (PatternFlowIpv4TosThroughput_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[253] + return &file_otg_proto_enumTypes[268] } func (x PatternFlowIpv4TosThroughput_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13842,7 +14733,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{583, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{632, 0, 0} } type PatternFlowIpv4TosReliability_Choice_Enum int32 @@ -13884,11 +14775,11 @@ func (x PatternFlowIpv4TosReliability_Choice_Enum) String() string { } func (PatternFlowIpv4TosReliability_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[254].Descriptor() + return file_otg_proto_enumTypes[269].Descriptor() } func (PatternFlowIpv4TosReliability_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[254] + return &file_otg_proto_enumTypes[269] } func (x PatternFlowIpv4TosReliability_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13897,7 +14788,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{586, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{635, 0, 0} } type PatternFlowIpv4TosMonetary_Choice_Enum int32 @@ -13939,11 +14830,11 @@ func (x PatternFlowIpv4TosMonetary_Choice_Enum) String() string { } func (PatternFlowIpv4TosMonetary_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[255].Descriptor() + return file_otg_proto_enumTypes[270].Descriptor() } func (PatternFlowIpv4TosMonetary_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[255] + return &file_otg_proto_enumTypes[270] } func (x PatternFlowIpv4TosMonetary_Choice_Enum) Number() protoreflect.EnumNumber { @@ -13952,7 +14843,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{589, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{638, 0, 0} } type PatternFlowIpv4TosUnused_Choice_Enum int32 @@ -13994,11 +14885,11 @@ func (x PatternFlowIpv4TosUnused_Choice_Enum) String() string { } func (PatternFlowIpv4TosUnused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[256].Descriptor() + return file_otg_proto_enumTypes[271].Descriptor() } func (PatternFlowIpv4TosUnused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[256] + return &file_otg_proto_enumTypes[271] } func (x PatternFlowIpv4TosUnused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14007,7 +14898,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{592, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{641, 0, 0} } type PatternFlowIpv6Version_Choice_Enum int32 @@ -14049,11 +14940,11 @@ func (x PatternFlowIpv6Version_Choice_Enum) String() string { } func (PatternFlowIpv6Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[257].Descriptor() + return file_otg_proto_enumTypes[272].Descriptor() } func (PatternFlowIpv6Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[257] + return &file_otg_proto_enumTypes[272] } func (x PatternFlowIpv6Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14062,7 +14953,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{595, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{644, 0, 0} } type PatternFlowIpv6TrafficClass_Choice_Enum int32 @@ -14104,11 +14995,11 @@ func (x PatternFlowIpv6TrafficClass_Choice_Enum) String() string { } func (PatternFlowIpv6TrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[258].Descriptor() + return file_otg_proto_enumTypes[273].Descriptor() } func (PatternFlowIpv6TrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[258] + return &file_otg_proto_enumTypes[273] } func (x PatternFlowIpv6TrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14117,7 +15008,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{598, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{647, 0, 0} } type PatternFlowIpv6FlowLabel_Choice_Enum int32 @@ -14162,11 +15053,11 @@ func (x PatternFlowIpv6FlowLabel_Choice_Enum) String() string { } func (PatternFlowIpv6FlowLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[259].Descriptor() + return file_otg_proto_enumTypes[274].Descriptor() } func (PatternFlowIpv6FlowLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[259] + return &file_otg_proto_enumTypes[274] } func (x PatternFlowIpv6FlowLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14175,7 +15066,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{602, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{651, 0, 0} } type PatternFlowIpv6PayloadLength_Choice_Enum int32 @@ -14220,11 +15111,11 @@ func (x PatternFlowIpv6PayloadLength_Choice_Enum) String() string { } func (PatternFlowIpv6PayloadLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[260].Descriptor() + return file_otg_proto_enumTypes[275].Descriptor() } func (PatternFlowIpv6PayloadLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[260] + return &file_otg_proto_enumTypes[275] } func (x PatternFlowIpv6PayloadLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14233,7 +15124,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{605, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{654, 0, 0} } type PatternFlowIpv6NextHeader_Choice_Enum int32 @@ -14278,11 +15169,11 @@ func (x PatternFlowIpv6NextHeader_Choice_Enum) String() string { } func (PatternFlowIpv6NextHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[261].Descriptor() + return file_otg_proto_enumTypes[276].Descriptor() } func (PatternFlowIpv6NextHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[261] + return &file_otg_proto_enumTypes[276] } func (x PatternFlowIpv6NextHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14291,7 +15182,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{608, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{657, 0, 0} } type PatternFlowIpv6HopLimit_Choice_Enum int32 @@ -14333,11 +15224,11 @@ func (x PatternFlowIpv6HopLimit_Choice_Enum) String() string { } func (PatternFlowIpv6HopLimit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[262].Descriptor() + return file_otg_proto_enumTypes[277].Descriptor() } func (PatternFlowIpv6HopLimit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[262] + return &file_otg_proto_enumTypes[277] } func (x PatternFlowIpv6HopLimit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14346,7 +15237,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{611, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{660, 0, 0} } type PatternFlowIpv6Src_Choice_Enum int32 @@ -14357,6 +15248,7 @@ const ( PatternFlowIpv6Src_Choice_values PatternFlowIpv6Src_Choice_Enum = 3 PatternFlowIpv6Src_Choice_increment PatternFlowIpv6Src_Choice_Enum = 4 PatternFlowIpv6Src_Choice_decrement PatternFlowIpv6Src_Choice_Enum = 5 + PatternFlowIpv6Src_Choice_auto PatternFlowIpv6Src_Choice_Enum = 1 ) // Enum value maps for PatternFlowIpv6Src_Choice_Enum. @@ -14367,6 +15259,7 @@ var ( 3: "values", 4: "increment", 5: "decrement", + 1: "auto", } PatternFlowIpv6Src_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -14374,6 +15267,7 @@ var ( "values": 3, "increment": 4, "decrement": 5, + "auto": 1, } ) @@ -14388,11 +15282,11 @@ func (x PatternFlowIpv6Src_Choice_Enum) String() string { } func (PatternFlowIpv6Src_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[263].Descriptor() + return file_otg_proto_enumTypes[278].Descriptor() } func (PatternFlowIpv6Src_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[263] + return &file_otg_proto_enumTypes[278] } func (x PatternFlowIpv6Src_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14401,7 +15295,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{614, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{663, 0, 0} } type PatternFlowIpv6Dst_Choice_Enum int32 @@ -14412,6 +15306,7 @@ const ( PatternFlowIpv6Dst_Choice_values PatternFlowIpv6Dst_Choice_Enum = 3 PatternFlowIpv6Dst_Choice_increment PatternFlowIpv6Dst_Choice_Enum = 4 PatternFlowIpv6Dst_Choice_decrement PatternFlowIpv6Dst_Choice_Enum = 5 + PatternFlowIpv6Dst_Choice_auto PatternFlowIpv6Dst_Choice_Enum = 1 ) // Enum value maps for PatternFlowIpv6Dst_Choice_Enum. @@ -14422,6 +15317,7 @@ var ( 3: "values", 4: "increment", 5: "decrement", + 1: "auto", } PatternFlowIpv6Dst_Choice_Enum_value = map[string]int32{ "unspecified": 0, @@ -14429,6 +15325,7 @@ var ( "values": 3, "increment": 4, "decrement": 5, + "auto": 1, } ) @@ -14443,11 +15340,11 @@ func (x PatternFlowIpv6Dst_Choice_Enum) String() string { } func (PatternFlowIpv6Dst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[264].Descriptor() + return file_otg_proto_enumTypes[279].Descriptor() } func (PatternFlowIpv6Dst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[264] + return &file_otg_proto_enumTypes[279] } func (x PatternFlowIpv6Dst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14456,7 +15353,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{617, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{666, 0, 0} } type PatternFlowPfcPauseDst_Choice_Enum int32 @@ -14498,11 +15395,11 @@ func (x PatternFlowPfcPauseDst_Choice_Enum) String() string { } func (PatternFlowPfcPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[265].Descriptor() + return file_otg_proto_enumTypes[280].Descriptor() } func (PatternFlowPfcPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[265] + return &file_otg_proto_enumTypes[280] } func (x PatternFlowPfcPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14511,7 +15408,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{620, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{669, 0, 0} } type PatternFlowPfcPauseSrc_Choice_Enum int32 @@ -14553,11 +15450,11 @@ func (x PatternFlowPfcPauseSrc_Choice_Enum) String() string { } func (PatternFlowPfcPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[266].Descriptor() + return file_otg_proto_enumTypes[281].Descriptor() } func (PatternFlowPfcPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[266] + return &file_otg_proto_enumTypes[281] } func (x PatternFlowPfcPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14566,7 +15463,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{623, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{672, 0, 0} } type PatternFlowPfcPauseEtherType_Choice_Enum int32 @@ -14608,11 +15505,11 @@ func (x PatternFlowPfcPauseEtherType_Choice_Enum) String() string { } func (PatternFlowPfcPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[267].Descriptor() + return file_otg_proto_enumTypes[282].Descriptor() } func (PatternFlowPfcPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[267] + return &file_otg_proto_enumTypes[282] } func (x PatternFlowPfcPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14621,7 +15518,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{626, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{675, 0, 0} } type PatternFlowPfcPauseControlOpCode_Choice_Enum int32 @@ -14663,11 +15560,11 @@ func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[268].Descriptor() + return file_otg_proto_enumTypes[283].Descriptor() } func (PatternFlowPfcPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[268] + return &file_otg_proto_enumTypes[283] } func (x PatternFlowPfcPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14676,7 +15573,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{629, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{678, 0, 0} } type PatternFlowPfcPauseClassEnableVector_Choice_Enum int32 @@ -14718,11 +15615,11 @@ func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) String() string { } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[269].Descriptor() + return file_otg_proto_enumTypes[284].Descriptor() } func (PatternFlowPfcPauseClassEnableVector_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[269] + return &file_otg_proto_enumTypes[284] } func (x PatternFlowPfcPauseClassEnableVector_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14731,7 +15628,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{632, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{681, 0, 0} } type PatternFlowPfcPausePauseClass0_Choice_Enum int32 @@ -14773,11 +15670,11 @@ func (x PatternFlowPfcPausePauseClass0_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[270].Descriptor() + return file_otg_proto_enumTypes[285].Descriptor() } func (PatternFlowPfcPausePauseClass0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[270] + return &file_otg_proto_enumTypes[285] } func (x PatternFlowPfcPausePauseClass0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14786,7 +15683,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{635, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{684, 0, 0} } type PatternFlowPfcPausePauseClass1_Choice_Enum int32 @@ -14828,11 +15725,11 @@ func (x PatternFlowPfcPausePauseClass1_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[271].Descriptor() + return file_otg_proto_enumTypes[286].Descriptor() } func (PatternFlowPfcPausePauseClass1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[271] + return &file_otg_proto_enumTypes[286] } func (x PatternFlowPfcPausePauseClass1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14841,7 +15738,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{638, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{687, 0, 0} } type PatternFlowPfcPausePauseClass2_Choice_Enum int32 @@ -14883,11 +15780,11 @@ func (x PatternFlowPfcPausePauseClass2_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[272].Descriptor() + return file_otg_proto_enumTypes[287].Descriptor() } func (PatternFlowPfcPausePauseClass2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[272] + return &file_otg_proto_enumTypes[287] } func (x PatternFlowPfcPausePauseClass2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14896,7 +15793,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{641, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{690, 0, 0} } type PatternFlowPfcPausePauseClass3_Choice_Enum int32 @@ -14938,11 +15835,11 @@ func (x PatternFlowPfcPausePauseClass3_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[273].Descriptor() + return file_otg_proto_enumTypes[288].Descriptor() } func (PatternFlowPfcPausePauseClass3_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[273] + return &file_otg_proto_enumTypes[288] } func (x PatternFlowPfcPausePauseClass3_Choice_Enum) Number() protoreflect.EnumNumber { @@ -14951,7 +15848,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{644, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{693, 0, 0} } type PatternFlowPfcPausePauseClass4_Choice_Enum int32 @@ -14993,11 +15890,11 @@ func (x PatternFlowPfcPausePauseClass4_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[274].Descriptor() + return file_otg_proto_enumTypes[289].Descriptor() } func (PatternFlowPfcPausePauseClass4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[274] + return &file_otg_proto_enumTypes[289] } func (x PatternFlowPfcPausePauseClass4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15006,7 +15903,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{647, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{696, 0, 0} } type PatternFlowPfcPausePauseClass5_Choice_Enum int32 @@ -15048,11 +15945,11 @@ func (x PatternFlowPfcPausePauseClass5_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[275].Descriptor() + return file_otg_proto_enumTypes[290].Descriptor() } func (PatternFlowPfcPausePauseClass5_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[275] + return &file_otg_proto_enumTypes[290] } func (x PatternFlowPfcPausePauseClass5_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15061,7 +15958,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{650, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{699, 0, 0} } type PatternFlowPfcPausePauseClass6_Choice_Enum int32 @@ -15103,11 +16000,11 @@ func (x PatternFlowPfcPausePauseClass6_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[276].Descriptor() + return file_otg_proto_enumTypes[291].Descriptor() } func (PatternFlowPfcPausePauseClass6_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[276] + return &file_otg_proto_enumTypes[291] } func (x PatternFlowPfcPausePauseClass6_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15116,7 +16013,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{653, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{702, 0, 0} } type PatternFlowPfcPausePauseClass7_Choice_Enum int32 @@ -15158,11 +16055,11 @@ func (x PatternFlowPfcPausePauseClass7_Choice_Enum) String() string { } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[277].Descriptor() + return file_otg_proto_enumTypes[292].Descriptor() } func (PatternFlowPfcPausePauseClass7_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[277] + return &file_otg_proto_enumTypes[292] } func (x PatternFlowPfcPausePauseClass7_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15171,7 +16068,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{656, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{705, 0, 0} } type PatternFlowEthernetPauseDst_Choice_Enum int32 @@ -15213,11 +16110,11 @@ func (x PatternFlowEthernetPauseDst_Choice_Enum) String() string { } func (PatternFlowEthernetPauseDst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[278].Descriptor() + return file_otg_proto_enumTypes[293].Descriptor() } func (PatternFlowEthernetPauseDst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[278] + return &file_otg_proto_enumTypes[293] } func (x PatternFlowEthernetPauseDst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15226,7 +16123,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{659, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{708, 0, 0} } type PatternFlowEthernetPauseSrc_Choice_Enum int32 @@ -15268,11 +16165,11 @@ func (x PatternFlowEthernetPauseSrc_Choice_Enum) String() string { } func (PatternFlowEthernetPauseSrc_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[279].Descriptor() + return file_otg_proto_enumTypes[294].Descriptor() } func (PatternFlowEthernetPauseSrc_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[279] + return &file_otg_proto_enumTypes[294] } func (x PatternFlowEthernetPauseSrc_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15281,7 +16178,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{662, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{711, 0, 0} } type PatternFlowEthernetPauseEtherType_Choice_Enum int32 @@ -15323,11 +16220,11 @@ func (x PatternFlowEthernetPauseEtherType_Choice_Enum) String() string { } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[280].Descriptor() + return file_otg_proto_enumTypes[295].Descriptor() } func (PatternFlowEthernetPauseEtherType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[280] + return &file_otg_proto_enumTypes[295] } func (x PatternFlowEthernetPauseEtherType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15336,7 +16233,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{665, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{714, 0, 0} } type PatternFlowEthernetPauseControlOpCode_Choice_Enum int32 @@ -15378,11 +16275,11 @@ func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) String() string { } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[281].Descriptor() + return file_otg_proto_enumTypes[296].Descriptor() } func (PatternFlowEthernetPauseControlOpCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[281] + return &file_otg_proto_enumTypes[296] } func (x PatternFlowEthernetPauseControlOpCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15391,7 +16288,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{668, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{717, 0, 0} } type PatternFlowEthernetPauseTime_Choice_Enum int32 @@ -15433,11 +16330,11 @@ func (x PatternFlowEthernetPauseTime_Choice_Enum) String() string { } func (PatternFlowEthernetPauseTime_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[282].Descriptor() + return file_otg_proto_enumTypes[297].Descriptor() } func (PatternFlowEthernetPauseTime_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[282] + return &file_otg_proto_enumTypes[297] } func (x PatternFlowEthernetPauseTime_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15446,7 +16343,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{671, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{720, 0, 0} } type PatternFlowTcpSrcPort_Choice_Enum int32 @@ -15491,11 +16388,11 @@ func (x PatternFlowTcpSrcPort_Choice_Enum) String() string { } func (PatternFlowTcpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[283].Descriptor() + return file_otg_proto_enumTypes[298].Descriptor() } func (PatternFlowTcpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[283] + return &file_otg_proto_enumTypes[298] } func (x PatternFlowTcpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15504,7 +16401,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{675, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{724, 0, 0} } type PatternFlowTcpDstPort_Choice_Enum int32 @@ -15549,11 +16446,11 @@ func (x PatternFlowTcpDstPort_Choice_Enum) String() string { } func (PatternFlowTcpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[284].Descriptor() + return file_otg_proto_enumTypes[299].Descriptor() } func (PatternFlowTcpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[284] + return &file_otg_proto_enumTypes[299] } func (x PatternFlowTcpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15562,7 +16459,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{679, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{728, 0, 0} } type PatternFlowTcpSeqNum_Choice_Enum int32 @@ -15604,11 +16501,11 @@ func (x PatternFlowTcpSeqNum_Choice_Enum) String() string { } func (PatternFlowTcpSeqNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[285].Descriptor() + return file_otg_proto_enumTypes[300].Descriptor() } func (PatternFlowTcpSeqNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[285] + return &file_otg_proto_enumTypes[300] } func (x PatternFlowTcpSeqNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15617,7 +16514,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{682, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{731, 0, 0} } type PatternFlowTcpAckNum_Choice_Enum int32 @@ -15659,11 +16556,11 @@ func (x PatternFlowTcpAckNum_Choice_Enum) String() string { } func (PatternFlowTcpAckNum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[286].Descriptor() + return file_otg_proto_enumTypes[301].Descriptor() } func (PatternFlowTcpAckNum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[286] + return &file_otg_proto_enumTypes[301] } func (x PatternFlowTcpAckNum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15672,7 +16569,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{685, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{734, 0, 0} } type PatternFlowTcpDataOffset_Choice_Enum int32 @@ -15714,11 +16611,11 @@ func (x PatternFlowTcpDataOffset_Choice_Enum) String() string { } func (PatternFlowTcpDataOffset_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[287].Descriptor() + return file_otg_proto_enumTypes[302].Descriptor() } func (PatternFlowTcpDataOffset_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[287] + return &file_otg_proto_enumTypes[302] } func (x PatternFlowTcpDataOffset_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15727,7 +16624,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{688, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{737, 0, 0} } type PatternFlowTcpEcnNs_Choice_Enum int32 @@ -15769,11 +16666,11 @@ func (x PatternFlowTcpEcnNs_Choice_Enum) String() string { } func (PatternFlowTcpEcnNs_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[288].Descriptor() + return file_otg_proto_enumTypes[303].Descriptor() } func (PatternFlowTcpEcnNs_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[288] + return &file_otg_proto_enumTypes[303] } func (x PatternFlowTcpEcnNs_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15782,7 +16679,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{691, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{740, 0, 0} } type PatternFlowTcpEcnCwr_Choice_Enum int32 @@ -15824,11 +16721,11 @@ func (x PatternFlowTcpEcnCwr_Choice_Enum) String() string { } func (PatternFlowTcpEcnCwr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[289].Descriptor() + return file_otg_proto_enumTypes[304].Descriptor() } func (PatternFlowTcpEcnCwr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[289] + return &file_otg_proto_enumTypes[304] } func (x PatternFlowTcpEcnCwr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15837,7 +16734,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{694, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{743, 0, 0} } type PatternFlowTcpEcnEcho_Choice_Enum int32 @@ -15879,11 +16776,11 @@ func (x PatternFlowTcpEcnEcho_Choice_Enum) String() string { } func (PatternFlowTcpEcnEcho_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[290].Descriptor() + return file_otg_proto_enumTypes[305].Descriptor() } func (PatternFlowTcpEcnEcho_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[290] + return &file_otg_proto_enumTypes[305] } func (x PatternFlowTcpEcnEcho_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15892,7 +16789,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{697, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{746, 0, 0} } type PatternFlowTcpCtlUrg_Choice_Enum int32 @@ -15934,11 +16831,11 @@ func (x PatternFlowTcpCtlUrg_Choice_Enum) String() string { } func (PatternFlowTcpCtlUrg_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[291].Descriptor() + return file_otg_proto_enumTypes[306].Descriptor() } func (PatternFlowTcpCtlUrg_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[291] + return &file_otg_proto_enumTypes[306] } func (x PatternFlowTcpCtlUrg_Choice_Enum) Number() protoreflect.EnumNumber { @@ -15947,7 +16844,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{700, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{749, 0, 0} } type PatternFlowTcpCtlAck_Choice_Enum int32 @@ -15989,11 +16886,11 @@ func (x PatternFlowTcpCtlAck_Choice_Enum) String() string { } func (PatternFlowTcpCtlAck_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[292].Descriptor() + return file_otg_proto_enumTypes[307].Descriptor() } func (PatternFlowTcpCtlAck_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[292] + return &file_otg_proto_enumTypes[307] } func (x PatternFlowTcpCtlAck_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16002,7 +16899,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{703, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{752, 0, 0} } type PatternFlowTcpCtlPsh_Choice_Enum int32 @@ -16044,11 +16941,11 @@ func (x PatternFlowTcpCtlPsh_Choice_Enum) String() string { } func (PatternFlowTcpCtlPsh_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[293].Descriptor() + return file_otg_proto_enumTypes[308].Descriptor() } func (PatternFlowTcpCtlPsh_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[293] + return &file_otg_proto_enumTypes[308] } func (x PatternFlowTcpCtlPsh_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16057,7 +16954,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{706, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{755, 0, 0} } type PatternFlowTcpCtlRst_Choice_Enum int32 @@ -16099,11 +16996,11 @@ func (x PatternFlowTcpCtlRst_Choice_Enum) String() string { } func (PatternFlowTcpCtlRst_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[294].Descriptor() + return file_otg_proto_enumTypes[309].Descriptor() } func (PatternFlowTcpCtlRst_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[294] + return &file_otg_proto_enumTypes[309] } func (x PatternFlowTcpCtlRst_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16112,7 +17009,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{709, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{758, 0, 0} } type PatternFlowTcpCtlSyn_Choice_Enum int32 @@ -16154,11 +17051,11 @@ func (x PatternFlowTcpCtlSyn_Choice_Enum) String() string { } func (PatternFlowTcpCtlSyn_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[295].Descriptor() + return file_otg_proto_enumTypes[310].Descriptor() } func (PatternFlowTcpCtlSyn_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[295] + return &file_otg_proto_enumTypes[310] } func (x PatternFlowTcpCtlSyn_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16167,7 +17064,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{712, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{761, 0, 0} } type PatternFlowTcpCtlFin_Choice_Enum int32 @@ -16209,11 +17106,11 @@ func (x PatternFlowTcpCtlFin_Choice_Enum) String() string { } func (PatternFlowTcpCtlFin_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[296].Descriptor() + return file_otg_proto_enumTypes[311].Descriptor() } func (PatternFlowTcpCtlFin_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[296] + return &file_otg_proto_enumTypes[311] } func (x PatternFlowTcpCtlFin_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16222,7 +17119,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{715, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{764, 0, 0} } type PatternFlowTcpWindow_Choice_Enum int32 @@ -16264,11 +17161,11 @@ func (x PatternFlowTcpWindow_Choice_Enum) String() string { } func (PatternFlowTcpWindow_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[297].Descriptor() + return file_otg_proto_enumTypes[312].Descriptor() } func (PatternFlowTcpWindow_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[297] + return &file_otg_proto_enumTypes[312] } func (x PatternFlowTcpWindow_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16277,7 +17174,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{718, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{767, 0, 0} } type PatternFlowTcpChecksum_Choice_Enum int32 @@ -16313,11 +17210,11 @@ func (x PatternFlowTcpChecksum_Choice_Enum) String() string { } func (PatternFlowTcpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[298].Descriptor() + return file_otg_proto_enumTypes[313].Descriptor() } func (PatternFlowTcpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[298] + return &file_otg_proto_enumTypes[313] } func (x PatternFlowTcpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16326,7 +17223,7 @@ func (x PatternFlowTcpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowTcpChecksum_Choice_Enum.Descriptor instead. func (PatternFlowTcpChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{768, 0, 0} } type PatternFlowTcpChecksum_Generated_Enum int32 @@ -16362,11 +17259,11 @@ func (x PatternFlowTcpChecksum_Generated_Enum) String() string { } func (PatternFlowTcpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[299].Descriptor() + return file_otg_proto_enumTypes[314].Descriptor() } func (PatternFlowTcpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[299] + return &file_otg_proto_enumTypes[314] } func (x PatternFlowTcpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16375,7 +17272,7 @@ func (x PatternFlowTcpChecksum_Generated_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowTcpChecksum_Generated_Enum.Descriptor instead. func (PatternFlowTcpChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{768, 1, 0} } type PatternFlowUdpSrcPort_Choice_Enum int32 @@ -16420,11 +17317,11 @@ func (x PatternFlowUdpSrcPort_Choice_Enum) String() string { } func (PatternFlowUdpSrcPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[300].Descriptor() + return file_otg_proto_enumTypes[315].Descriptor() } func (PatternFlowUdpSrcPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[300] + return &file_otg_proto_enumTypes[315] } func (x PatternFlowUdpSrcPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16433,7 +17330,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{723, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{772, 0, 0} } type PatternFlowUdpDstPort_Choice_Enum int32 @@ -16478,11 +17375,11 @@ func (x PatternFlowUdpDstPort_Choice_Enum) String() string { } func (PatternFlowUdpDstPort_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[301].Descriptor() + return file_otg_proto_enumTypes[316].Descriptor() } func (PatternFlowUdpDstPort_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[301] + return &file_otg_proto_enumTypes[316] } func (x PatternFlowUdpDstPort_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16491,7 +17388,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{727, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{776, 0, 0} } type PatternFlowUdpLength_Choice_Enum int32 @@ -16533,11 +17430,11 @@ func (x PatternFlowUdpLength_Choice_Enum) String() string { } func (PatternFlowUdpLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[302].Descriptor() + return file_otg_proto_enumTypes[317].Descriptor() } func (PatternFlowUdpLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[302] + return &file_otg_proto_enumTypes[317] } func (x PatternFlowUdpLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16546,7 +17443,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{730, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{779, 0, 0} } type PatternFlowUdpChecksum_Choice_Enum int32 @@ -16582,11 +17479,11 @@ func (x PatternFlowUdpChecksum_Choice_Enum) String() string { } func (PatternFlowUdpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[303].Descriptor() + return file_otg_proto_enumTypes[318].Descriptor() } func (PatternFlowUdpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[303] + return &file_otg_proto_enumTypes[318] } func (x PatternFlowUdpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16595,7 +17492,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{731, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{780, 0, 0} } type PatternFlowUdpChecksum_Generated_Enum int32 @@ -16631,11 +17528,11 @@ func (x PatternFlowUdpChecksum_Generated_Enum) String() string { } func (PatternFlowUdpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[304].Descriptor() + return file_otg_proto_enumTypes[319].Descriptor() } func (PatternFlowUdpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[304] + return &file_otg_proto_enumTypes[319] } func (x PatternFlowUdpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16644,7 +17541,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{731, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{780, 1, 0} } type PatternFlowGreChecksumPresent_Choice_Enum int32 @@ -16686,11 +17583,11 @@ func (x PatternFlowGreChecksumPresent_Choice_Enum) String() string { } func (PatternFlowGreChecksumPresent_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[305].Descriptor() + return file_otg_proto_enumTypes[320].Descriptor() } func (PatternFlowGreChecksumPresent_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[305] + return &file_otg_proto_enumTypes[320] } func (x PatternFlowGreChecksumPresent_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16699,7 +17596,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{734, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{783, 0, 0} } type PatternFlowGreReserved0_Choice_Enum int32 @@ -16741,11 +17638,11 @@ func (x PatternFlowGreReserved0_Choice_Enum) String() string { } func (PatternFlowGreReserved0_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[306].Descriptor() + return file_otg_proto_enumTypes[321].Descriptor() } func (PatternFlowGreReserved0_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[306] + return &file_otg_proto_enumTypes[321] } func (x PatternFlowGreReserved0_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16754,7 +17651,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{737, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{786, 0, 0} } type PatternFlowGreVersion_Choice_Enum int32 @@ -16796,11 +17693,11 @@ func (x PatternFlowGreVersion_Choice_Enum) String() string { } func (PatternFlowGreVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[307].Descriptor() + return file_otg_proto_enumTypes[322].Descriptor() } func (PatternFlowGreVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[307] + return &file_otg_proto_enumTypes[322] } func (x PatternFlowGreVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16809,7 +17706,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{740, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{789, 0, 0} } type PatternFlowGreProtocol_Choice_Enum int32 @@ -16851,11 +17748,11 @@ func (x PatternFlowGreProtocol_Choice_Enum) String() string { } func (PatternFlowGreProtocol_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[308].Descriptor() + return file_otg_proto_enumTypes[323].Descriptor() } func (PatternFlowGreProtocol_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[308] + return &file_otg_proto_enumTypes[323] } func (x PatternFlowGreProtocol_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16864,7 +17761,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{743, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{792, 0, 0} } type PatternFlowGreChecksum_Choice_Enum int32 @@ -16900,11 +17797,11 @@ func (x PatternFlowGreChecksum_Choice_Enum) String() string { } func (PatternFlowGreChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[309].Descriptor() + return file_otg_proto_enumTypes[324].Descriptor() } func (PatternFlowGreChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[309] + return &file_otg_proto_enumTypes[324] } func (x PatternFlowGreChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -16913,7 +17810,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{744, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{793, 0, 0} } type PatternFlowGreChecksum_Generated_Enum int32 @@ -16949,11 +17846,11 @@ func (x PatternFlowGreChecksum_Generated_Enum) String() string { } func (PatternFlowGreChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[310].Descriptor() + return file_otg_proto_enumTypes[325].Descriptor() } func (PatternFlowGreChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[310] + return &file_otg_proto_enumTypes[325] } func (x PatternFlowGreChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -16962,7 +17859,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{744, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{793, 1, 0} } type PatternFlowGreReserved1_Choice_Enum int32 @@ -17004,11 +17901,11 @@ func (x PatternFlowGreReserved1_Choice_Enum) String() string { } func (PatternFlowGreReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[311].Descriptor() + return file_otg_proto_enumTypes[326].Descriptor() } func (PatternFlowGreReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[311] + return &file_otg_proto_enumTypes[326] } func (x PatternFlowGreReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17017,7 +17914,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{747, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{796, 0, 0} } type PatternFlowGtpv1Version_Choice_Enum int32 @@ -17059,11 +17956,11 @@ func (x PatternFlowGtpv1Version_Choice_Enum) String() string { } func (PatternFlowGtpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[312].Descriptor() + return file_otg_proto_enumTypes[327].Descriptor() } func (PatternFlowGtpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[312] + return &file_otg_proto_enumTypes[327] } func (x PatternFlowGtpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17072,7 +17969,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{750, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{799, 0, 0} } type PatternFlowGtpv1ProtocolType_Choice_Enum int32 @@ -17114,11 +18011,11 @@ func (x PatternFlowGtpv1ProtocolType_Choice_Enum) String() string { } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[313].Descriptor() + return file_otg_proto_enumTypes[328].Descriptor() } func (PatternFlowGtpv1ProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[313] + return &file_otg_proto_enumTypes[328] } func (x PatternFlowGtpv1ProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17127,7 +18024,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{753, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{802, 0, 0} } type PatternFlowGtpv1Reserved_Choice_Enum int32 @@ -17169,11 +18066,11 @@ func (x PatternFlowGtpv1Reserved_Choice_Enum) String() string { } func (PatternFlowGtpv1Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[314].Descriptor() + return file_otg_proto_enumTypes[329].Descriptor() } func (PatternFlowGtpv1Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[314] + return &file_otg_proto_enumTypes[329] } func (x PatternFlowGtpv1Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17182,7 +18079,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{756, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{805, 0, 0} } type PatternFlowGtpv1EFlag_Choice_Enum int32 @@ -17224,11 +18121,11 @@ func (x PatternFlowGtpv1EFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1EFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[315].Descriptor() + return file_otg_proto_enumTypes[330].Descriptor() } func (PatternFlowGtpv1EFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[315] + return &file_otg_proto_enumTypes[330] } func (x PatternFlowGtpv1EFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17237,7 +18134,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{759, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{808, 0, 0} } type PatternFlowGtpv1SFlag_Choice_Enum int32 @@ -17279,11 +18176,11 @@ func (x PatternFlowGtpv1SFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1SFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[316].Descriptor() + return file_otg_proto_enumTypes[331].Descriptor() } func (PatternFlowGtpv1SFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[316] + return &file_otg_proto_enumTypes[331] } func (x PatternFlowGtpv1SFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17292,7 +18189,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{762, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{811, 0, 0} } type PatternFlowGtpv1PnFlag_Choice_Enum int32 @@ -17334,11 +18231,11 @@ func (x PatternFlowGtpv1PnFlag_Choice_Enum) String() string { } func (PatternFlowGtpv1PnFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[317].Descriptor() + return file_otg_proto_enumTypes[332].Descriptor() } func (PatternFlowGtpv1PnFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[317] + return &file_otg_proto_enumTypes[332] } func (x PatternFlowGtpv1PnFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17347,7 +18244,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{765, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{814, 0, 0} } type PatternFlowGtpv1MessageType_Choice_Enum int32 @@ -17389,11 +18286,11 @@ func (x PatternFlowGtpv1MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[318].Descriptor() + return file_otg_proto_enumTypes[333].Descriptor() } func (PatternFlowGtpv1MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[318] + return &file_otg_proto_enumTypes[333] } func (x PatternFlowGtpv1MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17402,7 +18299,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{768, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{817, 0, 0} } type PatternFlowGtpv1MessageLength_Choice_Enum int32 @@ -17444,11 +18341,11 @@ func (x PatternFlowGtpv1MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv1MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[319].Descriptor() + return file_otg_proto_enumTypes[334].Descriptor() } func (PatternFlowGtpv1MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[319] + return &file_otg_proto_enumTypes[334] } func (x PatternFlowGtpv1MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17457,7 +18354,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{771, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{820, 0, 0} } type PatternFlowGtpv1Teid_Choice_Enum int32 @@ -17499,11 +18396,11 @@ func (x PatternFlowGtpv1Teid_Choice_Enum) String() string { } func (PatternFlowGtpv1Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[320].Descriptor() + return file_otg_proto_enumTypes[335].Descriptor() } func (PatternFlowGtpv1Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[320] + return &file_otg_proto_enumTypes[335] } func (x PatternFlowGtpv1Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17512,7 +18409,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{774, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{823, 0, 0} } type PatternFlowGtpv1SquenceNumber_Choice_Enum int32 @@ -17554,11 +18451,11 @@ func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[321].Descriptor() + return file_otg_proto_enumTypes[336].Descriptor() } func (PatternFlowGtpv1SquenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[321] + return &file_otg_proto_enumTypes[336] } func (x PatternFlowGtpv1SquenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17567,7 +18464,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{777, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{826, 0, 0} } type PatternFlowGtpv1NPduNumber_Choice_Enum int32 @@ -17609,11 +18506,11 @@ func (x PatternFlowGtpv1NPduNumber_Choice_Enum) String() string { } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[322].Descriptor() + return file_otg_proto_enumTypes[337].Descriptor() } func (PatternFlowGtpv1NPduNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[322] + return &file_otg_proto_enumTypes[337] } func (x PatternFlowGtpv1NPduNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17622,7 +18519,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{780, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{829, 0, 0} } type PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum int32 @@ -17664,11 +18561,11 @@ func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) String() string { } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[323].Descriptor() + return file_otg_proto_enumTypes[338].Descriptor() } func (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[323] + return &file_otg_proto_enumTypes[338] } func (x PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17677,7 +18574,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{783, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{832, 0, 0} } type PatternFlowGtpExtensionExtensionLength_Choice_Enum int32 @@ -17719,11 +18616,11 @@ func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) String() string { } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[324].Descriptor() + return file_otg_proto_enumTypes[339].Descriptor() } func (PatternFlowGtpExtensionExtensionLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[324] + return &file_otg_proto_enumTypes[339] } func (x PatternFlowGtpExtensionExtensionLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17732,7 +18629,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{786, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{835, 0, 0} } type PatternFlowGtpExtensionContents_Choice_Enum int32 @@ -17774,11 +18671,11 @@ func (x PatternFlowGtpExtensionContents_Choice_Enum) String() string { } func (PatternFlowGtpExtensionContents_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[325].Descriptor() + return file_otg_proto_enumTypes[340].Descriptor() } func (PatternFlowGtpExtensionContents_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[325] + return &file_otg_proto_enumTypes[340] } func (x PatternFlowGtpExtensionContents_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17787,7 +18684,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{789, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{838, 0, 0} } type PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum int32 @@ -17829,11 +18726,11 @@ func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) String() string } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[326].Descriptor() + return file_otg_proto_enumTypes[341].Descriptor() } func (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[326] + return &file_otg_proto_enumTypes[341] } func (x PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17842,7 +18739,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{792, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{841, 0, 0} } type PatternFlowGtpv2Version_Choice_Enum int32 @@ -17884,11 +18781,11 @@ func (x PatternFlowGtpv2Version_Choice_Enum) String() string { } func (PatternFlowGtpv2Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[327].Descriptor() + return file_otg_proto_enumTypes[342].Descriptor() } func (PatternFlowGtpv2Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[327] + return &file_otg_proto_enumTypes[342] } func (x PatternFlowGtpv2Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17897,7 +18794,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{795, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{844, 0, 0} } type PatternFlowGtpv2PiggybackingFlag_Choice_Enum int32 @@ -17939,11 +18836,11 @@ func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[328].Descriptor() + return file_otg_proto_enumTypes[343].Descriptor() } func (PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[328] + return &file_otg_proto_enumTypes[343] } func (x PatternFlowGtpv2PiggybackingFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -17952,7 +18849,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{798, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{847, 0, 0} } type PatternFlowGtpv2TeidFlag_Choice_Enum int32 @@ -17994,11 +18891,11 @@ func (x PatternFlowGtpv2TeidFlag_Choice_Enum) String() string { } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[329].Descriptor() + return file_otg_proto_enumTypes[344].Descriptor() } func (PatternFlowGtpv2TeidFlag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[329] + return &file_otg_proto_enumTypes[344] } func (x PatternFlowGtpv2TeidFlag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18007,7 +18904,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{801, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{850, 0, 0} } type PatternFlowGtpv2Spare1_Choice_Enum int32 @@ -18049,11 +18946,11 @@ func (x PatternFlowGtpv2Spare1_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[330].Descriptor() + return file_otg_proto_enumTypes[345].Descriptor() } func (PatternFlowGtpv2Spare1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[330] + return &file_otg_proto_enumTypes[345] } func (x PatternFlowGtpv2Spare1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18062,7 +18959,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{804, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{853, 0, 0} } type PatternFlowGtpv2MessageType_Choice_Enum int32 @@ -18104,11 +19001,11 @@ func (x PatternFlowGtpv2MessageType_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[331].Descriptor() + return file_otg_proto_enumTypes[346].Descriptor() } func (PatternFlowGtpv2MessageType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[331] + return &file_otg_proto_enumTypes[346] } func (x PatternFlowGtpv2MessageType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18117,7 +19014,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{807, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{856, 0, 0} } type PatternFlowGtpv2MessageLength_Choice_Enum int32 @@ -18159,11 +19056,11 @@ func (x PatternFlowGtpv2MessageLength_Choice_Enum) String() string { } func (PatternFlowGtpv2MessageLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[332].Descriptor() + return file_otg_proto_enumTypes[347].Descriptor() } func (PatternFlowGtpv2MessageLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[332] + return &file_otg_proto_enumTypes[347] } func (x PatternFlowGtpv2MessageLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18172,7 +19069,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{810, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{859, 0, 0} } type PatternFlowGtpv2Teid_Choice_Enum int32 @@ -18214,11 +19111,11 @@ func (x PatternFlowGtpv2Teid_Choice_Enum) String() string { } func (PatternFlowGtpv2Teid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[333].Descriptor() + return file_otg_proto_enumTypes[348].Descriptor() } func (PatternFlowGtpv2Teid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[333] + return &file_otg_proto_enumTypes[348] } func (x PatternFlowGtpv2Teid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18227,7 +19124,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{813, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{862, 0, 0} } type PatternFlowGtpv2SequenceNumber_Choice_Enum int32 @@ -18269,11 +19166,11 @@ func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) String() string { } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[334].Descriptor() + return file_otg_proto_enumTypes[349].Descriptor() } func (PatternFlowGtpv2SequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[334] + return &file_otg_proto_enumTypes[349] } func (x PatternFlowGtpv2SequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18282,7 +19179,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{816, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{865, 0, 0} } type PatternFlowGtpv2Spare2_Choice_Enum int32 @@ -18324,11 +19221,11 @@ func (x PatternFlowGtpv2Spare2_Choice_Enum) String() string { } func (PatternFlowGtpv2Spare2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[335].Descriptor() + return file_otg_proto_enumTypes[350].Descriptor() } func (PatternFlowGtpv2Spare2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[335] + return &file_otg_proto_enumTypes[350] } func (x PatternFlowGtpv2Spare2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18337,7 +19234,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{819, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{868, 0, 0} } type PatternFlowArpHardwareType_Choice_Enum int32 @@ -18379,11 +19276,11 @@ func (x PatternFlowArpHardwareType_Choice_Enum) String() string { } func (PatternFlowArpHardwareType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[336].Descriptor() + return file_otg_proto_enumTypes[351].Descriptor() } func (PatternFlowArpHardwareType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[336] + return &file_otg_proto_enumTypes[351] } func (x PatternFlowArpHardwareType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18392,7 +19289,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{822, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{871, 0, 0} } type PatternFlowArpProtocolType_Choice_Enum int32 @@ -18434,11 +19331,11 @@ func (x PatternFlowArpProtocolType_Choice_Enum) String() string { } func (PatternFlowArpProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[337].Descriptor() + return file_otg_proto_enumTypes[352].Descriptor() } func (PatternFlowArpProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[337] + return &file_otg_proto_enumTypes[352] } func (x PatternFlowArpProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18447,7 +19344,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{825, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{874, 0, 0} } type PatternFlowArpHardwareLength_Choice_Enum int32 @@ -18489,11 +19386,11 @@ func (x PatternFlowArpHardwareLength_Choice_Enum) String() string { } func (PatternFlowArpHardwareLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[338].Descriptor() + return file_otg_proto_enumTypes[353].Descriptor() } func (PatternFlowArpHardwareLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[338] + return &file_otg_proto_enumTypes[353] } func (x PatternFlowArpHardwareLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18502,7 +19399,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{828, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{877, 0, 0} } type PatternFlowArpProtocolLength_Choice_Enum int32 @@ -18544,11 +19441,11 @@ func (x PatternFlowArpProtocolLength_Choice_Enum) String() string { } func (PatternFlowArpProtocolLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[339].Descriptor() + return file_otg_proto_enumTypes[354].Descriptor() } func (PatternFlowArpProtocolLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[339] + return &file_otg_proto_enumTypes[354] } func (x PatternFlowArpProtocolLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18557,7 +19454,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{831, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{880, 0, 0} } type PatternFlowArpOperation_Choice_Enum int32 @@ -18599,11 +19496,11 @@ func (x PatternFlowArpOperation_Choice_Enum) String() string { } func (PatternFlowArpOperation_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[340].Descriptor() + return file_otg_proto_enumTypes[355].Descriptor() } func (PatternFlowArpOperation_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[340] + return &file_otg_proto_enumTypes[355] } func (x PatternFlowArpOperation_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18612,7 +19509,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{834, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{883, 0, 0} } type PatternFlowArpSenderHardwareAddr_Choice_Enum int32 @@ -18654,11 +19551,11 @@ func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[341].Descriptor() + return file_otg_proto_enumTypes[356].Descriptor() } func (PatternFlowArpSenderHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[341] + return &file_otg_proto_enumTypes[356] } func (x PatternFlowArpSenderHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18667,7 +19564,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{837, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{886, 0, 0} } type PatternFlowArpSenderProtocolAddr_Choice_Enum int32 @@ -18709,11 +19606,11 @@ func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[342].Descriptor() + return file_otg_proto_enumTypes[357].Descriptor() } func (PatternFlowArpSenderProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[342] + return &file_otg_proto_enumTypes[357] } func (x PatternFlowArpSenderProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18722,7 +19619,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{840, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{889, 0, 0} } type PatternFlowArpTargetHardwareAddr_Choice_Enum int32 @@ -18764,11 +19661,11 @@ func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[343].Descriptor() + return file_otg_proto_enumTypes[358].Descriptor() } func (PatternFlowArpTargetHardwareAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[343] + return &file_otg_proto_enumTypes[358] } func (x PatternFlowArpTargetHardwareAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18777,7 +19674,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{843, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{892, 0, 0} } type PatternFlowArpTargetProtocolAddr_Choice_Enum int32 @@ -18819,11 +19716,11 @@ func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) String() string { } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[344].Descriptor() + return file_otg_proto_enumTypes[359].Descriptor() } func (PatternFlowArpTargetProtocolAddr_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[344] + return &file_otg_proto_enumTypes[359] } func (x PatternFlowArpTargetProtocolAddr_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18832,7 +19729,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{846, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{895, 0, 0} } type PatternFlowIcmpEchoType_Choice_Enum int32 @@ -18874,11 +19771,11 @@ func (x PatternFlowIcmpEchoType_Choice_Enum) String() string { } func (PatternFlowIcmpEchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[345].Descriptor() + return file_otg_proto_enumTypes[360].Descriptor() } func (PatternFlowIcmpEchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[345] + return &file_otg_proto_enumTypes[360] } func (x PatternFlowIcmpEchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18887,7 +19784,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{849, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{898, 0, 0} } type PatternFlowIcmpEchoCode_Choice_Enum int32 @@ -18929,11 +19826,11 @@ func (x PatternFlowIcmpEchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpEchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[346].Descriptor() + return file_otg_proto_enumTypes[361].Descriptor() } func (PatternFlowIcmpEchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[346] + return &file_otg_proto_enumTypes[361] } func (x PatternFlowIcmpEchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18942,7 +19839,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{852, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{901, 0, 0} } type PatternFlowIcmpEchoChecksum_Choice_Enum int32 @@ -18978,11 +19875,11 @@ func (x PatternFlowIcmpEchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[347].Descriptor() + return file_otg_proto_enumTypes[362].Descriptor() } func (PatternFlowIcmpEchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[347] + return &file_otg_proto_enumTypes[362] } func (x PatternFlowIcmpEchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -18991,7 +19888,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{853, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{902, 0, 0} } type PatternFlowIcmpEchoChecksum_Generated_Enum int32 @@ -19027,11 +19924,11 @@ func (x PatternFlowIcmpEchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[348].Descriptor() + return file_otg_proto_enumTypes[363].Descriptor() } func (PatternFlowIcmpEchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[348] + return &file_otg_proto_enumTypes[363] } func (x PatternFlowIcmpEchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -19040,7 +19937,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{853, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{902, 1, 0} } type PatternFlowIcmpEchoIdentifier_Choice_Enum int32 @@ -19082,11 +19979,11 @@ func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[349].Descriptor() + return file_otg_proto_enumTypes[364].Descriptor() } func (PatternFlowIcmpEchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[349] + return &file_otg_proto_enumTypes[364] } func (x PatternFlowIcmpEchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19095,7 +19992,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{856, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{905, 0, 0} } type PatternFlowIcmpEchoSequenceNumber_Choice_Enum int32 @@ -19137,11 +20034,11 @@ func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[350].Descriptor() + return file_otg_proto_enumTypes[365].Descriptor() } func (PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[350] + return &file_otg_proto_enumTypes[365] } func (x PatternFlowIcmpEchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19150,7 +20047,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{859, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{908, 0, 0} } type PatternFlowIcmpCommonChecksum_Choice_Enum int32 @@ -19186,11 +20083,11 @@ func (x PatternFlowIcmpCommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[351].Descriptor() + return file_otg_proto_enumTypes[366].Descriptor() } func (PatternFlowIcmpCommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[351] + return &file_otg_proto_enumTypes[366] } func (x PatternFlowIcmpCommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19199,7 +20096,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{860, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{909, 0, 0} } type PatternFlowIcmpCommonChecksum_Generated_Enum int32 @@ -19235,11 +20132,11 @@ func (x PatternFlowIcmpCommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[352].Descriptor() + return file_otg_proto_enumTypes[367].Descriptor() } func (PatternFlowIcmpCommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[352] + return &file_otg_proto_enumTypes[367] } func (x PatternFlowIcmpCommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -19248,7 +20145,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{860, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{909, 1, 0} } type PatternFlowIcmpNextFieldsIdentifier_Choice_Enum int32 @@ -19290,11 +20187,11 @@ func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[353].Descriptor() + return file_otg_proto_enumTypes[368].Descriptor() } func (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[353] + return &file_otg_proto_enumTypes[368] } func (x PatternFlowIcmpNextFieldsIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19303,7 +20200,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{863, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{912, 0, 0} } type PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum int32 @@ -19345,11 +20242,11 @@ func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[354].Descriptor() + return file_otg_proto_enumTypes[369].Descriptor() } func (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[354] + return &file_otg_proto_enumTypes[369] } func (x PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19358,7 +20255,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{866, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{915, 0, 0} } type PatternFlowIcmpv6EchoType_Choice_Enum int32 @@ -19400,11 +20297,11 @@ func (x PatternFlowIcmpv6EchoType_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[355].Descriptor() + return file_otg_proto_enumTypes[370].Descriptor() } func (PatternFlowIcmpv6EchoType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[355] + return &file_otg_proto_enumTypes[370] } func (x PatternFlowIcmpv6EchoType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19413,7 +20310,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{869, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{918, 0, 0} } type PatternFlowIcmpv6EchoCode_Choice_Enum int32 @@ -19455,11 +20352,11 @@ func (x PatternFlowIcmpv6EchoCode_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[356].Descriptor() + return file_otg_proto_enumTypes[371].Descriptor() } func (PatternFlowIcmpv6EchoCode_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[356] + return &file_otg_proto_enumTypes[371] } func (x PatternFlowIcmpv6EchoCode_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19468,7 +20365,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{872, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{921, 0, 0} } type PatternFlowIcmpv6EchoIdentifier_Choice_Enum int32 @@ -19510,11 +20407,11 @@ func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[357].Descriptor() + return file_otg_proto_enumTypes[372].Descriptor() } func (PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[357] + return &file_otg_proto_enumTypes[372] } func (x PatternFlowIcmpv6EchoIdentifier_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19523,7 +20420,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{875, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{924, 0, 0} } type PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum int32 @@ -19565,11 +20462,11 @@ func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[358].Descriptor() + return file_otg_proto_enumTypes[373].Descriptor() } func (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[358] + return &file_otg_proto_enumTypes[373] } func (x PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19578,7 +20475,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{878, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{927, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Choice_Enum int32 @@ -19614,11 +20511,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[359].Descriptor() + return file_otg_proto_enumTypes[374].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[359] + return &file_otg_proto_enumTypes[374] } func (x PatternFlowIcmpv6EchoChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19627,7 +20524,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{879, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{928, 0, 0} } type PatternFlowIcmpv6EchoChecksum_Generated_Enum int32 @@ -19663,11 +20560,11 @@ func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[360].Descriptor() + return file_otg_proto_enumTypes[375].Descriptor() } func (PatternFlowIcmpv6EchoChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[360] + return &file_otg_proto_enumTypes[375] } func (x PatternFlowIcmpv6EchoChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -19676,7 +20573,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{879, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{928, 1, 0} } type PatternFlowIcmpv6CommonChecksum_Choice_Enum int32 @@ -19712,11 +20609,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[361].Descriptor() + return file_otg_proto_enumTypes[376].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[361] + return &file_otg_proto_enumTypes[376] } func (x PatternFlowIcmpv6CommonChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19725,7 +20622,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{880, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{929, 0, 0} } type PatternFlowIcmpv6CommonChecksum_Generated_Enum int32 @@ -19761,11 +20658,11 @@ func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) String() string { } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[362].Descriptor() + return file_otg_proto_enumTypes[377].Descriptor() } func (PatternFlowIcmpv6CommonChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[362] + return &file_otg_proto_enumTypes[377] } func (x PatternFlowIcmpv6CommonChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -19774,7 +20671,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{880, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{929, 1, 0} } type PatternFlowPppAddress_Choice_Enum int32 @@ -19816,11 +20713,11 @@ func (x PatternFlowPppAddress_Choice_Enum) String() string { } func (PatternFlowPppAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[363].Descriptor() + return file_otg_proto_enumTypes[378].Descriptor() } func (PatternFlowPppAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[363] + return &file_otg_proto_enumTypes[378] } func (x PatternFlowPppAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19829,7 +20726,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{883, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{932, 0, 0} } type PatternFlowPppControl_Choice_Enum int32 @@ -19871,11 +20768,11 @@ func (x PatternFlowPppControl_Choice_Enum) String() string { } func (PatternFlowPppControl_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[364].Descriptor() + return file_otg_proto_enumTypes[379].Descriptor() } func (PatternFlowPppControl_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[364] + return &file_otg_proto_enumTypes[379] } func (x PatternFlowPppControl_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19884,7 +20781,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{886, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{935, 0, 0} } type PatternFlowPppProtocolType_Choice_Enum int32 @@ -19929,11 +20826,11 @@ func (x PatternFlowPppProtocolType_Choice_Enum) String() string { } func (PatternFlowPppProtocolType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[365].Descriptor() + return file_otg_proto_enumTypes[380].Descriptor() } func (PatternFlowPppProtocolType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[365] + return &file_otg_proto_enumTypes[380] } func (x PatternFlowPppProtocolType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19942,7 +20839,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{889, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{938, 0, 0} } type PatternFlowIgmpv1Version_Choice_Enum int32 @@ -19984,11 +20881,11 @@ func (x PatternFlowIgmpv1Version_Choice_Enum) String() string { } func (PatternFlowIgmpv1Version_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[366].Descriptor() + return file_otg_proto_enumTypes[381].Descriptor() } func (PatternFlowIgmpv1Version_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[366] + return &file_otg_proto_enumTypes[381] } func (x PatternFlowIgmpv1Version_Choice_Enum) Number() protoreflect.EnumNumber { @@ -19997,7 +20894,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{892, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{941, 0, 0} } type PatternFlowIgmpv1Type_Choice_Enum int32 @@ -20039,11 +20936,11 @@ func (x PatternFlowIgmpv1Type_Choice_Enum) String() string { } func (PatternFlowIgmpv1Type_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[367].Descriptor() + return file_otg_proto_enumTypes[382].Descriptor() } func (PatternFlowIgmpv1Type_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[367] + return &file_otg_proto_enumTypes[382] } func (x PatternFlowIgmpv1Type_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20052,7 +20949,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{895, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{944, 0, 0} } type PatternFlowIgmpv1Unused_Choice_Enum int32 @@ -20094,11 +20991,11 @@ func (x PatternFlowIgmpv1Unused_Choice_Enum) String() string { } func (PatternFlowIgmpv1Unused_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[368].Descriptor() + return file_otg_proto_enumTypes[383].Descriptor() } func (PatternFlowIgmpv1Unused_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[368] + return &file_otg_proto_enumTypes[383] } func (x PatternFlowIgmpv1Unused_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20107,7 +21004,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{898, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{947, 0, 0} } type PatternFlowIgmpv1Checksum_Choice_Enum int32 @@ -20143,11 +21040,11 @@ func (x PatternFlowIgmpv1Checksum_Choice_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[369].Descriptor() + return file_otg_proto_enumTypes[384].Descriptor() } func (PatternFlowIgmpv1Checksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[369] + return &file_otg_proto_enumTypes[384] } func (x PatternFlowIgmpv1Checksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20156,7 +21053,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{899, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{948, 0, 0} } type PatternFlowIgmpv1Checksum_Generated_Enum int32 @@ -20192,11 +21089,11 @@ func (x PatternFlowIgmpv1Checksum_Generated_Enum) String() string { } func (PatternFlowIgmpv1Checksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[370].Descriptor() + return file_otg_proto_enumTypes[385].Descriptor() } func (PatternFlowIgmpv1Checksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[370] + return &file_otg_proto_enumTypes[385] } func (x PatternFlowIgmpv1Checksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -20205,7 +21102,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{899, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{948, 1, 0} } type PatternFlowIgmpv1GroupAddress_Choice_Enum int32 @@ -20247,11 +21144,11 @@ func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) String() string { } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[371].Descriptor() + return file_otg_proto_enumTypes[386].Descriptor() } func (PatternFlowIgmpv1GroupAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[371] + return &file_otg_proto_enumTypes[386] } func (x PatternFlowIgmpv1GroupAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20260,7 +21157,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{902, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{951, 0, 0} } type PatternFlowMplsLabel_Choice_Enum int32 @@ -20305,11 +21202,11 @@ func (x PatternFlowMplsLabel_Choice_Enum) String() string { } func (PatternFlowMplsLabel_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[372].Descriptor() + return file_otg_proto_enumTypes[387].Descriptor() } func (PatternFlowMplsLabel_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[372] + return &file_otg_proto_enumTypes[387] } func (x PatternFlowMplsLabel_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20318,7 +21215,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{905, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{954, 0, 0} } type PatternFlowMplsTrafficClass_Choice_Enum int32 @@ -20360,11 +21257,11 @@ func (x PatternFlowMplsTrafficClass_Choice_Enum) String() string { } func (PatternFlowMplsTrafficClass_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[373].Descriptor() + return file_otg_proto_enumTypes[388].Descriptor() } func (PatternFlowMplsTrafficClass_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[373] + return &file_otg_proto_enumTypes[388] } func (x PatternFlowMplsTrafficClass_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20373,7 +21270,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{908, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{957, 0, 0} } type PatternFlowMplsBottomOfStack_Choice_Enum int32 @@ -20418,11 +21315,11 @@ func (x PatternFlowMplsBottomOfStack_Choice_Enum) String() string { } func (PatternFlowMplsBottomOfStack_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[374].Descriptor() + return file_otg_proto_enumTypes[389].Descriptor() } func (PatternFlowMplsBottomOfStack_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[374] + return &file_otg_proto_enumTypes[389] } func (x PatternFlowMplsBottomOfStack_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20431,7 +21328,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{911, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{960, 0, 0} } type PatternFlowMplsTimeToLive_Choice_Enum int32 @@ -20473,11 +21370,11 @@ func (x PatternFlowMplsTimeToLive_Choice_Enum) String() string { } func (PatternFlowMplsTimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[375].Descriptor() + return file_otg_proto_enumTypes[390].Descriptor() } func (PatternFlowMplsTimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[375] + return &file_otg_proto_enumTypes[390] } func (x PatternFlowMplsTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20486,7 +21383,7 @@ 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{914, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{963, 0, 0} } type PatternFlowSnmpv2CVersion_Choice_Enum int32 @@ -20528,11 +21425,11 @@ func (x PatternFlowSnmpv2CVersion_Choice_Enum) String() string { } func (PatternFlowSnmpv2CVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[376].Descriptor() + return file_otg_proto_enumTypes[391].Descriptor() } func (PatternFlowSnmpv2CVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[376] + return &file_otg_proto_enumTypes[391] } func (x PatternFlowSnmpv2CVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20541,7 +21438,7 @@ func (x PatternFlowSnmpv2CVersion_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowSnmpv2CVersion_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{916, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{965, 0, 0} } type PatternFlowSnmpv2CPDURequestId_Choice_Enum int32 @@ -20583,11 +21480,11 @@ func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) String() string { } func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[377].Descriptor() + return file_otg_proto_enumTypes[392].Descriptor() } func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[377] + return &file_otg_proto_enumTypes[392] } func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20596,7 +21493,7 @@ func (x PatternFlowSnmpv2CPDURequestId_Choice_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowSnmpv2CPDURequestId_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CPDURequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{918, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{967, 0, 0} } type PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum int32 @@ -20638,11 +21535,11 @@ func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) String() string { } func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[378].Descriptor() + return file_otg_proto_enumTypes[393].Descriptor() } func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[378] + return &file_otg_proto_enumTypes[393] } func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20651,7 +21548,7 @@ func (x PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) Number() protoreflect.EnumN // Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{920, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{969, 0, 0} } type PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum int32 @@ -20693,11 +21590,11 @@ func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) String() string { } func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[379].Descriptor() + return file_otg_proto_enumTypes[394].Descriptor() } func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[379] + return &file_otg_proto_enumTypes[394] } func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20706,7 +21603,7 @@ func (x PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) Number() protoreflect.En // Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{922, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{971, 0, 0} } type PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum int32 @@ -20742,11 +21639,11 @@ func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) String() string { } func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[380].Descriptor() + return file_otg_proto_enumTypes[395].Descriptor() } func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[380] + return &file_otg_proto_enumTypes[395] } func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20755,7 +21652,7 @@ func (x PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) Number() protoreflect // Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{923, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{972, 0, 0} } type PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum int32 @@ -20797,11 +21694,11 @@ func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) String() string { } func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[381].Descriptor() + return file_otg_proto_enumTypes[396].Descriptor() } func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[381] + return &file_otg_proto_enumTypes[396] } func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20810,7 +21707,7 @@ func (x PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) Number() protorefle // Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{925, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{974, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum int32 @@ -20852,11 +21749,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) String() } func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[382].Descriptor() + return file_otg_proto_enumTypes[397].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[382] + return &file_otg_proto_enumTypes[397] } func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20865,7 +21762,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) Number() // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{927, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{976, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum int32 @@ -20907,11 +21804,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) String } func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[383].Descriptor() + return file_otg_proto_enumTypes[398].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[383] + return &file_otg_proto_enumTypes[398] } func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20920,7 +21817,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) Number // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{929, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{978, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum int32 @@ -20962,11 +21859,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) String() } func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[384].Descriptor() + return file_otg_proto_enumTypes[399].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[384] + return &file_otg_proto_enumTypes[399] } func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -20975,7 +21872,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) Number() // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{931, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{980, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum int32 @@ -21017,11 +21914,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) String } func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[385].Descriptor() + return file_otg_proto_enumTypes[400].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[385] + return &file_otg_proto_enumTypes[400] } func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21030,7 +21927,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) Number // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{933, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{982, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum int32 @@ -21072,11 +21969,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Strin } func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[386].Descriptor() + return file_otg_proto_enumTypes[401].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[386] + return &file_otg_proto_enumTypes[401] } func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21085,7 +21982,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) Numbe // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{935, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{984, 0, 0} } type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum int32 @@ -21127,11 +22024,11 @@ func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) } func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[387].Descriptor() + return file_otg_proto_enumTypes[402].Descriptor() } func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[387] + return &file_otg_proto_enumTypes[402] } func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21140,7 +22037,7 @@ func (x PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) // Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{937, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{986, 0, 0} } type PatternFlowSnmpv2CCommonRequestId_Choice_Enum int32 @@ -21182,11 +22079,11 @@ func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) String() string { } func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[388].Descriptor() + return file_otg_proto_enumTypes[403].Descriptor() } func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[388] + return &file_otg_proto_enumTypes[403] } func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21195,7 +22092,7 @@ func (x PatternFlowSnmpv2CCommonRequestId_Choice_Enum) Number() protoreflect.Enu // Deprecated: Use PatternFlowSnmpv2CCommonRequestId_Choice_Enum.Descriptor instead. func (PatternFlowSnmpv2CCommonRequestId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{939, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{988, 0, 0} } type PatternFlowRsvpRsvpChecksum_Choice_Enum int32 @@ -21231,11 +22128,11 @@ func (x PatternFlowRsvpRsvpChecksum_Choice_Enum) String() string { } func (PatternFlowRsvpRsvpChecksum_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[389].Descriptor() + return file_otg_proto_enumTypes[404].Descriptor() } func (PatternFlowRsvpRsvpChecksum_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[389] + return &file_otg_proto_enumTypes[404] } func (x PatternFlowRsvpRsvpChecksum_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21244,7 +22141,7 @@ func (x PatternFlowRsvpRsvpChecksum_Choice_Enum) Number() protoreflect.EnumNumbe // Deprecated: Use PatternFlowRsvpRsvpChecksum_Choice_Enum.Descriptor instead. func (PatternFlowRsvpRsvpChecksum_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{940, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{989, 0, 0} } type PatternFlowRsvpRsvpChecksum_Generated_Enum int32 @@ -21280,11 +22177,11 @@ func (x PatternFlowRsvpRsvpChecksum_Generated_Enum) String() string { } func (PatternFlowRsvpRsvpChecksum_Generated_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[390].Descriptor() + return file_otg_proto_enumTypes[405].Descriptor() } func (PatternFlowRsvpRsvpChecksum_Generated_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[390] + return &file_otg_proto_enumTypes[405] } func (x PatternFlowRsvpRsvpChecksum_Generated_Enum) Number() protoreflect.EnumNumber { @@ -21293,7 +22190,7 @@ func (x PatternFlowRsvpRsvpChecksum_Generated_Enum) Number() protoreflect.EnumNu // Deprecated: Use PatternFlowRsvpRsvpChecksum_Generated_Enum.Descriptor instead. func (PatternFlowRsvpRsvpChecksum_Generated_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{940, 1, 0} + return file_otg_proto_rawDescGZIP(), []int{989, 1, 0} } type PatternFlowRsvpTimeToLive_Choice_Enum int32 @@ -21335,11 +22232,11 @@ func (x PatternFlowRsvpTimeToLive_Choice_Enum) String() string { } func (PatternFlowRsvpTimeToLive_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[391].Descriptor() + return file_otg_proto_enumTypes[406].Descriptor() } func (PatternFlowRsvpTimeToLive_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[391] + return &file_otg_proto_enumTypes[406] } func (x PatternFlowRsvpTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21348,7 +22245,7 @@ func (x PatternFlowRsvpTimeToLive_Choice_Enum) Number() protoreflect.EnumNumber // Deprecated: Use PatternFlowRsvpTimeToLive_Choice_Enum.Descriptor instead. func (PatternFlowRsvpTimeToLive_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{942, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{991, 0, 0} } type PatternFlowRsvpReserved_Choice_Enum int32 @@ -21390,11 +22287,11 @@ func (x PatternFlowRsvpReserved_Choice_Enum) String() string { } func (PatternFlowRsvpReserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[392].Descriptor() + return file_otg_proto_enumTypes[407].Descriptor() } func (PatternFlowRsvpReserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[392] + return &file_otg_proto_enumTypes[407] } func (x PatternFlowRsvpReserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21403,7 +22300,7 @@ func (x PatternFlowRsvpReserved_Choice_Enum) Number() protoreflect.EnumNumber { // Deprecated: Use PatternFlowRsvpReserved_Choice_Enum.Descriptor instead. func (PatternFlowRsvpReserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{944, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{993, 0, 0} } type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum int32 @@ -21445,11 +22342,11 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_ } func (PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[393].Descriptor() + return file_otg_proto_enumTypes[408].Descriptor() } func (PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[393] + return &file_otg_proto_enumTypes[408] } func (x PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21458,7 +22355,7 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_ // Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{946, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{995, 0, 0} } type PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum int32 @@ -21500,11 +22397,11 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) String() st } func (PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[394].Descriptor() + return file_otg_proto_enumTypes[409].Descriptor() } func (PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[394] + return &file_otg_proto_enumTypes[409] } func (x PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21513,7 +22410,7 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) Number() pr // Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{948, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{997, 0, 0} } type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum int32 @@ -21555,11 +22452,11 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) String() st } func (PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[395].Descriptor() + return file_otg_proto_enumTypes[410].Descriptor() } func (PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[395] + return &file_otg_proto_enumTypes[410] } func (x PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21568,7 +22465,7 @@ func (x PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) Number() pr // Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{950, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{999, 0, 0} } type PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum int32 @@ -21610,11 +22507,11 @@ func (x PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) String() str } func (PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[396].Descriptor() + return file_otg_proto_enumTypes[411].Descriptor() } func (PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[396] + return &file_otg_proto_enumTypes[411] } func (x PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21623,7 +22520,7 @@ func (x PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) Number() pro // Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{952, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1001, 0, 0} } type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum int32 @@ -21665,11 +22562,11 @@ func (x PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) String() string } func (PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[397].Descriptor() + return file_otg_proto_enumTypes[412].Descriptor() } func (PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[397] + return &file_otg_proto_enumTypes[412] } func (x PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21678,7 +22575,7 @@ func (x PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) Number() protor // Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{954, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1003, 0, 0} } type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum int32 @@ -21720,11 +22617,11 @@ func (x PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) String() string { } func (PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[398].Descriptor() + return file_otg_proto_enumTypes[413].Descriptor() } func (PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[398] + return &file_otg_proto_enumTypes[413] } func (x PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21733,7 +22630,7 @@ func (x PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) Number() protoref // Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{956, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1005, 0, 0} } type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum int32 @@ -21775,11 +22672,11 @@ func (x PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) String } func (PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[399].Descriptor() + return file_otg_proto_enumTypes[414].Descriptor() } func (PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[399] + return &file_otg_proto_enumTypes[414] } func (x PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21788,7 +22685,7 @@ func (x PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) Number // Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{958, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1007, 0, 0} } type PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum int32 @@ -21830,11 +22727,11 @@ func (x PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) String() s } func (PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[400].Descriptor() + return file_otg_proto_enumTypes[415].Descriptor() } func (PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[400] + return &file_otg_proto_enumTypes[415] } func (x PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21843,7 +22740,7 @@ func (x PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) Number() p // Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{960, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1009, 0, 0} } type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum int32 @@ -21885,11 +22782,11 @@ func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) String( } func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[401].Descriptor() + return file_otg_proto_enumTypes[416].Descriptor() } func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[401] + return &file_otg_proto_enumTypes[416] } func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21898,7 +22795,7 @@ func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) Number( // Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{962, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1011, 0, 0} } type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum int32 @@ -21940,11 +22837,11 @@ func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) } func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[402].Descriptor() + return file_otg_proto_enumTypes[417].Descriptor() } func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[402] + return &file_otg_proto_enumTypes[417] } func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) Number() protoreflect.EnumNumber { @@ -21953,7 +22850,7 @@ func (x PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) // Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{964, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1013, 0, 0} } type PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum int32 @@ -21995,11 +22892,11 @@ func (x PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) String() } func (PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[403].Descriptor() + return file_otg_proto_enumTypes[418].Descriptor() } func (PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[403] + return &file_otg_proto_enumTypes[418] } func (x PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22008,7 +22905,7 @@ func (x PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) Number() // Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{966, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1015, 0, 0} } type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum int32 @@ -22050,11 +22947,11 @@ func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) St } func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[404].Descriptor() + return file_otg_proto_enumTypes[419].Descriptor() } func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[404] + return &file_otg_proto_enumTypes[419] } func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22063,7 +22960,7 @@ func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) Nu // Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{968, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1017, 0, 0} } type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum int32 @@ -22105,11 +23002,11 @@ func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) Strin } func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[405].Descriptor() + return file_otg_proto_enumTypes[420].Descriptor() } func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[405] + return &file_otg_proto_enumTypes[420] } func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22118,7 +23015,7 @@ func (x PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) Numbe // Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{970, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1019, 0, 0} } type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum int32 @@ -22160,11 +23057,11 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Ch } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[406].Descriptor() + return file_otg_proto_enumTypes[421].Descriptor() } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[406] + return &file_otg_proto_enumTypes[421] } func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22173,7 +23070,7 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Ch // Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{972, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1021, 0, 0} } type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum int32 @@ -22215,11 +23112,11 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) Stri } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[407].Descriptor() + return file_otg_proto_enumTypes[422].Descriptor() } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[407] + return &file_otg_proto_enumTypes[422] } func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22228,7 +23125,7 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) Numb // Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{974, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1023, 0, 0} } type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum int32 @@ -22270,11 +23167,11 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) String( } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[408].Descriptor() + return file_otg_proto_enumTypes[423].Descriptor() } func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[408] + return &file_otg_proto_enumTypes[423] } func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22283,7 +23180,7 @@ func (x PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) Number( // Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{976, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1025, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum int32 @@ -22325,11 +23222,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) String() strin } func (PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[409].Descriptor() + return file_otg_proto_enumTypes[424].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[409] + return &file_otg_proto_enumTypes[424] } func (x PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22338,7 +23235,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) Number() proto // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{978, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1027, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum int32 @@ -22380,11 +23277,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) String() str } func (PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[410].Descriptor() + return file_otg_proto_enumTypes[425].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[410] + return &file_otg_proto_enumTypes[425] } func (x PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22393,7 +23290,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) Number() pro // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{980, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1029, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum int32 @@ -22435,11 +23332,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) String() } func (PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[411].Descriptor() + return file_otg_proto_enumTypes[426].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[411] + return &file_otg_proto_enumTypes[426] } func (x PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22448,7 +23345,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) Number() // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{982, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1031, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum int32 @@ -22490,11 +23387,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) String() } func (PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[412].Descriptor() + return file_otg_proto_enumTypes[427].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[412] + return &file_otg_proto_enumTypes[427] } func (x PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22503,7 +23400,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) Number() // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{984, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1033, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum int32 @@ -22545,11 +23442,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) String() strin } func (PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[413].Descriptor() + return file_otg_proto_enumTypes[428].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[413] + return &file_otg_proto_enumTypes[428] } func (x PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22558,7 +23455,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) Number() proto // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{986, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1035, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum int32 @@ -22600,11 +23497,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) String() str } func (PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[414].Descriptor() + return file_otg_proto_enumTypes[429].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[414] + return &file_otg_proto_enumTypes[429] } func (x PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22613,7 +23510,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) Number() pro // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{988, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1037, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum int32 @@ -22655,11 +23552,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) St } func (PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[415].Descriptor() + return file_otg_proto_enumTypes[430].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[415] + return &file_otg_proto_enumTypes[430] } func (x PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22668,7 +23565,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) Nu // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{990, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1039, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum int32 @@ -22710,11 +23607,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_ } func (PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[416].Descriptor() + return file_otg_proto_enumTypes[431].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[416] + return &file_otg_proto_enumTypes[431] } func (x PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22723,7 +23620,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_ // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{992, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1041, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum int32 @@ -22765,11 +23662,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) Strin } func (PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[417].Descriptor() + return file_otg_proto_enumTypes[432].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[417] + return &file_otg_proto_enumTypes[432] } func (x PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22778,7 +23675,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) Numbe // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{994, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1043, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum int32 @@ -22820,11 +23717,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) Str } func (PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[418].Descriptor() + return file_otg_proto_enumTypes[433].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[418] + return &file_otg_proto_enumTypes[433] } func (x PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22833,7 +23730,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) Num // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{996, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1045, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum int32 @@ -22875,11 +23772,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) Str } func (PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[419].Descriptor() + return file_otg_proto_enumTypes[434].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[419] + return &file_otg_proto_enumTypes[434] } func (x PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22888,7 +23785,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) Num // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{998, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1047, 0, 0} } type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum int32 @@ -22930,11 +23827,11 @@ func (x PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) Stri } func (PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[420].Descriptor() + return file_otg_proto_enumTypes[435].Descriptor() } func (PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[420] + return &file_otg_proto_enumTypes[435] } func (x PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22943,7 +23840,7 @@ func (x PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) Numb // Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1000, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1049, 0, 0} } type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum int32 @@ -22985,11 +23882,11 @@ func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) S } func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[421].Descriptor() + return file_otg_proto_enumTypes[436].Descriptor() } func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[421] + return &file_otg_proto_enumTypes[436] } func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) Number() protoreflect.EnumNumber { @@ -22998,7 +23895,7 @@ func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) N // Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1002, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1051, 0, 0} } type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum int32 @@ -23040,11 +23937,11 @@ func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) } func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[422].Descriptor() + return file_otg_proto_enumTypes[437].Descriptor() } func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[422] + return &file_otg_proto_enumTypes[437] } func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) Number() protoreflect.EnumNumber { @@ -23053,7 +23950,7 @@ func (x PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) // Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1004, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1053, 0, 0} } type PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum int32 @@ -23089,11 +23986,11 @@ func (x PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) String() stri } func (PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[423].Descriptor() + return file_otg_proto_enumTypes[438].Descriptor() } func (PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[423] + return &file_otg_proto_enumTypes[438] } func (x PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) Number() protoreflect.EnumNumber { @@ -23102,7 +23999,7 @@ func (x PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) Number() prot // Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1005, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1054, 0, 0} } type PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum int32 @@ -23138,11 +24035,11 @@ func (x PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) String() stri } func (PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[424].Descriptor() + return file_otg_proto_enumTypes[439].Descriptor() } func (PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[424] + return &file_otg_proto_enumTypes[439] } func (x PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -23151,7 +24048,7 @@ func (x PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) Number() prot // Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1006, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1055, 0, 0} } type PatternFlowRSVPPathObjectsCustomType_Choice_Enum int32 @@ -23193,11 +24090,11 @@ func (x PatternFlowRSVPPathObjectsCustomType_Choice_Enum) String() string { } func (PatternFlowRSVPPathObjectsCustomType_Choice_Enum) Descriptor() protoreflect.EnumDescriptor { - return file_otg_proto_enumTypes[425].Descriptor() + return file_otg_proto_enumTypes[440].Descriptor() } func (PatternFlowRSVPPathObjectsCustomType_Choice_Enum) Type() protoreflect.EnumType { - return &file_otg_proto_enumTypes[425] + return &file_otg_proto_enumTypes[440] } func (x PatternFlowRSVPPathObjectsCustomType_Choice_Enum) Number() protoreflect.EnumNumber { @@ -23206,7 +24103,7 @@ func (x PatternFlowRSVPPathObjectsCustomType_Choice_Enum) Number() protoreflect. // Deprecated: Use PatternFlowRSVPPathObjectsCustomType_Choice_Enum.Descriptor instead. func (PatternFlowRSVPPathObjectsCustomType_Choice_Enum) EnumDescriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1008, 0, 0} + return file_otg_proto_rawDescGZIP(), []int{1057, 0, 0} } // A container for all models that are part of the configuration. @@ -24061,6 +24958,8 @@ type DeviceEthernet struct { Name *string `protobuf:"bytes,8,opt,name=name,proto3,oneof" json:"name,omitempty"` // List of DHCPv4 Clients Configuration. Dhcpv4Interfaces []*DeviceDhcpv4Client `protobuf:"bytes,9,rep,name=dhcpv4_interfaces,json=dhcpv4Interfaces,proto3" json:"dhcpv4_interfaces,omitempty"` + // List of DHCPv6 Clients Configuration. + Dhcpv6Interfaces []*DeviceDhcpv6Client `protobuf:"bytes,10,rep,name=dhcpv6_interfaces,json=dhcpv6Interfaces,proto3" json:"dhcpv6_interfaces,omitempty"` } func (x *DeviceEthernet) Reset() { @@ -24151,6 +25050,13 @@ func (x *DeviceEthernet) GetDhcpv4Interfaces() []*DeviceDhcpv4Client { return nil } +func (x *DeviceEthernet) GetDhcpv6Interfaces() []*DeviceDhcpv6Client { + if x != nil { + return x.Dhcpv6Interfaces + } + return nil +} + // Ethernet interface connection to a port, LAG or VXLAN tunnel. type EthernetConnection struct { state protoimpl.MessageState @@ -24998,66 +25904,39 @@ func (x *Dhcpv4ClientParams) GetRebindingTimer() bool { return false } -// A container for layer1 settings. -type Layer1 struct { +// Configuration for emulated DHCPv6 Client on a single Interface. If the DHCPv6 Client +// receives one or more DHCPv6 ADVERTISE messages from one or more servers then the +// client chooses one server from which to request configuration parameters, based +// on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. +// If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html +type DeviceDhcpv6Client struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of unique names of port objects that will share the - // choice settings. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // Set the speed if supported. When no speed is explicitly set, the current - // speed of underlying test interface shall be assumed. - Speed *Layer1_Speed_Enum `protobuf:"varint,2,opt,name=speed,proto3,enum=otg.Layer1_Speed_Enum,oneof" json:"speed,omitempty"` - // Set the type of media for test interface if supported. When no media - // type is explicitly set, the current media type of underlying test - // interface shall be assumed. - Media *Layer1_Media_Enum `protobuf:"varint,3,opt,name=media,proto3,enum=otg.Layer1_Media_Enum,oneof" json:"media,omitempty"` - // Enable promiscuous mode on test interface. A warning shall be raised if - // this field is set to `true`, even when it's not supported, ignoring - // the setting altogether. - // default = True - Promiscuous *bool `protobuf:"varint,4,opt,name=promiscuous,proto3,oneof" json:"promiscuous,omitempty"` - // Set the maximum transmission unit size. A warning shall be raised if - // the specified value is valid but not supported, ignoring the setting altogether. - // default = 1500 - Mtu *uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` - // Under Review: This field is currently under review for pending exploration on use - // cases - // - // Under Review: This field is currently under review for pending exploration on use - // cases - // - // Set to true to override the auto_negotiate, link_training - // and rs_fec settings for gigabit ethernet interfaces. - IeeeMediaDefaults *bool `protobuf:"varint,6,opt,name=ieee_media_defaults,json=ieeeMediaDefaults,proto3,oneof" json:"ieee_media_defaults,omitempty"` - // Under Review: This field is currently under review for pending exploration on use - // cases, given that a separate configuration called `AutoNegotiation` already exists. - // - // Under Review: This field is currently under review for pending exploration on use - // cases, given that a separate configuration called `AutoNegotiation` already exists. - // - // Enable/disable auto negotiation. - AutoNegotiate *bool `protobuf:"varint,7,opt,name=auto_negotiate,json=autoNegotiate,proto3,oneof" json:"auto_negotiate,omitempty"` - // Description missing in models - AutoNegotiation *Layer1AutoNegotiation `protobuf:"bytes,8,opt,name=auto_negotiation,json=autoNegotiation,proto3" json:"auto_negotiation,omitempty"` - // Description missing in models - FlowControl *Layer1FlowControl `protobuf:"bytes,9,opt,name=flow_control,json=flowControl,proto3" json:"flow_control,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` -} - -func (x *Layer1) Reset() { - *x = Layer1{} + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including + // Rapid Commit option in Solicit message. + // default = False + RapidCommit *bool `protobuf:"varint,2,opt,name=rapid_commit,json=rapidCommit,proto3,oneof" json:"rapid_commit,omitempty"` + // Each IA has an associated IAID. Differnet IA options represent different types of + // IPv6 addresses and parameters + // accepted by DHCPv6 clients each used in different context by an IPv6 node. + IaType *DeviceDhcpv6ClientIaType `protobuf:"bytes,3,opt,name=ia_type,json=iaType,proto3" json:"ia_type,omitempty"` + // Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify + // each other. + DuidType *DeviceDhcpv6ClientDuidType `protobuf:"bytes,4,opt,name=duid_type,json=duidType,proto3" json:"duid_type,omitempty"` + // The options requested by a client from a server in the options request option. + OptionsRequest *DeviceDhcpv6ClientOptionsRequest `protobuf:"bytes,5,opt,name=options_request,json=optionsRequest,proto3" json:"options_request,omitempty"` + // Optional DHCPv4 Client options that are sent in Dhcp client messages. + Options *DeviceDhcpv6ClientOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"` +} + +func (x *DeviceDhcpv6Client) Reset() { + *x = DeviceDhcpv6Client{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25065,13 +25944,13 @@ func (x *Layer1) Reset() { } } -func (x *Layer1) String() string { +func (x *DeviceDhcpv6Client) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1) ProtoMessage() {} +func (*DeviceDhcpv6Client) ProtoMessage() {} -func (x *Layer1) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6Client) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25083,117 +25962,68 @@ func (x *Layer1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1.ProtoReflect.Descriptor instead. -func (*Layer1) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6Client.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6Client) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{22} } -func (x *Layer1) GetPortNames() []string { - if x != nil { - return x.PortNames - } - return nil -} - -func (x *Layer1) GetSpeed() Layer1_Speed_Enum { - if x != nil && x.Speed != nil { - return *x.Speed - } - return Layer1_Speed_unspecified -} - -func (x *Layer1) GetMedia() Layer1_Media_Enum { - if x != nil && x.Media != nil { - return *x.Media - } - return Layer1_Media_unspecified -} - -func (x *Layer1) GetPromiscuous() bool { - if x != nil && x.Promiscuous != nil { - return *x.Promiscuous - } - return false -} - -func (x *Layer1) GetMtu() uint32 { - if x != nil && x.Mtu != nil { - return *x.Mtu +func (x *DeviceDhcpv6Client) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *Layer1) GetIeeeMediaDefaults() bool { - if x != nil && x.IeeeMediaDefaults != nil { - return *x.IeeeMediaDefaults +func (x *DeviceDhcpv6Client) GetRapidCommit() bool { + if x != nil && x.RapidCommit != nil { + return *x.RapidCommit } return false } -func (x *Layer1) GetAutoNegotiate() bool { - if x != nil && x.AutoNegotiate != nil { - return *x.AutoNegotiate +func (x *DeviceDhcpv6Client) GetIaType() *DeviceDhcpv6ClientIaType { + if x != nil { + return x.IaType } - return false + return nil } -func (x *Layer1) GetAutoNegotiation() *Layer1AutoNegotiation { +func (x *DeviceDhcpv6Client) GetDuidType() *DeviceDhcpv6ClientDuidType { if x != nil { - return x.AutoNegotiation + return x.DuidType } return nil } -func (x *Layer1) GetFlowControl() *Layer1FlowControl { +func (x *DeviceDhcpv6Client) GetOptionsRequest() *DeviceDhcpv6ClientOptionsRequest { if x != nil { - return x.FlowControl + return x.OptionsRequest } return nil } -func (x *Layer1) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *DeviceDhcpv6Client) GetOptions() *DeviceDhcpv6ClientOptions { + if x != nil { + return x.Options } - return "" + return nil } -// Configuration for auto negotiation settings -type Layer1AutoNegotiation struct { +// DHCP client options, these configured options are sent in Dhcp client messages. +type DeviceDhcpv6ClientOptionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If auto_negotiate is true and the interface supports this option - // then this speed will be advertised. - // default = True - Advertise_1000Mbps *bool `protobuf:"varint,1,opt,name=advertise_1000_mbps,json=advertise1000Mbps,proto3,oneof" json:"advertise_1000_mbps,omitempty"` - // If auto_negotiate is true and the interface supports this option - // then this speed will be advertised. - // default = True - Advertise_100FdMbps *bool `protobuf:"varint,2,opt,name=advertise_100_fd_mbps,json=advertise100FdMbps,proto3,oneof" json:"advertise_100_fd_mbps,omitempty"` - // If auto_negotiate is true and the interface supports this option - // then this speed will be advertised. - // default = True - Advertise_100HdMbps *bool `protobuf:"varint,3,opt,name=advertise_100_hd_mbps,json=advertise100HdMbps,proto3,oneof" json:"advertise_100_hd_mbps,omitempty"` - // If auto_negotiate is true and the interface supports this option - // then this speed will be advertised. - // default = True - Advertise_10FdMbps *bool `protobuf:"varint,4,opt,name=advertise_10_fd_mbps,json=advertise10FdMbps,proto3,oneof" json:"advertise_10_fd_mbps,omitempty"` - // If auto_negotiate is true and the interface supports this option - // then this speed will be advertised. - // default = True - Advertise_10HdMbps *bool `protobuf:"varint,5,opt,name=advertise_10_hd_mbps,json=advertise10HdMbps,proto3,oneof" json:"advertise_10_hd_mbps,omitempty"` - // Enable/disable gigabit ethernet link training. - // default = False - LinkTraining *bool `protobuf:"varint,6,opt,name=link_training,json=linkTraining,proto3,oneof" json:"link_training,omitempty"` - // Enable/disable gigabit ethernet reed solomon forward error correction (RS FEC). - // default = False - RsFec *bool `protobuf:"varint,7,opt,name=rs_fec,json=rsFec,proto3,oneof" json:"rs_fec,omitempty"` + // List of options requested by a client from a server. + Request []*Dhcpv6ClientOptionsOptionsRequest `protobuf:"bytes,1,rep,name=request,proto3" json:"request,omitempty"` + // The list of dhcpv6 client messages where this option is included. + // required = true + AssociatedDhcpMessages *Dhcpv6ClientOptionsOptionsRequestIncludedMessages `protobuf:"bytes,2,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *Layer1AutoNegotiation) Reset() { - *x = Layer1AutoNegotiation{} +func (x *DeviceDhcpv6ClientOptionsRequest) Reset() { + *x = DeviceDhcpv6ClientOptionsRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25201,13 +26031,13 @@ func (x *Layer1AutoNegotiation) Reset() { } } -func (x *Layer1AutoNegotiation) String() string { +func (x *DeviceDhcpv6ClientOptionsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1AutoNegotiation) ProtoMessage() {} +func (*DeviceDhcpv6ClientOptionsRequest) ProtoMessage() {} -func (x *Layer1AutoNegotiation) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientOptionsRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25219,83 +26049,57 @@ func (x *Layer1AutoNegotiation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1AutoNegotiation.ProtoReflect.Descriptor instead. -func (*Layer1AutoNegotiation) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientOptionsRequest.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientOptionsRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{23} } -func (x *Layer1AutoNegotiation) GetAdvertise_1000Mbps() bool { - if x != nil && x.Advertise_1000Mbps != nil { - return *x.Advertise_1000Mbps - } - return false -} - -func (x *Layer1AutoNegotiation) GetAdvertise_100FdMbps() bool { - if x != nil && x.Advertise_100FdMbps != nil { - return *x.Advertise_100FdMbps - } - return false -} - -func (x *Layer1AutoNegotiation) GetAdvertise_100HdMbps() bool { - if x != nil && x.Advertise_100HdMbps != nil { - return *x.Advertise_100HdMbps - } - return false -} - -func (x *Layer1AutoNegotiation) GetAdvertise_10FdMbps() bool { - if x != nil && x.Advertise_10FdMbps != nil { - return *x.Advertise_10FdMbps - } - return false -} - -func (x *Layer1AutoNegotiation) GetAdvertise_10HdMbps() bool { - if x != nil && x.Advertise_10HdMbps != nil { - return *x.Advertise_10HdMbps - } - return false -} - -func (x *Layer1AutoNegotiation) GetLinkTraining() bool { - if x != nil && x.LinkTraining != nil { - return *x.LinkTraining +func (x *DeviceDhcpv6ClientOptionsRequest) GetRequest() []*Dhcpv6ClientOptionsOptionsRequest { + if x != nil { + return x.Request } - return false + return nil } -func (x *Layer1AutoNegotiation) GetRsFec() bool { - if x != nil && x.RsFec != nil { - return *x.RsFec +func (x *DeviceDhcpv6ClientOptionsRequest) GetAssociatedDhcpMessages() *Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + if x != nil { + return x.AssociatedDhcpMessages } - return false + return nil } -// A container for layer1 receive flow control settings. -// To enable flow control settings on ports this object must be a valid -// object not a null value. -type Layer1FlowControl struct { +// DHCP client options, these configured options are sent in Dhcp client messages. +type DeviceDhcpv6ClientOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The 48bit mac address that the layer1 port names will listen on - // for a directed pause. - // default = 01:80:C2:00:00:01 - DirectedAddress *string `protobuf:"bytes,1,opt,name=directed_address,json=directedAddress,proto3,oneof" json:"directed_address,omitempty"` - // The type of priority flow control. - // default = Choice.Enum.ieee_802_1qbb - Choice *Layer1FlowControl_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.Layer1FlowControl_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ieee_802_1Qbb *Layer1Ieee8021Qbb `protobuf:"bytes,3,opt,name=ieee_802_1qbb,json=ieee8021qbb,proto3" json:"ieee_802_1qbb,omitempty"` - // Description missing in models - Ieee_802_3X *Layer1Ieee8023X `protobuf:"bytes,4,opt,name=ieee_802_3x,json=ieee8023x,proto3" json:"ieee_802_3x,omitempty"` + // A client uses multicast to reach all servers or an individual server. An individual + // server is indicated by + // specifying that server's DUID in a Server Identifier option in the client's message + // (all servers will receive + // this message but only the indicated server will respond). All servers are indicated + // by not supplying this option. + ServerIdentifier *Dhcpv6ClientOptionsServerIdentifier `protobuf:"bytes,1,opt,name=server_identifier,json=serverIdentifier,proto3" json:"server_identifier,omitempty"` + // The vendor class option is used by a client to identify the vendor that manufactured + // the hardware on which + // the client is running. The information contained in the data area of this option + // is contained in one or more + // opaque fields that identify details of the hardware configuration. + VendorClass *Dhcpv6ClientOptionsVendorClass `protobuf:"bytes,2,opt,name=vendor_class,json=vendorClass,proto3" json:"vendor_class,omitempty"` + // This option is used by clients to exchange vendor-specific information with servers. + VendorInfo *Dhcpv6ClientOptionsVendorInfo `protobuf:"bytes,3,opt,name=vendor_info,json=vendorInfo,proto3" json:"vendor_info,omitempty"` + // DHCPv6 server needs to know the FQDN of the client for the addresses for the client's + // IA_NA bindings in order to + // update the IPv6-address-to-FQDN mapping. This option allows the client to convey + // its FQDN to the server. The Client + // FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate + // who does which update. + Fqdn *Dhcpv6ClientOptionsFqdn `protobuf:"bytes,4,opt,name=fqdn,proto3" json:"fqdn,omitempty"` } -func (x *Layer1FlowControl) Reset() { - *x = Layer1FlowControl{} +func (x *DeviceDhcpv6ClientOptions) Reset() { + *x = DeviceDhcpv6ClientOptions{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25303,13 +26107,13 @@ func (x *Layer1FlowControl) Reset() { } } -func (x *Layer1FlowControl) String() string { +func (x *DeviceDhcpv6ClientOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1FlowControl) ProtoMessage() {} +func (*DeviceDhcpv6ClientOptions) ProtoMessage() {} -func (x *Layer1FlowControl) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientOptions) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25321,48 +26125,64 @@ func (x *Layer1FlowControl) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1FlowControl.ProtoReflect.Descriptor instead. -func (*Layer1FlowControl) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientOptions.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientOptions) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{24} } -func (x *Layer1FlowControl) GetDirectedAddress() string { - if x != nil && x.DirectedAddress != nil { - return *x.DirectedAddress +func (x *DeviceDhcpv6ClientOptions) GetServerIdentifier() *Dhcpv6ClientOptionsServerIdentifier { + if x != nil { + return x.ServerIdentifier } - return "" + return nil } -func (x *Layer1FlowControl) GetChoice() Layer1FlowControl_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *DeviceDhcpv6ClientOptions) GetVendorClass() *Dhcpv6ClientOptionsVendorClass { + if x != nil { + return x.VendorClass } - return Layer1FlowControl_Choice_unspecified + return nil } -func (x *Layer1FlowControl) GetIeee_802_1Qbb() *Layer1Ieee8021Qbb { +func (x *DeviceDhcpv6ClientOptions) GetVendorInfo() *Dhcpv6ClientOptionsVendorInfo { if x != nil { - return x.Ieee_802_1Qbb + return x.VendorInfo } return nil } -func (x *Layer1FlowControl) GetIeee_802_3X() *Layer1Ieee8023X { +func (x *DeviceDhcpv6ClientOptions) GetFqdn() *Dhcpv6ClientOptionsFqdn { if x != nil { - return x.Ieee_802_3X + return x.Fqdn } return nil } -// A container for ieee 802.3x rx pause settings -type Layer1Ieee8023X struct { +// Description missing in models +type DeviceDhcpv6ClientIaType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent + // different types of IPv6 addresses and parameters accepted by DHCPv6 clients each + // used in different context by an IPv6 node. IA_NA is the Identity Association for + // Non-temporary Addresses option. IA_TA is the Identity Association for Temporary + // Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and + // parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD + // s the Identity Association for Temporary Prefix Delegation. + // default = Choice.Enum.iana + Choice *DeviceDhcpv6ClientIaType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.DeviceDhcpv6ClientIaType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Iana *DeviceDhcpv6ClientIaTimeValue `protobuf:"bytes,2,opt,name=iana,proto3" json:"iana,omitempty"` + // Description missing in models + Iapd *DeviceDhcpv6ClientIaTimeValue `protobuf:"bytes,3,opt,name=iapd,proto3" json:"iapd,omitempty"` + // Description missing in models + Ianapd *DeviceDhcpv6ClientIaTimeValue `protobuf:"bytes,4,opt,name=ianapd,proto3" json:"ianapd,omitempty"` } -func (x *Layer1Ieee8023X) Reset() { - *x = Layer1Ieee8023X{} +func (x *DeviceDhcpv6ClientIaType) Reset() { + *x = DeviceDhcpv6ClientIaType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25370,13 +26190,13 @@ func (x *Layer1Ieee8023X) Reset() { } } -func (x *Layer1Ieee8023X) String() string { +func (x *DeviceDhcpv6ClientIaType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1Ieee8023X) ProtoMessage() {} +func (*DeviceDhcpv6ClientIaType) ProtoMessage() {} -func (x *Layer1Ieee8023X) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientIaType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25388,59 +26208,62 @@ func (x *Layer1Ieee8023X) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1Ieee8023X.ProtoReflect.Descriptor instead. -func (*Layer1Ieee8023X) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientIaType.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientIaType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{25} } -// These settings enhance the existing 802.3x pause priority capabilities -// to enable flow control based on 802.1p priorities (classes of service). -type Layer1Ieee8021Qbb struct { +func (x *DeviceDhcpv6ClientIaType) GetChoice() DeviceDhcpv6ClientIaType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return DeviceDhcpv6ClientIaType_Choice_unspecified +} + +func (x *DeviceDhcpv6ClientIaType) GetIana() *DeviceDhcpv6ClientIaTimeValue { + if x != nil { + return x.Iana + } + return nil +} + +func (x *DeviceDhcpv6ClientIaType) GetIapd() *DeviceDhcpv6ClientIaTimeValue { + if x != nil { + return x.Iapd + } + return nil +} + +func (x *DeviceDhcpv6ClientIaType) GetIanapd() *DeviceDhcpv6ClientIaTimeValue { + if x != nil { + return x.Ianapd + } + return nil +} + +// The container for the suggested times at which the client contacts the server or +// any available server. +type DeviceDhcpv6ClientIaTimeValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The upper limit on the transmit time of a queue after receiving a - // message to pause a specified priority. - // A value of 0 or null indicates that pfc delay will not be enabled. - // default = 0 - PfcDelay *uint32 `protobuf:"varint,1,opt,name=pfc_delay,json=pfcDelay,proto3,oneof" json:"pfc_delay,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 0 - PfcClass_0 *uint32 `protobuf:"varint,2,opt,name=pfc_class_0,json=pfcClass0,proto3,oneof" json:"pfc_class_0,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 1 - PfcClass_1 *uint32 `protobuf:"varint,3,opt,name=pfc_class_1,json=pfcClass1,proto3,oneof" json:"pfc_class_1,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 2 - PfcClass_2 *uint32 `protobuf:"varint,4,opt,name=pfc_class_2,json=pfcClass2,proto3,oneof" json:"pfc_class_2,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 3 - PfcClass_3 *uint32 `protobuf:"varint,5,opt,name=pfc_class_3,json=pfcClass3,proto3,oneof" json:"pfc_class_3,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 4 - PfcClass_4 *uint32 `protobuf:"varint,6,opt,name=pfc_class_4,json=pfcClass4,proto3,oneof" json:"pfc_class_4,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 5 - PfcClass_5 *uint32 `protobuf:"varint,7,opt,name=pfc_class_5,json=pfcClass5,proto3,oneof" json:"pfc_class_5,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 6 - PfcClass_6 *uint32 `protobuf:"varint,8,opt,name=pfc_class_6,json=pfcClass6,proto3,oneof" json:"pfc_class_6,omitempty"` - // The valid values are null, 0 - 7. - // A null value indicates there is no setting for this pfc class. - // default = 7 - PfcClass_7 *uint32 `protobuf:"varint,9,opt,name=pfc_class_7,json=pfcClass7,proto3,oneof" json:"pfc_class_7,omitempty"` + // The suggested time at which the client contacts the server from which the addresses + // were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration + // relative to the current time expressed in units of seconds. If set to 0 server will + // ignore it. If the maximum value is specified it means infinite time. + // default = 302400 + T1 *uint32 `protobuf:"varint,1,opt,name=t1,proto3,oneof" json:"t1,omitempty"` + // The suggested time at which the client contacts any available server to extend the + // lifetimes of the addresses assigned. T2 is a time duration relative to the current + // time expressed in units of seconds. If set to 0 server will ignore it. If the maximum + // value is specified it means infinite time + // default = 483840 + T2 *uint32 `protobuf:"varint,2,opt,name=t2,proto3,oneof" json:"t2,omitempty"` } -func (x *Layer1Ieee8021Qbb) Reset() { - *x = Layer1Ieee8021Qbb{} +func (x *DeviceDhcpv6ClientIaTimeValue) Reset() { + *x = DeviceDhcpv6ClientIaTimeValue{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25448,13 +26271,13 @@ func (x *Layer1Ieee8021Qbb) Reset() { } } -func (x *Layer1Ieee8021Qbb) String() string { +func (x *DeviceDhcpv6ClientIaTimeValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1Ieee8021Qbb) ProtoMessage() {} +func (*DeviceDhcpv6ClientIaTimeValue) ProtoMessage() {} -func (x *Layer1Ieee8021Qbb) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientIaTimeValue) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25466,117 +26289,45 @@ func (x *Layer1Ieee8021Qbb) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Layer1Ieee8021Qbb.ProtoReflect.Descriptor instead. -func (*Layer1Ieee8021Qbb) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientIaTimeValue.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientIaTimeValue) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{26} } -func (x *Layer1Ieee8021Qbb) GetPfcDelay() uint32 { - if x != nil && x.PfcDelay != nil { - return *x.PfcDelay - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_0() uint32 { - if x != nil && x.PfcClass_0 != nil { - return *x.PfcClass_0 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_1() uint32 { - if x != nil && x.PfcClass_1 != nil { - return *x.PfcClass_1 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_2() uint32 { - if x != nil && x.PfcClass_2 != nil { - return *x.PfcClass_2 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_3() uint32 { - if x != nil && x.PfcClass_3 != nil { - return *x.PfcClass_3 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_4() uint32 { - if x != nil && x.PfcClass_4 != nil { - return *x.PfcClass_4 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_5() uint32 { - if x != nil && x.PfcClass_5 != nil { - return *x.PfcClass_5 - } - return 0 -} - -func (x *Layer1Ieee8021Qbb) GetPfcClass_6() uint32 { - if x != nil && x.PfcClass_6 != nil { - return *x.PfcClass_6 +func (x *DeviceDhcpv6ClientIaTimeValue) GetT1() uint32 { + if x != nil && x.T1 != nil { + return *x.T1 } return 0 } -func (x *Layer1Ieee8021Qbb) GetPfcClass_7() uint32 { - if x != nil && x.PfcClass_7 != nil { - return *x.PfcClass_7 +func (x *DeviceDhcpv6ClientIaTimeValue) GetT2() uint32 { + if x != nil && x.T2 != nil { + return *x.T2 } return 0 } -// Under Review: There may be changes in filter configuration -// -// Under Review: There may be changes in filter configuration -// -// Configuration for capture settings. -type Capture struct { +// Description missing in models +type DeviceDhcpv6ClientDuidType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique names of ports that the capture settings will apply to. Port_names cannot - // be duplicated between capture objects. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // A list of filters to apply to the capturing ports. If no filters are specified then - // all packets will be captured. A capture can have multiple filters. The number of - // filters supported is determined by the implementation which can be retrieved using - // the capabilities API. - // When multiple filters are specified the capture implementation must && (and) all - // the filters. - Filters []*CaptureFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` - // Overwrite the capture buffer. - // default = True - Overwrite *bool `protobuf:"varint,3,opt,name=overwrite,proto3,oneof" json:"overwrite,omitempty"` - // The maximum size of each captured packet. If no value is specified or it is null - // then the entire packet will be captured. - PacketSize *uint32 `protobuf:"varint,4,opt,name=packet_size,json=packetSize,proto3,oneof" json:"packet_size,omitempty"` - // The format of the capture file. - // default = Format.Enum.pcap - Format *Capture_Format_Enum `protobuf:"varint,5,opt,name=format,proto3,enum=otg.Capture_Format_Enum,oneof" json:"format,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,6,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Each DHCP client and server has a DUID. DHCP clients use DUIDs to identify a server + // in messages where a server needs to be identified. + // default = Choice.Enum.llt + Choice *DeviceDhcpv6ClientDuidType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.DeviceDhcpv6ClientDuidType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Llt *DeviceDhcpv6ClientNoDuid `protobuf:"bytes,2,opt,name=llt,proto3" json:"llt,omitempty"` + // Description missing in models + En *DeviceDhcpv6ClientDuidValue `protobuf:"bytes,3,opt,name=en,proto3" json:"en,omitempty"` + // Description missing in models + Ll *DeviceDhcpv6ClientNoDuid `protobuf:"bytes,4,opt,name=ll,proto3" json:"ll,omitempty"` } -func (x *Capture) Reset() { - *x = Capture{} +func (x *DeviceDhcpv6ClientDuidType) Reset() { + *x = DeviceDhcpv6ClientDuidType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25584,13 +26335,13 @@ func (x *Capture) Reset() { } } -func (x *Capture) String() string { +func (x *DeviceDhcpv6ClientDuidType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Capture) ProtoMessage() {} +func (*DeviceDhcpv6ClientDuidType) ProtoMessage() {} -func (x *Capture) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientDuidType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25602,78 +26353,57 @@ func (x *Capture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Capture.ProtoReflect.Descriptor instead. -func (*Capture) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientDuidType.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientDuidType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{27} } -func (x *Capture) GetPortNames() []string { - if x != nil { - return x.PortNames +func (x *DeviceDhcpv6ClientDuidType) GetChoice() DeviceDhcpv6ClientDuidType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return DeviceDhcpv6ClientDuidType_Choice_unspecified } -func (x *Capture) GetFilters() []*CaptureFilter { +func (x *DeviceDhcpv6ClientDuidType) GetLlt() *DeviceDhcpv6ClientNoDuid { if x != nil { - return x.Filters + return x.Llt } return nil } -func (x *Capture) GetOverwrite() bool { - if x != nil && x.Overwrite != nil { - return *x.Overwrite - } - return false -} - -func (x *Capture) GetPacketSize() uint32 { - if x != nil && x.PacketSize != nil { - return *x.PacketSize - } - return 0 -} - -func (x *Capture) GetFormat() Capture_Format_Enum { - if x != nil && x.Format != nil { - return *x.Format +func (x *DeviceDhcpv6ClientDuidType) GetEn() *DeviceDhcpv6ClientDuidValue { + if x != nil { + return x.En } - return Capture_Format_unspecified + return nil } -func (x *Capture) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *DeviceDhcpv6ClientDuidType) GetLl() *DeviceDhcpv6ClientNoDuid { + if x != nil { + return x.Ll } - return "" + return nil } -// Configuration for capture filters -type CaptureFilter struct { +// The container for the DUID-EN. This consists of the 4-octet vendor's registered Private +// Enterprise Number as maintained by IANA [IANA-PEN] followed by a unique identifier +// assigned by the vendor. +type DeviceDhcpv6ClientDuidValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of capture filter. - // default = Choice.Enum.custom - Choice *CaptureFilter_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.CaptureFilter_Choice_Enum,oneof" json:"choice,omitempty"` - // Offset from last filter in the list. If no filters are present it is offset from - // position 0. Multiple custom filters can be present, the length of each custom filter - // is the length of the value being filtered. - Custom *CaptureCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` - // Description missing in models - Ethernet *CaptureEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` - // Description missing in models - Vlan *CaptureVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` - // Description missing in models - Ipv4 *CaptureIpv4 `protobuf:"bytes,5,opt,name=ipv4,proto3" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *CaptureIpv6 `protobuf:"bytes,6,opt,name=ipv6,proto3" json:"ipv6,omitempty"` + // 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. + // default = 10 + EnterpriseId *uint32 `protobuf:"varint,1,opt,name=enterprise_id,json=enterpriseId,proto3,oneof" json:"enterprise_id,omitempty"` + // Unique identifier assigned by the vendor. + // default = 10 + VendorId *uint32 `protobuf:"varint,2,opt,name=vendor_id,json=vendorId,proto3,oneof" json:"vendor_id,omitempty"` } -func (x *CaptureFilter) Reset() { - *x = CaptureFilter{} +func (x *DeviceDhcpv6ClientDuidValue) Reset() { + *x = DeviceDhcpv6ClientDuidValue{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25681,13 +26411,13 @@ func (x *CaptureFilter) Reset() { } } -func (x *CaptureFilter) String() string { +func (x *DeviceDhcpv6ClientDuidValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureFilter) ProtoMessage() {} +func (*DeviceDhcpv6ClientDuidValue) ProtoMessage() {} -func (x *CaptureFilter) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientDuidValue) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25699,77 +26429,34 @@ func (x *CaptureFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureFilter.ProtoReflect.Descriptor instead. -func (*CaptureFilter) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientDuidValue.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientDuidValue) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{28} } -func (x *CaptureFilter) GetChoice() CaptureFilter_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return CaptureFilter_Choice_unspecified -} - -func (x *CaptureFilter) GetCustom() *CaptureCustom { - if x != nil { - return x.Custom - } - return nil -} - -func (x *CaptureFilter) GetEthernet() *CaptureEthernet { - if x != nil { - return x.Ethernet - } - return nil -} - -func (x *CaptureFilter) GetVlan() *CaptureVlan { - if x != nil { - return x.Vlan - } - return nil -} - -func (x *CaptureFilter) GetIpv4() *CaptureIpv4 { - if x != nil { - return x.Ipv4 +func (x *DeviceDhcpv6ClientDuidValue) GetEnterpriseId() uint32 { + if x != nil && x.EnterpriseId != nil { + return *x.EnterpriseId } - return nil + return 0 } -func (x *CaptureFilter) GetIpv6() *CaptureIpv6 { - if x != nil { - return x.Ipv6 +func (x *DeviceDhcpv6ClientDuidValue) GetVendorId() uint32 { + if x != nil && x.VendorId != nil { + return *x.VendorId } - return nil + return 0 } -// Description missing in models -type CaptureCustom struct { +// The container for DUID-LL and DUID-LLT. +type DeviceDhcpv6ClientNoDuid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // The bit offset of field to filter on - Offset *uint32 `protobuf:"varint,1,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // The bit length of field to filter on - // default = 8 - BitLength *uint32 `protobuf:"varint,2,opt,name=bit_length,json=bitLength,proto3,oneof" json:"bit_length,omitempty"` - // Description missing in models - // default = 00 - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = 00 - Mask *string `protobuf:"bytes,4,opt,name=mask,proto3,oneof" json:"mask,omitempty"` - // Description missing in models - // default = False - Negate *bool `protobuf:"varint,5,opt,name=negate,proto3,oneof" json:"negate,omitempty"` } -func (x *CaptureCustom) Reset() { - *x = CaptureCustom{} +func (x *DeviceDhcpv6ClientNoDuid) Reset() { + *x = DeviceDhcpv6ClientNoDuid{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25777,13 +26464,13 @@ func (x *CaptureCustom) Reset() { } } -func (x *CaptureCustom) String() string { +func (x *DeviceDhcpv6ClientNoDuid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureCustom) ProtoMessage() {} +func (*DeviceDhcpv6ClientNoDuid) ProtoMessage() {} -func (x *CaptureCustom) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpv6ClientNoDuid) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25795,65 +26482,34 @@ func (x *CaptureCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureCustom.ProtoReflect.Descriptor instead. -func (*CaptureCustom) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpv6ClientNoDuid.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientNoDuid) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{29} } -func (x *CaptureCustom) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *CaptureCustom) GetBitLength() uint32 { - if x != nil && x.BitLength != nil { - return *x.BitLength - } - return 0 -} - -func (x *CaptureCustom) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -func (x *CaptureCustom) GetMask() string { - if x != nil && x.Mask != nil { - return *x.Mask - } - return "" -} - -func (x *CaptureCustom) GetNegate() bool { - if x != nil && x.Negate != nil { - return *x.Negate - } - return false -} - // Description missing in models -type CaptureField struct { +type Dhcpv6ClientOptionsServerIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The Identifier option is used to carry a DUID. The option code is 2. The server identifier + // identifies a server. This option is used when client wants to contact a particular + // server. + // default = Choice.Enum.duid_ll + Choice *Dhcpv6ClientOptionsServerIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsServerIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00 - Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + DuidLlt *Dhcpv6ClientOptionsDuidLlt `protobuf:"bytes,2,opt,name=duid_llt,json=duidLlt,proto3" json:"duid_llt,omitempty"` // Description missing in models - // default = 00 - Mask *string `protobuf:"bytes,2,opt,name=mask,proto3,oneof" json:"mask,omitempty"` + DuidEn *Dhcpv6ClientOptionsDuidEn `protobuf:"bytes,3,opt,name=duid_en,json=duidEn,proto3" json:"duid_en,omitempty"` // Description missing in models - // default = False - Negate *bool `protobuf:"varint,3,opt,name=negate,proto3,oneof" json:"negate,omitempty"` + DuidLl *Dhcpv6ClientOptionsDuidLl `protobuf:"bytes,4,opt,name=duid_ll,json=duidLl,proto3" json:"duid_ll,omitempty"` + // Description missing in models + DuidUuid *Dhcpv6ClientOptionsDuidUuid `protobuf:"bytes,5,opt,name=duid_uuid,json=duidUuid,proto3" json:"duid_uuid,omitempty"` } -func (x *CaptureField) Reset() { - *x = CaptureField{} +func (x *Dhcpv6ClientOptionsServerIdentifier) Reset() { + *x = Dhcpv6ClientOptionsServerIdentifier{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25861,13 +26517,13 @@ func (x *CaptureField) Reset() { } } -func (x *CaptureField) String() string { +func (x *Dhcpv6ClientOptionsServerIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureField) ProtoMessage() {} +func (*Dhcpv6ClientOptionsServerIdentifier) ProtoMessage() {} -func (x *CaptureField) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ClientOptionsServerIdentifier) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25879,50 +26535,67 @@ func (x *CaptureField) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureField.ProtoReflect.Descriptor instead. -func (*CaptureField) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ClientOptionsServerIdentifier.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsServerIdentifier) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{30} } -func (x *CaptureField) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *Dhcpv6ClientOptionsServerIdentifier) GetChoice() Dhcpv6ClientOptionsServerIdentifier_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return Dhcpv6ClientOptionsServerIdentifier_Choice_unspecified } -func (x *CaptureField) GetMask() string { - if x != nil && x.Mask != nil { - return *x.Mask +func (x *Dhcpv6ClientOptionsServerIdentifier) GetDuidLlt() *Dhcpv6ClientOptionsDuidLlt { + if x != nil { + return x.DuidLlt } - return "" + return nil } -func (x *CaptureField) GetNegate() bool { - if x != nil && x.Negate != nil { - return *x.Negate +func (x *Dhcpv6ClientOptionsServerIdentifier) GetDuidEn() *Dhcpv6ClientOptionsDuidEn { + if x != nil { + return x.DuidEn } - return false + return nil } -// Description missing in models -type CaptureEthernet struct { +func (x *Dhcpv6ClientOptionsServerIdentifier) GetDuidLl() *Dhcpv6ClientOptionsDuidLl { + if x != nil { + return x.DuidLl + } + return nil +} + +func (x *Dhcpv6ClientOptionsServerIdentifier) GetDuidUuid() *Dhcpv6ClientOptionsDuidUuid { + if x != nil { + return x.DuidUuid + } + return nil +} + +// DUID based on Link Layer address plus time. Hardware Type will be auto assigned to +// ethernet type. +type Dhcpv6ClientOptionsDuidLlt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Src *CaptureField `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - Dst *CaptureField `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"` - // Description missing in models - EtherType *CaptureField `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` - // Description missing in models - PfcQueue *CaptureField `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` + // The time value is the time that the DUID is generated represented in seconds since + // midnight (UTC), January 1, + // 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client + // contacts the server. + // required = true + Time *uint32 `protobuf:"varint,1,opt,name=time,proto3,oneof" json:"time,omitempty"` + // The link-layer address is stored in canonical form, as described in RFC 2464. + // + // required = true + LinkLayerAddress *Dhcpv6ClientOptionsLinkLayerAddress `protobuf:"bytes,2,opt,name=link_layer_address,json=linkLayerAddress,proto3" json:"link_layer_address,omitempty"` } -func (x *CaptureEthernet) Reset() { - *x = CaptureEthernet{} +func (x *Dhcpv6ClientOptionsDuidLlt) Reset() { + *x = Dhcpv6ClientOptionsDuidLlt{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25930,13 +26603,13 @@ func (x *CaptureEthernet) Reset() { } } -func (x *CaptureEthernet) String() string { +func (x *Dhcpv6ClientOptionsDuidLlt) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureEthernet) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidLlt) ProtoMessage() {} -func (x *CaptureEthernet) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ClientOptionsDuidLlt) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -25948,57 +26621,41 @@ func (x *CaptureEthernet) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureEthernet.ProtoReflect.Descriptor instead. -func (*CaptureEthernet) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ClientOptionsDuidLlt.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidLlt) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{31} } -func (x *CaptureEthernet) GetSrc() *CaptureField { - if x != nil { - return x.Src - } - return nil -} - -func (x *CaptureEthernet) GetDst() *CaptureField { - if x != nil { - return x.Dst - } - return nil -} - -func (x *CaptureEthernet) GetEtherType() *CaptureField { - if x != nil { - return x.EtherType +func (x *Dhcpv6ClientOptionsDuidLlt) GetTime() uint32 { + if x != nil && x.Time != nil { + return *x.Time } - return nil + return 0 } -func (x *CaptureEthernet) GetPfcQueue() *CaptureField { +func (x *Dhcpv6ClientOptionsDuidLlt) GetLinkLayerAddress() *Dhcpv6ClientOptionsLinkLayerAddress { if x != nil { - return x.PfcQueue + return x.LinkLayerAddress } return nil } -// Description missing in models -type CaptureVlan struct { +// DUID assigned by vendor based on enterprise number. +type Dhcpv6ClientOptionsDuidEn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Priority *CaptureField `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` - // Description missing in models - Cfi *CaptureField `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` - // Description missing in models - Id *CaptureField `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - // Description missing in models - Protocol *CaptureField `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Vendor's registered private enterprise number as maintained by IANA. + // required = true + EnterpriseNumber *uint32 `protobuf:"varint,1,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` + // The unique identifier assigned by the vendor. + // required = true + Identifier *string `protobuf:"bytes,2,opt,name=identifier,proto3,oneof" json:"identifier,omitempty"` } -func (x *CaptureVlan) Reset() { - *x = CaptureVlan{} +func (x *Dhcpv6ClientOptionsDuidEn) Reset() { + *x = Dhcpv6ClientOptionsDuidEn{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -26006,13 +26663,13 @@ func (x *CaptureVlan) Reset() { } } -func (x *CaptureVlan) String() string { +func (x *Dhcpv6ClientOptionsDuidEn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureVlan) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidEn) ProtoMessage() {} -func (x *CaptureVlan) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ClientOptionsDuidEn) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -26024,77 +26681,40 @@ func (x *CaptureVlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureVlan.ProtoReflect.Descriptor instead. -func (*CaptureVlan) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ClientOptionsDuidEn.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidEn) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{32} } -func (x *CaptureVlan) GetPriority() *CaptureField { - if x != nil { - return x.Priority - } - return nil -} - -func (x *CaptureVlan) GetCfi() *CaptureField { - if x != nil { - return x.Cfi - } - return nil -} - -func (x *CaptureVlan) GetId() *CaptureField { - if x != nil { - return x.Id +func (x *Dhcpv6ClientOptionsDuidEn) GetEnterpriseNumber() uint32 { + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } - return nil + return 0 } -func (x *CaptureVlan) GetProtocol() *CaptureField { - if x != nil { - return x.Protocol +func (x *Dhcpv6ClientOptionsDuidEn) GetIdentifier() string { + if x != nil && x.Identifier != nil { + return *x.Identifier } - return nil + return "" } -// Description missing in models -type CaptureIpv4 struct { +// DUID based on Link Layer address. Hardware Type will be auto assigned to ethernet +// type. +type Dhcpv6ClientOptionsDuidLl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - HeaderLength *CaptureField `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` - // Description missing in models - Priority *CaptureField `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` - // Description missing in models - TotalLength *CaptureField `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` - // Description missing in models - Identification *CaptureField `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` - // Description missing in models - Reserved *CaptureField `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` - // Description missing in models - DontFragment *CaptureField `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` - // Description missing in models - MoreFragments *CaptureField `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` - // Description missing in models - FragmentOffset *CaptureField `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` - // Description missing in models - TimeToLive *CaptureField `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` - // Description missing in models - Protocol *CaptureField `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` - // Description missing in models - HeaderChecksum *CaptureField `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` - // Description missing in models - Src *CaptureField `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - Dst *CaptureField `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` + // The link-layer address is stored in canonical form, as described in RFC 2464. + // + // required = true + LinkLayerAddress *Dhcpv6ClientOptionsLinkLayerAddress `protobuf:"bytes,1,opt,name=link_layer_address,json=linkLayerAddress,proto3" json:"link_layer_address,omitempty"` } -func (x *CaptureIpv4) Reset() { - *x = CaptureIpv4{} +func (x *Dhcpv6ClientOptionsDuidLl) Reset() { + *x = Dhcpv6ClientOptionsDuidLl{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -26102,13 +26722,13 @@ func (x *CaptureIpv4) Reset() { } } -func (x *CaptureIpv4) String() string { +func (x *Dhcpv6ClientOptionsDuidLl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureIpv4) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidLl) ProtoMessage() {} -func (x *CaptureIpv4) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ClientOptionsDuidLl) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -26120,150 +26740,168 @@ func (x *CaptureIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureIpv4.ProtoReflect.Descriptor instead. -func (*CaptureIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ClientOptionsDuidLl.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidLl) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{33} } -func (x *CaptureIpv4) GetVersion() *CaptureField { +func (x *Dhcpv6ClientOptionsDuidLl) GetLinkLayerAddress() *Dhcpv6ClientOptionsLinkLayerAddress { if x != nil { - return x.Version + return x.LinkLayerAddress } return nil } -func (x *CaptureIpv4) GetHeaderLength() *CaptureField { - if x != nil { - return x.HeaderLength - } - return nil +// DUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that +// is unique across both space and time, with respect to the space of all UUIDs. +type Dhcpv6ClientOptionsDuidUuid struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The version number is in the most significant 4 bits of the timestamp (bits 4 through + // 7 of the time_hi_and_version field). + Version *Dhcpv6ClientOptionsDuidUuidVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. + Variant *Dhcpv6ClientOptionsDuidUuidVariant `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"` + // The low field of the timestamp. + // default = 0 + TimeLow *uint32 `protobuf:"varint,3,opt,name=time_low,json=timeLow,proto3,oneof" json:"time_low,omitempty"` + // The middle field of the timestamp. + // default = 0 + TimeMid *uint32 `protobuf:"varint,4,opt,name=time_mid,json=timeMid,proto3,oneof" json:"time_mid,omitempty"` + // The high field of the timestamp multiplexed with the version number. + // default = 0 + TimeHiAndVersion *uint32 `protobuf:"varint,5,opt,name=time_hi_and_version,json=timeHiAndVersion,proto3,oneof" json:"time_hi_and_version,omitempty"` + // The high field of the clock sequence multiplexed with the variant. + // default = 0 + ClockSeqHiAndReserved *uint32 `protobuf:"varint,6,opt,name=clock_seq_hi_and_reserved,json=clockSeqHiAndReserved,proto3,oneof" json:"clock_seq_hi_and_reserved,omitempty"` + // The low field of the clock sequence. + // default = 0 + ClockSeqLow *uint32 `protobuf:"varint,7,opt,name=clock_seq_low,json=clockSeqLow,proto3,oneof" json:"clock_seq_low,omitempty"` + // The spatially unique node identifier. + // default = 00:00:00:00:00:00 + Node *string `protobuf:"bytes,8,opt,name=node,proto3,oneof" json:"node,omitempty"` } -func (x *CaptureIpv4) GetPriority() *CaptureField { - if x != nil { - return x.Priority +func (x *Dhcpv6ClientOptionsDuidUuid) Reset() { + *x = Dhcpv6ClientOptionsDuidUuid{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *CaptureIpv4) GetTotalLength() *CaptureField { - if x != nil { - return x.TotalLength - } - return nil +func (x *Dhcpv6ClientOptionsDuidUuid) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CaptureIpv4) GetIdentification() *CaptureField { - if x != nil { - return x.Identification +func (*Dhcpv6ClientOptionsDuidUuid) ProtoMessage() {} + +func (x *Dhcpv6ClientOptionsDuidUuid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *CaptureIpv4) GetReserved() *CaptureField { - if x != nil { - return x.Reserved - } - return nil +// Deprecated: Use Dhcpv6ClientOptionsDuidUuid.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidUuid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{34} } -func (x *CaptureIpv4) GetDontFragment() *CaptureField { +func (x *Dhcpv6ClientOptionsDuidUuid) GetVersion() *Dhcpv6ClientOptionsDuidUuidVersion { if x != nil { - return x.DontFragment + return x.Version } return nil } -func (x *CaptureIpv4) GetMoreFragments() *CaptureField { +func (x *Dhcpv6ClientOptionsDuidUuid) GetVariant() *Dhcpv6ClientOptionsDuidUuidVariant { if x != nil { - return x.MoreFragments + return x.Variant } return nil } -func (x *CaptureIpv4) GetFragmentOffset() *CaptureField { - if x != nil { - return x.FragmentOffset +func (x *Dhcpv6ClientOptionsDuidUuid) GetTimeLow() uint32 { + if x != nil && x.TimeLow != nil { + return *x.TimeLow } - return nil + return 0 } -func (x *CaptureIpv4) GetTimeToLive() *CaptureField { - if x != nil { - return x.TimeToLive +func (x *Dhcpv6ClientOptionsDuidUuid) GetTimeMid() uint32 { + if x != nil && x.TimeMid != nil { + return *x.TimeMid } - return nil + return 0 } -func (x *CaptureIpv4) GetProtocol() *CaptureField { - if x != nil { - return x.Protocol +func (x *Dhcpv6ClientOptionsDuidUuid) GetTimeHiAndVersion() uint32 { + if x != nil && x.TimeHiAndVersion != nil { + return *x.TimeHiAndVersion } - return nil + return 0 } -func (x *CaptureIpv4) GetHeaderChecksum() *CaptureField { - if x != nil { - return x.HeaderChecksum +func (x *Dhcpv6ClientOptionsDuidUuid) GetClockSeqHiAndReserved() uint32 { + if x != nil && x.ClockSeqHiAndReserved != nil { + return *x.ClockSeqHiAndReserved } - return nil + return 0 } -func (x *CaptureIpv4) GetSrc() *CaptureField { - if x != nil { - return x.Src +func (x *Dhcpv6ClientOptionsDuidUuid) GetClockSeqLow() uint32 { + if x != nil && x.ClockSeqLow != nil { + return *x.ClockSeqLow } - return nil + return 0 } -func (x *CaptureIpv4) GetDst() *CaptureField { - if x != nil { - return x.Dst +func (x *Dhcpv6ClientOptionsDuidUuid) GetNode() string { + if x != nil && x.Node != nil { + return *x.Node } - return nil + return "" } -// Description missing in models -type CaptureIpv6 struct { +// The version number is in the most significant 4 bits of the timestamp (bits 4 through +// 7 of the time_hi_and_version field). +type Dhcpv6ClientOptionsDuidUuidVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - TrafficClass *CaptureField `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` - // Description missing in models - FlowLabel *CaptureField `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` - // Description missing in models - PayloadLength *CaptureField `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` - // Description missing in models - NextHeader *CaptureField `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` - // Description missing in models - HopLimit *CaptureField `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` - // Description missing in models - Src *CaptureField `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - Dst *CaptureField `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` + // The version values are from 1 to 5 in the most significant 4 bits of the timestamp + // (bits 4 through 7 of the time_hi_and_version field). + // default = Choice.Enum.v_1 + Choice *Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *CaptureIpv6) Reset() { - *x = CaptureIpv6{} +func (x *Dhcpv6ClientOptionsDuidUuidVersion) Reset() { + *x = Dhcpv6ClientOptionsDuidUuidVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[34] + mi := &file_otg_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureIpv6) String() string { +func (x *Dhcpv6ClientOptionsDuidUuidVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureIpv6) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidUuidVersion) ProtoMessage() {} -func (x *CaptureIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[34] +func (x *Dhcpv6ClientOptionsDuidUuidVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26274,116 +26912,98 @@ func (x *CaptureIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureIpv6.ProtoReflect.Descriptor instead. -func (*CaptureIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{34} +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVersion.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidUuidVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{35} } -func (x *CaptureIpv6) GetVersion() *CaptureField { - if x != nil { - return x.Version +func (x *Dhcpv6ClientOptionsDuidUuidVersion) GetChoice() Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return Dhcpv6ClientOptionsDuidUuidVersion_Choice_unspecified } -func (x *CaptureIpv6) GetTrafficClass() *CaptureField { - if x != nil { - return x.TrafficClass - } - return nil -} +// The variant field determines the layout of the UUID. That is, the interpretation +// of all other bits in the UUID depends on the setting of the bits in the variant +// field). +type Dhcpv6ClientOptionsDuidUuidVariant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *CaptureIpv6) GetFlowLabel() *CaptureField { - if x != nil { - return x.FlowLabel - } - return nil + // The current variants are ncs, dce,microsoft guid and reserved. + // default = Choice.Enum.ncs + Choice *Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *CaptureIpv6) GetPayloadLength() *CaptureField { - if x != nil { - return x.PayloadLength +func (x *Dhcpv6ClientOptionsDuidUuidVariant) Reset() { + *x = Dhcpv6ClientOptionsDuidUuidVariant{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *CaptureIpv6) GetNextHeader() *CaptureField { - if x != nil { - return x.NextHeader - } - return nil +func (x *Dhcpv6ClientOptionsDuidUuidVariant) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CaptureIpv6) GetHopLimit() *CaptureField { - if x != nil { - return x.HopLimit +func (*Dhcpv6ClientOptionsDuidUuidVariant) ProtoMessage() {} + +func (x *Dhcpv6ClientOptionsDuidUuidVariant) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *CaptureIpv6) GetSrc() *CaptureField { - if x != nil { - return x.Src - } - return nil +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVariant.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidUuidVariant) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{36} } -func (x *CaptureIpv6) GetDst() *CaptureField { - if x != nil { - return x.Dst +func (x *Dhcpv6ClientOptionsDuidUuidVariant) GetChoice() Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return Dhcpv6ClientOptionsDuidUuidVariant_Choice_unspecified } -// A container for emulated interfaces, loopback interfaces and protocol configurations. -type Device struct { +// The link-layer address configured in DUID llt or DUID ll. +type Dhcpv6ClientOptionsLinkLayerAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Ethernet configuration for one or more emulated network interfaces. - Ethernets []*DeviceEthernet `protobuf:"bytes,1,rep,name=ethernets,proto3" json:"ethernets,omitempty"` - // IPv4 Loopback interface that can be attached to an Ethernet in the same device or - // to an Ethernet in another device. - Ipv4Loopbacks []*DeviceIpv4Loopback `protobuf:"bytes,2,rep,name=ipv4_loopbacks,json=ipv4Loopbacks,proto3" json:"ipv4_loopbacks,omitempty"` - // IPv6 Loopback interface that can be attached to an Ethernet in the same device or - // to an Ethernet in another device. - Ipv6Loopbacks []*DeviceIpv6Loopback `protobuf:"bytes,3,rep,name=ipv6_loopbacks,json=ipv6Loopbacks,proto3" json:"ipv6_loopbacks,omitempty"` - // The properties of an IS-IS router and its children, such as IS-IS interfaces and - // route ranges. - Isis *DeviceIsisRouter `protobuf:"bytes,4,opt,name=isis,proto3" json:"isis,omitempty"` - // The properties of BGP router and its children, such as BGPv4, BGPv6 peers and their - // route ranges. - Bgp *DeviceBgpRouter `protobuf:"bytes,5,opt,name=bgp,proto3" json:"bgp,omitempty"` - // Configuration of VXLAN tunnel interfaces RFC Ref: https://datatracker.ietf.org/doc/html/rfc7348 - Vxlan *DeviceVxlan `protobuf:"bytes,6,opt,name=vxlan,proto3" json:"vxlan,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + // The MAC address that becomes part of DUID llt or DUID ll. // required = true - Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The properties of an RSVP router and its children. - Rsvp *DeviceRsvp `protobuf:"bytes,8,opt,name=rsvp,proto3" json:"rsvp,omitempty"` - // The properties of DHCP Server and its children, such as DHCPv4, DHCPv6 servers. - DhcpServer *DeviceDhcpServer `protobuf:"bytes,9,opt,name=dhcp_server,json=dhcpServer,proto3" json:"dhcp_server,omitempty"` + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *Device) Reset() { - *x = Device{} +func (x *Dhcpv6ClientOptionsLinkLayerAddress) Reset() { + *x = Dhcpv6ClientOptionsLinkLayerAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[35] + mi := &file_otg_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Device) String() string { +func (x *Dhcpv6ClientOptionsLinkLayerAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Device) ProtoMessage() {} +func (*Dhcpv6ClientOptionsLinkLayerAddress) ProtoMessage() {} -func (x *Device) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[35] +func (x *Dhcpv6ClientOptionsLinkLayerAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26394,105 +27014,121 @@ func (x *Device) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Device.ProtoReflect.Descriptor instead. -func (*Device) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{35} +// Deprecated: Use Dhcpv6ClientOptionsLinkLayerAddress.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsLinkLayerAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{37} } -func (x *Device) GetEthernets() []*DeviceEthernet { - if x != nil { - return x.Ethernets +func (x *Dhcpv6ClientOptionsLinkLayerAddress) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return "" } -func (x *Device) GetIpv4Loopbacks() []*DeviceIpv4Loopback { - if x != nil { - return x.Ipv4Loopbacks - } - return nil -} +// Description missing in models +type Dhcpv6ClientOptionsOptionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *Device) GetIpv6Loopbacks() []*DeviceIpv6Loopback { - if x != nil { - return x.Ipv6Loopbacks - } - return nil + // The Option Request option is used to identify a list of options in a message between + // a client and a server. The option code is 6. - Vendor_specific information option, + // requested by clients for vendor-specific informations from servers. - DNS Recursive + // Name Server Option, requested by clients to get the list ofIPv6 addresses of DNS + // recursive name + // servers to which DNS queries may be sent by the client resolver in order of preference. + // - Client FQDN option - indicates whether the client or the DHCP server should update + // DNS with the AAAA record + // corresponding to the assigned IPv6 address and the FQDN provided in this option. + // The DHCP server always updates + // the PTR record. + // - bootfile_url, if client is configured for network booting then the client must + // use this option to obtain the boot + // file url from the server. + // - sztp. Securely provision a networking device when it is booting in a factory-default + // state. + // default = Choice.Enum.vendor_information + Choice *Dhcpv6ClientOptionsOptionsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsOptionsRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Custom *Dhcpv6ClientOptionsCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` } -func (x *Device) GetIsis() *DeviceIsisRouter { - if x != nil { - return x.Isis +func (x *Dhcpv6ClientOptionsOptionsRequest) Reset() { + *x = Dhcpv6ClientOptionsOptionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *Device) GetBgp() *DeviceBgpRouter { - if x != nil { - return x.Bgp - } - return nil +func (x *Dhcpv6ClientOptionsOptionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Device) GetVxlan() *DeviceVxlan { - if x != nil { - return x.Vxlan +func (*Dhcpv6ClientOptionsOptionsRequest) ProtoMessage() {} + +func (x *Dhcpv6ClientOptionsOptionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *Device) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsOptionsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{38} } -func (x *Device) GetRsvp() *DeviceRsvp { - if x != nil { - return x.Rsvp +func (x *Dhcpv6ClientOptionsOptionsRequest) GetChoice() Dhcpv6ClientOptionsOptionsRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return Dhcpv6ClientOptionsOptionsRequest_Choice_unspecified } -func (x *Device) GetDhcpServer() *DeviceDhcpServer { +func (x *Dhcpv6ClientOptionsOptionsRequest) GetCustom() *Dhcpv6ClientOptionsCustom { if x != nil { - return x.DhcpServer + return x.Custom } return nil } -// Common options that apply to all configured protocols and interfaces. -type ProtocolOptions struct { +// The Custom option is used to provide a not so well known option in the message between +// a client and a server. +type Dhcpv6ClientOptionsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // When set to true, all underlying resources for configured protocols and interfaces - // shall be created and corresponding protocol session negotiation shall be initiated. - // Otherwise, when set to false, corresponding protocol session negotiation will need - // to be initiated using a separate set_protocol_state API call. - // default = True - AutoStartAll *bool `protobuf:"varint,1,opt,name=auto_start_all,json=autoStartAll,proto3,oneof" json:"auto_start_all,omitempty"` + // The type of the Custom option TLV. + // required = true + Type *uint32 `protobuf:"varint,1,opt,name=type,proto3,oneof" json:"type,omitempty"` } -func (x *ProtocolOptions) Reset() { - *x = ProtocolOptions{} +func (x *Dhcpv6ClientOptionsCustom) Reset() { + *x = Dhcpv6ClientOptionsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[36] + mi := &file_otg_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProtocolOptions) String() string { +func (x *Dhcpv6ClientOptionsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProtocolOptions) ProtoMessage() {} +func (*Dhcpv6ClientOptionsCustom) ProtoMessage() {} -func (x *ProtocolOptions) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[36] +func (x *Dhcpv6ClientOptionsCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26503,65 +27139,55 @@ func (x *ProtocolOptions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProtocolOptions.ProtoReflect.Descriptor instead. -func (*ProtocolOptions) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{36} +// Deprecated: Use Dhcpv6ClientOptionsCustom.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{39} } -func (x *ProtocolOptions) GetAutoStartAll() bool { - if x != nil && x.AutoStartAll != nil { - return *x.AutoStartAll +func (x *Dhcpv6ClientOptionsCustom) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type } - return false + return 0 } -// A container of properties for an ISIS router and its interfaces. -type DeviceIsisRouter struct { +// This option is used by a client to identify the vendor that manufactured the hardware +// on which the client is running. The option code is 16. +type Dhcpv6ClientOptionsVendorClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the properties of a Multi-Instance-capable routers or MI-RTR. Each - // router can emulate one ISIS instance at a time. - Instance *DeviceIsisMultiInstance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` - // The System ID for this emulated ISIS router, e.g. 640100010000. + // The vendor's registered Enterprise Number as registered with IANA. // required = true - SystemId *string `protobuf:"bytes,2,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` - // List of ISIS interfaces for this router. - Interfaces []*IsisInterface `protobuf:"bytes,3,rep,name=interfaces,proto3" json:"interfaces,omitempty"` - // Contains basic properties of an ISIS Router. - Basic *IsisBasic `protobuf:"bytes,4,opt,name=basic,proto3" json:"basic,omitempty"` - // Contains advance properties of an ISIS Router.. - Advanced *IsisAdvanced `protobuf:"bytes,5,opt,name=advanced,proto3" json:"advanced,omitempty"` - // ISIS Router authentication properties. - RouterAuth *IsisAuthentication `protobuf:"bytes,6,opt,name=router_auth,json=routerAuth,proto3" json:"router_auth,omitempty"` - // Emulated ISIS IPv4 routes. - V4Routes []*IsisV4RouteRange `protobuf:"bytes,7,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` - // Emulated ISIS IPv6 routes. - V6Routes []*IsisV6RouteRange `protobuf:"bytes,8,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + EnterpriseNumber *uint32 `protobuf:"varint,1,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` + // The opaque data representing the hardware configuration of the host on which the + // client is running. Examples of class data instances might include the version of + // the operating system the client is running or the amount of memory installed on + // the client. + ClassData []string `protobuf:"bytes,2,rep,name=class_data,json=classData,proto3" json:"class_data,omitempty"` + // The dhcpv6 client messages where this option is included. // required = true - Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` + AssociatedDhcpMessages *Dhcpv6ClientOptionsIncludedMessages `protobuf:"bytes,3,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *DeviceIsisRouter) Reset() { - *x = DeviceIsisRouter{} +func (x *Dhcpv6ClientOptionsVendorClass) Reset() { + *x = Dhcpv6ClientOptionsVendorClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[37] + mi := &file_otg_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIsisRouter) String() string { +func (x *Dhcpv6ClientOptionsVendorClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIsisRouter) ProtoMessage() {} +func (*Dhcpv6ClientOptionsVendorClass) ProtoMessage() {} -func (x *DeviceIsisRouter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[37] +func (x *Dhcpv6ClientOptionsVendorClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26572,106 +27198,64 @@ func (x *DeviceIsisRouter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIsisRouter.ProtoReflect.Descriptor instead. -func (*DeviceIsisRouter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{37} -} - -func (x *DeviceIsisRouter) GetInstance() *DeviceIsisMultiInstance { - if x != nil { - return x.Instance - } - return nil -} - -func (x *DeviceIsisRouter) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId - } - return "" -} - -func (x *DeviceIsisRouter) GetInterfaces() []*IsisInterface { - if x != nil { - return x.Interfaces - } - return nil -} - -func (x *DeviceIsisRouter) GetBasic() *IsisBasic { - if x != nil { - return x.Basic - } - return nil -} - -func (x *DeviceIsisRouter) GetAdvanced() *IsisAdvanced { - if x != nil { - return x.Advanced - } - return nil +// Deprecated: Use Dhcpv6ClientOptionsVendorClass.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsVendorClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{40} } -func (x *DeviceIsisRouter) GetRouterAuth() *IsisAuthentication { - if x != nil { - return x.RouterAuth +func (x *Dhcpv6ClientOptionsVendorClass) GetEnterpriseNumber() uint32 { + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } - return nil + return 0 } -func (x *DeviceIsisRouter) GetV4Routes() []*IsisV4RouteRange { +func (x *Dhcpv6ClientOptionsVendorClass) GetClassData() []string { if x != nil { - return x.V4Routes + return x.ClassData } return nil } -func (x *DeviceIsisRouter) GetV6Routes() []*IsisV6RouteRange { +func (x *Dhcpv6ClientOptionsVendorClass) GetAssociatedDhcpMessages() *Dhcpv6ClientOptionsIncludedMessages { if x != nil { - return x.V6Routes + return x.AssociatedDhcpMessages } return nil } -func (x *DeviceIsisRouter) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -// This container properties of an Multi-Instance-capable router (MI-RTR). -type DeviceIsisMultiInstance struct { +// The dhcpv6 client messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 client messages, else based +// on the selection in particular Dhcpv6 client messages the option will be included. +type Dhcpv6ClientOptionsOptionsRequestIncludedMessages struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Instance Identifier (IID) TLV will associate a PDU with an ISIS instance by using - // a unique 16-bit number and including one or more Instance-Specific Topology Identifiers - // (ITIDs). - // default = 1 - Iid *uint32 `protobuf:"varint,1,opt,name=iid,proto3,oneof" json:"iid,omitempty"` - // This contains one or more ITIDs that will be advertised in IID TLV. - Itids []uint32 `protobuf:"varint,2,rep,packed,name=itids,proto3" json:"itids,omitempty"` + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.all + Choice *Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum,oneof" json:"choice,omitempty"` + // User must specify the Dhcpv6 message type. + MsgTypes *Dhcpv6ClientOptionsMessageType `protobuf:"bytes,2,opt,name=msg_types,json=msgTypes,proto3" json:"msg_types,omitempty"` } -func (x *DeviceIsisMultiInstance) Reset() { - *x = DeviceIsisMultiInstance{} +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages) Reset() { + *x = Dhcpv6ClientOptionsOptionsRequestIncludedMessages{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[38] + mi := &file_otg_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIsisMultiInstance) String() string { +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIsisMultiInstance) ProtoMessage() {} +func (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages) ProtoMessage() {} -func (x *DeviceIsisMultiInstance) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[38] +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26682,92 +27266,57 @@ func (x *DeviceIsisMultiInstance) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIsisMultiInstance.ProtoReflect.Descriptor instead. -func (*DeviceIsisMultiInstance) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{38} +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequestIncludedMessages.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{41} } -func (x *DeviceIsisMultiInstance) GetIid() uint32 { - if x != nil && x.Iid != nil { - return *x.Iid +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages) GetChoice() Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_unspecified } -func (x *DeviceIsisMultiInstance) GetItids() []uint32 { +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages) GetMsgTypes() *Dhcpv6ClientOptionsMessageType { if x != nil { - return x.Itids + return x.MsgTypes } return nil } -// Configuration for single ISIS interface. -type IsisInterface struct { +// The dhcpv6 client messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 client messages, else based +// on the selection in particular Dhcpv6 client messages the option will be included. +type Dhcpv6ClientOptionsIncludedMessages struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of the Ethernet interface on which ISIS is running. Two ISIS interfaces - // cannot share the same Ethernet. - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - // required = true - EthName *string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3,oneof" json:"eth_name,omitempty"` - // The default metric cost for the interface. - // default = 10 - Metric *uint32 `protobuf:"varint,2,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // The type of network link. - // default = NetworkType.Enum.broadcast - NetworkType *IsisInterface_NetworkType_Enum `protobuf:"varint,3,opt,name=network_type,json=networkType,proto3,enum=otg.IsisInterface_NetworkType_Enum,oneof" json:"network_type,omitempty"` - // This indicates whether this router is participating in Level-1 (L1), - // Level-2 (L2) or both L1 and L2 domains on this interface. - // default = LevelType.Enum.level_2 - LevelType *IsisInterface_LevelType_Enum `protobuf:"varint,4,opt,name=level_type,json=levelType,proto3,enum=otg.IsisInterface_LevelType_Enum,oneof" json:"level_type,omitempty"` - // Settings of Level 1 Hello. - L1Settings *IsisInterfaceLevel `protobuf:"bytes,5,opt,name=l1_settings,json=l1Settings,proto3" json:"l1_settings,omitempty"` - // Settings of Level 2 Hello. - L2Settings *IsisInterfaceLevel `protobuf:"bytes,6,opt,name=l2_settings,json=l2Settings,proto3" json:"l2_settings,omitempty"` - // Contains the properties of multiple topologies. - MultiTopologyIds []*IsisMT `protobuf:"bytes,7,rep,name=multi_topology_ids,json=multiTopologyIds,proto3" json:"multi_topology_ids,omitempty"` - // Contains a list of Traffic Engineering attributes. - TrafficEngineering []*LinkStateTE `protobuf:"bytes,8,rep,name=traffic_engineering,json=trafficEngineering,proto3" json:"traffic_engineering,omitempty"` - // The Circuit authentication method used for the interfaces on this emulated ISIS v4/v6 - // router. - Authentication *IsisInterfaceAuthentication `protobuf:"bytes,9,opt,name=authentication,proto3" json:"authentication,omitempty"` - // Optional container for advanced interface properties. - Advanced *IsisInterfaceAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Link protection on the ISIS link between two interfaces. - LinkProtection *IsisInterfaceLinkProtection `protobuf:"bytes,11,opt,name=link_protection,json=linkProtection,proto3" json:"link_protection,omitempty"` - // This contains list of SRLG values for the link between two interfaces. - SrlgValues []uint32 `protobuf:"varint,12,rep,packed,name=srlg_values,json=srlgValues,proto3" json:"srlg_values,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.all + Choice *Dhcpv6ClientOptionsIncludedMessages_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsIncludedMessages_Choice_Enum,oneof" json:"choice,omitempty"` + // User must specify the Dhcpv6 message type. + MsgTypes []*Dhcpv6ClientOptionsMessageType `protobuf:"bytes,2,rep,name=msg_types,json=msgTypes,proto3" json:"msg_types,omitempty"` } -func (x *IsisInterface) Reset() { - *x = IsisInterface{} +func (x *Dhcpv6ClientOptionsIncludedMessages) Reset() { + *x = Dhcpv6ClientOptionsIncludedMessages{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[39] + mi := &file_otg_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface) String() string { +func (x *Dhcpv6ClientOptionsIncludedMessages) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface) ProtoMessage() {} +func (*Dhcpv6ClientOptionsIncludedMessages) ProtoMessage() {} -func (x *IsisInterface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[39] +func (x *Dhcpv6ClientOptionsIncludedMessages) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26778,136 +27327,110 @@ func (x *IsisInterface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterface.ProtoReflect.Descriptor instead. -func (*IsisInterface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{39} -} - -func (x *IsisInterface) GetEthName() string { - if x != nil && x.EthName != nil { - return *x.EthName - } - return "" -} - -func (x *IsisInterface) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric - } - return 0 -} - -func (x *IsisInterface) GetNetworkType() IsisInterface_NetworkType_Enum { - if x != nil && x.NetworkType != nil { - return *x.NetworkType - } - return IsisInterface_NetworkType_unspecified +// Deprecated: Use Dhcpv6ClientOptionsIncludedMessages.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsIncludedMessages) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42} } -func (x *IsisInterface) GetLevelType() IsisInterface_LevelType_Enum { - if x != nil && x.LevelType != nil { - return *x.LevelType +func (x *Dhcpv6ClientOptionsIncludedMessages) GetChoice() Dhcpv6ClientOptionsIncludedMessages_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return IsisInterface_LevelType_unspecified + return Dhcpv6ClientOptionsIncludedMessages_Choice_unspecified } -func (x *IsisInterface) GetL1Settings() *IsisInterfaceLevel { +func (x *Dhcpv6ClientOptionsIncludedMessages) GetMsgTypes() []*Dhcpv6ClientOptionsMessageType { if x != nil { - return x.L1Settings + return x.MsgTypes } return nil } -func (x *IsisInterface) GetL2Settings() *IsisInterfaceLevel { - if x != nil { - return x.L2Settings - } - return nil -} +// The dhcpv6 client messages where the option will be included. +type Dhcpv6ClientOptionsMessageType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *IsisInterface) GetMultiTopologyIds() []*IsisMT { - if x != nil { - return x.MultiTopologyIds - } - return nil + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.solicit + Choice *Dhcpv6ClientOptionsMessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ClientOptionsMessageType_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *IsisInterface) GetTrafficEngineering() []*LinkStateTE { - if x != nil { - return x.TrafficEngineering +func (x *Dhcpv6ClientOptionsMessageType) Reset() { + *x = Dhcpv6ClientOptionsMessageType{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *IsisInterface) GetAuthentication() *IsisInterfaceAuthentication { - if x != nil { - return x.Authentication - } - return nil +func (x *Dhcpv6ClientOptionsMessageType) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *IsisInterface) GetAdvanced() *IsisInterfaceAdvanced { - if x != nil { - return x.Advanced - } - return nil -} +func (*Dhcpv6ClientOptionsMessageType) ProtoMessage() {} -func (x *IsisInterface) GetLinkProtection() *IsisInterfaceLinkProtection { - if x != nil { - return x.LinkProtection +func (x *Dhcpv6ClientOptionsMessageType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *IsisInterface) GetSrlgValues() []uint32 { - if x != nil { - return x.SrlgValues - } - return nil +// Deprecated: Use Dhcpv6ClientOptionsMessageType.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsMessageType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{43} } -func (x *IsisInterface) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *Dhcpv6ClientOptionsMessageType) GetChoice() Dhcpv6ClientOptionsMessageType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return Dhcpv6ClientOptionsMessageType_Choice_unspecified } -// Configuration for the properties of Level 1 Hello. -type IsisInterfaceLevel struct { +// This option is used by clients to exchange vendor-specific information. The option +// code is 17. +type Dhcpv6ClientOptionsVendorInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Priority setting in Level 1 LAN Hellos for Designated Router election. - // default = 0 - Priority *uint32 `protobuf:"varint,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - // The Hello interval for Level 1 Hello messages, in seconds. - // default = 10 - HelloInterval *uint32 `protobuf:"varint,2,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` - // The Dead (Holding Time) interval for Level 1 Hello messages, in seconds. - // default = 30 - DeadInterval *uint32 `protobuf:"varint,3,opt,name=dead_interval,json=deadInterval,proto3,oneof" json:"dead_interval,omitempty"` + // The vendor's registered Enterprise Number as registered with IANA. + // required = true + EnterpriseNumber *uint32 `protobuf:"varint,1,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` + // An opaque object of octets,interpreted by vendor-specific code on the clients and + // servers. + OptionData []*Dhcpv6OptionsVendorSpecificOptions `protobuf:"bytes,2,rep,name=option_data,json=optionData,proto3" json:"option_data,omitempty"` + // The list of dhcpv6 client messages where this option is included. + // required = true + AssociatedDhcpMessages *Dhcpv6ClientOptionsIncludedMessages `protobuf:"bytes,3,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *IsisInterfaceLevel) Reset() { - *x = IsisInterfaceLevel{} +func (x *Dhcpv6ClientOptionsVendorInfo) Reset() { + *x = Dhcpv6ClientOptionsVendorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[40] + mi := &file_otg_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceLevel) String() string { +func (x *Dhcpv6ClientOptionsVendorInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceLevel) ProtoMessage() {} +func (*Dhcpv6ClientOptionsVendorInfo) ProtoMessage() {} -func (x *IsisInterfaceLevel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[40] +func (x *Dhcpv6ClientOptionsVendorInfo) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26918,65 +27441,67 @@ func (x *IsisInterfaceLevel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceLevel.ProtoReflect.Descriptor instead. -func (*IsisInterfaceLevel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{40} +// Deprecated: Use Dhcpv6ClientOptionsVendorInfo.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsVendorInfo) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{44} } -func (x *IsisInterfaceLevel) GetPriority() uint32 { - if x != nil && x.Priority != nil { - return *x.Priority +func (x *Dhcpv6ClientOptionsVendorInfo) GetEnterpriseNumber() uint32 { + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } return 0 } -func (x *IsisInterfaceLevel) GetHelloInterval() uint32 { - if x != nil && x.HelloInterval != nil { - return *x.HelloInterval +func (x *Dhcpv6ClientOptionsVendorInfo) GetOptionData() []*Dhcpv6OptionsVendorSpecificOptions { + if x != nil { + return x.OptionData } - return 0 + return nil } -func (x *IsisInterfaceLevel) GetDeadInterval() uint32 { - if x != nil && x.DeadInterval != nil { - return *x.DeadInterval +func (x *Dhcpv6ClientOptionsVendorInfo) GetAssociatedDhcpMessages() *Dhcpv6ClientOptionsIncludedMessages { + if x != nil { + return x.AssociatedDhcpMessages } - return 0 + return nil } -// Configuration of properties per interface per topology when multiple topologies are -// configured in an ISIS router. -// in a ISIS router. -type IsisMT struct { +// This option is used by servers to exchange vendor-specific information. The option +// code is 17. +type Dhcpv6ServerOptionsVendorInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Multi Topology ID for one of the topologies supported on the ISIS interface. - // default = 0 - MtId *uint32 `protobuf:"varint,1,opt,name=mt_id,json=mtId,proto3,oneof" json:"mt_id,omitempty"` - // Specifies the link metric for this topology on the ISIS interface. - // default = 10 - LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` + // The vendor's registered Enterprise Number as registered with IANA. + // required = true + EnterpriseNumber *uint32 `protobuf:"varint,1,opt,name=enterprise_number,json=enterpriseNumber,proto3,oneof" json:"enterprise_number,omitempty"` + // An opaque object of octets,interpreted by vendor-specific code on the clients and + // servers. + OptionData []*Dhcpv6OptionsVendorSpecificOptions `protobuf:"bytes,2,rep,name=option_data,json=optionData,proto3" json:"option_data,omitempty"` + // The list of dhcpv6 client messages where this option is included. + // required = true + AssociatedDhcpMessages *Dhcpv6ServerOptionsIncludedMessages `protobuf:"bytes,3,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *IsisMT) Reset() { - *x = IsisMT{} +func (x *Dhcpv6ServerOptionsVendorInfo) Reset() { + *x = Dhcpv6ServerOptionsVendorInfo{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[41] + mi := &file_otg_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMT) String() string { +func (x *Dhcpv6ServerOptionsVendorInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMT) ProtoMessage() {} +func (*Dhcpv6ServerOptionsVendorInfo) ProtoMessage() {} -func (x *IsisMT) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[41] +func (x *Dhcpv6ServerOptionsVendorInfo) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26987,71 +27512,64 @@ func (x *IsisMT) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMT.ProtoReflect.Descriptor instead. -func (*IsisMT) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{41} +// Deprecated: Use Dhcpv6ServerOptionsVendorInfo.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsVendorInfo) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{45} } -func (x *IsisMT) GetMtId() uint32 { - if x != nil && x.MtId != nil { - return *x.MtId +func (x *Dhcpv6ServerOptionsVendorInfo) GetEnterpriseNumber() uint32 { + if x != nil && x.EnterpriseNumber != nil { + return *x.EnterpriseNumber } return 0 } -func (x *IsisMT) GetLinkMetric() uint32 { - if x != nil && x.LinkMetric != nil { - return *x.LinkMetric +func (x *Dhcpv6ServerOptionsVendorInfo) GetOptionData() []*Dhcpv6OptionsVendorSpecificOptions { + if x != nil { + return x.OptionData } - return 0 + return nil } -// A container for Traffic Engineering properties on a interface. -type LinkStateTE struct { +func (x *Dhcpv6ServerOptionsVendorInfo) GetAssociatedDhcpMessages() *Dhcpv6ServerOptionsIncludedMessages { + if x != nil { + return x.AssociatedDhcpMessages + } + return nil +} + +// The dhcpv6 server messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 server messages, else based +// on the selection in particular Dhcpv6 server messages the option will be included. +type Dhcpv6ServerOptionsIncludedMessages struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Administrative group sub-TLV (sub-TLV 3). It is a 4-octet - // user-defined bit mask used to assign administrative group numbers - // to the interface, for use in assigning colors and resource classes. - // Each set bit corresponds to a single administrative group for this - // interface. The settings translate into Group numbers, which range - // from 0 to 31 (integers). - // default = 00000000 - AdministrativeGroup *string `protobuf:"bytes,1,opt,name=administrative_group,json=administrativeGroup,proto3,oneof" json:"administrative_group,omitempty"` - // The user-assigned link metric for Traffic Engineering. - // default = 0 - MetricLevel *uint32 `protobuf:"varint,2,opt,name=metric_level,json=metricLevel,proto3,oneof" json:"metric_level,omitempty"` - // The maximum link bandwidth (sub-TLV 9) in bytes/sec allowed for this - // link for a direction. - // default = 125000000 - MaxBandwith *uint32 `protobuf:"varint,3,opt,name=max_bandwith,json=maxBandwith,proto3,oneof" json:"max_bandwith,omitempty"` - // The maximum link bandwidth (sub-TLV 10) in bytes/sec allowed for this - // link in a direction. - // default = 125000000 - MaxReservableBandwidth *uint32 `protobuf:"varint,4,opt,name=max_reservable_bandwidth,json=maxReservableBandwidth,proto3,oneof" json:"max_reservable_bandwidth,omitempty"` - // Configuration of bandwidths of priority 0 through priority 7. - PriorityBandwidths *LinkStatepriorityBandwidths `protobuf:"bytes,5,opt,name=priority_bandwidths,json=priorityBandwidths,proto3" json:"priority_bandwidths,omitempty"` + // The server message name where the option is included, by default it is all. + // default = Choice.Enum.all + Choice *Dhcpv6ServerOptionsIncludedMessages_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ServerOptionsIncludedMessages_Choice_Enum,oneof" json:"choice,omitempty"` + // User must specify the Dhcpv6 message type. + MsgTypes []*Dhcpv6ServerOptionsMessageType `protobuf:"bytes,2,rep,name=msg_types,json=msgTypes,proto3" json:"msg_types,omitempty"` } -func (x *LinkStateTE) Reset() { - *x = LinkStateTE{} +func (x *Dhcpv6ServerOptionsIncludedMessages) Reset() { + *x = Dhcpv6ServerOptionsIncludedMessages{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[42] + mi := &file_otg_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LinkStateTE) String() string { +func (x *Dhcpv6ServerOptionsIncludedMessages) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LinkStateTE) ProtoMessage() {} +func (*Dhcpv6ServerOptionsIncludedMessages) ProtoMessage() {} -func (x *LinkStateTE) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[42] +func (x *Dhcpv6ServerOptionsIncludedMessages) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27062,99 +27580,53 @@ func (x *LinkStateTE) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LinkStateTE.ProtoReflect.Descriptor instead. -func (*LinkStateTE) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{42} -} - -func (x *LinkStateTE) GetAdministrativeGroup() string { - if x != nil && x.AdministrativeGroup != nil { - return *x.AdministrativeGroup - } - return "" -} - -func (x *LinkStateTE) GetMetricLevel() uint32 { - if x != nil && x.MetricLevel != nil { - return *x.MetricLevel - } - return 0 -} - -func (x *LinkStateTE) GetMaxBandwith() uint32 { - if x != nil && x.MaxBandwith != nil { - return *x.MaxBandwith - } - return 0 +// Deprecated: Use Dhcpv6ServerOptionsIncludedMessages.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsIncludedMessages) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{46} } -func (x *LinkStateTE) GetMaxReservableBandwidth() uint32 { - if x != nil && x.MaxReservableBandwidth != nil { - return *x.MaxReservableBandwidth +func (x *Dhcpv6ServerOptionsIncludedMessages) GetChoice() Dhcpv6ServerOptionsIncludedMessages_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return Dhcpv6ServerOptionsIncludedMessages_Choice_unspecified } -func (x *LinkStateTE) GetPriorityBandwidths() *LinkStatepriorityBandwidths { +func (x *Dhcpv6ServerOptionsIncludedMessages) GetMsgTypes() []*Dhcpv6ServerOptionsMessageType { if x != nil { - return x.PriorityBandwidths + return x.MsgTypes } return nil } -// Specifies the amount of bandwidth that can be reserved with a setup priority of 0 -// -// through 7, arranged in increasing order with priority 0 having highest priority. -// -// In ISIS, this is sent in sub-TLV (11) of Extended IS Reachability TLV. -type LinkStatepriorityBandwidths struct { +// The dhcpv6 server messages where the option will be included. +type Dhcpv6ServerOptionsMessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specifies the amount of bandwidth that can be reserved for the Priority 0. - // default = 125000000 - Pb0 *uint32 `protobuf:"varint,1,opt,name=pb0,proto3,oneof" json:"pb0,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 1. - // default = 125000000 - Pb1 *uint32 `protobuf:"varint,2,opt,name=pb1,proto3,oneof" json:"pb1,omitempty"` - // Specify the amount of bandwidth that can be reserved for the Priority 2. - // default = 125000000 - Pb2 *uint32 `protobuf:"varint,3,opt,name=pb2,proto3,oneof" json:"pb2,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 3. - // default = 125000000 - Pb3 *uint32 `protobuf:"varint,4,opt,name=pb3,proto3,oneof" json:"pb3,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 4. - // default = 125000000 - Pb4 *uint32 `protobuf:"varint,5,opt,name=pb4,proto3,oneof" json:"pb4,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 5. - // default = 125000000 - Pb5 *uint32 `protobuf:"varint,6,opt,name=pb5,proto3,oneof" json:"pb5,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 6. - // default = 125000000 - Pb6 *uint32 `protobuf:"varint,7,opt,name=pb6,proto3,oneof" json:"pb6,omitempty"` - // Specifies the amount of bandwidth that can be reserved for the Priority 7. - // default = 125000000 - Pb7 *uint32 `protobuf:"varint,8,opt,name=pb7,proto3,oneof" json:"pb7,omitempty"` + // The server message name where the option is included, by default it is all. + // default = Choice.Enum.advertise + Choice *Dhcpv6ServerOptionsMessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ServerOptionsMessageType_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *LinkStatepriorityBandwidths) Reset() { - *x = LinkStatepriorityBandwidths{} +func (x *Dhcpv6ServerOptionsMessageType) Reset() { + *x = Dhcpv6ServerOptionsMessageType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[43] + mi := &file_otg_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LinkStatepriorityBandwidths) String() string { +func (x *Dhcpv6ServerOptionsMessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LinkStatepriorityBandwidths) ProtoMessage() {} +func (*Dhcpv6ServerOptionsMessageType) ProtoMessage() {} -func (x *LinkStatepriorityBandwidths) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[43] +func (x *Dhcpv6ServerOptionsMessageType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27165,99 +27637,51 @@ func (x *LinkStatepriorityBandwidths) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LinkStatepriorityBandwidths.ProtoReflect.Descriptor instead. -func (*LinkStatepriorityBandwidths) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{43} -} - -func (x *LinkStatepriorityBandwidths) GetPb0() uint32 { - if x != nil && x.Pb0 != nil { - return *x.Pb0 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb1() uint32 { - if x != nil && x.Pb1 != nil { - return *x.Pb1 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb2() uint32 { - if x != nil && x.Pb2 != nil { - return *x.Pb2 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb3() uint32 { - if x != nil && x.Pb3 != nil { - return *x.Pb3 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb4() uint32 { - if x != nil && x.Pb4 != nil { - return *x.Pb4 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb5() uint32 { - if x != nil && x.Pb5 != nil { - return *x.Pb5 - } - return 0 -} - -func (x *LinkStatepriorityBandwidths) GetPb6() uint32 { - if x != nil && x.Pb6 != nil { - return *x.Pb6 - } - return 0 +// Deprecated: Use Dhcpv6ServerOptionsMessageType.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsMessageType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{47} } -func (x *LinkStatepriorityBandwidths) GetPb7() uint32 { - if x != nil && x.Pb7 != nil { - return *x.Pb7 +func (x *Dhcpv6ServerOptionsMessageType) GetChoice() Dhcpv6ServerOptionsMessageType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return Dhcpv6ServerOptionsMessageType_Choice_unspecified } -// Optional container for circuit authentication properties. -type IsisInterfaceAuthentication struct { +// The encapsulated vendor-specific options field is encoded as a sequence of code/length/value +// fields of identical format to the DHCP options field. The option codes are defined +// by the vendor identified in the enterprise-number field and are not managed by IANA. +type Dhcpv6OptionsVendorSpecificOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The circuit authentication method. + // The code for the encapsulated option. // required = true - AuthType *IsisInterfaceAuthentication_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisInterfaceAuthentication_AuthType_Enum,oneof" json:"auth_type,omitempty"` - // MD5 key to be used for authentication. - Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` - // The password, in clear text, to be used for Authentication. - Password *string `protobuf:"bytes,3,opt,name=password,proto3,oneof" json:"password,omitempty"` + Code *uint32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` + // The data for the encapsulated option. + // required = true + Data *string `protobuf:"bytes,2,opt,name=data,proto3,oneof" json:"data,omitempty"` } -func (x *IsisInterfaceAuthentication) Reset() { - *x = IsisInterfaceAuthentication{} +func (x *Dhcpv6OptionsVendorSpecificOptions) Reset() { + *x = Dhcpv6OptionsVendorSpecificOptions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[44] + mi := &file_otg_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceAuthentication) String() string { +func (x *Dhcpv6OptionsVendorSpecificOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAuthentication) ProtoMessage() {} +func (*Dhcpv6OptionsVendorSpecificOptions) ProtoMessage() {} -func (x *IsisInterfaceAuthentication) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[44] +func (x *Dhcpv6OptionsVendorSpecificOptions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27268,81 +27692,90 @@ func (x *IsisInterfaceAuthentication) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceAuthentication.ProtoReflect.Descriptor instead. -func (*IsisInterfaceAuthentication) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{44} -} - -func (x *IsisInterfaceAuthentication) GetAuthType() IsisInterfaceAuthentication_AuthType_Enum { - if x != nil && x.AuthType != nil { - return *x.AuthType - } - return IsisInterfaceAuthentication_AuthType_unspecified +// Deprecated: Use Dhcpv6OptionsVendorSpecificOptions.ProtoReflect.Descriptor instead. +func (*Dhcpv6OptionsVendorSpecificOptions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{48} } -func (x *IsisInterfaceAuthentication) GetMd5() string { - if x != nil && x.Md5 != nil { - return *x.Md5 +func (x *Dhcpv6OptionsVendorSpecificOptions) GetCode() uint32 { + if x != nil && x.Code != nil { + return *x.Code } - return "" + return 0 } -func (x *IsisInterfaceAuthentication) GetPassword() string { - if x != nil && x.Password != nil { - return *x.Password +func (x *Dhcpv6OptionsVendorSpecificOptions) GetData() string { + if x != nil && x.Data != nil { + return *x.Data } return "" } -// Optional container for advanced interface properties. -type IsisInterfaceAdvanced struct { +// DHCPv6 server needs to know the FQDN of the client for the addresses for the client's +// IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows +// the client to convey its FQDN to the server. The Client FQDN option also contains +// Flags that DHCPv6 clients and servers use to negotiate who does which updates. The +// option code is 39. +type Dhcpv6ClientOptionsFqdn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If a padded Hello message is received on the interface, the length of - // the Hello packets sent out on that interface is adjusted to match. - // default = True - AutoAdjustMtu *bool `protobuf:"varint,1,opt,name=auto_adjust_mtu,json=autoAdjustMtu,proto3,oneof" json:"auto_adjust_mtu,omitempty"` - // If a Level 1 Hello is received on this emulated router for an area - // not currently in its area list, an area from the received Hello is - // added to that list. This ensures an area match for all future - // Level 1 Hellos from the source L1 router. + // The S bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) + // DNS updates. A client sets the bit to 0 to indicate that the server should not perform + // the updates and 1 to indicate that the server should perform the updates. The state + // of the bit in the reply from the server indicates the action to be taken by the + // server. If it is 1, the server has taken responsibility for AAAA RR updates for the + // FQDN. // default = True - AutoAdjustArea *bool `protobuf:"varint,2,opt,name=auto_adjust_area,json=autoAdjustArea,proto3,oneof" json:"auto_adjust_area,omitempty"` - // If a Hello message listing supported protocols is received on this - // emulated router, the supported protocols advertised by this router - // are changed to match exactly. + FlagS *bool `protobuf:"varint,1,opt,name=flag_s,json=flagS,proto3,oneof" json:"flag_s,omitempty"` + // The O bit indicates whether the server has overridden the client's preference for + // the S bit. A client must set this bit to 0. A server must set this bit to 1 if the + // S bit in its reply to the client does not match the S bit received from the client. // default = False - AutoAdjustSupportedProtocols *bool `protobuf:"varint,3,opt,name=auto_adjust_supported_protocols,json=autoAdjustSupportedProtocols,proto3,oneof" json:"auto_adjust_supported_protocols,omitempty"` - // If it is true, the Point-to-Point circuit will include 3-way TLV in its Point-to-Point - // IIH and attempt to establish the adjacency as specified in RFC 5303. This field - // is not applicable if network_type is set to 'broadcast' type in ISIS interface. - // default = True - Enable_3WayHandshake *bool `protobuf:"varint,4,opt,name=enable_3way_handshake,json=enable3wayHandshake,proto3,oneof" json:"enable_3way_handshake,omitempty"` - // If it is true, the Point-to-Point Hello messages will be sent to the unicast MAC - // address. + FlagO *bool `protobuf:"varint,2,opt,name=flag_o,json=flagO,proto3,oneof" json:"flag_o,omitempty"` + // The N bit indicates whether the server should not perform any DNS updates. A client + // sets this bit to 0 to request that the server should perform updates (the PTR RR + // and possibly the AAAA RR based on the S bit) or to 1 to request that the server + // should not perform any DNS updates. A server sets the N bit to indicate whether the + // server shall (0) or shall not (1) perform DNS updates. If the N bit is 1, the S + // bit MUST be 0. // default = False - P2PHellosToUnicastMac *bool `protobuf:"varint,5,opt,name=p2p_hellos_to_unicast_mac,json=p2pHellosToUnicastMac,proto3,oneof" json:"p2p_hellos_to_unicast_mac,omitempty"` + FlagN *bool `protobuf:"varint,3,opt,name=flag_n,json=flagN,proto3,oneof" json:"flag_n,omitempty"` + // The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. + // A client MAY also leave the Domain Name field empty if it desires the server to + // provide a name. A fully qualified domain name (FQDN) is the complete address of + // an internet host or computer. It provides its exact location within the domain name + // system (DNS) by specifying the hostname, domain name and top-level domain (TLD). + // An FQDN isn't the same as a URL but rather is a part of it that fully identifies + // the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol + // information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol + // Secure (HTTPS), which is always used at the beginning of a URL. Therefore, adding + // the prefix http:// or https:// to the FQDN turns it into a full URL. One example + // can be microsoft.com. + // required = true + DomainName *string `protobuf:"bytes,4,opt,name=domain_name,json=domainName,proto3,oneof" json:"domain_name,omitempty"` + // The list of dhcpv6 client messages where this option is included. + AssociatedDhcpMessages *Dhcpv6ClientOptionsIncludedMessages `protobuf:"bytes,5,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *IsisInterfaceAdvanced) Reset() { - *x = IsisInterfaceAdvanced{} +func (x *Dhcpv6ClientOptionsFqdn) Reset() { + *x = Dhcpv6ClientOptionsFqdn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[45] + mi := &file_otg_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceAdvanced) String() string { +func (x *Dhcpv6ClientOptionsFqdn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAdvanced) ProtoMessage() {} +func (*Dhcpv6ClientOptionsFqdn) ProtoMessage() {} -func (x *IsisInterfaceAdvanced) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[45] +func (x *Dhcpv6ClientOptionsFqdn) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27353,104 +27786,89 @@ func (x *IsisInterfaceAdvanced) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceAdvanced.ProtoReflect.Descriptor instead. -func (*IsisInterfaceAdvanced) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{45} +// Deprecated: Use Dhcpv6ClientOptionsFqdn.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsFqdn) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{49} } -func (x *IsisInterfaceAdvanced) GetAutoAdjustMtu() bool { - if x != nil && x.AutoAdjustMtu != nil { - return *x.AutoAdjustMtu +func (x *Dhcpv6ClientOptionsFqdn) GetFlagS() bool { + if x != nil && x.FlagS != nil { + return *x.FlagS } return false } -func (x *IsisInterfaceAdvanced) GetAutoAdjustArea() bool { - if x != nil && x.AutoAdjustArea != nil { - return *x.AutoAdjustArea +func (x *Dhcpv6ClientOptionsFqdn) GetFlagO() bool { + if x != nil && x.FlagO != nil { + return *x.FlagO } return false } -func (x *IsisInterfaceAdvanced) GetAutoAdjustSupportedProtocols() bool { - if x != nil && x.AutoAdjustSupportedProtocols != nil { - return *x.AutoAdjustSupportedProtocols +func (x *Dhcpv6ClientOptionsFqdn) GetFlagN() bool { + if x != nil && x.FlagN != nil { + return *x.FlagN } return false } -func (x *IsisInterfaceAdvanced) GetEnable_3WayHandshake() bool { - if x != nil && x.Enable_3WayHandshake != nil { - return *x.Enable_3WayHandshake +func (x *Dhcpv6ClientOptionsFqdn) GetDomainName() string { + if x != nil && x.DomainName != nil { + return *x.DomainName } - return false + return "" } -func (x *IsisInterfaceAdvanced) GetP2PHellosToUnicastMac() bool { - if x != nil && x.P2PHellosToUnicastMac != nil { - return *x.P2PHellosToUnicastMac +func (x *Dhcpv6ClientOptionsFqdn) GetAssociatedDhcpMessages() *Dhcpv6ClientOptionsIncludedMessages { + if x != nil { + return x.AssociatedDhcpMessages } - return false + return nil } -// Optional container for the link protection sub TLV (type 20). -type IsisInterfaceLinkProtection struct { +// The server sends this option to inform the client about a URL to a boot file. This +// information is required for booting over the network includes the details about +// the server on which the boot files can be found, the protocol to be used for the +// download (for example,HTTP or TFTP, and the path and name of the boot file on the +// server. The option code is 59. The URL will contain the network communication protocol, +// a subdomain, a domain name, and its extension. If the host in the URL is expressed +// using an IPv6 address rather than a domain name, the address in the URL then must +// be enclosed in [ and ] characters, conforming to [RFC3986]. Eg of a boot file url +// can be tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi. +type Dhcpv6ServerOptionsBootfileUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enable this to protect other link or links. LSPs on a link of this type are lost - // if any of the links fail. - // default = False - ExtraTraffic *bool `protobuf:"varint,1,opt,name=extra_traffic,json=extraTraffic,proto3,oneof" json:"extra_traffic,omitempty"` - // Enabling this signifies that there is no other link protecting this - // link. LSPs on a link of this type are lost if the link fails. - // default = False - Unprotected *bool `protobuf:"varint,2,opt,name=unprotected,proto3,oneof" json:"unprotected,omitempty"` - // Enable this to share the Extra Traffic links between one or more - // links of type Shared.There are one or more disjoint links of type - // Extra Traffic that are protecting this link. - // default = False - Shared *bool `protobuf:"varint,3,opt,name=shared,proto3,oneof" json:"shared,omitempty"` - // Enabling this signifies that there is one dedicated disjoint link - // of type Extra Traffic that is protecting this link. - // default = False - Dedicated_1To_1 *bool `protobuf:"varint,4,opt,name=dedicated_1_to_1,json=dedicated1To1,proto3,oneof" json:"dedicated_1_to_1,omitempty"` - // Enabling this signifies that a dedicated disjoint link is protecting - // this link. However, the protecting link is not advertised in the - // link state database and is therefore not available for the routing - // of LSPs. - // default = False - Dedicated_1Plus_1 *bool `protobuf:"varint,5,opt,name=dedicated_1_plus_1,json=dedicated1Plus1,proto3,oneof" json:"dedicated_1_plus_1,omitempty"` - // Enabling this signifies that a protection scheme that is more - // reliable than Dedicated 1+1. - // default = False - Enhanced *bool `protobuf:"varint,6,opt,name=enhanced,proto3,oneof" json:"enhanced,omitempty"` - // This is a Protection Scheme with value 0x40. - // default = False - Reserved_40 *bool `protobuf:"varint,7,opt,name=reserved_40,json=reserved40,proto3,oneof" json:"reserved_40,omitempty"` - // This is a Protection Scheme with value 0x80. - // default = False - Reserved_80 *bool `protobuf:"varint,8,opt,name=reserved_80,json=reserved80,proto3,oneof" json:"reserved_80,omitempty"` + // The URL for the boot file. It must comply with STD 66 format. + // required = true + Url *string `protobuf:"bytes,1,opt,name=url,proto3,oneof" json:"url,omitempty"` + // They are used to specify parameters for the boot file (similar to the command line + // arguments in most modern operating systems). For example, these parameters could + // be used to specify the root file system of the OS kernel, or the location from which + // a second-stage boot-loader program can download its configuration file. + BootfileParams []*Dhcpv6ServerOptionsBootFileParams `protobuf:"bytes,2,rep,name=bootfile_params,json=bootfileParams,proto3" json:"bootfile_params,omitempty"` + // The list of dhcpv6 client messages where this option is included. + AssociatedDhcpMessages *Dhcpv6ServerOptionsIncludedMessages `protobuf:"bytes,3,opt,name=associated_dhcp_messages,json=associatedDhcpMessages,proto3" json:"associated_dhcp_messages,omitempty"` } -func (x *IsisInterfaceLinkProtection) Reset() { - *x = IsisInterfaceLinkProtection{} +func (x *Dhcpv6ServerOptionsBootfileUrl) Reset() { + *x = Dhcpv6ServerOptionsBootfileUrl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[46] + mi := &file_otg_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceLinkProtection) String() string { +func (x *Dhcpv6ServerOptionsBootfileUrl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceLinkProtection) ProtoMessage() {} +func (*Dhcpv6ServerOptionsBootfileUrl) ProtoMessage() {} -func (x *IsisInterfaceLinkProtection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[46] +func (x *Dhcpv6ServerOptionsBootfileUrl) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27461,108 +27879,161 @@ func (x *IsisInterfaceLinkProtection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisInterfaceLinkProtection.ProtoReflect.Descriptor instead. -func (*IsisInterfaceLinkProtection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{46} +// Deprecated: Use Dhcpv6ServerOptionsBootfileUrl.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsBootfileUrl) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{50} } -func (x *IsisInterfaceLinkProtection) GetExtraTraffic() bool { - if x != nil && x.ExtraTraffic != nil { - return *x.ExtraTraffic +func (x *Dhcpv6ServerOptionsBootfileUrl) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url } - return false + return "" } -func (x *IsisInterfaceLinkProtection) GetUnprotected() bool { - if x != nil && x.Unprotected != nil { - return *x.Unprotected +func (x *Dhcpv6ServerOptionsBootfileUrl) GetBootfileParams() []*Dhcpv6ServerOptionsBootFileParams { + if x != nil { + return x.BootfileParams } - return false + return nil } -func (x *IsisInterfaceLinkProtection) GetShared() bool { - if x != nil && x.Shared != nil { - return *x.Shared +func (x *Dhcpv6ServerOptionsBootfileUrl) GetAssociatedDhcpMessages() *Dhcpv6ServerOptionsIncludedMessages { + if x != nil { + return x.AssociatedDhcpMessages } - return false + return nil } -func (x *IsisInterfaceLinkProtection) GetDedicated_1To_1() bool { - if x != nil && x.Dedicated_1To_1 != nil { - return *x.Dedicated_1To_1 - } - return false +// The option code is 60. They are used to specify parameters for the boot file (similar +// to the command line arguments in most modern operating systems). For example, these +// parameters could be used to specify the root file system of the OS kernel, or the +// location from which a second-stage boot-loader program can download its configuration +// file. +type Dhcpv6ServerOptionsBootFileParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // UTF-8 strings are parameters needed for booting, e.g., kernel parameters. + // required = true + Parameter *string `protobuf:"bytes,1,opt,name=parameter,proto3,oneof" json:"parameter,omitempty"` } -func (x *IsisInterfaceLinkProtection) GetDedicated_1Plus_1() bool { - if x != nil && x.Dedicated_1Plus_1 != nil { - return *x.Dedicated_1Plus_1 +func (x *Dhcpv6ServerOptionsBootFileParams) Reset() { + *x = Dhcpv6ServerOptionsBootFileParams{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *IsisInterfaceLinkProtection) GetEnhanced() bool { - if x != nil && x.Enhanced != nil { - return *x.Enhanced - } - return false +func (x *Dhcpv6ServerOptionsBootFileParams) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *IsisInterfaceLinkProtection) GetReserved_40() bool { - if x != nil && x.Reserved_40 != nil { - return *x.Reserved_40 +func (*Dhcpv6ServerOptionsBootFileParams) ProtoMessage() {} + +func (x *Dhcpv6ServerOptionsBootFileParams) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *IsisInterfaceLinkProtection) GetReserved_80() bool { - if x != nil && x.Reserved_80 != nil { - return *x.Reserved_80 +// Deprecated: Use Dhcpv6ServerOptionsBootFileParams.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsBootFileParams) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{51} +} + +func (x *Dhcpv6ServerOptionsBootFileParams) GetParameter() string { + if x != nil && x.Parameter != nil { + return *x.Parameter } - return false + return "" } -// This contains ISIS router basic properties. -type IsisBasic struct { +// A container for layer1 settings. +type Layer1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 Traffic Engineering(TE) router id. This address should be configured as an IPv4 - // Loopback address in 'ipv4_loopbacks' in the Device. - Ipv4TeRouterId *string `protobuf:"bytes,1,opt,name=ipv4_te_router_id,json=ipv4TeRouterId,proto3,oneof" json:"ipv4_te_router_id,omitempty"` - // Host name for the router. The host name is transmitted in all the packets sent from - // the router. - Hostname *string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` - // When set to true, it allows sending of more detailed metric information for the - // routes using 32-bit wide values using TLV 135 IP reachability and more detailed - // reachability information for IS reachability by using TLV 22. The detailed usage - // is described in RFC3784. + // A list of unique names of port objects that will share the + // choice settings. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // Set the speed if supported. When no speed is explicitly set, the current + // speed of underlying test interface shall be assumed. + Speed *Layer1_Speed_Enum `protobuf:"varint,2,opt,name=speed,proto3,enum=otg.Layer1_Speed_Enum,oneof" json:"speed,omitempty"` + // Set the type of media for test interface if supported. When no media + // type is explicitly set, the current media type of underlying test + // interface shall be assumed. + Media *Layer1_Media_Enum `protobuf:"varint,3,opt,name=media,proto3,enum=otg.Layer1_Media_Enum,oneof" json:"media,omitempty"` + // Enable promiscuous mode on test interface. A warning shall be raised if + // this field is set to `true`, even when it's not supported, ignoring + // the setting altogether. // default = True - EnableWideMetric *bool `protobuf:"varint,3,opt,name=enable_wide_metric,json=enableWideMetric,proto3,oneof" json:"enable_wide_metric,omitempty"` - // Configuration for controlling storage of ISIS learned LSPs are received from the - // neighbors. - // default = False - LearnedLspFilter *bool `protobuf:"varint,4,opt,name=learned_lsp_filter,json=learnedLspFilter,proto3,oneof" json:"learned_lsp_filter,omitempty"` + Promiscuous *bool `protobuf:"varint,4,opt,name=promiscuous,proto3,oneof" json:"promiscuous,omitempty"` + // Set the maximum transmission unit size. A warning shall be raised if + // the specified value is valid but not supported, ignoring the setting altogether. + // default = 1500 + Mtu *uint32 `protobuf:"varint,5,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + // Under Review: This field is currently under review for pending exploration on use + // cases + // + // Under Review: This field is currently under review for pending exploration on use + // cases + // + // Set to true to override the auto_negotiate, link_training + // and rs_fec settings for gigabit ethernet interfaces. + IeeeMediaDefaults *bool `protobuf:"varint,6,opt,name=ieee_media_defaults,json=ieeeMediaDefaults,proto3,oneof" json:"ieee_media_defaults,omitempty"` + // Under Review: This field is currently under review for pending exploration on use + // cases, given that a separate configuration called `AutoNegotiation` already exists. + // + // Under Review: This field is currently under review for pending exploration on use + // cases, given that a separate configuration called `AutoNegotiation` already exists. + // + // Enable/disable auto negotiation. + AutoNegotiate *bool `protobuf:"varint,7,opt,name=auto_negotiate,json=autoNegotiate,proto3,oneof" json:"auto_negotiate,omitempty"` + // Description missing in models + AutoNegotiation *Layer1AutoNegotiation `protobuf:"bytes,8,opt,name=auto_negotiation,json=autoNegotiation,proto3" json:"auto_negotiation,omitempty"` + // Description missing in models + FlowControl *Layer1FlowControl `protobuf:"bytes,9,opt,name=flow_control,json=flowControl,proto3" json:"flow_control,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *IsisBasic) Reset() { - *x = IsisBasic{} +func (x *Layer1) Reset() { + *x = Layer1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[47] + mi := &file_otg_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisBasic) String() string { +func (x *Layer1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisBasic) ProtoMessage() {} +func (*Layer1) ProtoMessage() {} -func (x *IsisBasic) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[47] +func (x *Layer1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27573,101 +28044,132 @@ func (x *IsisBasic) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisBasic.ProtoReflect.Descriptor instead. -func (*IsisBasic) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{47} +// Deprecated: Use Layer1.ProtoReflect.Descriptor instead. +func (*Layer1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{52} } -func (x *IsisBasic) GetIpv4TeRouterId() string { - if x != nil && x.Ipv4TeRouterId != nil { - return *x.Ipv4TeRouterId +func (x *Layer1) GetPortNames() []string { + if x != nil { + return x.PortNames } - return "" + return nil } -func (x *IsisBasic) GetHostname() string { - if x != nil && x.Hostname != nil { - return *x.Hostname +func (x *Layer1) GetSpeed() Layer1_Speed_Enum { + if x != nil && x.Speed != nil { + return *x.Speed } - return "" + return Layer1_Speed_unspecified } -func (x *IsisBasic) GetEnableWideMetric() bool { - if x != nil && x.EnableWideMetric != nil { - return *x.EnableWideMetric +func (x *Layer1) GetMedia() Layer1_Media_Enum { + if x != nil && x.Media != nil { + return *x.Media + } + return Layer1_Media_unspecified +} + +func (x *Layer1) GetPromiscuous() bool { + if x != nil && x.Promiscuous != nil { + return *x.Promiscuous } return false } -func (x *IsisBasic) GetLearnedLspFilter() bool { - if x != nil && x.LearnedLspFilter != nil { - return *x.LearnedLspFilter +func (x *Layer1) GetMtu() uint32 { + if x != nil && x.Mtu != nil { + return *x.Mtu + } + return 0 +} + +func (x *Layer1) GetIeeeMediaDefaults() bool { + if x != nil && x.IeeeMediaDefaults != nil { + return *x.IeeeMediaDefaults } return false } -// Contains ISIS router advanced properties. -type IsisAdvanced struct { +func (x *Layer1) GetAutoNegotiate() bool { + if x != nil && x.AutoNegotiate != nil { + return *x.AutoNegotiate + } + return false +} + +func (x *Layer1) GetAutoNegotiation() *Layer1AutoNegotiation { + if x != nil { + return x.AutoNegotiation + } + return nil +} + +func (x *Layer1) GetFlowControl() *Layer1FlowControl { + if x != nil { + return x.FlowControl + } + return nil +} + +func (x *Layer1) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// Configuration for auto negotiation settings +type Layer1AutoNegotiation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // It enables padding of Hello message to MTU size. + // If auto_negotiate is true and the interface supports this option + // then this speed will be advertised. // default = True - EnableHelloPadding *bool `protobuf:"varint,1,opt,name=enable_hello_padding,json=enableHelloPadding,proto3,oneof" json:"enable_hello_padding,omitempty"` - // The Number of Area Addresses permitted, with a valid range from 0 to 254. A zero - // indicates a maximum of 3 addresses. - // default = 3 - MaxAreaAddresses *uint32 `protobuf:"varint,2,opt,name=max_area_addresses,json=maxAreaAddresses,proto3,oneof" json:"max_area_addresses,omitempty"` - // Its combination of the ISP and HO-DSP.Usually all nodes within an area have the - // same area address. If no area addresses are configured, a default area of 490001 - // will be advertised. - AreaAddresses []string `protobuf:"bytes,3,rep,name=area_addresses,json=areaAddresses,proto3" json:"area_addresses,omitempty"` - // The rate at which LSPs are re-sent in seconds. - // default = 600 - LspRefreshRate *uint32 `protobuf:"varint,4,opt,name=lsp_refresh_rate,json=lspRefreshRate,proto3,oneof" json:"lsp_refresh_rate,omitempty"` - // The MaxAge for retaining a learned LSP on this router in seconds. - // default = 1200 - LspLifetime *uint32 `protobuf:"varint,5,opt,name=lsp_lifetime,json=lspLifetime,proto3,oneof" json:"lsp_lifetime,omitempty"` - // The number of milliseconds between transmissions of Partial Sequence Number PDU. - // default = 2000 - PsnpInterval *uint32 `protobuf:"varint,6,opt,name=psnp_interval,json=psnpInterval,proto3,oneof" json:"psnp_interval,omitempty"` - // The number of milliseconds between transmissions of Partial Sequence Number PDU. - // default = 10000 - CsnpInterval *uint32 `protobuf:"varint,7,opt,name=csnp_interval,json=csnpInterval,proto3,oneof" json:"csnp_interval,omitempty"` - // The maximum size in bytes of any LSP that can be transmitted over a link of equal - // or less than maximum MTU size. - // default = 1492 - MaxLspSize *uint32 `protobuf:"varint,8,opt,name=max_lsp_size,json=maxLspSize,proto3,oneof" json:"max_lsp_size,omitempty"` - // The number of seconds between transmissions of LSPs/MGROUP-PDUs. - // default = 5000 - LspMgroupMinTransInterval *uint32 `protobuf:"varint,9,opt,name=lsp_mgroup_min_trans_interval,json=lspMgroupMinTransInterval,proto3,oneof" json:"lsp_mgroup_min_trans_interval,omitempty"` - // If the Attached bit is enabled, it indicates that the ISIS router is attached to - // another area or the Level 2 backbone. The purpose of an Attached-Bit is to accomplish - // Inter-Area Routing. When an L1/L2 router is connected to more than one area, it - // sets the Attached-bit on its L1 LSP. This can cause a default route ( 0.0.0.0/0 ) - // to be installed by the receiving router. + Advertise_1000Mbps *bool `protobuf:"varint,1,opt,name=advertise_1000_mbps,json=advertise1000Mbps,proto3,oneof" json:"advertise_1000_mbps,omitempty"` + // If auto_negotiate is true and the interface supports this option + // then this speed will be advertised. // default = True - EnableAttachedBit *bool `protobuf:"varint,10,opt,name=enable_attached_bit,json=enableAttachedBit,proto3,oneof" json:"enable_attached_bit,omitempty"` + Advertise_100FdMbps *bool `protobuf:"varint,2,opt,name=advertise_100_fd_mbps,json=advertise100FdMbps,proto3,oneof" json:"advertise_100_fd_mbps,omitempty"` + // If auto_negotiate is true and the interface supports this option + // then this speed will be advertised. + // default = True + Advertise_100HdMbps *bool `protobuf:"varint,3,opt,name=advertise_100_hd_mbps,json=advertise100HdMbps,proto3,oneof" json:"advertise_100_hd_mbps,omitempty"` + // If auto_negotiate is true and the interface supports this option + // then this speed will be advertised. + // default = True + Advertise_10FdMbps *bool `protobuf:"varint,4,opt,name=advertise_10_fd_mbps,json=advertise10FdMbps,proto3,oneof" json:"advertise_10_fd_mbps,omitempty"` + // If auto_negotiate is true and the interface supports this option + // then this speed will be advertised. + // default = True + Advertise_10HdMbps *bool `protobuf:"varint,5,opt,name=advertise_10_hd_mbps,json=advertise10HdMbps,proto3,oneof" json:"advertise_10_hd_mbps,omitempty"` + // Enable/disable gigabit ethernet link training. + // default = False + LinkTraining *bool `protobuf:"varint,6,opt,name=link_training,json=linkTraining,proto3,oneof" json:"link_training,omitempty"` + // Enable/disable gigabit ethernet reed solomon forward error correction (RS FEC). + // default = False + RsFec *bool `protobuf:"varint,7,opt,name=rs_fec,json=rsFec,proto3,oneof" json:"rs_fec,omitempty"` } -func (x *IsisAdvanced) Reset() { - *x = IsisAdvanced{} +func (x *Layer1AutoNegotiation) Reset() { + *x = Layer1AutoNegotiation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[48] + mi := &file_otg_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisAdvanced) String() string { +func (x *Layer1AutoNegotiation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAdvanced) ProtoMessage() {} +func (*Layer1AutoNegotiation) ProtoMessage() {} -func (x *IsisAdvanced) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[48] +func (x *Layer1AutoNegotiation) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27678,115 +28180,98 @@ func (x *IsisAdvanced) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAdvanced.ProtoReflect.Descriptor instead. -func (*IsisAdvanced) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{48} +// Deprecated: Use Layer1AutoNegotiation.ProtoReflect.Descriptor instead. +func (*Layer1AutoNegotiation) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{53} } -func (x *IsisAdvanced) GetEnableHelloPadding() bool { - if x != nil && x.EnableHelloPadding != nil { - return *x.EnableHelloPadding +func (x *Layer1AutoNegotiation) GetAdvertise_1000Mbps() bool { + if x != nil && x.Advertise_1000Mbps != nil { + return *x.Advertise_1000Mbps } return false } -func (x *IsisAdvanced) GetMaxAreaAddresses() uint32 { - if x != nil && x.MaxAreaAddresses != nil { - return *x.MaxAreaAddresses - } - return 0 -} - -func (x *IsisAdvanced) GetAreaAddresses() []string { - if x != nil { - return x.AreaAddresses - } - return nil -} - -func (x *IsisAdvanced) GetLspRefreshRate() uint32 { - if x != nil && x.LspRefreshRate != nil { - return *x.LspRefreshRate - } - return 0 -} - -func (x *IsisAdvanced) GetLspLifetime() uint32 { - if x != nil && x.LspLifetime != nil { - return *x.LspLifetime +func (x *Layer1AutoNegotiation) GetAdvertise_100FdMbps() bool { + if x != nil && x.Advertise_100FdMbps != nil { + return *x.Advertise_100FdMbps } - return 0 + return false } -func (x *IsisAdvanced) GetPsnpInterval() uint32 { - if x != nil && x.PsnpInterval != nil { - return *x.PsnpInterval +func (x *Layer1AutoNegotiation) GetAdvertise_100HdMbps() bool { + if x != nil && x.Advertise_100HdMbps != nil { + return *x.Advertise_100HdMbps } - return 0 + return false } -func (x *IsisAdvanced) GetCsnpInterval() uint32 { - if x != nil && x.CsnpInterval != nil { - return *x.CsnpInterval +func (x *Layer1AutoNegotiation) GetAdvertise_10FdMbps() bool { + if x != nil && x.Advertise_10FdMbps != nil { + return *x.Advertise_10FdMbps } - return 0 + return false } -func (x *IsisAdvanced) GetMaxLspSize() uint32 { - if x != nil && x.MaxLspSize != nil { - return *x.MaxLspSize +func (x *Layer1AutoNegotiation) GetAdvertise_10HdMbps() bool { + if x != nil && x.Advertise_10HdMbps != nil { + return *x.Advertise_10HdMbps } - return 0 + return false } -func (x *IsisAdvanced) GetLspMgroupMinTransInterval() uint32 { - if x != nil && x.LspMgroupMinTransInterval != nil { - return *x.LspMgroupMinTransInterval +func (x *Layer1AutoNegotiation) GetLinkTraining() bool { + if x != nil && x.LinkTraining != nil { + return *x.LinkTraining } - return 0 + return false } -func (x *IsisAdvanced) GetEnableAttachedBit() bool { - if x != nil && x.EnableAttachedBit != nil { - return *x.EnableAttachedBit +func (x *Layer1AutoNegotiation) GetRsFec() bool { + if x != nil && x.RsFec != nil { + return *x.RsFec } return false } -// This contains ISIS Area/Domain authentication properties. -type IsisAuthentication struct { +// A container for layer1 receive flow control settings. +// To enable flow control settings on ports this object must be a valid +// object not a null value. +type Layer1FlowControl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Do not verify MD5 checksum in received LSPs. - // default = True - IgnoreReceiveMd5 *bool `protobuf:"varint,1,opt,name=ignore_receive_md5,json=ignoreReceiveMd5,proto3,oneof" json:"ignore_receive_md5,omitempty"` - // The Area authentication method used for the emulated ISIS router. - // This is used for L1 LSPs. - AreaAuth *IsisAuthenticationBase `protobuf:"bytes,2,opt,name=area_auth,json=areaAuth,proto3" json:"area_auth,omitempty"` - // The Domain authentication method used for the emulated ISIS router. - // This is used for L2 LSPs. - DomainAuth *IsisAuthenticationBase `protobuf:"bytes,3,opt,name=domain_auth,json=domainAuth,proto3" json:"domain_auth,omitempty"` + // The 48bit mac address that the layer1 port names will listen on + // for a directed pause. + // default = 01:80:C2:00:00:01 + DirectedAddress *string `protobuf:"bytes,1,opt,name=directed_address,json=directedAddress,proto3,oneof" json:"directed_address,omitempty"` + // The type of priority flow control. + // default = Choice.Enum.ieee_802_1qbb + Choice *Layer1FlowControl_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.Layer1FlowControl_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ieee_802_1Qbb *Layer1Ieee8021Qbb `protobuf:"bytes,3,opt,name=ieee_802_1qbb,json=ieee8021qbb,proto3" json:"ieee_802_1qbb,omitempty"` + // Description missing in models + Ieee_802_3X *Layer1Ieee8023X `protobuf:"bytes,4,opt,name=ieee_802_3x,json=ieee8023x,proto3" json:"ieee_802_3x,omitempty"` } -func (x *IsisAuthentication) Reset() { - *x = IsisAuthentication{} +func (x *Layer1FlowControl) Reset() { + *x = Layer1FlowControl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[49] + mi := &file_otg_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisAuthentication) String() string { +func (x *Layer1FlowControl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAuthentication) ProtoMessage() {} +func (*Layer1FlowControl) ProtoMessage() {} -func (x *IsisAuthentication) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[49] +func (x *Layer1FlowControl) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27797,64 +28282,63 @@ func (x *IsisAuthentication) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAuthentication.ProtoReflect.Descriptor instead. -func (*IsisAuthentication) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{49} +// Deprecated: Use Layer1FlowControl.ProtoReflect.Descriptor instead. +func (*Layer1FlowControl) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{54} } -func (x *IsisAuthentication) GetIgnoreReceiveMd5() bool { - if x != nil && x.IgnoreReceiveMd5 != nil { - return *x.IgnoreReceiveMd5 +func (x *Layer1FlowControl) GetDirectedAddress() string { + if x != nil && x.DirectedAddress != nil { + return *x.DirectedAddress } - return false + return "" } -func (x *IsisAuthentication) GetAreaAuth() *IsisAuthenticationBase { +func (x *Layer1FlowControl) GetChoice() Layer1FlowControl_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return Layer1FlowControl_Choice_unspecified +} + +func (x *Layer1FlowControl) GetIeee_802_1Qbb() *Layer1Ieee8021Qbb { if x != nil { - return x.AreaAuth + return x.Ieee_802_1Qbb } return nil } -func (x *IsisAuthentication) GetDomainAuth() *IsisAuthenticationBase { +func (x *Layer1FlowControl) GetIeee_802_3X() *Layer1Ieee8023X { if x != nil { - return x.DomainAuth + return x.Ieee_802_3X } return nil } -// Optional container for ISIS authentication properties. -type IsisAuthenticationBase struct { +// A container for ieee 802.3x rx pause settings +type Layer1Ieee8023X struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // The authentication method. - // required = true - AuthType *IsisAuthenticationBase_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisAuthenticationBase_AuthType_Enum,oneof" json:"auth_type,omitempty"` - // Authentication as an MD5 key. - Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` - // Authentication as a clear text password. - Password *string `protobuf:"bytes,3,opt,name=password,proto3,oneof" json:"password,omitempty"` } -func (x *IsisAuthenticationBase) Reset() { - *x = IsisAuthenticationBase{} +func (x *Layer1Ieee8023X) Reset() { + *x = Layer1Ieee8023X{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[50] + mi := &file_otg_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisAuthenticationBase) String() string { +func (x *Layer1Ieee8023X) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisAuthenticationBase) ProtoMessage() {} +func (*Layer1Ieee8023X) ProtoMessage() {} -func (x *IsisAuthenticationBase) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[50] +func (x *Layer1Ieee8023X) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27865,98 +28349,74 @@ func (x *IsisAuthenticationBase) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisAuthenticationBase.ProtoReflect.Descriptor instead. -func (*IsisAuthenticationBase) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{50} -} - -func (x *IsisAuthenticationBase) GetAuthType() IsisAuthenticationBase_AuthType_Enum { - if x != nil && x.AuthType != nil { - return *x.AuthType - } - return IsisAuthenticationBase_AuthType_unspecified -} - -func (x *IsisAuthenticationBase) GetMd5() string { - if x != nil && x.Md5 != nil { - return *x.Md5 - } - return "" -} - -func (x *IsisAuthenticationBase) GetPassword() string { - if x != nil && x.Password != nil { - return *x.Password - } - return "" +// Deprecated: Use Layer1Ieee8023X.ProtoReflect.Descriptor instead. +func (*Layer1Ieee8023X) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{55} } -// Emulated ISIS IPv4 routes. -type IsisV4RouteRange struct { +// These settings enhance the existing 802.3x pause priority capabilities +// to enable flow control based on 802.1p priorities (classes of service). +type Layer1Ieee8021Qbb struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv4 route addresses. - Addresses []*V4RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The user-defined metric associated with this route range. + // The upper limit on the transmit time of a queue after receiving a + // message to pause a specified priority. + // A value of 0 or null indicates that pfc delay will not be enabled. // default = 0 - LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` - // 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. - // default = OriginType.Enum.internal - OriginType *IsisV4RouteRange_OriginType_Enum `protobuf:"varint,3,opt,name=origin_type,json=originType,proto3,enum=otg.IsisV4RouteRange_OriginType_Enum,oneof" json:"origin_type,omitempty"` - // Defines the Up/Down (Redistribution) bit defined for TLVs 128 and 130 by RFC 2966. - // It is used for domain-wide advertisement of prefix information. - // - // 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). - // default = RedistributionType.Enum.up - RedistributionType *IsisV4RouteRange_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisV4RouteRange_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags - // will be advertised or not. - // default = False - PrefixAttrEnabled *bool `protobuf:"varint,6,opt,name=prefix_attr_enabled,json=prefixAttrEnabled,proto3,oneof" json:"prefix_attr_enabled,omitempty"` - // External Prefix Flag (Bit 0) - // default = False - XFlag *bool `protobuf:"varint,7,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` - // Re-advertisement Flag (Bit 1) - // default = False - RFlag *bool `protobuf:"varint,8,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` - // Node Flag (Bit 2) - // default = False - NFlag *bool `protobuf:"varint,9,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` + PfcDelay *uint32 `protobuf:"varint,1,opt,name=pfc_delay,json=pfcDelay,proto3,oneof" json:"pfc_delay,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 0 + PfcClass_0 *uint32 `protobuf:"varint,2,opt,name=pfc_class_0,json=pfcClass0,proto3,oneof" json:"pfc_class_0,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 1 + PfcClass_1 *uint32 `protobuf:"varint,3,opt,name=pfc_class_1,json=pfcClass1,proto3,oneof" json:"pfc_class_1,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 2 + PfcClass_2 *uint32 `protobuf:"varint,4,opt,name=pfc_class_2,json=pfcClass2,proto3,oneof" json:"pfc_class_2,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 3 + PfcClass_3 *uint32 `protobuf:"varint,5,opt,name=pfc_class_3,json=pfcClass3,proto3,oneof" json:"pfc_class_3,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 4 + PfcClass_4 *uint32 `protobuf:"varint,6,opt,name=pfc_class_4,json=pfcClass4,proto3,oneof" json:"pfc_class_4,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 5 + PfcClass_5 *uint32 `protobuf:"varint,7,opt,name=pfc_class_5,json=pfcClass5,proto3,oneof" json:"pfc_class_5,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 6 + PfcClass_6 *uint32 `protobuf:"varint,8,opt,name=pfc_class_6,json=pfcClass6,proto3,oneof" json:"pfc_class_6,omitempty"` + // The valid values are null, 0 - 7. + // A null value indicates there is no setting for this pfc class. + // default = 7 + PfcClass_7 *uint32 `protobuf:"varint,9,opt,name=pfc_class_7,json=pfcClass7,proto3,oneof" json:"pfc_class_7,omitempty"` } -func (x *IsisV4RouteRange) Reset() { - *x = IsisV4RouteRange{} +func (x *Layer1Ieee8021Qbb) Reset() { + *x = Layer1Ieee8021Qbb{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[51] + mi := &file_otg_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange) String() string { +func (x *Layer1Ieee8021Qbb) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange) ProtoMessage() {} +func (*Layer1Ieee8021Qbb) ProtoMessage() {} -func (x *IsisV4RouteRange) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[51] +func (x *Layer1Ieee8021Qbb) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27967,112 +28427,132 @@ func (x *IsisV4RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV4RouteRange.ProtoReflect.Descriptor instead. -func (*IsisV4RouteRange) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{51} +// Deprecated: Use Layer1Ieee8021Qbb.ProtoReflect.Descriptor instead. +func (*Layer1Ieee8021Qbb) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{56} } -func (x *IsisV4RouteRange) GetAddresses() []*V4RouteAddress { - if x != nil { - return x.Addresses +func (x *Layer1Ieee8021Qbb) GetPfcDelay() uint32 { + if x != nil && x.PfcDelay != nil { + return *x.PfcDelay } - return nil + return 0 } -func (x *IsisV4RouteRange) GetLinkMetric() uint32 { - if x != nil && x.LinkMetric != nil { - return *x.LinkMetric +func (x *Layer1Ieee8021Qbb) GetPfcClass_0() uint32 { + if x != nil && x.PfcClass_0 != nil { + return *x.PfcClass_0 } return 0 } -func (x *IsisV4RouteRange) GetOriginType() IsisV4RouteRange_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType +func (x *Layer1Ieee8021Qbb) GetPfcClass_1() uint32 { + if x != nil && x.PfcClass_1 != nil { + return *x.PfcClass_1 } - return IsisV4RouteRange_OriginType_unspecified + return 0 } -func (x *IsisV4RouteRange) GetRedistributionType() IsisV4RouteRange_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *Layer1Ieee8021Qbb) GetPfcClass_2() uint32 { + if x != nil && x.PfcClass_2 != nil { + return *x.PfcClass_2 } - return IsisV4RouteRange_RedistributionType_unspecified + return 0 } -func (x *IsisV4RouteRange) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *Layer1Ieee8021Qbb) GetPfcClass_3() uint32 { + if x != nil && x.PfcClass_3 != nil { + return *x.PfcClass_3 } - return "" + return 0 } -func (x *IsisV4RouteRange) GetPrefixAttrEnabled() bool { - if x != nil && x.PrefixAttrEnabled != nil { - return *x.PrefixAttrEnabled +func (x *Layer1Ieee8021Qbb) GetPfcClass_4() uint32 { + if x != nil && x.PfcClass_4 != nil { + return *x.PfcClass_4 } - return false + return 0 } -func (x *IsisV4RouteRange) GetXFlag() bool { - if x != nil && x.XFlag != nil { - return *x.XFlag +func (x *Layer1Ieee8021Qbb) GetPfcClass_5() uint32 { + if x != nil && x.PfcClass_5 != nil { + return *x.PfcClass_5 } - return false + return 0 } -func (x *IsisV4RouteRange) GetRFlag() bool { - if x != nil && x.RFlag != nil { - return *x.RFlag +func (x *Layer1Ieee8021Qbb) GetPfcClass_6() uint32 { + if x != nil && x.PfcClass_6 != nil { + return *x.PfcClass_6 } - return false + return 0 } -func (x *IsisV4RouteRange) GetNFlag() bool { - if x != nil && x.NFlag != nil { - return *x.NFlag +func (x *Layer1Ieee8021Qbb) GetPfcClass_7() uint32 { + if x != nil && x.PfcClass_7 != nil { + return *x.PfcClass_7 } - return false + return 0 } -// A container for IPv4 route addresses. -type V4RouteAddress struct { +// Under Review: There may be changes in filter configuration +// +// Under Review: There may be changes in filter configuration +// +// Configuration for capture settings. +type Capture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The starting address of the network. + // The unique names of ports that the capture settings will apply to. Port_names cannot + // be duplicated between capture objects. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // A list of filters to apply to the capturing ports. If no filters are specified then + // all packets will be captured. A capture can have multiple filters. The number of + // filters supported is determined by the implementation which can be retrieved using + // the capabilities API. + // When multiple filters are specified the capture implementation must && (and) all + // the filters. + Filters []*CaptureFilter `protobuf:"bytes,2,rep,name=filters,proto3" json:"filters,omitempty"` + // Overwrite the capture buffer. + // default = True + Overwrite *bool `protobuf:"varint,3,opt,name=overwrite,proto3,oneof" json:"overwrite,omitempty"` + // The maximum size of each captured packet. If no value is specified or it is null + // then the entire packet will be captured. + PacketSize *uint32 `protobuf:"varint,4,opt,name=packet_size,json=packetSize,proto3,oneof" json:"packet_size,omitempty"` + // The format of the capture file. + // default = Format.Enum.pcap + Format *Capture_Format_Enum `protobuf:"varint,5,opt,name=format,proto3,enum=otg.Capture_Format_Enum,oneof" json:"format,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. // required = true - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The IPv4 network prefix length to be applied to the address. - // default = 24 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The total number of addresses in the range. - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` - // Increments the network address prefixes within a route range where multiple routes - // are present. The value is incremented according to the Prefix Length and Step. - // default = 1 - Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` + Name *string `protobuf:"bytes,6,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *V4RouteAddress) Reset() { - *x = V4RouteAddress{} +func (x *Capture) Reset() { + *x = Capture{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[52] + mi := &file_otg_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *V4RouteAddress) String() string { +func (x *Capture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*V4RouteAddress) ProtoMessage() {} +func (*Capture) ProtoMessage() {} -func (x *V4RouteAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[52] +func (x *Capture) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28083,77 +28563,93 @@ func (x *V4RouteAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use V4RouteAddress.ProtoReflect.Descriptor instead. -func (*V4RouteAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{52} +// Deprecated: Use Capture.ProtoReflect.Descriptor instead. +func (*Capture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{57} } -func (x *V4RouteAddress) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *Capture) GetPortNames() []string { + if x != nil { + return x.PortNames } - return "" + return nil } -func (x *V4RouteAddress) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *Capture) GetFilters() []*CaptureFilter { + if x != nil { + return x.Filters } - return 0 + return nil } -func (x *V4RouteAddress) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *Capture) GetOverwrite() bool { + if x != nil && x.Overwrite != nil { + return *x.Overwrite } - return 0 + return false } -func (x *V4RouteAddress) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *Capture) GetPacketSize() uint32 { + if x != nil && x.PacketSize != nil { + return *x.PacketSize } return 0 } -// A container for IPv6 route addresses. -type V6RouteAddress struct { +func (x *Capture) GetFormat() Capture_Format_Enum { + if x != nil && x.Format != nil { + return *x.Format + } + return Capture_Format_unspecified +} + +func (x *Capture) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// Configuration for capture filters +type CaptureFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The starting address of the network. - // required = true - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The IPv6 network prefix length to be applied to the address. - // default = 64 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The total number of addresses in the range. - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` - // Increments the network address prefixes within a route range where multiple routes - // are present. The value is incremented according to the Prefix Length and Step. - // default = 1 - Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` + // The type of capture filter. + // default = Choice.Enum.custom + Choice *CaptureFilter_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.CaptureFilter_Choice_Enum,oneof" json:"choice,omitempty"` + // Offset from last filter in the list. If no filters are present it is offset from + // position 0. Multiple custom filters can be present, the length of each custom filter + // is the length of the value being filtered. + Custom *CaptureCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` + // Description missing in models + Ethernet *CaptureEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` + // Description missing in models + Vlan *CaptureVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` + // Description missing in models + Ipv4 *CaptureIpv4 `protobuf:"bytes,5,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + // Description missing in models + Ipv6 *CaptureIpv6 `protobuf:"bytes,6,opt,name=ipv6,proto3" json:"ipv6,omitempty"` } -func (x *V6RouteAddress) Reset() { - *x = V6RouteAddress{} +func (x *CaptureFilter) Reset() { + *x = CaptureFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[53] + mi := &file_otg_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *V6RouteAddress) String() string { +func (x *CaptureFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*V6RouteAddress) ProtoMessage() {} +func (*CaptureFilter) ProtoMessage() {} -func (x *V6RouteAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[53] +func (x *CaptureFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28164,77 +28660,92 @@ func (x *V6RouteAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use V6RouteAddress.ProtoReflect.Descriptor instead. -func (*V6RouteAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{53} +// Deprecated: Use CaptureFilter.ProtoReflect.Descriptor instead. +func (*CaptureFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{58} } -func (x *V6RouteAddress) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *CaptureFilter) GetChoice() CaptureFilter_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return CaptureFilter_Choice_unspecified } -func (x *V6RouteAddress) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *CaptureFilter) GetCustom() *CaptureCustom { + if x != nil { + return x.Custom } - return 0 + return nil } -func (x *V6RouteAddress) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *CaptureFilter) GetEthernet() *CaptureEthernet { + if x != nil { + return x.Ethernet } - return 0 + return nil } -func (x *V6RouteAddress) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *CaptureFilter) GetVlan() *CaptureVlan { + if x != nil { + return x.Vlan } - return 0 + return nil } -// A container for MAC route addresses. -type MACRouteAddress struct { +func (x *CaptureFilter) GetIpv4() *CaptureIpv4 { + if x != nil { + return x.Ipv4 + } + return nil +} + +func (x *CaptureFilter) GetIpv6() *CaptureIpv6 { + if x != nil { + return x.Ipv6 + } + return nil +} + +// Description missing in models +type CaptureCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The starting address of the MAC Range. - // required = true - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The MAC prefix length to be applied to the address. - // default = 48 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The total number of mac addresses in the range. - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` - // Increments the mac address prefixes within a mac range where multiple routes are - // present. The value is incremented according to the mac prefix Length and Step. - // default = 1 - Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` + // The bit offset of field to filter on + Offset *uint32 `protobuf:"varint,1,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // The bit length of field to filter on + // default = 8 + BitLength *uint32 `protobuf:"varint,2,opt,name=bit_length,json=bitLength,proto3,oneof" json:"bit_length,omitempty"` + // Description missing in models + // default = 00 + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = 00 + Mask *string `protobuf:"bytes,4,opt,name=mask,proto3,oneof" json:"mask,omitempty"` + // Description missing in models + // default = False + Negate *bool `protobuf:"varint,5,opt,name=negate,proto3,oneof" json:"negate,omitempty"` } -func (x *MACRouteAddress) Reset() { - *x = MACRouteAddress{} +func (x *CaptureCustom) Reset() { + *x = CaptureCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[54] + mi := &file_otg_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MACRouteAddress) String() string { +func (x *CaptureCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MACRouteAddress) ProtoMessage() {} +func (*CaptureCustom) ProtoMessage() {} -func (x *MACRouteAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[54] +func (x *CaptureCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28245,105 +28756,80 @@ func (x *MACRouteAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MACRouteAddress.ProtoReflect.Descriptor instead. -func (*MACRouteAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{54} +// Deprecated: Use CaptureCustom.ProtoReflect.Descriptor instead. +func (*CaptureCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{59} } -func (x *MACRouteAddress) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *CaptureCustom) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return "" + return 0 } -func (x *MACRouteAddress) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *CaptureCustom) GetBitLength() uint32 { + if x != nil && x.BitLength != nil { + return *x.BitLength } return 0 } -func (x *MACRouteAddress) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *CaptureCustom) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return 0 + return "" } -func (x *MACRouteAddress) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *CaptureCustom) GetMask() string { + if x != nil && x.Mask != nil { + return *x.Mask } - return 0 + return "" } -// Emulated ISIS IPv6 routes. -type IsisV6RouteRange struct { +func (x *CaptureCustom) GetNegate() bool { + if x != nil && x.Negate != nil { + return *x.Negate + } + return false +} + +// Description missing in models +type CaptureField struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv6 route addresses. - Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The user-defined metric associated with this route range. - // default = 0 - LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` - // 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. - // default = OriginType.Enum.internal - OriginType *IsisV6RouteRange_OriginType_Enum `protobuf:"varint,3,opt,name=origin_type,json=originType,proto3,enum=otg.IsisV6RouteRange_OriginType_Enum,oneof" json:"origin_type,omitempty"` - // Defines the Up/Down (Redistribution) bit defined for TLVs 128 and 130 by RFC 2966. - // It is used for domain-wide advertisement of prefix information. - // - // 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). - // default = RedistributionType.Enum.up - RedistributionType *IsisV6RouteRange_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisV6RouteRange_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags - // will be advertised or not. - // default = False - PrefixAttrEnabled *bool `protobuf:"varint,6,opt,name=prefix_attr_enabled,json=prefixAttrEnabled,proto3,oneof" json:"prefix_attr_enabled,omitempty"` - // External Prefix Flag (Bit 0) - // default = False - XFlag *bool `protobuf:"varint,7,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` - // Re-advertisement Flag (Bit 1) - // default = False - RFlag *bool `protobuf:"varint,8,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` - // Node Flag (Bit 2) + // Description missing in models + // default = 00 + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = 00 + Mask *string `protobuf:"bytes,2,opt,name=mask,proto3,oneof" json:"mask,omitempty"` + // Description missing in models // default = False - NFlag *bool `protobuf:"varint,9,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` + Negate *bool `protobuf:"varint,3,opt,name=negate,proto3,oneof" json:"negate,omitempty"` } -func (x *IsisV6RouteRange) Reset() { - *x = IsisV6RouteRange{} +func (x *CaptureField) Reset() { + *x = CaptureField{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[55] + mi := &file_otg_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange) String() string { +func (x *CaptureField) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange) ProtoMessage() {} +func (*CaptureField) ProtoMessage() {} -func (x *IsisV6RouteRange) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[55] +func (x *CaptureField) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28354,109 +28840,65 @@ func (x *IsisV6RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisV6RouteRange.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55} -} - -func (x *IsisV6RouteRange) GetAddresses() []*V6RouteAddress { - if x != nil { - return x.Addresses - } - return nil -} - -func (x *IsisV6RouteRange) GetLinkMetric() uint32 { - if x != nil && x.LinkMetric != nil { - return *x.LinkMetric - } - return 0 -} - -func (x *IsisV6RouteRange) GetOriginType() IsisV6RouteRange_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType - } - return IsisV6RouteRange_OriginType_unspecified -} - -func (x *IsisV6RouteRange) GetRedistributionType() IsisV6RouteRange_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType - } - return IsisV6RouteRange_RedistributionType_unspecified +// Deprecated: Use CaptureField.ProtoReflect.Descriptor instead. +func (*CaptureField) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{60} } -func (x *IsisV6RouteRange) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *CaptureField) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } return "" } -func (x *IsisV6RouteRange) GetPrefixAttrEnabled() bool { - if x != nil && x.PrefixAttrEnabled != nil { - return *x.PrefixAttrEnabled - } - return false -} - -func (x *IsisV6RouteRange) GetXFlag() bool { - if x != nil && x.XFlag != nil { - return *x.XFlag - } - return false -} - -func (x *IsisV6RouteRange) GetRFlag() bool { - if x != nil && x.RFlag != nil { - return *x.RFlag +func (x *CaptureField) GetMask() string { + if x != nil && x.Mask != nil { + return *x.Mask } - return false + return "" } -func (x *IsisV6RouteRange) GetNFlag() bool { - if x != nil && x.NFlag != nil { - return *x.NFlag +func (x *CaptureField) GetNegate() bool { + if x != nil && x.Negate != nil { + return *x.Negate } return false } -// Configuration for one or more IPv4 or IPv6 BGP peers. -type DeviceBgpRouter struct { +// Description missing in models +type CaptureEthernet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is - // often represented by an IPv4 address. - // required = true - RouterId *string `protobuf:"bytes,1,opt,name=router_id,json=routerId,proto3,oneof" json:"router_id,omitempty"` - // This contains an array of references to IPv4 interfaces, each of which will have - // list of peers to different destinations. - Ipv4Interfaces []*BgpV4Interface `protobuf:"bytes,2,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` - // This contains an array of references to IPv6 interfaces, each of which will have - // list of peers to different destinations. - Ipv6Interfaces []*BgpV6Interface `protobuf:"bytes,3,rep,name=ipv6_interfaces,json=ipv6Interfaces,proto3" json:"ipv6_interfaces,omitempty"` + // Description missing in models + Src *CaptureField `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + Dst *CaptureField `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"` + // Description missing in models + EtherType *CaptureField `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` + // Description missing in models + PfcQueue *CaptureField `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` } -func (x *DeviceBgpRouter) Reset() { - *x = DeviceBgpRouter{} +func (x *CaptureEthernet) Reset() { + *x = CaptureEthernet{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[56] + mi := &file_otg_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpRouter) String() string { +func (x *CaptureEthernet) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpRouter) ProtoMessage() {} +func (*CaptureEthernet) ProtoMessage() {} -func (x *DeviceBgpRouter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[56] +func (x *CaptureEthernet) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28467,63 +28909,72 @@ func (x *DeviceBgpRouter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpRouter.ProtoReflect.Descriptor instead. -func (*DeviceBgpRouter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{56} +// Deprecated: Use CaptureEthernet.ProtoReflect.Descriptor instead. +func (*CaptureEthernet) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{61} } -func (x *DeviceBgpRouter) GetRouterId() string { - if x != nil && x.RouterId != nil { - return *x.RouterId +func (x *CaptureEthernet) GetSrc() *CaptureField { + if x != nil { + return x.Src } - return "" + return nil } -func (x *DeviceBgpRouter) GetIpv4Interfaces() []*BgpV4Interface { +func (x *CaptureEthernet) GetDst() *CaptureField { if x != nil { - return x.Ipv4Interfaces + return x.Dst } return nil } -func (x *DeviceBgpRouter) GetIpv6Interfaces() []*BgpV6Interface { +func (x *CaptureEthernet) GetEtherType() *CaptureField { if x != nil { - return x.Ipv6Interfaces + return x.EtherType } return nil } -// All errors detected while processing the Message Header are indicated by sending -// the NOTIFICATION message with the Error Code-Message Header Error. The Error Subcode -// elaborates on the specific nature of the error. -type DeviceBgpMessageHeaderError struct { +func (x *CaptureEthernet) GetPfcQueue() *CaptureField { + if x != nil { + return x.PfcQueue + } + return nil +} + +// Description missing in models +type CaptureVlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Error Subcode indicates the specific type of error encountered during Message - // Header processing. - // default = Subcode.Enum.connection_not_synchronized_code1_subcode1 - Subcode *DeviceBgpMessageHeaderError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpMessageHeaderError_Subcode_Enum,oneof" json:"subcode,omitempty"` -} - -func (x *DeviceBgpMessageHeaderError) Reset() { - *x = DeviceBgpMessageHeaderError{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + // Description missing in models + Priority *CaptureField `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` + // Description missing in models + Cfi *CaptureField `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` + // Description missing in models + Id *CaptureField `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // Description missing in models + Protocol *CaptureField `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` +} + +func (x *CaptureVlan) Reset() { + *x = CaptureVlan{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpMessageHeaderError) String() string { +func (x *CaptureVlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpMessageHeaderError) ProtoMessage() {} +func (*CaptureVlan) ProtoMessage() {} -func (x *DeviceBgpMessageHeaderError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[57] +func (x *CaptureVlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28534,101 +28985,92 @@ func (x *DeviceBgpMessageHeaderError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpMessageHeaderError.ProtoReflect.Descriptor instead. -func (*DeviceBgpMessageHeaderError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{57} +// Deprecated: Use CaptureVlan.ProtoReflect.Descriptor instead. +func (*CaptureVlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{62} } -func (x *DeviceBgpMessageHeaderError) GetSubcode() DeviceBgpMessageHeaderError_Subcode_Enum { - if x != nil && x.Subcode != nil { - return *x.Subcode +func (x *CaptureVlan) GetPriority() *CaptureField { + if x != nil { + return x.Priority } - return DeviceBgpMessageHeaderError_Subcode_unspecified -} - -// All errors detected while processing the OPEN message are indicated by sending the -// NOTIFICATION message with the Error Code-Open Message Error. The Error Subcode elaborates -// on the specific nature of the error. -type DeviceBgpOpenMessageError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The Error Subcode indicates the specific type of error encountered during OPEN message - // processing. - // default = Subcode.Enum.unsupported_version_number_code2_subcode1 - Subcode *DeviceBgpOpenMessageError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpOpenMessageError_Subcode_Enum,oneof" json:"subcode,omitempty"` + return nil } -func (x *DeviceBgpOpenMessageError) Reset() { - *x = DeviceBgpOpenMessageError{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CaptureVlan) GetCfi() *CaptureField { + if x != nil { + return x.Cfi } + return nil } -func (x *DeviceBgpOpenMessageError) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeviceBgpOpenMessageError) ProtoMessage() {} - -func (x *DeviceBgpOpenMessageError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CaptureVlan) GetId() *CaptureField { + if x != nil { + return x.Id } - return mi.MessageOf(x) -} - -// Deprecated: Use DeviceBgpOpenMessageError.ProtoReflect.Descriptor instead. -func (*DeviceBgpOpenMessageError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{58} + return nil } -func (x *DeviceBgpOpenMessageError) GetSubcode() DeviceBgpOpenMessageError_Subcode_Enum { - if x != nil && x.Subcode != nil { - return *x.Subcode +func (x *CaptureVlan) GetProtocol() *CaptureField { + if x != nil { + return x.Protocol } - return DeviceBgpOpenMessageError_Subcode_unspecified + return nil } -// All errors detected while processing the UPDATE message are indicated by sending -// the NOTIFICATION message with the Error Code-Update Message Error. The Error Subcode -// elaborates on the specific nature of the error. -type DeviceBgpUpdateMessageError struct { +// Description missing in models +type CaptureIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Error Subcode, the specific type of error encountered during UPDATE processing. - // default = Subcode.Enum.malformed_attrib_list_code3_subcode1 - Subcode *DeviceBgpUpdateMessageError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpUpdateMessageError_Subcode_Enum,oneof" json:"subcode,omitempty"` + // Description missing in models + Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + HeaderLength *CaptureField `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` + // Description missing in models + Priority *CaptureField `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` + // Description missing in models + TotalLength *CaptureField `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` + // Description missing in models + Identification *CaptureField `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` + // Description missing in models + Reserved *CaptureField `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` + // Description missing in models + DontFragment *CaptureField `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` + // Description missing in models + MoreFragments *CaptureField `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` + // Description missing in models + FragmentOffset *CaptureField `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` + // Description missing in models + TimeToLive *CaptureField `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` + // Description missing in models + Protocol *CaptureField `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Description missing in models + HeaderChecksum *CaptureField `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` + // Description missing in models + Src *CaptureField `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + Dst *CaptureField `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` } -func (x *DeviceBgpUpdateMessageError) Reset() { - *x = DeviceBgpUpdateMessageError{} +func (x *CaptureIpv4) Reset() { + *x = CaptureIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[59] + mi := &file_otg_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpUpdateMessageError) String() string { +func (x *CaptureIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpUpdateMessageError) ProtoMessage() {} +func (*CaptureIpv4) ProtoMessage() {} -func (x *DeviceBgpUpdateMessageError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[59] +func (x *CaptureIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28639,132 +29081,150 @@ func (x *DeviceBgpUpdateMessageError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpUpdateMessageError.ProtoReflect.Descriptor instead. -func (*DeviceBgpUpdateMessageError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{59} +// Deprecated: Use CaptureIpv4.ProtoReflect.Descriptor instead. +func (*CaptureIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{63} } -func (x *DeviceBgpUpdateMessageError) GetSubcode() DeviceBgpUpdateMessageError_Subcode_Enum { - if x != nil && x.Subcode != nil { - return *x.Subcode +func (x *CaptureIpv4) GetVersion() *CaptureField { + if x != nil { + return x.Version } - return DeviceBgpUpdateMessageError_Subcode_unspecified + return nil } -// If a system does not receive successive KEEPALIVE, UPDATE, and/or NOTIFICATION messages -// within the period specified in the Hold Time field of the OPEN message, then the -// NOTIFICATION message with the Hold Timer Expired Error Code(Error Code 4) is sent -// and the BGP connection is closed. The Sub Code used is 0. If a user wants to use -// non zero Sub Code then CustomError can be used. -type DeviceBgpHoldTimerExpired struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *CaptureIpv4) GetHeaderLength() *CaptureField { + if x != nil { + return x.HeaderLength + } + return nil } -func (x *DeviceBgpHoldTimerExpired) Reset() { - *x = DeviceBgpHoldTimerExpired{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CaptureIpv4) GetPriority() *CaptureField { + if x != nil { + return x.Priority } + return nil } -func (x *DeviceBgpHoldTimerExpired) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CaptureIpv4) GetTotalLength() *CaptureField { + if x != nil { + return x.TotalLength + } + return nil } -func (*DeviceBgpHoldTimerExpired) ProtoMessage() {} +func (x *CaptureIpv4) GetIdentification() *CaptureField { + if x != nil { + return x.Identification + } + return nil +} -func (x *DeviceBgpHoldTimerExpired) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CaptureIpv4) GetReserved() *CaptureField { + if x != nil { + return x.Reserved } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceBgpHoldTimerExpired.ProtoReflect.Descriptor instead. -func (*DeviceBgpHoldTimerExpired) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{60} +func (x *CaptureIpv4) GetDontFragment() *CaptureField { + if x != nil { + return x.DontFragment + } + return nil } -// Any error detected by the BGP Finite State Machine (e.g., receipt of an unexpected -// event) is indicated by sending the NOTIFICATION message with the Error Code-Finite -// State Machine Error(Error Code 5). The Sub Code used is 0. If a user wants to use -// non zero Sub Code then CustomError can be used. -type DeviceBgpFiniteStateMachineError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *CaptureIpv4) GetMoreFragments() *CaptureField { + if x != nil { + return x.MoreFragments + } + return nil } -func (x *DeviceBgpFiniteStateMachineError) Reset() { - *x = DeviceBgpFiniteStateMachineError{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CaptureIpv4) GetFragmentOffset() *CaptureField { + if x != nil { + return x.FragmentOffset } + return nil } -func (x *DeviceBgpFiniteStateMachineError) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CaptureIpv4) GetTimeToLive() *CaptureField { + if x != nil { + return x.TimeToLive + } + return nil } -func (*DeviceBgpFiniteStateMachineError) ProtoMessage() {} +func (x *CaptureIpv4) GetProtocol() *CaptureField { + if x != nil { + return x.Protocol + } + return nil +} -func (x *DeviceBgpFiniteStateMachineError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CaptureIpv4) GetHeaderChecksum() *CaptureField { + if x != nil { + return x.HeaderChecksum } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceBgpFiniteStateMachineError.ProtoReflect.Descriptor instead. -func (*DeviceBgpFiniteStateMachineError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{61} +func (x *CaptureIpv4) GetSrc() *CaptureField { + if x != nil { + return x.Src + } + return nil } -// In the absence of any fatal errors, a BGP peer can close its BGP connection by sending -// the NOTIFICATION message with the Error Code Cease. -type DeviceBgpCeaseError struct { +func (x *CaptureIpv4) GetDst() *CaptureField { + if x != nil { + return x.Dst + } + return nil +} + +// Description missing in models +type CaptureIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Error Subcode to be sent to the peer in the Cease NOTIFICATION. - // default = Subcode.Enum.admin_shutdown_code6_subcode2 - Subcode *DeviceBgpCeaseError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpCeaseError_Subcode_Enum,oneof" json:"subcode,omitempty"` + // Description missing in models + Version *CaptureField `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + TrafficClass *CaptureField `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` + // Description missing in models + FlowLabel *CaptureField `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` + // Description missing in models + PayloadLength *CaptureField `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` + // Description missing in models + NextHeader *CaptureField `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` + // Description missing in models + HopLimit *CaptureField `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` + // Description missing in models + Src *CaptureField `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + Dst *CaptureField `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` } -func (x *DeviceBgpCeaseError) Reset() { - *x = DeviceBgpCeaseError{} +func (x *CaptureIpv6) Reset() { + *x = CaptureIpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[62] + mi := &file_otg_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpCeaseError) String() string { +func (x *CaptureIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpCeaseError) ProtoMessage() {} +func (*CaptureIpv6) ProtoMessage() {} -func (x *DeviceBgpCeaseError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[62] +func (x *CaptureIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28775,167 +29235,116 @@ func (x *DeviceBgpCeaseError) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceBgpCeaseError.ProtoReflect.Descriptor instead. -func (*DeviceBgpCeaseError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{62} +// Deprecated: Use CaptureIpv6.ProtoReflect.Descriptor instead. +func (*CaptureIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{64} } -func (x *DeviceBgpCeaseError) GetSubcode() DeviceBgpCeaseError_Subcode_Enum { - if x != nil && x.Subcode != nil { - return *x.Subcode +func (x *CaptureIpv6) GetVersion() *CaptureField { + if x != nil { + return x.Version } - return DeviceBgpCeaseError_Subcode_unspecified + return nil } -// A BGP peer can send NOTIFICATION message with user defined Error Code and Error Subcode. -type DeviceBgpCustomError struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The Error code to be sent in the NOTIFICATION message to peer. - Code *uint32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` - // The Error Subcode to be sent in the NOTIFICATION message to peer. - Subcode *uint32 `protobuf:"varint,2,opt,name=subcode,proto3,oneof" json:"subcode,omitempty"` +func (x *CaptureIpv6) GetTrafficClass() *CaptureField { + if x != nil { + return x.TrafficClass + } + return nil } -func (x *DeviceBgpCustomError) Reset() { - *x = DeviceBgpCustomError{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *CaptureIpv6) GetFlowLabel() *CaptureField { + if x != nil { + return x.FlowLabel } + return nil } -func (x *DeviceBgpCustomError) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *CaptureIpv6) GetPayloadLength() *CaptureField { + if x != nil { + return x.PayloadLength + } + return nil } -func (*DeviceBgpCustomError) ProtoMessage() {} - -func (x *DeviceBgpCustomError) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CaptureIpv6) GetNextHeader() *CaptureField { + if x != nil { + return x.NextHeader } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceBgpCustomError.ProtoReflect.Descriptor instead. -func (*DeviceBgpCustomError) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{63} +func (x *CaptureIpv6) GetHopLimit() *CaptureField { + if x != nil { + return x.HopLimit + } + return nil } -func (x *DeviceBgpCustomError) GetCode() uint32 { - if x != nil && x.Code != nil { - return *x.Code +func (x *CaptureIpv6) GetSrc() *CaptureField { + if x != nil { + return x.Src } - return 0 + return nil } -func (x *DeviceBgpCustomError) GetSubcode() uint32 { - if x != nil && x.Subcode != nil { - return *x.Subcode +func (x *CaptureIpv6) GetDst() *CaptureField { + if x != nil { + return x.Dst } - return 0 + return nil } -// Configuration for emulated BGPv4 peers and routes. -type BgpV4Peer struct { +// A container for emulated interfaces, loopback interfaces and protocol configurations. +type Device struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 address of the BGP peer for the session. - // required = true - PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` - // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments - // (ES) Per BGP Peer for IPv4 Address Family Identifier (AFI). - // - // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . - // Each EVI contains a list of Broadcast Domains. - // Each Broadcast Domain contains a list of MAC/IP Ranges. - // - // is responsible for advertising Ethernet - // Auto-discovery Route Per EVI (Type 1). - // - // is responsible for advertising Ethernet Auto-discovery Route - // Per Ethernet Segment (Type 1). - // - // is responsible for advertising - // MAC/IP Advertisement Route (Type 2). - // - // is responsible for advertising Inclusive - // Multicast Ethernet Tag Route (Type 3). - // - // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). - EvpnEthernetSegments []*BgpV4EthernetSegment `protobuf:"bytes,2,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` - // The type of BGP autonomous system. External BGP is used for BGP links between two - // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous - // system (ibgp). BGP property defaults are aligned with this object defined as an internal - // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to - // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' - // attribute in 'as_path' field in any Route Range should be changed from default value - // 'do_not_include_local_as' to any other value. - // required = true - AsType *BgpV4Peer_AsType_Enum `protobuf:"varint,3,opt,name=as_type,json=asType,proto3,enum=otg.BgpV4Peer_AsType_Enum,oneof" json:"as_type,omitempty"` - // Autonomous System Number (AS number or ASN) - // required = true - AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // The width in bytes of the as_number values. Any as_number values that exceeds the - // width MUST result in an error. - // default = AsNumberWidth.Enum.four - AsNumberWidth *BgpV4Peer_AsNumberWidth_Enum `protobuf:"varint,5,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV4Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` - // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Description missing in models - Capability *BgpCapability `protobuf:"bytes,7,opt,name=capability,proto3" json:"capability,omitempty"` - // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,8,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` - // Emulated BGPv4 route ranges. - V4Routes []*BgpV4RouteRange `protobuf:"bytes,9,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` - // Emulated BGPv6 route ranges. - V6Routes []*BgpV6RouteRange `protobuf:"bytes,10,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier - // (AFI). - V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,11,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier - // (AFI). - V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,12,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + // Ethernet configuration for one or more emulated network interfaces. + Ethernets []*DeviceEthernet `protobuf:"bytes,1,rep,name=ethernets,proto3" json:"ethernets,omitempty"` + // IPv4 Loopback interface that can be attached to an Ethernet in the same device or + // to an Ethernet in another device. + Ipv4Loopbacks []*DeviceIpv4Loopback `protobuf:"bytes,2,rep,name=ipv4_loopbacks,json=ipv4Loopbacks,proto3" json:"ipv4_loopbacks,omitempty"` + // IPv6 Loopback interface that can be attached to an Ethernet in the same device or + // to an Ethernet in another device. + Ipv6Loopbacks []*DeviceIpv6Loopback `protobuf:"bytes,3,rep,name=ipv6_loopbacks,json=ipv6Loopbacks,proto3" json:"ipv6_loopbacks,omitempty"` + // The properties of an IS-IS router and its children, such as IS-IS interfaces and + // route ranges. + Isis *DeviceIsisRouter `protobuf:"bytes,4,opt,name=isis,proto3" json:"isis,omitempty"` + // The properties of BGP router and its children, such as BGPv4, BGPv6 peers and their + // route ranges. + Bgp *DeviceBgpRouter `protobuf:"bytes,5,opt,name=bgp,proto3" json:"bgp,omitempty"` + // Configuration of VXLAN tunnel interfaces RFC Ref: https://datatracker.ietf.org/doc/html/rfc7348 + Vxlan *DeviceVxlan `protobuf:"bytes,6,opt,name=vxlan,proto3" json:"vxlan,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,14,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` - // BGP Updates to be sent to the peer as specified after the session is established. - ReplayUpdates *BgpUpdateReplay `protobuf:"bytes,15,opt,name=replay_updates,json=replayUpdates,proto3" json:"replay_updates,omitempty"` + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The properties of an RSVP router and its children. + Rsvp *DeviceRsvp `protobuf:"bytes,8,opt,name=rsvp,proto3" json:"rsvp,omitempty"` + // The properties of DHCP Server and its children, such as DHCPv4, DHCPv6 servers. + DhcpServer *DeviceDhcpServer `protobuf:"bytes,9,opt,name=dhcp_server,json=dhcpServer,proto3" json:"dhcp_server,omitempty"` } -func (x *BgpV4Peer) Reset() { - *x = BgpV4Peer{} +func (x *Device) Reset() { + *x = Device{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[64] + mi := &file_otg_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer) String() string { +func (x *Device) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer) ProtoMessage() {} +func (*Device) ProtoMessage() {} -func (x *BgpV4Peer) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[64] +func (x *Device) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28946,158 +29355,105 @@ func (x *BgpV4Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Peer.ProtoReflect.Descriptor instead. -func (*BgpV4Peer) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64} -} - -func (x *BgpV4Peer) GetPeerAddress() string { - if x != nil && x.PeerAddress != nil { - return *x.PeerAddress - } - return "" -} - -func (x *BgpV4Peer) GetEvpnEthernetSegments() []*BgpV4EthernetSegment { - if x != nil { - return x.EvpnEthernetSegments - } - return nil -} - -func (x *BgpV4Peer) GetAsType() BgpV4Peer_AsType_Enum { - if x != nil && x.AsType != nil { - return *x.AsType - } - return BgpV4Peer_AsType_unspecified -} - -func (x *BgpV4Peer) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 -} - -func (x *BgpV4Peer) GetAsNumberWidth() BgpV4Peer_AsNumberWidth_Enum { - if x != nil && x.AsNumberWidth != nil { - return *x.AsNumberWidth - } - return BgpV4Peer_AsNumberWidth_unspecified -} - -func (x *BgpV4Peer) GetAdvanced() *BgpAdvanced { - if x != nil { - return x.Advanced - } - return nil +// Deprecated: Use Device.ProtoReflect.Descriptor instead. +func (*Device) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{65} } -func (x *BgpV4Peer) GetCapability() *BgpCapability { +func (x *Device) GetEthernets() []*DeviceEthernet { if x != nil { - return x.Capability + return x.Ethernets } return nil } -func (x *BgpV4Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { +func (x *Device) GetIpv4Loopbacks() []*DeviceIpv4Loopback { if x != nil { - return x.LearnedInformationFilter + return x.Ipv4Loopbacks } return nil } -func (x *BgpV4Peer) GetV4Routes() []*BgpV4RouteRange { +func (x *Device) GetIpv6Loopbacks() []*DeviceIpv6Loopback { if x != nil { - return x.V4Routes + return x.Ipv6Loopbacks } return nil } -func (x *BgpV4Peer) GetV6Routes() []*BgpV6RouteRange { +func (x *Device) GetIsis() *DeviceIsisRouter { if x != nil { - return x.V6Routes + return x.Isis } return nil } -func (x *BgpV4Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { +func (x *Device) GetBgp() *DeviceBgpRouter { if x != nil { - return x.V4SrtePolicies + return x.Bgp } return nil } -func (x *BgpV4Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { +func (x *Device) GetVxlan() *DeviceVxlan { if x != nil { - return x.V6SrtePolicies + return x.Vxlan } return nil } -func (x *BgpV4Peer) GetName() string { +func (x *Device) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *BgpV4Peer) GetGracefulRestart() *BgpGracefulRestart { +func (x *Device) GetRsvp() *DeviceRsvp { if x != nil { - return x.GracefulRestart + return x.Rsvp } return nil } -func (x *BgpV4Peer) GetReplayUpdates() *BgpUpdateReplay { +func (x *Device) GetDhcpServer() *DeviceDhcpServer { if x != nil { - return x.ReplayUpdates + return x.DhcpServer } return nil } -// Configuration for emulated BGPv4 peers and routes on a single IPv4 interface. -type BgpV4Interface struct { +// Common options that apply to all configured protocols and interfaces. +type ProtocolOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the - // source IP for this list of BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - /components/schemas/DhcpClient.V4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - /components/schemas/DhcpClient.V4/properties/name - // - // required = true - Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` - // This contains the list of BGPv4 peers configured on this interface. - Peers []*BgpV4Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` + // When set to true, all underlying resources for configured protocols and interfaces + // shall be created and corresponding protocol session negotiation shall be initiated. + // Otherwise, when set to false, corresponding protocol session negotiation will need + // to be initiated using a separate set_protocol_state API call. + // default = True + AutoStartAll *bool `protobuf:"varint,1,opt,name=auto_start_all,json=autoStartAll,proto3,oneof" json:"auto_start_all,omitempty"` } -func (x *BgpV4Interface) Reset() { - *x = BgpV4Interface{} +func (x *ProtocolOptions) Reset() { + *x = ProtocolOptions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[65] + mi := &file_otg_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Interface) String() string { +func (x *ProtocolOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Interface) ProtoMessage() {} +func (*ProtocolOptions) ProtoMessage() {} -func (x *BgpV4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[65] +func (x *ProtocolOptions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29108,101 +29464,65 @@ func (x *BgpV4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4Interface.ProtoReflect.Descriptor instead. -func (*BgpV4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{65} -} - -func (x *BgpV4Interface) GetIpv4Name() string { - if x != nil && x.Ipv4Name != nil { - return *x.Ipv4Name - } - return "" +// Deprecated: Use ProtocolOptions.ProtoReflect.Descriptor instead. +func (*ProtocolOptions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{66} } -func (x *BgpV4Interface) GetPeers() []*BgpV4Peer { - if x != nil { - return x.Peers +func (x *ProtocolOptions) GetAutoStartAll() bool { + if x != nil && x.AutoStartAll != nil { + return *x.AutoStartAll } - return nil + return false } -// Configuration for BGP Ethernet Segment ranges. Advertises following routes - -// -// Type 4 - Ethernet Segment Route -type BgpV4EthernetSegment struct { +// A container of properties for an ISIS router and its interfaces. +type DeviceIsisRouter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` - // This contains the list of EVIs. - Evis []*BgpV4EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` - // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero - // ESI is '10000000000000000000' . - // default = 00000000000000000000 - Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` - // Single Active or All Active mode Redundancy mode selection for Multi-home. - // default = ActiveMode.Enum.all_active - ActiveMode *BgpV4EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV4EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` - // The label value to be advertised as ESI Label in ESI Label Extended Community. This - // is included in Ethernet Auto-discovery per ES Routes advertised by a router. - // default = 0 - EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // This contains the properties of a Multi-Instance-capable routers or MI-RTR. Each + // router can emulate one ISIS instance at a time. + Instance *DeviceIsisMultiInstance `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + // The System ID for this emulated ISIS router, e.g. 640100010000. + // required = true + SystemId *string `protobuf:"bytes,2,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // List of ISIS interfaces for this router. + Interfaces []*IsisInterface `protobuf:"bytes,3,rep,name=interfaces,proto3" json:"interfaces,omitempty"` + // Contains basic properties of an ISIS Router. + Basic *IsisBasic `protobuf:"bytes,4,opt,name=basic,proto3" json:"basic,omitempty"` + // Contains advance properties of an ISIS Router.. + Advanced *IsisAdvanced `protobuf:"bytes,5,opt,name=advanced,proto3" json:"advanced,omitempty"` + // ISIS Router authentication properties. + RouterAuth *IsisAuthentication `protobuf:"bytes,6,opt,name=router_auth,json=routerAuth,proto3" json:"router_auth,omitempty"` + // Emulated ISIS IPv4 routes. + V4Routes []*IsisV4RouteRange `protobuf:"bytes,7,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` + // Emulated ISIS IPv6 routes. + V6Routes []*IsisV6RouteRange `protobuf:"bytes,8,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *BgpV4EthernetSegment) Reset() { - *x = BgpV4EthernetSegment{} +func (x *DeviceIsisRouter) Reset() { + *x = DeviceIsisRouter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[66] + mi := &file_otg_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EthernetSegment) String() string { +func (x *DeviceIsisRouter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EthernetSegment) ProtoMessage() {} +func (*DeviceIsisRouter) ProtoMessage() {} -func (x *BgpV4EthernetSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[66] +func (x *DeviceIsisRouter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29213,103 +29533,106 @@ func (x *BgpV4EthernetSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EthernetSegment.ProtoReflect.Descriptor instead. -func (*BgpV4EthernetSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{66} -} - -func (x *BgpV4EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { - if x != nil { - return x.DfElection - } - return nil +// Deprecated: Use DeviceIsisRouter.ProtoReflect.Descriptor instead. +func (*DeviceIsisRouter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{67} } -func (x *BgpV4EthernetSegment) GetEvis() []*BgpV4EvpnEvis { +func (x *DeviceIsisRouter) GetInstance() *DeviceIsisMultiInstance { if x != nil { - return x.Evis + return x.Instance } return nil } -func (x *BgpV4EthernetSegment) GetEsi() string { - if x != nil && x.Esi != nil { - return *x.Esi +func (x *DeviceIsisRouter) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } return "" } -func (x *BgpV4EthernetSegment) GetActiveMode() BgpV4EthernetSegment_ActiveMode_Enum { - if x != nil && x.ActiveMode != nil { - return *x.ActiveMode +func (x *DeviceIsisRouter) GetInterfaces() []*IsisInterface { + if x != nil { + return x.Interfaces } - return BgpV4EthernetSegment_ActiveMode_unspecified + return nil } -func (x *BgpV4EthernetSegment) GetEsiLabel() uint32 { - if x != nil && x.EsiLabel != nil { - return *x.EsiLabel +func (x *DeviceIsisRouter) GetBasic() *IsisBasic { + if x != nil { + return x.Basic } - return 0 + return nil } -func (x *BgpV4EthernetSegment) GetAdvanced() *BgpRouteAdvanced { +func (x *DeviceIsisRouter) GetAdvanced() *IsisAdvanced { if x != nil { return x.Advanced } return nil } -func (x *BgpV4EthernetSegment) GetCommunities() []*BgpCommunity { +func (x *DeviceIsisRouter) GetRouterAuth() *IsisAuthentication { if x != nil { - return x.Communities + return x.RouterAuth } return nil } -func (x *BgpV4EthernetSegment) GetExtCommunities() []*BgpExtCommunity { +func (x *DeviceIsisRouter) GetV4Routes() []*IsisV4RouteRange { if x != nil { - return x.ExtCommunities + return x.V4Routes } return nil } -func (x *BgpV4EthernetSegment) GetAsPath() *BgpAsPath { +func (x *DeviceIsisRouter) GetV6Routes() []*IsisV6RouteRange { if x != nil { - return x.AsPath + return x.V6Routes } return nil } -// Configuration for Designated Forwarder (DF) election among the Provider Edge (PE) -// routers on the same Ethernet Segment. -type BgpEthernetSegmentDfElection struct { +func (x *DeviceIsisRouter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// This container properties of an Multi-Instance-capable router (MI-RTR). +type DeviceIsisMultiInstance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The DF election timer in seconds. - // default = 3 - ElectionTimer *uint32 `protobuf:"varint,1,opt,name=election_timer,json=electionTimer,proto3,oneof" json:"election_timer,omitempty"` + // Instance Identifier (IID) TLV will associate a PDU with an ISIS instance by using + // a unique 16-bit number and including one or more Instance-Specific Topology Identifiers + // (ITIDs). + // default = 1 + Iid *uint32 `protobuf:"varint,1,opt,name=iid,proto3,oneof" json:"iid,omitempty"` + // This contains one or more ITIDs that will be advertised in IID TLV. + Itids []uint32 `protobuf:"varint,2,rep,packed,name=itids,proto3" json:"itids,omitempty"` } -func (x *BgpEthernetSegmentDfElection) Reset() { - *x = BgpEthernetSegmentDfElection{} +func (x *DeviceIsisMultiInstance) Reset() { + *x = DeviceIsisMultiInstance{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[67] + mi := &file_otg_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpEthernetSegmentDfElection) String() string { +func (x *DeviceIsisMultiInstance) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpEthernetSegmentDfElection) ProtoMessage() {} +func (*DeviceIsisMultiInstance) ProtoMessage() {} -func (x *BgpEthernetSegmentDfElection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[67] +func (x *DeviceIsisMultiInstance) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29320,69 +29643,92 @@ func (x *BgpEthernetSegmentDfElection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpEthernetSegmentDfElection.ProtoReflect.Descriptor instead. -func (*BgpEthernetSegmentDfElection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{67} +// Deprecated: Use DeviceIsisMultiInstance.ProtoReflect.Descriptor instead. +func (*DeviceIsisMultiInstance) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{68} } -func (x *BgpEthernetSegmentDfElection) GetElectionTimer() uint32 { - if x != nil && x.ElectionTimer != nil { - return *x.ElectionTimer +func (x *DeviceIsisMultiInstance) GetIid() uint32 { + if x != nil && x.Iid != nil { + return *x.Iid } return 0 } -// Configuration for advanced BGP route range settings. -type BgpRouteAdvanced struct { +func (x *DeviceIsisMultiInstance) GetItids() []uint32 { + if x != nil { + return x.Itids + } + return nil +} + +// Configuration for single ISIS interface. +type IsisInterface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // BGP Multi Exit Discriminator attribute sent to the peer to help in the route selection - // process. If set to true, the Multi Exit Discriminator attribute will be included - // in the route advertisement. - // default = True - IncludeMultiExitDiscriminator *bool `protobuf:"varint,3,opt,name=include_multi_exit_discriminator,json=includeMultiExitDiscriminator,proto3,oneof" json:"include_multi_exit_discriminator,omitempty"` - // The multi exit discriminator (MED) value used for route selection sent to the peer. - MultiExitDiscriminator *uint32 `protobuf:"varint,1,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` - // If set to true, the Origin attribute will be included in the route advertisement. - // default = True - IncludeOrigin *bool `protobuf:"varint,4,opt,name=include_origin,json=includeOrigin,proto3,oneof" json:"include_origin,omitempty"` - // The origin attribute of a prefix can take three values: the prefix originates from - // an interior routing protocol 'igp', it originates from 'egp' or the origin is 'incomplete', - // if the prefix is learned through other means. - // default = Origin.Enum.igp - Origin *BgpRouteAdvanced_Origin_Enum `protobuf:"varint,2,opt,name=origin,proto3,enum=otg.BgpRouteAdvanced_Origin_Enum,oneof" json:"origin,omitempty"` - // BGP Local Preference attribute sent to the peer to indicate the degree of preference - // for externally learned routes. If set to true, the Local Preference attribute will - // be included in the route advertisement. This should be included only for internal - // peers. - // default = True - IncludeLocalPreference *bool `protobuf:"varint,5,opt,name=include_local_preference,json=includeLocalPreference,proto3,oneof" json:"include_local_preference,omitempty"` - // Value to be set in Local Preference attribute if include_local_preference is set - // to true. It is used for the selection of the path for the traffic leaving the AS. - // The route with the highest local preference value is preferred. - // default = 100 - LocalPreference *uint32 `protobuf:"varint,6,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The unique name of the Ethernet interface on which ISIS is running. Two ISIS interfaces + // cannot share the same Ethernet. + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // + // required = true + EthName *string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3,oneof" json:"eth_name,omitempty"` + // The default metric cost for the interface. + // default = 10 + Metric *uint32 `protobuf:"varint,2,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // The type of network link. + // default = NetworkType.Enum.broadcast + NetworkType *IsisInterface_NetworkType_Enum `protobuf:"varint,3,opt,name=network_type,json=networkType,proto3,enum=otg.IsisInterface_NetworkType_Enum,oneof" json:"network_type,omitempty"` + // This indicates whether this router is participating in Level-1 (L1), + // Level-2 (L2) or both L1 and L2 domains on this interface. + // default = LevelType.Enum.level_2 + LevelType *IsisInterface_LevelType_Enum `protobuf:"varint,4,opt,name=level_type,json=levelType,proto3,enum=otg.IsisInterface_LevelType_Enum,oneof" json:"level_type,omitempty"` + // Settings of Level 1 Hello. + L1Settings *IsisInterfaceLevel `protobuf:"bytes,5,opt,name=l1_settings,json=l1Settings,proto3" json:"l1_settings,omitempty"` + // Settings of Level 2 Hello. + L2Settings *IsisInterfaceLevel `protobuf:"bytes,6,opt,name=l2_settings,json=l2Settings,proto3" json:"l2_settings,omitempty"` + // Contains the properties of multiple topologies. + MultiTopologyIds []*IsisMT `protobuf:"bytes,7,rep,name=multi_topology_ids,json=multiTopologyIds,proto3" json:"multi_topology_ids,omitempty"` + // Contains a list of Traffic Engineering attributes. + TrafficEngineering []*LinkStateTE `protobuf:"bytes,8,rep,name=traffic_engineering,json=trafficEngineering,proto3" json:"traffic_engineering,omitempty"` + // The Circuit authentication method used for the interfaces on this emulated ISIS v4/v6 + // router. + Authentication *IsisInterfaceAuthentication `protobuf:"bytes,9,opt,name=authentication,proto3" json:"authentication,omitempty"` + // Optional container for advanced interface properties. + Advanced *IsisInterfaceAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Link protection on the ISIS link between two interfaces. + LinkProtection *IsisInterfaceLinkProtection `protobuf:"bytes,11,opt,name=link_protection,json=linkProtection,proto3" json:"link_protection,omitempty"` + // This contains list of SRLG values for the link between two interfaces. + SrlgValues []uint32 `protobuf:"varint,12,rep,packed,name=srlg_values,json=srlgValues,proto3" json:"srlg_values,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *BgpRouteAdvanced) Reset() { - *x = BgpRouteAdvanced{} +func (x *IsisInterface) Reset() { + *x = IsisInterface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[68] + mi := &file_otg_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteAdvanced) String() string { +func (x *IsisInterface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteAdvanced) ProtoMessage() {} +func (*IsisInterface) ProtoMessage() {} -func (x *BgpRouteAdvanced) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[68] +func (x *IsisInterface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29393,160 +29739,121 @@ func (x *BgpRouteAdvanced) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteAdvanced.ProtoReflect.Descriptor instead. -func (*BgpRouteAdvanced) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68} +// Deprecated: Use IsisInterface.ProtoReflect.Descriptor instead. +func (*IsisInterface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69} } -func (x *BgpRouteAdvanced) GetIncludeMultiExitDiscriminator() bool { - if x != nil && x.IncludeMultiExitDiscriminator != nil { - return *x.IncludeMultiExitDiscriminator +func (x *IsisInterface) GetEthName() string { + if x != nil && x.EthName != nil { + return *x.EthName } - return false + return "" } -func (x *BgpRouteAdvanced) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator +func (x *IsisInterface) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } return 0 } -func (x *BgpRouteAdvanced) GetIncludeOrigin() bool { - if x != nil && x.IncludeOrigin != nil { - return *x.IncludeOrigin +func (x *IsisInterface) GetNetworkType() IsisInterface_NetworkType_Enum { + if x != nil && x.NetworkType != nil { + return *x.NetworkType } - return false + return IsisInterface_NetworkType_unspecified } -func (x *BgpRouteAdvanced) GetOrigin() BgpRouteAdvanced_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *IsisInterface) GetLevelType() IsisInterface_LevelType_Enum { + if x != nil && x.LevelType != nil { + return *x.LevelType } - return BgpRouteAdvanced_Origin_unspecified + return IsisInterface_LevelType_unspecified } -func (x *BgpRouteAdvanced) GetIncludeLocalPreference() bool { - if x != nil && x.IncludeLocalPreference != nil { - return *x.IncludeLocalPreference +func (x *IsisInterface) GetL1Settings() *IsisInterfaceLevel { + if x != nil { + return x.L1Settings } - return false + return nil } -func (x *BgpRouteAdvanced) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference +func (x *IsisInterface) GetL2Settings() *IsisInterfaceLevel { + if x != nil { + return x.L2Settings } - return 0 + return nil } -// BGP communities provide additional capability for tagging routes and for modifying -// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit -// number which is broken into 16-bit AS number and a 16-bit custom value. -type BgpCommunity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of community AS number. - Type *BgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpCommunity_Type_Enum,oneof" json:"type,omitempty"` - // First two octets of 32 bit community AS number. - // default = 0 - AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Last two octets of the community value. - // default = 0 - AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` +func (x *IsisInterface) GetMultiTopologyIds() []*IsisMT { + if x != nil { + return x.MultiTopologyIds + } + return nil } -func (x *BgpCommunity) Reset() { - *x = BgpCommunity{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisInterface) GetTrafficEngineering() []*LinkStateTE { + if x != nil { + return x.TrafficEngineering } + return nil } -func (x *BgpCommunity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisInterface) GetAuthentication() *IsisInterfaceAuthentication { + if x != nil { + return x.Authentication + } + return nil } -func (*BgpCommunity) ProtoMessage() {} - -func (x *BgpCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisInterface) GetAdvanced() *IsisInterfaceAdvanced { + if x != nil { + return x.Advanced } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpCommunity.ProtoReflect.Descriptor instead. -func (*BgpCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{69} + return nil } -func (x *BgpCommunity) GetType() BgpCommunity_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *IsisInterface) GetLinkProtection() *IsisInterfaceLinkProtection { + if x != nil { + return x.LinkProtection } - return BgpCommunity_Type_unspecified + return nil } -func (x *BgpCommunity) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *IsisInterface) GetSrlgValues() []uint32 { + if x != nil { + return x.SrlgValues } - return 0 + return nil } -func (x *BgpCommunity) GetAsCustom() uint32 { - if x != nil && x.AsCustom != nil { - return *x.AsCustom +func (x *IsisInterface) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -// 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. -type BgpExtCommunity struct { +// Configuration for the properties of Level 1 Hello. +type IsisInterfaceLevel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Extended Community Type field of 1 Byte. - // - administrator_as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). - // - administrator_ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). - // - administrator_as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). - // - opaque: Opaque Extended Community (RFC 7432). - // - evpn: EVPN Extended Community (RFC 7153). - // - administrator_as_2octet_link_bandwidth : Link Bandwidth Extended Community (RFC - // 7153). - Type *BgpExtCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpExtCommunity_Type_Enum,oneof" json:"type,omitempty"` - // Extended Community Sub Type field of 1 Byte. - // - route_target: Route Target. - // - origin: Origin. - // - extended_bandwidth: Specifies the link bandwidth. - // - color: Specifies the color value. - // - encapsulation: Specifies the Encapsulation Extended Community. - // - mac_address: Specifies the Extended community MAC address. - Subtype *BgpExtCommunity_Subtype_Enum `protobuf:"varint,2,opt,name=subtype,proto3,enum=otg.BgpExtCommunity_Subtype_Enum,oneof" json:"subtype,omitempty"` - // Extended Community value of 6 Bytes. Example - for the Opaque type and Color subtype - // value can be '0000000000c8' for the color value 200. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The Priority setting in Level 1 LAN Hellos for Designated Router election. + // default = 0 + Priority *uint32 `protobuf:"varint,1,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + // The Hello interval for Level 1 Hello messages, in seconds. + // default = 10 + HelloInterval *uint32 `protobuf:"varint,2,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` + // The Dead (Holding Time) interval for Level 1 Hello messages, in seconds. + // default = 30 + DeadInterval *uint32 `protobuf:"varint,3,opt,name=dead_interval,json=deadInterval,proto3,oneof" json:"dead_interval,omitempty"` } -func (x *BgpExtCommunity) Reset() { - *x = BgpExtCommunity{} +func (x *IsisInterfaceLevel) Reset() { + *x = IsisInterfaceLevel{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29554,13 +29861,13 @@ func (x *BgpExtCommunity) Reset() { } } -func (x *BgpExtCommunity) String() string { +func (x *IsisInterfaceLevel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity) ProtoMessage() {} +func (*IsisInterfaceLevel) ProtoMessage() {} -func (x *BgpExtCommunity) ProtoReflect() protoreflect.Message { +func (x *IsisInterfaceLevel) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29572,56 +29879,50 @@ func (x *BgpExtCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtCommunity.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisInterfaceLevel.ProtoReflect.Descriptor instead. +func (*IsisInterfaceLevel) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{70} } -func (x *BgpExtCommunity) GetType() BgpExtCommunity_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *IsisInterfaceLevel) GetPriority() uint32 { + if x != nil && x.Priority != nil { + return *x.Priority } - return BgpExtCommunity_Type_unspecified + return 0 } -func (x *BgpExtCommunity) GetSubtype() BgpExtCommunity_Subtype_Enum { - if x != nil && x.Subtype != nil { - return *x.Subtype +func (x *IsisInterfaceLevel) GetHelloInterval() uint32 { + if x != nil && x.HelloInterval != nil { + return *x.HelloInterval } - return BgpExtCommunity_Subtype_unspecified + return 0 } -func (x *BgpExtCommunity) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *IsisInterfaceLevel) GetDeadInterval() uint32 { + if x != nil && x.DeadInterval != nil { + return *x.DeadInterval } - return "" + return 0 } -// 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. -type BgpAsPath struct { +// Configuration of properties per interface per topology when multiple topologies are +// configured in an ISIS router. +// in a ISIS router. +type IsisMT struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Defines how the Local AS should be included in the MP REACH NLRI. For iBGP sessions, - // Do Not Include Local AS must be chosen. For eBGP sessions, any choice other than - // Do Not Include Local AS can be chosen. - // default = AsSetMode.Enum.do_not_include_local_as - AsSetMode *BgpAsPath_AsSetMode_Enum `protobuf:"varint,1,opt,name=as_set_mode,json=asSetMode,proto3,enum=otg.BgpAsPath_AsSetMode_Enum,oneof" json:"as_set_mode,omitempty"` - // The additional AS path segments to be added in the NLRI. By default, an empty AS - // path is always included and the local AS is added to it as per the value of 'as_set_mode' - // attribute. - Segments []*BgpAsPathSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // The Multi Topology ID for one of the topologies supported on the ISIS interface. + // default = 0 + MtId *uint32 `protobuf:"varint,1,opt,name=mt_id,json=mtId,proto3,oneof" json:"mt_id,omitempty"` + // Specifies the link metric for this topology on the ISIS interface. + // default = 10 + LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` } -func (x *BgpAsPath) Reset() { - *x = BgpAsPath{} +func (x *IsisMT) Reset() { + *x = IsisMT{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29629,13 +29930,13 @@ func (x *BgpAsPath) Reset() { } } -func (x *BgpAsPath) String() string { +func (x *IsisMT) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPath) ProtoMessage() {} +func (*IsisMT) ProtoMessage() {} -func (x *BgpAsPath) ProtoReflect() protoreflect.Message { +func (x *IsisMT) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29647,47 +29948,56 @@ func (x *BgpAsPath) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPath.ProtoReflect.Descriptor instead. -func (*BgpAsPath) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisMT.ProtoReflect.Descriptor instead. +func (*IsisMT) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{71} } -func (x *BgpAsPath) GetAsSetMode() BgpAsPath_AsSetMode_Enum { - if x != nil && x.AsSetMode != nil { - return *x.AsSetMode +func (x *IsisMT) GetMtId() uint32 { + if x != nil && x.MtId != nil { + return *x.MtId } - return BgpAsPath_AsSetMode_unspecified + return 0 } -func (x *BgpAsPath) GetSegments() []*BgpAsPathSegment { - if x != nil { - return x.Segments +func (x *IsisMT) GetLinkMetric() uint32 { + if x != nil && x.LinkMetric != nil { + return *x.LinkMetric } - return nil + return 0 } -// Configuration for a single BGP AS path segment -type BgpAsPathSegment struct { +// A container for Traffic Engineering properties on a interface. +type LinkStateTE struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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. - // default = Type.Enum.as_seq - Type *BgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` + // The Administrative group sub-TLV (sub-TLV 3). It is a 4-octet + // user-defined bit mask used to assign administrative group numbers + // to the interface, for use in assigning colors and resource classes. + // Each set bit corresponds to a single administrative group for this + // interface. The settings translate into Group numbers, which range + // from 0 to 31 (integers). + // default = 00000000 + AdministrativeGroup *string `protobuf:"bytes,1,opt,name=administrative_group,json=administrativeGroup,proto3,oneof" json:"administrative_group,omitempty"` + // The user-assigned link metric for Traffic Engineering. + // default = 0 + MetricLevel *uint32 `protobuf:"varint,2,opt,name=metric_level,json=metricLevel,proto3,oneof" json:"metric_level,omitempty"` + // The maximum link bandwidth (sub-TLV 9) in bytes/sec allowed for this + // link for a direction. + // default = 125000000 + MaxBandwith *uint32 `protobuf:"varint,3,opt,name=max_bandwith,json=maxBandwith,proto3,oneof" json:"max_bandwith,omitempty"` + // The maximum link bandwidth (sub-TLV 10) in bytes/sec allowed for this + // link in a direction. + // default = 125000000 + MaxReservableBandwidth *uint32 `protobuf:"varint,4,opt,name=max_reservable_bandwidth,json=maxReservableBandwidth,proto3,oneof" json:"max_reservable_bandwidth,omitempty"` + // Configuration of bandwidths of priority 0 through priority 7. + PriorityBandwidths *LinkStatepriorityBandwidths `protobuf:"bytes,5,opt,name=priority_bandwidths,json=priorityBandwidths,proto3" json:"priority_bandwidths,omitempty"` } -func (x *BgpAsPathSegment) Reset() { - *x = BgpAsPathSegment{} +func (x *LinkStateTE) Reset() { + *x = LinkStateTE{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29695,13 +30005,13 @@ func (x *BgpAsPathSegment) Reset() { } } -func (x *BgpAsPathSegment) String() string { +func (x *LinkStateTE) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPathSegment) ProtoMessage() {} +func (*LinkStateTE) ProtoMessage() {} -func (x *BgpAsPathSegment) ProtoReflect() protoreflect.Message { +func (x *LinkStateTE) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -29713,177 +30023,99 @@ func (x *BgpAsPathSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAsPathSegment.ProtoReflect.Descriptor instead. -func (*BgpAsPathSegment) Descriptor() ([]byte, []int) { +// Deprecated: Use LinkStateTE.ProtoReflect.Descriptor instead. +func (*LinkStateTE) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{72} } -func (x *BgpAsPathSegment) GetType() BgpAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return BgpAsPathSegment_Type_unspecified -} - -func (x *BgpAsPathSegment) GetAsNumbers() []uint32 { - if x != nil { - return x.AsNumbers +func (x *LinkStateTE) GetAdministrativeGroup() string { + if x != nil && x.AdministrativeGroup != nil { + return *x.AdministrativeGroup } - return nil -} - -// This contains a list of different flavors of EVPN. -// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. -// -// Need to instantiate correct type of EVPN instance as per requirement. -type BgpV4EvpnEvis struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.evi_vxlan - Choice *BgpV4EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV4EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` - // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV4EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` + return "" } -func (x *BgpV4EvpnEvis) Reset() { - *x = BgpV4EvpnEvis{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LinkStateTE) GetMetricLevel() uint32 { + if x != nil && x.MetricLevel != nil { + return *x.MetricLevel } + return 0 } -func (x *BgpV4EvpnEvis) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpV4EvpnEvis) ProtoMessage() {} - -func (x *BgpV4EvpnEvis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LinkStateTE) GetMaxBandwith() uint32 { + if x != nil && x.MaxBandwith != nil { + return *x.MaxBandwith } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpV4EvpnEvis.ProtoReflect.Descriptor instead. -func (*BgpV4EvpnEvis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{73} + return 0 } -func (x *BgpV4EvpnEvis) GetChoice() BgpV4EvpnEvis_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *LinkStateTE) GetMaxReservableBandwidth() uint32 { + if x != nil && x.MaxReservableBandwidth != nil { + return *x.MaxReservableBandwidth } - return BgpV4EvpnEvis_Choice_unspecified + return 0 } -func (x *BgpV4EvpnEvis) GetEviVxlan() *BgpV4EviVxlan { +func (x *LinkStateTE) GetPriorityBandwidths() *LinkStatepriorityBandwidths { if x != nil { - return x.EviVxlan + return x.PriorityBandwidths } return nil } -// Configuration for BGP EVPN EVI. Advertises following routes - -// -// # Type 3 - Inclusive Multicast Ethernet Tag Route +// Specifies the amount of bandwidth that can be reserved with a setup priority of 0 // -// Type 1 - Ethernet Auto-discovery Route (Per EVI) +// through 7, arranged in increasing order with priority 0 having highest priority. // -// Type 1 - Ethernet Auto-discovery Route (Per ES) -type BgpV4EviVxlan struct { +// In ISIS, this is sent in sub-TLV (11) of Extended IS Reachability TLV. +type LinkStatepriorityBandwidths struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Broadcast Domains to be configured per EVI. - BroadcastDomains []*BgpV4EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` - // This model only supports Ingress Replication - // default = ReplicationType.Enum.ingress_replication - ReplicationType *BgpV4EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV4EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` - // 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. - // default = 16 - PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` - // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet - // Auto-discovery Route per - // default = 0 - AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` - // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying - // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` - // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with - // this EVI. - RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` - // List of L2VNI import targets associated with this EVI. - RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` - // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. - L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` - // List of L3VNI Import Route Targets. - L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 0. + // default = 125000000 + Pb0 *uint32 `protobuf:"varint,1,opt,name=pb0,proto3,oneof" json:"pb0,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 1. + // default = 125000000 + Pb1 *uint32 `protobuf:"varint,2,opt,name=pb1,proto3,oneof" json:"pb1,omitempty"` + // Specify the amount of bandwidth that can be reserved for the Priority 2. + // default = 125000000 + Pb2 *uint32 `protobuf:"varint,3,opt,name=pb2,proto3,oneof" json:"pb2,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 3. + // default = 125000000 + Pb3 *uint32 `protobuf:"varint,4,opt,name=pb3,proto3,oneof" json:"pb3,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 4. + // default = 125000000 + Pb4 *uint32 `protobuf:"varint,5,opt,name=pb4,proto3,oneof" json:"pb4,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 5. + // default = 125000000 + Pb5 *uint32 `protobuf:"varint,6,opt,name=pb5,proto3,oneof" json:"pb5,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 6. + // default = 125000000 + Pb6 *uint32 `protobuf:"varint,7,opt,name=pb6,proto3,oneof" json:"pb6,omitempty"` + // Specifies the amount of bandwidth that can be reserved for the Priority 7. + // default = 125000000 + Pb7 *uint32 `protobuf:"varint,8,opt,name=pb7,proto3,oneof" json:"pb7,omitempty"` } -func (x *BgpV4EviVxlan) Reset() { - *x = BgpV4EviVxlan{} +func (x *LinkStatepriorityBandwidths) Reset() { + *x = LinkStatepriorityBandwidths{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[74] + mi := &file_otg_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EviVxlan) String() string { +func (x *LinkStatepriorityBandwidths) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlan) ProtoMessage() {} +func (*LinkStatepriorityBandwidths) ProtoMessage() {} -func (x *BgpV4EviVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[74] +func (x *LinkStatepriorityBandwidths) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29894,123 +30126,169 @@ func (x *BgpV4EviVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EviVxlan.ProtoReflect.Descriptor instead. -func (*BgpV4EviVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{74} +// Deprecated: Use LinkStatepriorityBandwidths.ProtoReflect.Descriptor instead. +func (*LinkStatepriorityBandwidths) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{73} } -func (x *BgpV4EviVxlan) GetBroadcastDomains() []*BgpV4EviVxlanBroadcastDomain { - if x != nil { - return x.BroadcastDomains +func (x *LinkStatepriorityBandwidths) GetPb0() uint32 { + if x != nil && x.Pb0 != nil { + return *x.Pb0 } - return nil + return 0 } -func (x *BgpV4EviVxlan) GetReplicationType() BgpV4EviVxlan_ReplicationType_Enum { - if x != nil && x.ReplicationType != nil { - return *x.ReplicationType +func (x *LinkStatepriorityBandwidths) GetPb1() uint32 { + if x != nil && x.Pb1 != nil { + return *x.Pb1 } - return BgpV4EviVxlan_ReplicationType_unspecified + return 0 } -func (x *BgpV4EviVxlan) GetPmsiLabel() uint32 { - if x != nil && x.PmsiLabel != nil { - return *x.PmsiLabel +func (x *LinkStatepriorityBandwidths) GetPb2() uint32 { + if x != nil && x.Pb2 != nil { + return *x.Pb2 } return 0 } -func (x *BgpV4EviVxlan) GetAdLabel() uint32 { - if x != nil && x.AdLabel != nil { - return *x.AdLabel +func (x *LinkStatepriorityBandwidths) GetPb3() uint32 { + if x != nil && x.Pb3 != nil { + return *x.Pb3 } return 0 } -func (x *BgpV4EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { - if x != nil { - return x.RouteDistinguisher +func (x *LinkStatepriorityBandwidths) GetPb4() uint32 { + if x != nil && x.Pb4 != nil { + return *x.Pb4 } - return nil + return 0 } -func (x *BgpV4EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetExport +func (x *LinkStatepriorityBandwidths) GetPb5() uint32 { + if x != nil && x.Pb5 != nil { + return *x.Pb5 } - return nil + return 0 } -func (x *BgpV4EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetImport +func (x *LinkStatepriorityBandwidths) GetPb6() uint32 { + if x != nil && x.Pb6 != nil { + return *x.Pb6 } - return nil + return 0 } -func (x *BgpV4EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetExport +func (x *LinkStatepriorityBandwidths) GetPb7() uint32 { + if x != nil && x.Pb7 != nil { + return *x.Pb7 } - return nil + return 0 } -func (x *BgpV4EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetImport +// Optional container for circuit authentication properties. +type IsisInterfaceAuthentication struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The circuit authentication method. + // required = true + AuthType *IsisInterfaceAuthentication_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisInterfaceAuthentication_AuthType_Enum,oneof" json:"auth_type,omitempty"` + // MD5 key to be used for authentication. + Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` + // The password, in clear text, to be used for Authentication. + Password *string `protobuf:"bytes,3,opt,name=password,proto3,oneof" json:"password,omitempty"` +} + +func (x *IsisInterfaceAuthentication) Reset() { + *x = IsisInterfaceAuthentication{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV4EviVxlan) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *IsisInterfaceAuthentication) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsisInterfaceAuthentication) ProtoMessage() {} + +func (x *IsisInterfaceAuthentication) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[74] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV4EviVxlan) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +// Deprecated: Use IsisInterfaceAuthentication.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAuthentication) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{74} +} + +func (x *IsisInterfaceAuthentication) GetAuthType() IsisInterfaceAuthentication_AuthType_Enum { + if x != nil && x.AuthType != nil { + return *x.AuthType } - return nil + return IsisInterfaceAuthentication_AuthType_unspecified } -func (x *BgpV4EviVxlan) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *IsisInterfaceAuthentication) GetMd5() string { + if x != nil && x.Md5 != nil { + return *x.Md5 } - return nil + return "" } -func (x *BgpV4EviVxlan) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath +func (x *IsisInterfaceAuthentication) GetPassword() string { + if x != nil && x.Password != nil { + return *x.Password } - return nil + return "" } -// Configuration for Broadcast Domains per EVI. -type BgpV4EviVxlanBroadcastDomain struct { +// Optional container for advanced interface properties. +type IsisInterfaceAdvanced struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` - // The Ethernet Tag ID of the Broadcast Domain. - // default = 0 - EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` - // VLAN-Aware service to be enabled or disabled. + // If a padded Hello message is received on the interface, the length of + // the Hello packets sent out on that interface is adjusted to match. + // default = True + AutoAdjustMtu *bool `protobuf:"varint,1,opt,name=auto_adjust_mtu,json=autoAdjustMtu,proto3,oneof" json:"auto_adjust_mtu,omitempty"` + // If a Level 1 Hello is received on this emulated router for an area + // not currently in its area list, an area from the received Hello is + // added to that list. This ensures an area match for all future + // Level 1 Hellos from the source L1 router. + // default = True + AutoAdjustArea *bool `protobuf:"varint,2,opt,name=auto_adjust_area,json=autoAdjustArea,proto3,oneof" json:"auto_adjust_area,omitempty"` + // If a Hello message listing supported protocols is received on this + // emulated router, the supported protocols advertised by this router + // are changed to match exactly. // default = False - VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` + AutoAdjustSupportedProtocols *bool `protobuf:"varint,3,opt,name=auto_adjust_supported_protocols,json=autoAdjustSupportedProtocols,proto3,oneof" json:"auto_adjust_supported_protocols,omitempty"` + // If it is true, the Point-to-Point circuit will include 3-way TLV in its Point-to-Point + // IIH and attempt to establish the adjacency as specified in RFC 5303. This field + // is not applicable if network_type is set to 'broadcast' type in ISIS interface. + // default = True + Enable_3WayHandshake *bool `protobuf:"varint,4,opt,name=enable_3way_handshake,json=enable3wayHandshake,proto3,oneof" json:"enable_3way_handshake,omitempty"` + // If it is true, the Point-to-Point Hello messages will be sent to the unicast MAC + // address. + // default = False + P2PHellosToUnicastMac *bool `protobuf:"varint,5,opt,name=p2p_hellos_to_unicast_mac,json=p2pHellosToUnicastMac,proto3,oneof" json:"p2p_hellos_to_unicast_mac,omitempty"` } -func (x *BgpV4EviVxlanBroadcastDomain) Reset() { - *x = BgpV4EviVxlanBroadcastDomain{} +func (x *IsisInterfaceAdvanced) Reset() { + *x = IsisInterfaceAdvanced{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30018,13 +30296,13 @@ func (x *BgpV4EviVxlanBroadcastDomain) Reset() { } } -func (x *BgpV4EviVxlanBroadcastDomain) String() string { +func (x *IsisInterfaceAdvanced) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlanBroadcastDomain) ProtoMessage() {} +func (*IsisInterfaceAdvanced) ProtoMessage() {} -func (x *BgpV4EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { +func (x *IsisInterfaceAdvanced) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30036,101 +30314,89 @@ func (x *BgpV4EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. -func (*BgpV4EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisInterfaceAdvanced.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAdvanced) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{75} } -func (x *BgpV4EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { - if x != nil { - return x.CmacIpRange +func (x *IsisInterfaceAdvanced) GetAutoAdjustMtu() bool { + if x != nil && x.AutoAdjustMtu != nil { + return *x.AutoAdjustMtu } - return nil + return false } -func (x *BgpV4EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { - if x != nil && x.EthernetTagId != nil { - return *x.EthernetTagId +func (x *IsisInterfaceAdvanced) GetAutoAdjustArea() bool { + if x != nil && x.AutoAdjustArea != nil { + return *x.AutoAdjustArea } - return 0 + return false } -func (x *BgpV4EviVxlanBroadcastDomain) GetVlanAwareService() bool { - if x != nil && x.VlanAwareService != nil { - return *x.VlanAwareService +func (x *IsisInterfaceAdvanced) GetAutoAdjustSupportedProtocols() bool { + if x != nil && x.AutoAdjustSupportedProtocols != nil { + return *x.AutoAdjustSupportedProtocols } return false } -// Configuration for MAC/IP Ranges per Broadcast Domain. -// -// Advertises following route - -// -// Type 2 - MAC/IP Advertisement Route. -type BgpCMacIpRange struct { +func (x *IsisInterfaceAdvanced) GetEnable_3WayHandshake() bool { + if x != nil && x.Enable_3WayHandshake != nil { + return *x.Enable_3WayHandshake + } + return false +} + +func (x *IsisInterfaceAdvanced) GetP2PHellosToUnicastMac() bool { + if x != nil && x.P2PHellosToUnicastMac != nil { + return *x.P2PHellosToUnicastMac + } + return false +} + +// Optional container for the link protection sub TLV (type 20). +type IsisInterfaceLinkProtection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Host MAC address range per Broadcast Domain. - MacAddresses *MACRouteAddress `protobuf:"bytes,1,opt,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` - // Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement - // Route (Type 2) - // default = 0 - L2Vni *uint32 `protobuf:"varint,2,opt,name=l2vni,proto3,oneof" json:"l2vni,omitempty"` - // Host IPv4 address range per Broadcast Domain. - Ipv4Addresses *V4RouteAddress `protobuf:"bytes,3,opt,name=ipv4_addresses,json=ipv4Addresses,proto3" json:"ipv4_addresses,omitempty"` - // Host IPv6 address range per Broadcast Domain. - Ipv6Addresses *V6RouteAddress `protobuf:"bytes,4,opt,name=ipv6_addresses,json=ipv6Addresses,proto3" json:"ipv6_addresses,omitempty"` - // Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement - // Route (Type 2). - // default = 0 - L3Vni *uint32 `protobuf:"varint,5,opt,name=l3vni,proto3,oneof" json:"l3vni,omitempty"` - // Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). + // Enable this to protect other link or links. LSPs on a link of this type are lost + // if any of the links fail. // default = False - IncludeDefaultGateway *bool `protobuf:"varint,6,opt,name=include_default_gateway,json=includeDefaultGateway,proto3,oneof" json:"include_default_gateway,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,8,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,9,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,11,opt,name=name,proto3,oneof" json:"name,omitempty"` + ExtraTraffic *bool `protobuf:"varint,1,opt,name=extra_traffic,json=extraTraffic,proto3,oneof" json:"extra_traffic,omitempty"` + // Enabling this signifies that there is no other link protecting this + // link. LSPs on a link of this type are lost if the link fails. + // default = False + Unprotected *bool `protobuf:"varint,2,opt,name=unprotected,proto3,oneof" json:"unprotected,omitempty"` + // Enable this to share the Extra Traffic links between one or more + // links of type Shared.There are one or more disjoint links of type + // Extra Traffic that are protecting this link. + // default = False + Shared *bool `protobuf:"varint,3,opt,name=shared,proto3,oneof" json:"shared,omitempty"` + // Enabling this signifies that there is one dedicated disjoint link + // of type Extra Traffic that is protecting this link. + // default = False + Dedicated_1To_1 *bool `protobuf:"varint,4,opt,name=dedicated_1_to_1,json=dedicated1To1,proto3,oneof" json:"dedicated_1_to_1,omitempty"` + // Enabling this signifies that a dedicated disjoint link is protecting + // this link. However, the protecting link is not advertised in the + // link state database and is therefore not available for the routing + // of LSPs. + // default = False + Dedicated_1Plus_1 *bool `protobuf:"varint,5,opt,name=dedicated_1_plus_1,json=dedicated1Plus1,proto3,oneof" json:"dedicated_1_plus_1,omitempty"` + // Enabling this signifies that a protection scheme that is more + // reliable than Dedicated 1+1. + // default = False + Enhanced *bool `protobuf:"varint,6,opt,name=enhanced,proto3,oneof" json:"enhanced,omitempty"` + // This is a Protection Scheme with value 0x40. + // default = False + Reserved_40 *bool `protobuf:"varint,7,opt,name=reserved_40,json=reserved40,proto3,oneof" json:"reserved_40,omitempty"` + // This is a Protection Scheme with value 0x80. + // default = False + Reserved_80 *bool `protobuf:"varint,8,opt,name=reserved_80,json=reserved80,proto3,oneof" json:"reserved_80,omitempty"` } -func (x *BgpCMacIpRange) Reset() { - *x = BgpCMacIpRange{} +func (x *IsisInterfaceLinkProtection) Reset() { + *x = IsisInterfaceLinkProtection{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30138,13 +30404,13 @@ func (x *BgpCMacIpRange) Reset() { } } -func (x *BgpCMacIpRange) String() string { +func (x *IsisInterfaceLinkProtection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCMacIpRange) ProtoMessage() {} +func (*IsisInterfaceLinkProtection) ProtoMessage() {} -func (x *BgpCMacIpRange) ProtoReflect() protoreflect.Message { +func (x *IsisInterfaceLinkProtection) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30156,110 +30422,93 @@ func (x *BgpCMacIpRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpCMacIpRange.ProtoReflect.Descriptor instead. -func (*BgpCMacIpRange) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisInterfaceLinkProtection.ProtoReflect.Descriptor instead. +func (*IsisInterfaceLinkProtection) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{76} } -func (x *BgpCMacIpRange) GetMacAddresses() *MACRouteAddress { - if x != nil { - return x.MacAddresses - } - return nil -} - -func (x *BgpCMacIpRange) GetL2Vni() uint32 { - if x != nil && x.L2Vni != nil { - return *x.L2Vni - } - return 0 -} - -func (x *BgpCMacIpRange) GetIpv4Addresses() *V4RouteAddress { - if x != nil { - return x.Ipv4Addresses - } - return nil -} - -func (x *BgpCMacIpRange) GetIpv6Addresses() *V6RouteAddress { - if x != nil { - return x.Ipv6Addresses +func (x *IsisInterfaceLinkProtection) GetExtraTraffic() bool { + if x != nil && x.ExtraTraffic != nil { + return *x.ExtraTraffic } - return nil + return false } -func (x *BgpCMacIpRange) GetL3Vni() uint32 { - if x != nil && x.L3Vni != nil { - return *x.L3Vni +func (x *IsisInterfaceLinkProtection) GetUnprotected() bool { + if x != nil && x.Unprotected != nil { + return *x.Unprotected } - return 0 + return false } -func (x *BgpCMacIpRange) GetIncludeDefaultGateway() bool { - if x != nil && x.IncludeDefaultGateway != nil { - return *x.IncludeDefaultGateway +func (x *IsisInterfaceLinkProtection) GetShared() bool { + if x != nil && x.Shared != nil { + return *x.Shared } return false } -func (x *BgpCMacIpRange) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *IsisInterfaceLinkProtection) GetDedicated_1To_1() bool { + if x != nil && x.Dedicated_1To_1 != nil { + return *x.Dedicated_1To_1 } - return nil + return false } -func (x *BgpCMacIpRange) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (x *IsisInterfaceLinkProtection) GetDedicated_1Plus_1() bool { + if x != nil && x.Dedicated_1Plus_1 != nil { + return *x.Dedicated_1Plus_1 } - return nil + return false } -func (x *BgpCMacIpRange) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *IsisInterfaceLinkProtection) GetEnhanced() bool { + if x != nil && x.Enhanced != nil { + return *x.Enhanced } - return nil + return false } -func (x *BgpCMacIpRange) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath +func (x *IsisInterfaceLinkProtection) GetReserved_40() bool { + if x != nil && x.Reserved_40 != nil { + return *x.Reserved_40 } - return nil + return false } -func (x *BgpCMacIpRange) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *IsisInterfaceLinkProtection) GetReserved_80() bool { + if x != nil && x.Reserved_80 != nil { + return *x.Reserved_80 } - return "" + return false } -// BGP Route Distinguisher. -type BgpRouteDistinguisher struct { +// This contains ISIS router basic properties. +type IsisBasic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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). - // default = RdType.Enum.as_2octet - RdType *BgpRouteDistinguisher_RdType_Enum `protobuf:"varint,1,opt,name=rd_type,json=rdType,proto3,enum=otg.BgpRouteDistinguisher_RdType_Enum,oneof" json:"rd_type,omitempty"` - // Allow to automatically configure RD IP address from local ip. + // IPv4 Traffic Engineering(TE) router id. This address should be configured as an IPv4 + // Loopback address in 'ipv4_loopbacks' in the Device. + Ipv4TeRouterId *string `protobuf:"bytes,1,opt,name=ipv4_te_router_id,json=ipv4TeRouterId,proto3,oneof" json:"ipv4_te_router_id,omitempty"` + // Host name for the router. The host name is transmitted in all the packets sent from + // the router. + Hostname *string `protobuf:"bytes,2,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + // When set to true, it allows sending of more detailed metric information for the + // routes using 32-bit wide values using TLV 135 IP reachability and more detailed + // reachability information for IS reachability by using TLV 22. The detailed usage + // is described in RFC3784. + // default = True + EnableWideMetric *bool `protobuf:"varint,3,opt,name=enable_wide_metric,json=enableWideMetric,proto3,oneof" json:"enable_wide_metric,omitempty"` + // Configuration for controlling storage of ISIS learned LSPs are received from the + // neighbors. // default = False - AutoConfigRdIpAddr *bool `protobuf:"varint,2,opt,name=auto_config_rd_ip_addr,json=autoConfigRdIpAddr,proto3,oneof" json:"auto_config_rd_ip_addr,omitempty"` - // 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 *string `protobuf:"bytes,3,opt,name=rd_value,json=rdValue,proto3,oneof" json:"rd_value,omitempty"` + LearnedLspFilter *bool `protobuf:"varint,4,opt,name=learned_lsp_filter,json=learnedLspFilter,proto3,oneof" json:"learned_lsp_filter,omitempty"` } -func (x *BgpRouteDistinguisher) Reset() { - *x = BgpRouteDistinguisher{} +func (x *IsisBasic) Reset() { + *x = IsisBasic{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30267,13 +30516,13 @@ func (x *BgpRouteDistinguisher) Reset() { } } -func (x *BgpRouteDistinguisher) String() string { +func (x *IsisBasic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteDistinguisher) ProtoMessage() {} +func (*IsisBasic) ProtoMessage() {} -func (x *BgpRouteDistinguisher) ProtoReflect() protoreflect.Message { +func (x *IsisBasic) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30285,50 +30534,86 @@ func (x *BgpRouteDistinguisher) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteDistinguisher.ProtoReflect.Descriptor instead. -func (*BgpRouteDistinguisher) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisBasic.ProtoReflect.Descriptor instead. +func (*IsisBasic) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{77} } -func (x *BgpRouteDistinguisher) GetRdType() BgpRouteDistinguisher_RdType_Enum { - if x != nil && x.RdType != nil { - return *x.RdType +func (x *IsisBasic) GetIpv4TeRouterId() string { + if x != nil && x.Ipv4TeRouterId != nil { + return *x.Ipv4TeRouterId } - return BgpRouteDistinguisher_RdType_unspecified + return "" } -func (x *BgpRouteDistinguisher) GetAutoConfigRdIpAddr() bool { - if x != nil && x.AutoConfigRdIpAddr != nil { - return *x.AutoConfigRdIpAddr +func (x *IsisBasic) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *IsisBasic) GetEnableWideMetric() bool { + if x != nil && x.EnableWideMetric != nil { + return *x.EnableWideMetric } return false } -func (x *BgpRouteDistinguisher) GetRdValue() string { - if x != nil && x.RdValue != nil { - return *x.RdValue +func (x *IsisBasic) GetLearnedLspFilter() bool { + if x != nil && x.LearnedLspFilter != nil { + return *x.LearnedLspFilter } - return "" + return false } -// BGP Route Target. -type BgpRouteTarget struct { +// Contains ISIS router advanced properties. +type IsisAdvanced struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *BgpRouteTarget_RtType_Enum `protobuf:"varint,1,opt,name=rt_type,json=rtType,proto3,enum=otg.BgpRouteTarget_RtType_Enum,oneof" json:"rt_type,omitempty"` - // 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 *string `protobuf:"bytes,2,opt,name=rt_value,json=rtValue,proto3,oneof" json:"rt_value,omitempty"` + // It enables padding of Hello message to MTU size. + // default = True + EnableHelloPadding *bool `protobuf:"varint,1,opt,name=enable_hello_padding,json=enableHelloPadding,proto3,oneof" json:"enable_hello_padding,omitempty"` + // The Number of Area Addresses permitted, with a valid range from 0 to 254. A zero + // indicates a maximum of 3 addresses. + // default = 3 + MaxAreaAddresses *uint32 `protobuf:"varint,2,opt,name=max_area_addresses,json=maxAreaAddresses,proto3,oneof" json:"max_area_addresses,omitempty"` + // Its combination of the ISP and HO-DSP.Usually all nodes within an area have the + // same area address. If no area addresses are configured, a default area of 490001 + // will be advertised. + AreaAddresses []string `protobuf:"bytes,3,rep,name=area_addresses,json=areaAddresses,proto3" json:"area_addresses,omitempty"` + // The rate at which LSPs are re-sent in seconds. + // default = 600 + LspRefreshRate *uint32 `protobuf:"varint,4,opt,name=lsp_refresh_rate,json=lspRefreshRate,proto3,oneof" json:"lsp_refresh_rate,omitempty"` + // The MaxAge for retaining a learned LSP on this router in seconds. + // default = 1200 + LspLifetime *uint32 `protobuf:"varint,5,opt,name=lsp_lifetime,json=lspLifetime,proto3,oneof" json:"lsp_lifetime,omitempty"` + // The number of milliseconds between transmissions of Partial Sequence Number PDU. + // default = 2000 + PsnpInterval *uint32 `protobuf:"varint,6,opt,name=psnp_interval,json=psnpInterval,proto3,oneof" json:"psnp_interval,omitempty"` + // The number of milliseconds between transmissions of Partial Sequence Number PDU. + // default = 10000 + CsnpInterval *uint32 `protobuf:"varint,7,opt,name=csnp_interval,json=csnpInterval,proto3,oneof" json:"csnp_interval,omitempty"` + // The maximum size in bytes of any LSP that can be transmitted over a link of equal + // or less than maximum MTU size. + // default = 1492 + MaxLspSize *uint32 `protobuf:"varint,8,opt,name=max_lsp_size,json=maxLspSize,proto3,oneof" json:"max_lsp_size,omitempty"` + // The number of seconds between transmissions of LSPs/MGROUP-PDUs. + // default = 5000 + LspMgroupMinTransInterval *uint32 `protobuf:"varint,9,opt,name=lsp_mgroup_min_trans_interval,json=lspMgroupMinTransInterval,proto3,oneof" json:"lsp_mgroup_min_trans_interval,omitempty"` + // If the Attached bit is enabled, it indicates that the ISIS router is attached to + // another area or the Level 2 backbone. The purpose of an Attached-Bit is to accomplish + // Inter-Area Routing. When an L1/L2 router is connected to more than one area, it + // sets the Attached-bit on its L1 LSP. This can cause a default route ( 0.0.0.0/0 ) + // to be installed by the receiving router. + // default = True + EnableAttachedBit *bool `protobuf:"varint,10,opt,name=enable_attached_bit,json=enableAttachedBit,proto3,oneof" json:"enable_attached_bit,omitempty"` } -func (x *BgpRouteTarget) Reset() { - *x = BgpRouteTarget{} +func (x *IsisAdvanced) Reset() { + *x = IsisAdvanced{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30336,13 +30621,13 @@ func (x *BgpRouteTarget) Reset() { } } -func (x *BgpRouteTarget) String() string { +func (x *IsisAdvanced) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteTarget) ProtoMessage() {} +func (*IsisAdvanced) ProtoMessage() {} -func (x *BgpRouteTarget) ProtoReflect() protoreflect.Message { +func (x *IsisAdvanced) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30354,67 +30639,100 @@ func (x *BgpRouteTarget) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRouteTarget.ProtoReflect.Descriptor instead. -func (*BgpRouteTarget) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisAdvanced.ProtoReflect.Descriptor instead. +func (*IsisAdvanced) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{78} } -func (x *BgpRouteTarget) GetRtType() BgpRouteTarget_RtType_Enum { - if x != nil && x.RtType != nil { - return *x.RtType +func (x *IsisAdvanced) GetEnableHelloPadding() bool { + if x != nil && x.EnableHelloPadding != nil { + return *x.EnableHelloPadding } - return BgpRouteTarget_RtType_unspecified + return false } -func (x *BgpRouteTarget) GetRtValue() string { - if x != nil && x.RtValue != nil { - return *x.RtValue +func (x *IsisAdvanced) GetMaxAreaAddresses() uint32 { + if x != nil && x.MaxAreaAddresses != nil { + return *x.MaxAreaAddresses } - return "" + return 0 } -// Configuration for BGP advanced settings. -type BgpAdvanced struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Number of seconds the sender proposes for the value of the Hold Timer. - // default = 90 - HoldTimeInterval *uint32 `protobuf:"varint,1,opt,name=hold_time_interval,json=holdTimeInterval,proto3,oneof" json:"hold_time_interval,omitempty"` - // Number of seconds between transmissions of Keepalive messages by this peer. - // default = 30 - KeepAliveInterval *uint32 `protobuf:"varint,2,opt,name=keep_alive_interval,json=keepAliveInterval,proto3,oneof" json:"keep_alive_interval,omitempty"` - // The time interval at which Update messages are sent to the DUT, expressed as the - // number of milliseconds between Update messages. The update interval 0 implies to - // send all the updates as fast as possible. - // default = 0 - UpdateInterval *uint32 `protobuf:"varint,3,opt,name=update_interval,json=updateInterval,proto3,oneof" json:"update_interval,omitempty"` - // The limited number of iterations that a unit of data can experience before the data - // is discarded. This is placed in the TTL field in the IP header of the transmitted - // packets. - // default = 64 - TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // The value to be used as a secret MD5 key for authentication. If not configured, MD5 - // authentication will not be enabled. - Md5Key *string `protobuf:"bytes,5,opt,name=md5_key,json=md5Key,proto3,oneof" json:"md5_key,omitempty"` - // If set to true, the local BGP peer will wait for the remote peer to initiate the - // BGP session - // by establishing the TCP connection, rather than initiating sessions from the local - // peer. - // default = False - PassiveMode *bool `protobuf:"varint,6,opt,name=passive_mode,json=passiveMode,proto3,oneof" json:"passive_mode,omitempty"` - // The TCP port number on which to accept BGP connections from the remote peer. - // default = 179 - ListenPort *uint32 `protobuf:"varint,7,opt,name=listen_port,json=listenPort,proto3,oneof" json:"listen_port,omitempty"` - // Destination TCP port number of the BGP peer when initiating a - // session from the local BGP peer. - // default = 179 - NeighborPort *uint32 `protobuf:"varint,8,opt,name=neighbor_port,json=neighborPort,proto3,oneof" json:"neighbor_port,omitempty"` +func (x *IsisAdvanced) GetAreaAddresses() []string { + if x != nil { + return x.AreaAddresses + } + return nil } -func (x *BgpAdvanced) Reset() { - *x = BgpAdvanced{} +func (x *IsisAdvanced) GetLspRefreshRate() uint32 { + if x != nil && x.LspRefreshRate != nil { + return *x.LspRefreshRate + } + return 0 +} + +func (x *IsisAdvanced) GetLspLifetime() uint32 { + if x != nil && x.LspLifetime != nil { + return *x.LspLifetime + } + return 0 +} + +func (x *IsisAdvanced) GetPsnpInterval() uint32 { + if x != nil && x.PsnpInterval != nil { + return *x.PsnpInterval + } + return 0 +} + +func (x *IsisAdvanced) GetCsnpInterval() uint32 { + if x != nil && x.CsnpInterval != nil { + return *x.CsnpInterval + } + return 0 +} + +func (x *IsisAdvanced) GetMaxLspSize() uint32 { + if x != nil && x.MaxLspSize != nil { + return *x.MaxLspSize + } + return 0 +} + +func (x *IsisAdvanced) GetLspMgroupMinTransInterval() uint32 { + if x != nil && x.LspMgroupMinTransInterval != nil { + return *x.LspMgroupMinTransInterval + } + return 0 +} + +func (x *IsisAdvanced) GetEnableAttachedBit() bool { + if x != nil && x.EnableAttachedBit != nil { + return *x.EnableAttachedBit + } + return false +} + +// This contains ISIS Area/Domain authentication properties. +type IsisAuthentication struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Do not verify MD5 checksum in received LSPs. + // default = True + IgnoreReceiveMd5 *bool `protobuf:"varint,1,opt,name=ignore_receive_md5,json=ignoreReceiveMd5,proto3,oneof" json:"ignore_receive_md5,omitempty"` + // The Area authentication method used for the emulated ISIS router. + // This is used for L1 LSPs. + AreaAuth *IsisAuthenticationBase `protobuf:"bytes,2,opt,name=area_auth,json=areaAuth,proto3" json:"area_auth,omitempty"` + // The Domain authentication method used for the emulated ISIS router. + // This is used for L2 LSPs. + DomainAuth *IsisAuthenticationBase `protobuf:"bytes,3,opt,name=domain_auth,json=domainAuth,proto3" json:"domain_auth,omitempty"` +} + +func (x *IsisAuthentication) Reset() { + *x = IsisAuthentication{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30422,13 +30740,13 @@ func (x *BgpAdvanced) Reset() { } } -func (x *BgpAdvanced) String() string { +func (x *IsisAuthentication) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAdvanced) ProtoMessage() {} +func (*IsisAuthentication) ProtoMessage() {} -func (x *BgpAdvanced) ProtoReflect() protoreflect.Message { +func (x *IsisAuthentication) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -30440,179 +30758,166 @@ func (x *BgpAdvanced) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAdvanced.ProtoReflect.Descriptor instead. -func (*BgpAdvanced) Descriptor() ([]byte, []int) { +// Deprecated: Use IsisAuthentication.ProtoReflect.Descriptor instead. +func (*IsisAuthentication) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{79} } -func (x *BgpAdvanced) GetHoldTimeInterval() uint32 { - if x != nil && x.HoldTimeInterval != nil { - return *x.HoldTimeInterval +func (x *IsisAuthentication) GetIgnoreReceiveMd5() bool { + if x != nil && x.IgnoreReceiveMd5 != nil { + return *x.IgnoreReceiveMd5 } - return 0 + return false } -func (x *BgpAdvanced) GetKeepAliveInterval() uint32 { - if x != nil && x.KeepAliveInterval != nil { - return *x.KeepAliveInterval +func (x *IsisAuthentication) GetAreaAuth() *IsisAuthenticationBase { + if x != nil { + return x.AreaAuth } - return 0 + return nil } -func (x *BgpAdvanced) GetUpdateInterval() uint32 { - if x != nil && x.UpdateInterval != nil { - return *x.UpdateInterval +func (x *IsisAuthentication) GetDomainAuth() *IsisAuthenticationBase { + if x != nil { + return x.DomainAuth } - return 0 + return nil } -func (x *BgpAdvanced) GetTimeToLive() uint32 { - if x != nil && x.TimeToLive != nil { - return *x.TimeToLive +// Optional container for ISIS authentication properties. +type IsisAuthenticationBase struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The authentication method. + // required = true + AuthType *IsisAuthenticationBase_AuthType_Enum `protobuf:"varint,1,opt,name=auth_type,json=authType,proto3,enum=otg.IsisAuthenticationBase_AuthType_Enum,oneof" json:"auth_type,omitempty"` + // Authentication as an MD5 key. + Md5 *string `protobuf:"bytes,2,opt,name=md5,proto3,oneof" json:"md5,omitempty"` + // Authentication as a clear text password. + Password *string `protobuf:"bytes,3,opt,name=password,proto3,oneof" json:"password,omitempty"` +} + +func (x *IsisAuthenticationBase) Reset() { + *x = IsisAuthenticationBase{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpAdvanced) GetMd5Key() string { - if x != nil && x.Md5Key != nil { - return *x.Md5Key +func (x *IsisAuthenticationBase) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsisAuthenticationBase) ProtoMessage() {} + +func (x *IsisAuthenticationBase) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[80] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *BgpAdvanced) GetPassiveMode() bool { - if x != nil && x.PassiveMode != nil { - return *x.PassiveMode +// Deprecated: Use IsisAuthenticationBase.ProtoReflect.Descriptor instead. +func (*IsisAuthenticationBase) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80} +} + +func (x *IsisAuthenticationBase) GetAuthType() IsisAuthenticationBase_AuthType_Enum { + if x != nil && x.AuthType != nil { + return *x.AuthType } - return false + return IsisAuthenticationBase_AuthType_unspecified } -func (x *BgpAdvanced) GetListenPort() uint32 { - if x != nil && x.ListenPort != nil { - return *x.ListenPort +func (x *IsisAuthenticationBase) GetMd5() string { + if x != nil && x.Md5 != nil { + return *x.Md5 } - return 0 + return "" } -func (x *BgpAdvanced) GetNeighborPort() uint32 { - if x != nil && x.NeighborPort != nil { - return *x.NeighborPort +func (x *IsisAuthenticationBase) GetPassword() string { + if x != nil && x.Password != nil { + return *x.Password } - return 0 + return "" } -// Configuration for BGP capability settings. -type BgpCapability struct { +// Emulated ISIS IPv4 routes. +type IsisV4RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Support for the IPv4 Unicast address family. - // default = True - Ipv4Unicast *bool `protobuf:"varint,1,opt,name=ipv4_unicast,json=ipv4Unicast,proto3,oneof" json:"ipv4_unicast,omitempty"` - // Support for the IPv4 Multicast address family. - // default = False - Ipv4Multicast *bool `protobuf:"varint,2,opt,name=ipv4_multicast,json=ipv4Multicast,proto3,oneof" json:"ipv4_multicast,omitempty"` - // Support for the IPv4 Unicast address family. - // default = True - Ipv6Unicast *bool `protobuf:"varint,3,opt,name=ipv6_unicast,json=ipv6Unicast,proto3,oneof" json:"ipv6_unicast,omitempty"` - // Support for the IPv6 Multicast address family. - // default = False - Ipv6Multicast *bool `protobuf:"varint,4,opt,name=ipv6_multicast,json=ipv6Multicast,proto3,oneof" json:"ipv6_multicast,omitempty"` - // Support for VPLS as below. - // RFC4761 - Virtual Private LAN Service (VPLS) using BGP for Auto-Discovery - // and Signaling. - // RFC6624 - Layer 2 Virtual Private Networks using BGP for Auto-Discovery - // and Signaling. - // default = False - Vpls *bool `protobuf:"varint,5,opt,name=vpls,proto3,oneof" json:"vpls,omitempty"` - // Support for the route refresh capabilities. Route Refresh allows the dynamic exchange - // of route refresh requests and routing information between BGP peers and the subsequent - // re-advertisement of the outbound or inbound routing table. - // default = True - RouteRefresh *bool `protobuf:"varint,6,opt,name=route_refresh,json=routeRefresh,proto3,oneof" json:"route_refresh,omitempty"` - // Supports for the route constraint capabilities. Route Constraint allows the advertisement - // of Route Target Membership information. The BGP peers exchange Route Target Reachability - // Information, which is used to build a route distribution graph. This limits the - // propagation of VPN Network Layer Reachability Information (NLRI) between different - // autonomous systems or distinct clusters of the same autonomous system. This is supported - // for Layer 3 Virtual Private Network scenario. - // default = False - RouteConstraint *bool `protobuf:"varint,7,opt,name=route_constraint,json=routeConstraint,proto3,oneof" json:"route_constraint,omitempty"` - // Support for BGP Link State for ISIS and OSPF. - // default = False - LinkStateNonVpn *bool `protobuf:"varint,8,opt,name=link_state_non_vpn,json=linkStateNonVpn,proto3,oneof" json:"link_state_non_vpn,omitempty"` - // Capability advertisement of BGP Link State for VPNs. - // default = False - LinkStateVpn *bool `protobuf:"varint,9,opt,name=link_state_vpn,json=linkStateVpn,proto3,oneof" json:"link_state_vpn,omitempty"` - // Support for the EVPN address family. - // default = False - Evpn *bool `protobuf:"varint,10,opt,name=evpn,proto3,oneof" json:"evpn,omitempty"` - // Support for extended Next Hop Encoding for Nexthop field in IPv4 routes advertisement. - // This allows IPv4 routes being advertised by IPv6 peers to include an IPv6 Nexthop. - // default = False - ExtendedNextHopEncoding *bool `protobuf:"varint,11,opt,name=extended_next_hop_encoding,json=extendedNextHopEncoding,proto3,oneof" json:"extended_next_hop_encoding,omitempty"` - // Support for the IPv4 Multicast VPN address family. - // default = False - Ipv4MulticastVpn *bool `protobuf:"varint,12,opt,name=ipv4_multicast_vpn,json=ipv4MulticastVpn,proto3,oneof" json:"ipv4_multicast_vpn,omitempty"` - // Support for the IPv4 MPLS L3VPN address family. - // default = False - Ipv4MplsVpn *bool `protobuf:"varint,13,opt,name=ipv4_mpls_vpn,json=ipv4MplsVpn,proto3,oneof" json:"ipv4_mpls_vpn,omitempty"` - // Supports for IPv4 MDT address family messages. - // default = False - Ipv4Mdt *bool `protobuf:"varint,14,opt,name=ipv4_mdt,json=ipv4Mdt,proto3,oneof" json:"ipv4_mdt,omitempty"` - // Support for the IPv4 Multicast VPN address family. - // default = False - Ipv4MulticastMplsVpn *bool `protobuf:"varint,15,opt,name=ipv4_multicast_mpls_vpn,json=ipv4MulticastMplsVpn,proto3,oneof" json:"ipv4_multicast_mpls_vpn,omitempty"` - // Support for propagation of IPv4 unicast flow specification rules. - // default = False - Ipv4UnicastFlowSpec *bool `protobuf:"varint,16,opt,name=ipv4_unicast_flow_spec,json=ipv4UnicastFlowSpec,proto3,oneof" json:"ipv4_unicast_flow_spec,omitempty"` - // Support for IPv4 SRTE policy. - // default = False - Ipv4SrTePolicy *bool `protobuf:"varint,17,opt,name=ipv4_sr_te_policy,json=ipv4SrTePolicy,proto3,oneof" json:"ipv4_sr_te_policy,omitempty"` - // Support for IPv4 Unicast Add Path Capability. - // default = False - Ipv4UnicastAddPath *bool `protobuf:"varint,18,opt,name=ipv4_unicast_add_path,json=ipv4UnicastAddPath,proto3,oneof" json:"ipv4_unicast_add_path,omitempty"` - // Support for the IPv6 Multicast VPN address family. - // default = False - Ipv6MulticastVpn *bool `protobuf:"varint,19,opt,name=ipv6_multicast_vpn,json=ipv6MulticastVpn,proto3,oneof" json:"ipv6_multicast_vpn,omitempty"` - // Support for the IPv6 MPLS L3VPN address family. - // default = False - Ipv6MplsVpn *bool `protobuf:"varint,20,opt,name=ipv6_mpls_vpn,json=ipv6MplsVpn,proto3,oneof" json:"ipv6_mpls_vpn,omitempty"` - // Support for IPv6 MDT address family messages. - // default = False - Ipv6Mdt *bool `protobuf:"varint,21,opt,name=ipv6_mdt,json=ipv6Mdt,proto3,oneof" json:"ipv6_mdt,omitempty"` - // Support for the IPv6 Multicast VPN address family. + // A list of group of IPv4 route addresses. + Addresses []*V4RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The user-defined metric associated with this route range. + // default = 0 + LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` + // 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. + // default = OriginType.Enum.internal + OriginType *IsisV4RouteRange_OriginType_Enum `protobuf:"varint,3,opt,name=origin_type,json=originType,proto3,enum=otg.IsisV4RouteRange_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // Defines the Up/Down (Redistribution) bit defined for TLVs 128 and 130 by RFC 2966. + // It is used for domain-wide advertisement of prefix information. + // + // 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). + // default = RedistributionType.Enum.up + RedistributionType *IsisV4RouteRange_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisV4RouteRange_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags + // will be advertised or not. // default = False - Ipv6MulticastMplsVpn *bool `protobuf:"varint,22,opt,name=ipv6_multicast_mpls_vpn,json=ipv6MulticastMplsVpn,proto3,oneof" json:"ipv6_multicast_mpls_vpn,omitempty"` - // Support for propagation of IPv6 unicast flow specification rules. + PrefixAttrEnabled *bool `protobuf:"varint,6,opt,name=prefix_attr_enabled,json=prefixAttrEnabled,proto3,oneof" json:"prefix_attr_enabled,omitempty"` + // External Prefix Flag (Bit 0) // default = False - Ipv6UnicastFlowSpec *bool `protobuf:"varint,23,opt,name=ipv6_unicast_flow_spec,json=ipv6UnicastFlowSpec,proto3,oneof" json:"ipv6_unicast_flow_spec,omitempty"` - // Support for IPv6 SRTE policy. + XFlag *bool `protobuf:"varint,7,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` + // Re-advertisement Flag (Bit 1) // default = False - Ipv6SrTePolicy *bool `protobuf:"varint,24,opt,name=ipv6_sr_te_policy,json=ipv6SrTePolicy,proto3,oneof" json:"ipv6_sr_te_policy,omitempty"` - // Support for IPv6 Unicast Add Path Capability. + RFlag *bool `protobuf:"varint,8,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` + // Node Flag (Bit 2) // default = False - Ipv6UnicastAddPath *bool `protobuf:"varint,25,opt,name=ipv6_unicast_add_path,json=ipv6UnicastAddPath,proto3,oneof" json:"ipv6_unicast_add_path,omitempty"` + NFlag *bool `protobuf:"varint,9,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` } -func (x *BgpCapability) Reset() { - *x = BgpCapability{} +func (x *IsisV4RouteRange) Reset() { + *x = IsisV4RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[80] + mi := &file_otg_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpCapability) String() string { +func (x *IsisV4RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCapability) ProtoMessage() {} +func (*IsisV4RouteRange) ProtoMessage() {} -func (x *BgpCapability) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[80] +func (x *IsisV4RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30623,220 +30928,274 @@ func (x *BgpCapability) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpCapability.ProtoReflect.Descriptor instead. -func (*BgpCapability) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{80} +// Deprecated: Use IsisV4RouteRange.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{81} } -func (x *BgpCapability) GetIpv4Unicast() bool { - if x != nil && x.Ipv4Unicast != nil { - return *x.Ipv4Unicast +func (x *IsisV4RouteRange) GetAddresses() []*V4RouteAddress { + if x != nil { + return x.Addresses } - return false + return nil } -func (x *BgpCapability) GetIpv4Multicast() bool { - if x != nil && x.Ipv4Multicast != nil { - return *x.Ipv4Multicast +func (x *IsisV4RouteRange) GetLinkMetric() uint32 { + if x != nil && x.LinkMetric != nil { + return *x.LinkMetric } - return false + return 0 } -func (x *BgpCapability) GetIpv6Unicast() bool { - if x != nil && x.Ipv6Unicast != nil { - return *x.Ipv6Unicast +func (x *IsisV4RouteRange) GetOriginType() IsisV4RouteRange_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType } - return false + return IsisV4RouteRange_OriginType_unspecified } -func (x *BgpCapability) GetIpv6Multicast() bool { - if x != nil && x.Ipv6Multicast != nil { - return *x.Ipv6Multicast +func (x *IsisV4RouteRange) GetRedistributionType() IsisV4RouteRange_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType } - return false + return IsisV4RouteRange_RedistributionType_unspecified } -func (x *BgpCapability) GetVpls() bool { - if x != nil && x.Vpls != nil { - return *x.Vpls +func (x *IsisV4RouteRange) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return false + return "" } -func (x *BgpCapability) GetRouteRefresh() bool { - if x != nil && x.RouteRefresh != nil { - return *x.RouteRefresh +func (x *IsisV4RouteRange) GetPrefixAttrEnabled() bool { + if x != nil && x.PrefixAttrEnabled != nil { + return *x.PrefixAttrEnabled } return false } -func (x *BgpCapability) GetRouteConstraint() bool { - if x != nil && x.RouteConstraint != nil { - return *x.RouteConstraint +func (x *IsisV4RouteRange) GetXFlag() bool { + if x != nil && x.XFlag != nil { + return *x.XFlag } return false } -func (x *BgpCapability) GetLinkStateNonVpn() bool { - if x != nil && x.LinkStateNonVpn != nil { - return *x.LinkStateNonVpn +func (x *IsisV4RouteRange) GetRFlag() bool { + if x != nil && x.RFlag != nil { + return *x.RFlag } return false } -func (x *BgpCapability) GetLinkStateVpn() bool { - if x != nil && x.LinkStateVpn != nil { - return *x.LinkStateVpn +func (x *IsisV4RouteRange) GetNFlag() bool { + if x != nil && x.NFlag != nil { + return *x.NFlag } return false } -func (x *BgpCapability) GetEvpn() bool { - if x != nil && x.Evpn != nil { - return *x.Evpn - } - return false +// A container for IPv4 route addresses. +type V4RouteAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The starting address of the network. + // required = true + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The IPv4 network prefix length to be applied to the address. + // default = 24 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The total number of addresses in the range. + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // Increments the network address prefixes within a route range where multiple routes + // are present. The value is incremented according to the Prefix Length and Step. + // default = 1 + Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *BgpCapability) GetExtendedNextHopEncoding() bool { - if x != nil && x.ExtendedNextHopEncoding != nil { - return *x.ExtendedNextHopEncoding +func (x *V4RouteAddress) Reset() { + *x = V4RouteAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *BgpCapability) GetIpv4MulticastVpn() bool { - if x != nil && x.Ipv4MulticastVpn != nil { - return *x.Ipv4MulticastVpn - } - return false +func (x *V4RouteAddress) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpCapability) GetIpv4MplsVpn() bool { - if x != nil && x.Ipv4MplsVpn != nil { - return *x.Ipv4MplsVpn +func (*V4RouteAddress) ProtoMessage() {} + +func (x *V4RouteAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[82] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *BgpCapability) GetIpv4Mdt() bool { - if x != nil && x.Ipv4Mdt != nil { - return *x.Ipv4Mdt - } - return false +// Deprecated: Use V4RouteAddress.ProtoReflect.Descriptor instead. +func (*V4RouteAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{82} } -func (x *BgpCapability) GetIpv4MulticastMplsVpn() bool { - if x != nil && x.Ipv4MulticastMplsVpn != nil { - return *x.Ipv4MulticastMplsVpn +func (x *V4RouteAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return false + return "" } -func (x *BgpCapability) GetIpv4UnicastFlowSpec() bool { - if x != nil && x.Ipv4UnicastFlowSpec != nil { - return *x.Ipv4UnicastFlowSpec +func (x *V4RouteAddress) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix } - return false + return 0 } -func (x *BgpCapability) GetIpv4SrTePolicy() bool { - if x != nil && x.Ipv4SrTePolicy != nil { - return *x.Ipv4SrTePolicy +func (x *V4RouteAddress) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return false + return 0 } -func (x *BgpCapability) GetIpv4UnicastAddPath() bool { - if x != nil && x.Ipv4UnicastAddPath != nil { - return *x.Ipv4UnicastAddPath +func (x *V4RouteAddress) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return false + return 0 } -func (x *BgpCapability) GetIpv6MulticastVpn() bool { - if x != nil && x.Ipv6MulticastVpn != nil { - return *x.Ipv6MulticastVpn - } - return false +// A container for IPv6 route addresses. +type V6RouteAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The starting address of the network. + // required = true + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The IPv6 network prefix length to be applied to the address. + // default = 64 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The total number of addresses in the range. + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // Increments the network address prefixes within a route range where multiple routes + // are present. The value is incremented according to the Prefix Length and Step. + // default = 1 + Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *BgpCapability) GetIpv6MplsVpn() bool { - if x != nil && x.Ipv6MplsVpn != nil { - return *x.Ipv6MplsVpn +func (x *V6RouteAddress) Reset() { + *x = V6RouteAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *BgpCapability) GetIpv6Mdt() bool { - if x != nil && x.Ipv6Mdt != nil { - return *x.Ipv6Mdt +func (x *V6RouteAddress) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*V6RouteAddress) ProtoMessage() {} + +func (x *V6RouteAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[83] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -func (x *BgpCapability) GetIpv6MulticastMplsVpn() bool { - if x != nil && x.Ipv6MulticastMplsVpn != nil { - return *x.Ipv6MulticastMplsVpn +// Deprecated: Use V6RouteAddress.ProtoReflect.Descriptor instead. +func (*V6RouteAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{83} +} + +func (x *V6RouteAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return false + return "" } -func (x *BgpCapability) GetIpv6UnicastFlowSpec() bool { - if x != nil && x.Ipv6UnicastFlowSpec != nil { - return *x.Ipv6UnicastFlowSpec +func (x *V6RouteAddress) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix } - return false + return 0 } -func (x *BgpCapability) GetIpv6SrTePolicy() bool { - if x != nil && x.Ipv6SrTePolicy != nil { - return *x.Ipv6SrTePolicy +func (x *V6RouteAddress) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return false + return 0 } -func (x *BgpCapability) GetIpv6UnicastAddPath() bool { - if x != nil && x.Ipv6UnicastAddPath != nil { - return *x.Ipv6UnicastAddPath +func (x *V6RouteAddress) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return false + return 0 } -// Configuration for controlling storage of BGP learned information recieved from the -// peer. -type BgpLearnedInformationFilter struct { +// A container for MAC route addresses. +type MACRouteAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If enabled, will store the information related to Unicast IPv4 Prefixes recieved - // from the peer. - // default = False - UnicastIpv4Prefix *bool `protobuf:"varint,1,opt,name=unicast_ipv4_prefix,json=unicastIpv4Prefix,proto3,oneof" json:"unicast_ipv4_prefix,omitempty"` - // If enabled, will store the information related to Unicast IPv6 Prefixes recieved - // from the peer. - // default = False - UnicastIpv6Prefix *bool `protobuf:"varint,2,opt,name=unicast_ipv6_prefix,json=unicastIpv6Prefix,proto3,oneof" json:"unicast_ipv6_prefix,omitempty"` + // The starting address of the MAC Range. + // required = true + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The MAC prefix length to be applied to the address. + // default = 48 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The total number of mac addresses in the range. + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // Increments the mac address prefixes within a mac range where multiple routes are + // present. The value is incremented according to the mac prefix Length and Step. + // default = 1 + Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *BgpLearnedInformationFilter) Reset() { - *x = BgpLearnedInformationFilter{} +func (x *MACRouteAddress) Reset() { + *x = MACRouteAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[81] + mi := &file_otg_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpLearnedInformationFilter) String() string { +func (x *MACRouteAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpLearnedInformationFilter) ProtoMessage() {} +func (*MACRouteAddress) ProtoMessage() {} -func (x *BgpLearnedInformationFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[81] +func (x *MACRouteAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30847,125 +31206,105 @@ func (x *BgpLearnedInformationFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpLearnedInformationFilter.ProtoReflect.Descriptor instead. -func (*BgpLearnedInformationFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{81} +// Deprecated: Use MACRouteAddress.ProtoReflect.Descriptor instead. +func (*MACRouteAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{84} } -func (x *BgpLearnedInformationFilter) GetUnicastIpv4Prefix() bool { - if x != nil && x.UnicastIpv4Prefix != nil { - return *x.UnicastIpv4Prefix +func (x *MACRouteAddress) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return false + return "" } -func (x *BgpLearnedInformationFilter) GetUnicastIpv6Prefix() bool { - if x != nil && x.UnicastIpv6Prefix != nil { - return *x.UnicastIpv6Prefix +func (x *MACRouteAddress) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix } - return false + return 0 } -// Emulated BGPv4 route range. -type BgpV4RouteRange struct { +func (x *MACRouteAddress) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +func (x *MACRouteAddress) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +// Emulated ISIS IPv6 routes. +type IsisV6RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv4 route addresses. - Addresses []*V4RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the - // NextHop in the MP REACH NLRI can be one of the following: - // Local IP: Automatically fills the Nexthop with the Local IP of the BGP - // peer. - // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpV4RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV4RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. - // default = NextHopAddressType.Enum.ipv4 - NextHopAddressType *BgpV4RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV4RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` + // A list of group of IPv6 route addresses. + Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The user-defined metric associated with this route range. + // default = 0 + LinkMetric *uint32 `protobuf:"varint,2,opt,name=link_metric,json=linkMetric,proto3,oneof" json:"link_metric,omitempty"` + // 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. + // default = OriginType.Enum.internal + OriginType *IsisV6RouteRange_OriginType_Enum `protobuf:"varint,3,opt,name=origin_type,json=originType,proto3,enum=otg.IsisV6RouteRange_OriginType_Enum,oneof" json:"origin_type,omitempty"` + // Defines the Up/Down (Redistribution) bit defined for TLVs 128 and 130 by RFC 2966. + // It is used for domain-wide advertisement of prefix information. + // + // 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). + // default = RedistributionType.Enum.up + RedistributionType *IsisV6RouteRange_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisV6RouteRange_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Deprecated: This property is deprecated in favor of property extended_communities - // - // Deprecated: This property is deprecated in favor of property extended_communities - // - // 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. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // 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 eight byte value. It - // is divided into two main parts. The first two bytes of the community encode a type - // and sub-type fields and the last six 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. - ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` + Name *string `protobuf:"bytes,5,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Specifies whether the sub-TLV for IPv4/IPv6 Extended Reachability Attribute Flags + // will be advertised or not. + // default = False + PrefixAttrEnabled *bool `protobuf:"varint,6,opt,name=prefix_attr_enabled,json=prefixAttrEnabled,proto3,oneof" json:"prefix_attr_enabled,omitempty"` + // External Prefix Flag (Bit 0) + // default = False + XFlag *bool `protobuf:"varint,7,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` + // Re-advertisement Flag (Bit 1) + // default = False + RFlag *bool `protobuf:"varint,8,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` + // Node Flag (Bit 2) + // default = False + NFlag *bool `protobuf:"varint,9,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` } -func (x *BgpV4RouteRange) Reset() { - *x = BgpV4RouteRange{} +func (x *IsisV6RouteRange) Reset() { + *x = IsisV6RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[82] + mi := &file_otg_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange) String() string { +func (x *IsisV6RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange) ProtoMessage() {} +func (*IsisV6RouteRange) ProtoMessage() {} -func (x *BgpV4RouteRange) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[82] +func (x *IsisV6RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30976,125 +31315,176 @@ func (x *BgpV4RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV4RouteRange.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82} +// Deprecated: Use IsisV6RouteRange.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85} } -func (x *BgpV4RouteRange) GetAddresses() []*V4RouteAddress { +func (x *IsisV6RouteRange) GetAddresses() []*V6RouteAddress { if x != nil { return x.Addresses } return nil } -func (x *BgpV4RouteRange) GetNextHopMode() BgpV4RouteRange_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode +func (x *IsisV6RouteRange) GetLinkMetric() uint32 { + if x != nil && x.LinkMetric != nil { + return *x.LinkMetric } - return BgpV4RouteRange_NextHopMode_unspecified + return 0 } -func (x *BgpV4RouteRange) GetNextHopAddressType() BgpV4RouteRange_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (x *IsisV6RouteRange) GetOriginType() IsisV6RouteRange_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType } - return BgpV4RouteRange_NextHopAddressType_unspecified + return IsisV6RouteRange_OriginType_unspecified } -func (x *BgpV4RouteRange) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address +func (x *IsisV6RouteRange) GetRedistributionType() IsisV6RouteRange_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType } - return "" + return IsisV6RouteRange_RedistributionType_unspecified } -func (x *BgpV4RouteRange) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *IsisV6RouteRange) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *BgpV4RouteRange) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *IsisV6RouteRange) GetPrefixAttrEnabled() bool { + if x != nil && x.PrefixAttrEnabled != nil { + return *x.PrefixAttrEnabled } - return nil + return false } -func (x *BgpV4RouteRange) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (x *IsisV6RouteRange) GetXFlag() bool { + if x != nil && x.XFlag != nil { + return *x.XFlag } - return nil + return false } -func (x *BgpV4RouteRange) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath +func (x *IsisV6RouteRange) GetRFlag() bool { + if x != nil && x.RFlag != nil { + return *x.RFlag } - return nil + return false } -func (x *BgpV4RouteRange) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *IsisV6RouteRange) GetNFlag() bool { + if x != nil && x.NFlag != nil { + return *x.NFlag } - return nil + return false } -func (x *BgpV4RouteRange) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +// Configuration for one or more IPv4 or IPv6 BGP peers. +type DeviceBgpRouter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The BGP router ID is a unique identifier used by BGP. It is a 32-bit value that is + // often represented by an IPv4 address. + // required = true + RouterId *string `protobuf:"bytes,1,opt,name=router_id,json=routerId,proto3,oneof" json:"router_id,omitempty"` + // This contains an array of references to IPv4 interfaces, each of which will have + // list of peers to different destinations. + Ipv4Interfaces []*BgpV4Interface `protobuf:"bytes,2,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // This contains an array of references to IPv6 interfaces, each of which will have + // list of peers to different destinations. + Ipv6Interfaces []*BgpV6Interface `protobuf:"bytes,3,rep,name=ipv6_interfaces,json=ipv6Interfaces,proto3" json:"ipv6_interfaces,omitempty"` +} + +func (x *DeviceBgpRouter) Reset() { + *x = DeviceBgpRouter{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeviceBgpRouter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceBgpRouter) ProtoMessage() {} + +func (x *DeviceBgpRouter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[86] + 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 DeviceBgpRouter.ProtoReflect.Descriptor instead. +func (*DeviceBgpRouter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{86} +} + +func (x *DeviceBgpRouter) GetRouterId() string { + if x != nil && x.RouterId != nil { + return *x.RouterId } return "" } -func (x *BgpV4RouteRange) GetExtCommunities() []*BgpExtCommunity { +func (x *DeviceBgpRouter) GetIpv4Interfaces() []*BgpV4Interface { if x != nil { - return x.ExtCommunities + return x.Ipv4Interfaces } return nil } -func (x *BgpV4RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { +func (x *DeviceBgpRouter) GetIpv6Interfaces() []*BgpV6Interface { if x != nil { - return x.ExtendedCommunities + return x.Ipv6Interfaces } return nil } -// The BGP Additional Paths feature is a BGP extension that allows the advertisement -// of multiple paths for the same prefix without the new paths implicitly replacing -// any previous paths. -type BgpAddPath struct { +// All errors detected while processing the Message Header are indicated by sending +// the NOTIFICATION message with the Error Code-Message Header Error. The Error Subcode +// elaborates on the specific nature of the error. +type DeviceBgpMessageHeaderError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The id of the additional path. - // default = 1 - PathId *uint32 `protobuf:"varint,1,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The Error Subcode indicates the specific type of error encountered during Message + // Header processing. + // default = Subcode.Enum.connection_not_synchronized_code1_subcode1 + Subcode *DeviceBgpMessageHeaderError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpMessageHeaderError_Subcode_Enum,oneof" json:"subcode,omitempty"` } -func (x *BgpAddPath) Reset() { - *x = BgpAddPath{} +func (x *DeviceBgpMessageHeaderError) Reset() { + *x = DeviceBgpMessageHeaderError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[83] + mi := &file_otg_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAddPath) String() string { +func (x *DeviceBgpMessageHeaderError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAddPath) ProtoMessage() {} +func (*DeviceBgpMessageHeaderError) ProtoMessage() {} -func (x *BgpAddPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[83] +func (x *DeviceBgpMessageHeaderError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31105,67 +31495,49 @@ func (x *BgpAddPath) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAddPath.ProtoReflect.Descriptor instead. -func (*BgpAddPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{83} +// Deprecated: Use DeviceBgpMessageHeaderError.ProtoReflect.Descriptor instead. +func (*DeviceBgpMessageHeaderError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{87} } -func (x *BgpAddPath) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *DeviceBgpMessageHeaderError) GetSubcode() DeviceBgpMessageHeaderError_Subcode_Enum { + if x != nil && x.Subcode != nil { + return *x.Subcode } - return 0 + return DeviceBgpMessageHeaderError_Subcode_unspecified } -// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 -// 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 optonal sub-type field. The last -// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a -// format defined by the type and optional sub-type field. Extended communities provide -// a larger range for grouping or categorizing communities. -type BgpExtendedCommunity struct { +// All errors detected while processing the OPEN message are indicated by sending the +// NOTIFICATION message with the Error Code-Open Message Error. The Error Subcode elaborates +// on the specific nature of the error. +type DeviceBgpOpenMessageError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.transitive_2octet_as_type - Choice *BgpExtendedCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunity_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3" json:"transitive_2octet_as_type,omitempty"` - // Description missing in models - TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3" json:"transitive_ipv4_address_type,omitempty"` - // Description missing in models - Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3" json:"transitive_4octet_as_type,omitempty"` - // Description missing in models - TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3" json:"transitive_opaque_type,omitempty"` - // Description missing in models - TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3" json:"transitive_evpn_type,omitempty"` - // Description missing in models - NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3" json:"non_transitive_2octet_as_type,omitempty"` - // Description missing in models - Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3" json:"custom,omitempty"` + // The Error Subcode indicates the specific type of error encountered during OPEN message + // processing. + // default = Subcode.Enum.unsupported_version_number_code2_subcode1 + Subcode *DeviceBgpOpenMessageError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpOpenMessageError_Subcode_Enum,oneof" json:"subcode,omitempty"` } -func (x *BgpExtendedCommunity) Reset() { - *x = BgpExtendedCommunity{} +func (x *DeviceBgpOpenMessageError) Reset() { + *x = DeviceBgpOpenMessageError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[84] + mi := &file_otg_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunity) String() string { +func (x *DeviceBgpOpenMessageError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunity) ProtoMessage() {} +func (*DeviceBgpOpenMessageError) ProtoMessage() {} -func (x *BgpExtendedCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[84] +func (x *DeviceBgpOpenMessageError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31176,102 +31548,48 @@ func (x *BgpExtendedCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunity.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{84} -} - -func (x *BgpExtendedCommunity) GetChoice() BgpExtendedCommunity_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return BgpExtendedCommunity_Choice_unspecified +// Deprecated: Use DeviceBgpOpenMessageError.ProtoReflect.Descriptor instead. +func (*DeviceBgpOpenMessageError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88} } -func (x *BgpExtendedCommunity) GetTransitive_2OctetAsType() *BgpExtendedCommunityTransitive2OctetAsType { - if x != nil { - return x.Transitive_2OctetAsType +func (x *DeviceBgpOpenMessageError) GetSubcode() DeviceBgpOpenMessageError_Subcode_Enum { + if x != nil && x.Subcode != nil { + return *x.Subcode } - return nil + return DeviceBgpOpenMessageError_Subcode_unspecified } -func (x *BgpExtendedCommunity) GetTransitiveIpv4AddressType() *BgpExtendedCommunityTransitiveIpv4AddressType { - if x != nil { - return x.TransitiveIpv4AddressType - } - return nil -} - -func (x *BgpExtendedCommunity) GetTransitive_4OctetAsType() *BgpExtendedCommunityTransitive4OctetAsType { - if x != nil { - return x.Transitive_4OctetAsType - } - return nil -} - -func (x *BgpExtendedCommunity) GetTransitiveOpaqueType() *BgpExtendedCommunityTransitiveOpaqueType { - if x != nil { - return x.TransitiveOpaqueType - } - return nil -} - -func (x *BgpExtendedCommunity) GetTransitiveEvpnType() *BgpExtendedCommunityTransitiveEvpnType { - if x != nil { - return x.TransitiveEvpnType - } - return nil -} - -func (x *BgpExtendedCommunity) GetNonTransitive_2OctetAsType() *BgpExtendedCommunityNonTransitive2OctetAsType { - if x != nil { - return x.NonTransitive_2OctetAsType - } - return nil -} - -func (x *BgpExtendedCommunity) GetCustom() *BgpExtendedCommunityCustomType { - if x != nil { - return x.Custom - } - return nil -} - -// 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 struct { +// All errors detected while processing the UPDATE message are indicated by sending +// the NOTIFICATION message with the Error Code-Update Message Error. The Error Subcode +// elaborates on the specific nature of the error. +type DeviceBgpUpdateMessageError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The two octet IANA assigned AS value assigned to the Autonomous System. - // default = 100 - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // 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. - // default = 1 - Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` + // The Error Subcode, the specific type of error encountered during UPDATE processing. + // default = Subcode.Enum.malformed_attrib_list_code3_subcode1 + Subcode *DeviceBgpUpdateMessageError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpUpdateMessageError_Subcode_Enum,oneof" json:"subcode,omitempty"` } -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { - *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{} +func (x *DeviceBgpUpdateMessageError) Reset() { + *x = DeviceBgpUpdateMessageError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[85] + mi := &file_otg_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { +func (x *DeviceBgpUpdateMessageError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} +func (*DeviceBgpUpdateMessageError) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[85] +func (x *DeviceBgpUpdateMessageError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31282,59 +31600,46 @@ func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{85} -} - -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs - } - return 0 +// Deprecated: Use DeviceBgpUpdateMessageError.ProtoReflect.Descriptor instead. +func (*DeviceBgpUpdateMessageError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{89} } -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { - if x != nil && x.Local_4ByteAdmin != nil { - return *x.Local_4ByteAdmin +func (x *DeviceBgpUpdateMessageError) GetSubcode() DeviceBgpUpdateMessageError_Subcode_Enum { + if x != nil && x.Subcode != nil { + return *x.Subcode } - return 0 + return DeviceBgpUpdateMessageError_Subcode_unspecified } -// 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 struct { +// If a system does not receive successive KEEPALIVE, UPDATE, and/or NOTIFICATION messages +// within the period specified in the Hold Time field of the OPEN message, then the +// NOTIFICATION message with the Hold Timer Expired Error Code(Error Code 4) is sent +// and the BGP connection is closed. The Sub Code used is 0. If a user wants to use +// non zero Sub Code then CustomError can be used. +type DeviceBgpHoldTimerExpired struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // The two octet IANA assigned AS value assigned to the Autonomous System. - // default = 100 - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // 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. - // default = 1 - Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { - *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} +func (x *DeviceBgpHoldTimerExpired) Reset() { + *x = DeviceBgpHoldTimerExpired{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[86] + mi := &file_otg_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { +func (x *DeviceBgpHoldTimerExpired) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} +func (*DeviceBgpHoldTimerExpired) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[86] +func (x *DeviceBgpHoldTimerExpired) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31345,57 +31650,38 @@ func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{86} -} - -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs - } - return 0 -} - -func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { - if x != nil && x.Local_4ByteAdmin != nil { - return *x.Local_4ByteAdmin - } - return 0 +// Deprecated: Use DeviceBgpHoldTimerExpired.ProtoReflect.Descriptor instead. +func (*DeviceBgpHoldTimerExpired) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{90} } -// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . -type BgpExtendedCommunityTransitive2OctetAsType struct { +// Any error detected by the BGP Finite State Machine (e.g., receipt of an unexpected +// event) is indicated by sending the NOTIFICATION message with the Error Code-Finite +// State Machine Error(Error Code 5). The Sub Code used is 0. If a user wants to use +// non zero Sub Code then CustomError can be used. +type DeviceBgpFiniteStateMachineError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.route_target_subtype - Choice *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` - // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *BgpExtendedCommunityTransitive2OctetAsType) Reset() { - *x = BgpExtendedCommunityTransitive2OctetAsType{} +func (x *DeviceBgpFiniteStateMachineError) Reset() { + *x = DeviceBgpFiniteStateMachineError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[87] + mi := &file_otg_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitive2OctetAsType) String() string { +func (x *DeviceBgpFiniteStateMachineError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} +func (*DeviceBgpFiniteStateMachineError) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[87] +func (x *DeviceBgpFiniteStateMachineError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31406,66 +31692,40 @@ func (x *BgpExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{87} -} - -func (x *BgpExtendedCommunityTransitive2OctetAsType) GetChoice() BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified -} - -func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { - if x != nil { - return x.RouteTargetSubtype - } - return nil -} - -func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { - if x != nil { - return x.RouteOriginSubtype - } - return nil +// Deprecated: Use DeviceBgpFiniteStateMachineError.ProtoReflect.Descriptor instead. +func (*DeviceBgpFiniteStateMachineError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{91} } -// 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 struct { +// In the absence of any fatal errors, a BGP peer can close its BGP connection by sending +// the NOTIFICATION message with the Error Code Cease. +type DeviceBgpCeaseError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast address assigned by one of the Internet registries. - // default = 0.0.0.0 - GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` - // 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. - // default = 1 - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` + // The Error Subcode to be sent to the peer in the Cease NOTIFICATION. + // default = Subcode.Enum.admin_shutdown_code6_subcode2 + Subcode *DeviceBgpCeaseError_Subcode_Enum `protobuf:"varint,1,opt,name=subcode,proto3,enum=otg.DeviceBgpCeaseError_Subcode_Enum,oneof" json:"subcode,omitempty"` } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { - *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} +func (x *DeviceBgpCeaseError) Reset() { + *x = DeviceBgpCeaseError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[88] + mi := &file_otg_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { +func (x *DeviceBgpCeaseError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} +func (*DeviceBgpCeaseError) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[88] +func (x *DeviceBgpCeaseError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31476,60 +31736,47 @@ func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{88} -} - -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { - if x != nil && x.GlobalIpv4Admin != nil { - return *x.GlobalIpv4Admin - } - return "" +// Deprecated: Use DeviceBgpCeaseError.ProtoReflect.Descriptor instead. +func (*DeviceBgpCeaseError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{92} } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *DeviceBgpCeaseError) GetSubcode() DeviceBgpCeaseError_Subcode_Enum { + if x != nil && x.Subcode != nil { + return *x.Subcode } - return 0 + return DeviceBgpCeaseError_Subcode_unspecified } -// 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 struct { +// A BGP peer can send NOTIFICATION message with user defined Error Code and Error Subcode. +type DeviceBgpCustomError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast address assigned by one of the Internet registries. - // default = 0.0.0.0 - GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` - // 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. - // default = 1 - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` + // The Error code to be sent in the NOTIFICATION message to peer. + Code *uint32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` + // The Error Subcode to be sent in the NOTIFICATION message to peer. + Subcode *uint32 `protobuf:"varint,2,opt,name=subcode,proto3,oneof" json:"subcode,omitempty"` } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { - *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} +func (x *DeviceBgpCustomError) Reset() { + *x = DeviceBgpCustomError{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[89] + mi := &file_otg_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { +func (x *DeviceBgpCustomError) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} +func (*DeviceBgpCustomError) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[89] +func (x *DeviceBgpCustomError) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31540,57 +31787,116 @@ func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{89} +// Deprecated: Use DeviceBgpCustomError.ProtoReflect.Descriptor instead. +func (*DeviceBgpCustomError) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{93} } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { - if x != nil && x.GlobalIpv4Admin != nil { - return *x.GlobalIpv4Admin +func (x *DeviceBgpCustomError) GetCode() uint32 { + if x != nil && x.Code != nil { + return *x.Code } - return "" + return 0 } -func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *DeviceBgpCustomError) GetSubcode() uint32 { + if x != nil && x.Subcode != nil { + return *x.Subcode } return 0 } -// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. -type BgpExtendedCommunityTransitiveIpv4AddressType struct { +// Configuration for emulated BGPv4 peers and routes. +type BgpV4Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // IPv4 address of the BGP peer for the session. + // required = true + PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` + // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments + // (ES) Per BGP Peer for IPv4 Address Family Identifier (AFI). + // + // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . + // Each EVI contains a list of Broadcast Domains. + // Each Broadcast Domain contains a list of MAC/IP Ranges. + // + // is responsible for advertising Ethernet + // Auto-discovery Route Per EVI (Type 1). + // + // is responsible for advertising Ethernet Auto-discovery Route + // Per Ethernet Segment (Type 1). + // + // is responsible for advertising + // MAC/IP Advertisement Route (Type 2). + // + // is responsible for advertising Inclusive + // Multicast Ethernet Tag Route (Type 3). + // + // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). + EvpnEthernetSegments []*BgpV4EthernetSegment `protobuf:"bytes,2,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` + // The type of BGP autonomous system. External BGP is used for BGP links between two + // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous + // system (ibgp). BGP property defaults are aligned with this object defined as an internal + // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to + // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' + // attribute in 'as_path' field in any Route Range should be changed from default value + // 'do_not_include_local_as' to any other value. + // required = true + AsType *BgpV4Peer_AsType_Enum `protobuf:"varint,3,opt,name=as_type,json=asType,proto3,enum=otg.BgpV4Peer_AsType_Enum,oneof" json:"as_type,omitempty"` + // Autonomous System Number (AS number or ASN) + // required = true + AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // The width in bytes of the as_number values. Any as_number values that exceeds the + // width MUST result in an error. + // default = AsNumberWidth.Enum.four + AsNumberWidth *BgpV4Peer_AsNumberWidth_Enum `protobuf:"varint,5,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV4Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` // Description missing in models - // default = Choice.Enum.route_target_subtype - Choice *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` + Advanced *BgpAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` + Capability *BgpCapability `protobuf:"bytes,7,opt,name=capability,proto3" json:"capability,omitempty"` // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,8,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` + // Emulated BGPv4 route ranges. + V4Routes []*BgpV4RouteRange `protobuf:"bytes,9,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` + // Emulated BGPv6 route ranges. + V6Routes []*BgpV6RouteRange `protobuf:"bytes,10,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier + // (AFI). + V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,11,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier + // (AFI). + V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,12,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,14,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` + // BGP Updates to be sent to the peer as specified after the session is established. + ReplayUpdates *BgpUpdateReplay `protobuf:"bytes,15,opt,name=replay_updates,json=replayUpdates,proto3" json:"replay_updates,omitempty"` } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) Reset() { - *x = BgpExtendedCommunityTransitiveIpv4AddressType{} +func (x *BgpV4Peer) Reset() { + *x = BgpV4Peer{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[90] + mi := &file_otg_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) String() string { +func (x *BgpV4Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} +func (*BgpV4Peer) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[90] +func (x *BgpV4Peer) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31601,264 +31907,158 @@ func (x *BgpExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{90} -} - -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetChoice() BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified +// Deprecated: Use BgpV4Peer.ProtoReflect.Descriptor instead. +func (*BgpV4Peer) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94} } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { - if x != nil { - return x.RouteTargetSubtype +func (x *BgpV4Peer) GetPeerAddress() string { + if x != nil && x.PeerAddress != nil { + return *x.PeerAddress } - return nil + return "" } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (x *BgpV4Peer) GetEvpnEthernetSegments() []*BgpV4EthernetSegment { if x != nil { - return x.RouteOriginSubtype + return x.EvpnEthernetSegments } return nil } -// 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 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The four octet IANA assigned AS value assigned to the Autonomous System. - // default = 100 - Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` - // 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. - // default = 1 - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` -} - -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { - *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV4Peer) GetAsType() BgpV4Peer_AsType_Enum { + if x != nil && x.AsType != nil { + return *x.AsType } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{91} + return BgpV4Peer_AsType_unspecified } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { - if x != nil && x.Global_4ByteAs != nil { - return *x.Global_4ByteAs +func (x *BgpV4Peer) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *BgpV4Peer) GetAsNumberWidth() BgpV4Peer_AsNumberWidth_Enum { + if x != nil && x.AsNumberWidth != nil { + return *x.AsNumberWidth } - return 0 -} - -// 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 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The four octet IANA assigned AS value assigned to the Autonomous System. - // default = 100 - Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` - // 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. - // default = 1 - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` + return BgpV4Peer_AsNumberWidth_unspecified } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { - *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV4Peer) GetAdvanced() *BgpAdvanced { + if x != nil { + return x.Advanced } + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV4Peer) GetCapability() *BgpCapability { + if x != nil { + return x.Capability } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{92} + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { - if x != nil && x.Global_4ByteAs != nil { - return *x.Global_4ByteAs +func (x *BgpV4Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { + if x != nil { + return x.LearnedInformationFilter } - return 0 + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *BgpV4Peer) GetV4Routes() []*BgpV4RouteRange { + if x != nil { + return x.V4Routes } - return 0 -} - -// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It -// is defined in RFC 5668. -type BgpExtendedCommunityTransitive4OctetAsType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.route_target_subtype - Choice *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` - // Description missing in models - RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsType) Reset() { - *x = BgpExtendedCommunityTransitive4OctetAsType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV4Peer) GetV6Routes() []*BgpV6RouteRange { + if x != nil { + return x.V6Routes } + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV4Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { + if x != nil { + return x.V4SrtePolicies } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{93} +func (x *BgpV4Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { + if x != nil { + return x.V6SrtePolicies + } + return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsType) GetChoice() BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpV4Peer) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified + return "" } -func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { +func (x *BgpV4Peer) GetGracefulRestart() *BgpGracefulRestart { if x != nil { - return x.RouteTargetSubtype + return x.GracefulRestart } return nil } -func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { +func (x *BgpV4Peer) GetReplayUpdates() *BgpUpdateReplay { if x != nil { - return x.RouteOriginSubtype + return x.ReplayUpdates } return nil } -// 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 struct { +// Configuration for emulated BGPv4 peers and routes on a single IPv4 interface. +type BgpV4Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Two octet flag values. - // default = 0 - Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // 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. - // default = 0 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the + // source IP for this list of BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // + // required = true + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` + // This contains the list of BGPv4 peers configured on this interface. + Peers []*BgpV4Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) Reset() { - *x = BgpExtendedCommunityTransitiveOpaqueTypeColor{} +func (x *BgpV4Interface) Reset() { + *x = BgpV4Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[94] + mi := &file_otg_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { +func (x *BgpV4Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} +func (*BgpV4Interface) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[94] +func (x *BgpV4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31869,67 +32069,101 @@ func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{94} +// Deprecated: Use BgpV4Interface.ProtoReflect.Descriptor instead. +func (*BgpV4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{95} } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpV4Interface) GetIpv4Name() string { + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } - return 0 + return "" } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpV4Interface) GetPeers() []*BgpV4Peer { + if x != nil { + return x.Peers } - return 0 + return nil } -// This identifies the type of tunneling technology being signalled. It is defined in -// RFC9012 and sent with sub-type as 0x0c. -type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { +// Configuration for BGP Ethernet Segment ranges. Advertises following routes - +// +// Type 4 - Ethernet Segment Route +type BgpV4EthernetSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. - // + // Designated Forwarder (DF) election configuration. + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` + // This contains the list of EVIs. + Evis []*BgpV4EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` + // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero + // ESI is '10000000000000000000' . + // default = 00000000000000000000 + Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` + // Single Active or All Active mode Redundancy mode selection for Multi-home. + // default = ActiveMode.Enum.all_active + ActiveMode *BgpV4EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV4EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` + // The label value to be advertised as ESI Label in ESI Label Extended Community. This + // is included in Ethernet Auto-discovery per ES Routes advertised by a router. // default = 0 - Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // 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] - // default = 1 - TunnelType *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` + EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { - *x = BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{} +func (x *BgpV4EthernetSegment) Reset() { + *x = BgpV4EthernetSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[95] + mi := &file_otg_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { +func (x *BgpV4EthernetSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} +func (*BgpV4EthernetSegment) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[95] +func (x *BgpV4EthernetSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31940,107 +32174,88 @@ func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{95} +// Deprecated: Use BgpV4EthernetSegment.ProtoReflect.Descriptor instead. +func (*BgpV4EthernetSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96} } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { - if x != nil && x.Reserved != nil { - return *x.Reserved +func (x *BgpV4EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { + if x != nil { + return x.DfElection } - return 0 + return nil } -func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { - if x != nil && x.TunnelType != nil { - return *x.TunnelType +func (x *BgpV4EthernetSegment) GetEvis() []*BgpV4EvpnEvis { + if x != nil { + return x.Evis } - return 0 -} - -// The Transitive Opaque Extended Community is sent as type 0x03. -type BgpExtendedCommunityTransitiveOpaqueType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.color_subtype - Choice *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3" json:"color_subtype,omitempty"` - // Description missing in models - EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3" json:"encapsulation_subtype,omitempty"` + return nil } -func (x *BgpExtendedCommunityTransitiveOpaqueType) Reset() { - *x = BgpExtendedCommunityTransitiveOpaqueType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV4EthernetSegment) GetEsi() string { + if x != nil && x.Esi != nil { + return *x.Esi } + return "" } -func (x *BgpExtendedCommunityTransitiveOpaqueType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV4EthernetSegment) GetActiveMode() BgpV4EthernetSegment_ActiveMode_Enum { + if x != nil && x.ActiveMode != nil { + return *x.ActiveMode + } + return BgpV4EthernetSegment_ActiveMode_unspecified } -func (*BgpExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV4EthernetSegment) GetEsiLabel() uint32 { + if x != nil && x.EsiLabel != nil { + return *x.EsiLabel } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{96} +func (x *BgpV4EthernetSegment) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (x *BgpExtendedCommunityTransitiveOpaqueType) GetChoice() BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpV4EthernetSegment) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified + return nil } -func (x *BgpExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeColor { +func (x *BgpV4EthernetSegment) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.ColorSubtype + return x.ExtCommunities } return nil } -func (x *BgpExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { +func (x *BgpV4EthernetSegment) GetAsPath() *BgpAsPath { if x != nil { - return x.EncapsulationSubtype + return x.AsPath } return nil } -// 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 struct { +// Configuration for Designated Forwarder (DF) election among the Provider Edge (PE) +// routers on the same Ethernet Segment. +type BgpEthernetSegmentDfElection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // MAC Address of the PE Router. - // default = 0:0:0:0:0:0 - RouterMac *string `protobuf:"bytes,1,opt,name=router_mac,json=routerMac,proto3,oneof" json:"router_mac,omitempty"` + // The DF election timer in seconds. + // default = 3 + ElectionTimer *uint32 `protobuf:"varint,1,opt,name=election_timer,json=electionTimer,proto3,oneof" json:"election_timer,omitempty"` } -func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Reset() { - *x = BgpExtendedCommunityTransitiveEvpnTypeRouterMac{} +func (x *BgpEthernetSegmentDfElection) Reset() { + *x = BgpEthernetSegmentDfElection{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32048,13 +32263,13 @@ func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Reset() { } } -func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { +func (x *BgpEthernetSegmentDfElection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoMessage() {} +func (*BgpEthernetSegmentDfElection) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoReflect() protoreflect.Message { +func (x *BgpEthernetSegmentDfElection) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32066,33 +32281,54 @@ func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveEvpnTypeRouterMac.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpEthernetSegmentDfElection.ProtoReflect.Descriptor instead. +func (*BgpEthernetSegmentDfElection) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{97} } -func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) GetRouterMac() string { - if x != nil && x.RouterMac != nil { - return *x.RouterMac +func (x *BgpEthernetSegmentDfElection) GetElectionTimer() uint32 { + if x != nil && x.ElectionTimer != nil { + return *x.ElectionTimer } - return "" + return 0 } -// The Transitive EVPN Extended Community is sent as type 0x06 . -type BgpExtendedCommunityTransitiveEvpnType struct { +// Configuration for advanced BGP route range settings. +type BgpRouteAdvanced struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.router_mac_subtype - Choice *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3" json:"router_mac_subtype,omitempty"` + // BGP Multi Exit Discriminator attribute sent to the peer to help in the route selection + // process. If set to true, the Multi Exit Discriminator attribute will be included + // in the route advertisement. + // default = True + IncludeMultiExitDiscriminator *bool `protobuf:"varint,3,opt,name=include_multi_exit_discriminator,json=includeMultiExitDiscriminator,proto3,oneof" json:"include_multi_exit_discriminator,omitempty"` + // The multi exit discriminator (MED) value used for route selection sent to the peer. + MultiExitDiscriminator *uint32 `protobuf:"varint,1,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + // If set to true, the Origin attribute will be included in the route advertisement. + // default = True + IncludeOrigin *bool `protobuf:"varint,4,opt,name=include_origin,json=includeOrigin,proto3,oneof" json:"include_origin,omitempty"` + // The origin attribute of a prefix can take three values: the prefix originates from + // an interior routing protocol 'igp', it originates from 'egp' or the origin is 'incomplete', + // if the prefix is learned through other means. + // default = Origin.Enum.igp + Origin *BgpRouteAdvanced_Origin_Enum `protobuf:"varint,2,opt,name=origin,proto3,enum=otg.BgpRouteAdvanced_Origin_Enum,oneof" json:"origin,omitempty"` + // BGP Local Preference attribute sent to the peer to indicate the degree of preference + // for externally learned routes. If set to true, the Local Preference attribute will + // be included in the route advertisement. This should be included only for internal + // peers. + // default = True + IncludeLocalPreference *bool `protobuf:"varint,5,opt,name=include_local_preference,json=includeLocalPreference,proto3,oneof" json:"include_local_preference,omitempty"` + // Value to be set in Local Preference attribute if include_local_preference is set + // to true. It is used for the selection of the path for the traffic leaving the AS. + // The route with the highest local preference value is preferred. + // default = 100 + LocalPreference *uint32 `protobuf:"varint,6,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` } -func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { - *x = BgpExtendedCommunityTransitiveEvpnType{} +func (x *BgpRouteAdvanced) Reset() { + *x = BgpRouteAdvanced{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32100,13 +32336,13 @@ func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { } } -func (x *BgpExtendedCommunityTransitiveEvpnType) String() string { +func (x *BgpRouteAdvanced) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveEvpnType) ProtoMessage() {} +func (*BgpRouteAdvanced) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveEvpnType) ProtoReflect() protoreflect.Message { +func (x *BgpRouteAdvanced) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32118,45 +32354,73 @@ func (x *BgpExtendedCommunityTransitiveEvpnType) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveEvpnType) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpRouteAdvanced.ProtoReflect.Descriptor instead. +func (*BgpRouteAdvanced) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{98} } -func (x *BgpExtendedCommunityTransitiveEvpnType) GetChoice() BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpRouteAdvanced) GetIncludeMultiExitDiscriminator() bool { + if x != nil && x.IncludeMultiExitDiscriminator != nil { + return *x.IncludeMultiExitDiscriminator } - return BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified + return false } -func (x *BgpExtendedCommunityTransitiveEvpnType) GetRouterMacSubtype() *BgpExtendedCommunityTransitiveEvpnTypeRouterMac { - if x != nil { - return x.RouterMacSubtype +func (x *BgpRouteAdvanced) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator } - return nil + return 0 } -// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. -// It is sent with sub-type as 0x04. -type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { +func (x *BgpRouteAdvanced) GetIncludeOrigin() bool { + if x != nil && x.IncludeOrigin != nil { + return *x.IncludeOrigin + } + return false +} + +func (x *BgpRouteAdvanced) GetOrigin() BgpRouteAdvanced_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpRouteAdvanced_Origin_unspecified +} + +func (x *BgpRouteAdvanced) GetIncludeLocalPreference() bool { + if x != nil && x.IncludeLocalPreference != nil { + return *x.IncludeLocalPreference + } + return false +} + +func (x *BgpRouteAdvanced) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 +} + +// BGP communities provide additional capability for tagging routes and for modifying +// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit +// number which is broken into 16-bit AS number and a 16-bit custom value. +type BgpCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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. - // default = 100 - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and - // 1 Mbps is 1000 Kbps per second ) + // The type of community AS number. + Type *BgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpCommunity_Type_Enum,oneof" json:"type,omitempty"` + // First two octets of 32 bit community AS number. // default = 0 - Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` + AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Last two octets of the community value. + // default = 0 + AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` } -func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { - *x = BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} +func (x *BgpCommunity) Reset() { + *x = BgpCommunity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32164,13 +32428,13 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { } } -func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { +func (x *BgpCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} +func (*BgpCommunity) ProtoMessage() {} -func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { +func (x *BgpCommunity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32182,40 +32446,68 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpCommunity.ProtoReflect.Descriptor instead. +func (*BgpCommunity) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{99} } -func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs +func (x *BgpCommunity) GetType() BgpCommunity_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type + } + return BgpCommunity_Type_unspecified +} + +func (x *BgpCommunity) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } -func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { - if x != nil && x.Bandwidth != nil { - return *x.Bandwidth +func (x *BgpCommunity) GetAsCustom() uint32 { + if x != nil && x.AsCustom != nil { + return *x.AsCustom } return 0 } -// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. -type BgpExtendedCommunityNonTransitive2OctetAsType struct { +// 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. +type BgpExtCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.link_bandwidth_subtype - Choice *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3" json:"link_bandwidth_subtype,omitempty"` + // Extended Community Type field of 1 Byte. + // - administrator_as_2octet: Two-Octet AS Specific Extended Community (RFC 4360). + // - administrator_ipv4_address: IPv4 Address Specific Extended Community (RFC 4360). + // - administrator_as_4octet: 4-Octet AS Specific Extended Community (RFC 5668). + // - opaque: Opaque Extended Community (RFC 7432). + // - evpn: EVPN Extended Community (RFC 7153). + // - administrator_as_2octet_link_bandwidth : Link Bandwidth Extended Community (RFC + // 7153). + Type *BgpExtCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpExtCommunity_Type_Enum,oneof" json:"type,omitempty"` + // Extended Community Sub Type field of 1 Byte. + // - route_target: Route Target. + // - origin: Origin. + // - extended_bandwidth: Specifies the link bandwidth. + // - color: Specifies the color value. + // - encapsulation: Specifies the Encapsulation Extended Community. + // - mac_address: Specifies the Extended community MAC address. + Subtype *BgpExtCommunity_Subtype_Enum `protobuf:"varint,2,opt,name=subtype,proto3,enum=otg.BgpExtCommunity_Subtype_Enum,oneof" json:"subtype,omitempty"` + // Extended Community value of 6 Bytes. Example - for the Opaque type and Color subtype + // value can be '0000000000c8' for the color value 200. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { - *x = BgpExtendedCommunityNonTransitive2OctetAsType{} +func (x *BgpExtCommunity) Reset() { + *x = BgpExtCommunity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32223,13 +32515,13 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { } } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType) String() string { +func (x *BgpExtCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} +func (*BgpExtCommunity) ProtoMessage() {} -func (x *BgpExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { +func (x *BgpExtCommunity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32241,49 +32533,56 @@ func (x *BgpExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtCommunity.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{100} } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetChoice() BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpExtCommunity) GetType() BgpExtCommunity_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified + return BgpExtCommunity_Type_unspecified } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - if x != nil { - return x.LinkBandwidthSubtype +func (x *BgpExtCommunity) GetSubtype() BgpExtCommunity_Subtype_Enum { + if x != nil && x.Subtype != nil { + return *x.Subtype } - return nil + return BgpExtCommunity_Subtype_unspecified } -// Add a custom Extended Community with a combination of types , sub-types and values -// not explicitly specified above or not defined yet. -type BgpExtendedCommunityCustomType struct { +func (x *BgpExtCommunity) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// 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. +type BgpAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type to be set in the Extended Community attribute. Accepts hexadecimal input - // upto ff . - // default = 00 - CommunityType *string `protobuf:"bytes,1,opt,name=community_type,json=communityType,proto3,oneof" json:"community_type,omitempty"` - // 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. - // default = 00 - CommunitySubtype *string `protobuf:"bytes,2,opt,name=community_subtype,json=communitySubtype,proto3,oneof" json:"community_subtype,omitempty"` - // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts - // hexadecimal input upto ffffffffffff. - // default = 000000000000 - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Defines how the Local AS should be included in the MP REACH NLRI. For iBGP sessions, + // Do Not Include Local AS must be chosen. For eBGP sessions, any choice other than + // Do Not Include Local AS can be chosen. + // default = AsSetMode.Enum.do_not_include_local_as + AsSetMode *BgpAsPath_AsSetMode_Enum `protobuf:"varint,1,opt,name=as_set_mode,json=asSetMode,proto3,enum=otg.BgpAsPath_AsSetMode_Enum,oneof" json:"as_set_mode,omitempty"` + // The additional AS path segments to be added in the NLRI. By default, an empty AS + // path is always included and the local AS is added to it as per the value of 'as_set_mode' + // attribute. + Segments []*BgpAsPathSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *BgpExtendedCommunityCustomType) Reset() { - *x = BgpExtendedCommunityCustomType{} +func (x *BgpAsPath) Reset() { + *x = BgpAsPath{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32291,13 +32590,13 @@ func (x *BgpExtendedCommunityCustomType) Reset() { } } -func (x *BgpExtendedCommunityCustomType) String() string { +func (x *BgpAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityCustomType) ProtoMessage() {} +func (*BgpAsPath) ProtoMessage() {} -func (x *BgpExtendedCommunityCustomType) ProtoReflect() protoreflect.Message { +func (x *BgpAsPath) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32309,117 +32608,47 @@ func (x *BgpExtendedCommunityCustomType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpExtendedCommunityCustomType.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityCustomType) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAsPath.ProtoReflect.Descriptor instead. +func (*BgpAsPath) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{101} } -func (x *BgpExtendedCommunityCustomType) GetCommunityType() string { - if x != nil && x.CommunityType != nil { - return *x.CommunityType - } - return "" -} - -func (x *BgpExtendedCommunityCustomType) GetCommunitySubtype() string { - if x != nil && x.CommunitySubtype != nil { - return *x.CommunitySubtype +func (x *BgpAsPath) GetAsSetMode() BgpAsPath_AsSetMode_Enum { + if x != nil && x.AsSetMode != nil { + return *x.AsSetMode } - return "" + return BgpAsPath_AsSetMode_unspecified } -func (x *BgpExtendedCommunityCustomType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpAsPath) GetSegments() []*BgpAsPathSegment { + if x != nil { + return x.Segments } - return "" + return nil } -// Emulated BGPv6 route range. -type BgpV6RouteRange struct { +// Configuration for a single BGP AS path segment +type BgpAsPathSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of group of IPv6 route addresses. - Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the - // NextHop in the MP REACH NLRI can be one of the following: - // Local IP: Automatically fills the Nexthop with the Local IP of the BGP - // peer. - // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type - // is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Deprecated: This property is deprecated in favor of property extended_communities - // - // Deprecated: This property is deprecated in favor of property extended_communities - // - // 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. Note evpn type is defined mainly for use with evpn - // route updates and not for IPv4 and IPv6 route updates. - ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // 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 eight byte value. It - // is divided into two main parts. The first two bytes of the community encode a type - // and sub-type fields and the last six 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. - ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` + // 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. + // default = Type.Enum.as_seq + Type *BgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` } -func (x *BgpV6RouteRange) Reset() { - *x = BgpV6RouteRange{} +func (x *BgpAsPathSegment) Reset() { + *x = BgpAsPathSegment{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32427,13 +32656,13 @@ func (x *BgpV6RouteRange) Reset() { } } -func (x *BgpV6RouteRange) String() string { +func (x *BgpAsPathSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange) ProtoMessage() {} +func (*BgpAsPathSegment) ProtoMessage() {} -func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { +func (x *BgpAsPathSegment) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -32445,140 +32674,127 @@ func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAsPathSegment.ProtoReflect.Descriptor instead. +func (*BgpAsPathSegment) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{102} } -func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { - if x != nil { - return x.Addresses - } - return nil -} - -func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode +func (x *BgpAsPathSegment) GetType() BgpAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return BgpV6RouteRange_NextHopMode_unspecified + return BgpAsPathSegment_Type_unspecified } -func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (x *BgpAsPathSegment) GetAsNumbers() []uint32 { + if x != nil { + return x.AsNumbers } - return BgpV6RouteRange_NextHopAddressType_unspecified + return nil } -func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" -} +// This contains a list of different flavors of EVPN. +// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. +// +// Need to instantiate correct type of EVPN instance as per requirement. +type BgpV4EvpnEvis struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address - } - return "" + // Description missing in models + // default = Choice.Enum.evi_vxlan + Choice *BgpV4EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV4EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` + // EVPN VXLAN instance to be configured per Ethernet Segment. + EviVxlan *BgpV4EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` } -func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *BgpV4EvpnEvis) Reset() { + *x = BgpV4EvpnEvis{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities - } - return nil +func (x *BgpV4EvpnEvis) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath - } - return nil -} +func (*BgpV4EvpnEvis) ProtoMessage() {} -func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath +func (x *BgpV4EvpnEvis) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[103] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpV6RouteRange) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use BgpV4EvpnEvis.ProtoReflect.Descriptor instead. +func (*BgpV4EvpnEvis) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103} } -func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *BgpV4EvpnEvis) GetChoice() BgpV4EvpnEvis_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpV4EvpnEvis_Choice_unspecified } -func (x *BgpV6RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { +func (x *BgpV4EvpnEvis) GetEviVxlan() *BgpV4EviVxlan { if x != nil { - return x.ExtendedCommunities + return x.EviVxlan } return nil } -// Configuration for BGP Segment Routing Traffic Engineering(SRTE) -// policy. -type BgpSrteV4Policy struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 4-octet value uniquely identifying the policy in the context of (color, endpoint) - // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) - // both for multiple candidate paths of the same SR Policy as well as candidate paths - // of different SR Policies (i.e. with different segment list) with the same Color - // and Endpoint but meant for different head-ends. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Policy color is used to match the color of the destination prefixes to steer traffic - // into the SR Policy. - // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv4Endpoint *string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3,oneof" json:"ipv4_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv4 - NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, - // Nexthop Encoding capability extended_next_hop_encoding should be enabled. - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` + // This contains the list of Broadcast Domains to be configured per EVI. + BroadcastDomains []*BgpV4EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` + // This model only supports Ingress Replication + // default = ReplicationType.Enum.ingress_replication + ReplicationType *BgpV4EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV4EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` + // 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. + // default = 16 + PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` + // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet + // Auto-discovery Route per + // default = 0 + AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` + // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying + // an EVI. Example - for the as_2octet 60005:100. + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` + // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with + // this EVI. + RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` + // List of L2VNI import targets associated with this EVI. + RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` + // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. + L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` + // List of L3VNI Import Route Targets. + L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // Optional Community settings. + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` // Optional Extended Community settings. The Extended Communities Attribute is a transitive // optional BGP attribute, with the Type Code 16. Community and Extended Communities @@ -32608,37 +32824,27 @@ type BgpSrteV4Policy struct { // to ensure that PEs retain the correct MAC/IP Advertisement route when multiple updates // occur for the same MAC address. ExtCommunities []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // List Tunnel Encapsulation Attributes. - TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } -func (x *BgpSrteV4Policy) Reset() { - *x = BgpSrteV4Policy{} +func (x *BgpV4EviVxlan) Reset() { + *x = BgpV4EviVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[103] + mi := &file_otg_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy) String() string { +func (x *BgpV4EviVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy) ProtoMessage() {} +func (*BgpV4EviVxlan) ProtoMessage() {} -func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[103] +func (x *BgpV4EviVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32649,167 +32855,258 @@ func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{103} +// Deprecated: Use BgpV4EviVxlan.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{104} } -func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpV4EviVxlan) GetBroadcastDomains() []*BgpV4EviVxlanBroadcastDomain { + if x != nil { + return x.BroadcastDomains } - return 0 + return nil } -func (x *BgpSrteV4Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpV4EviVxlan) GetReplicationType() BgpV4EviVxlan_ReplicationType_Enum { + if x != nil && x.ReplicationType != nil { + return *x.ReplicationType } - return 0 + return BgpV4EviVxlan_ReplicationType_unspecified } -func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { - if x != nil && x.Ipv4Endpoint != nil { - return *x.Ipv4Endpoint +func (x *BgpV4EviVxlan) GetPmsiLabel() uint32 { + if x != nil && x.PmsiLabel != nil { + return *x.PmsiLabel } - return "" + return 0 } -func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode +func (x *BgpV4EviVxlan) GetAdLabel() uint32 { + if x != nil && x.AdLabel != nil { + return *x.AdLabel } - return BgpSrteV4Policy_NextHopMode_unspecified + return 0 } -func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (x *BgpV4EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { + if x != nil { + return x.RouteDistinguisher } - return BgpSrteV4Policy_NextHopAddressType_unspecified + return nil } -func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address +func (x *BgpV4EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetExport } - return "" + return nil } -func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpV4EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { + if x != nil { + return x.RouteTargetImport } - return "" + return nil } -func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { +func (x *BgpV4EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { if x != nil { - return x.Advanced + return x.L3RouteTargetExport } return nil } -func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { +func (x *BgpV4EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { if x != nil { - return x.AddPath + return x.L3RouteTargetImport } return nil } -func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { +func (x *BgpV4EviVxlan) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.AsPath + return x.Advanced } return nil } -func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { +func (x *BgpV4EviVxlan) GetCommunities() []*BgpCommunity { if x != nil { return x.Communities } return nil } -func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { +func (x *BgpV4EviVxlan) GetExtCommunities() []*BgpExtCommunity { if x != nil { return x.ExtCommunities } return nil } -func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { +func (x *BgpV4EviVxlan) GetAsPath() *BgpAsPath { if x != nil { - return x.TunnelTlvs + return x.AsPath } return nil } -func (x *BgpSrteV4Policy) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +// Configuration for Broadcast Domains per EVI. +type BgpV4EviVxlanBroadcastDomain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 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 []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` + // The Ethernet Tag ID of the Broadcast Domain. + // default = 0 + EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` + // VLAN-Aware service to be enabled or disabled. + // default = False + VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` +} + +func (x *BgpV4EviVxlanBroadcastDomain) Reset() { + *x = BgpV4EviVxlanBroadcastDomain{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpSrteV4Policy) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpV4EviVxlanBroadcastDomain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpV4EviVxlanBroadcastDomain) ProtoMessage() {} + +func (x *BgpV4EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[105] + 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 BgpV4EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{105} +} + +func (x *BgpV4EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { + if x != nil { + return x.CmacIpRange + } + return nil +} + +func (x *BgpV4EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { + if x != nil && x.EthernetTagId != nil { + return *x.EthernetTagId + } + return 0 +} + +func (x *BgpV4EviVxlanBroadcastDomain) GetVlanAwareService() bool { + if x != nil && x.VlanAwareService != nil { + return *x.VlanAwareService } return false } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV4TunnelTlv struct { +// Configuration for MAC/IP Ranges per Broadcast Domain. +// +// Advertises following route - +// +// Type 2 - MAC/IP Advertisement Route. +type BgpCMacIpRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Host MAC address range per Broadcast Domain. + MacAddresses *MACRouteAddress `protobuf:"bytes,1,opt,name=mac_addresses,json=macAddresses,proto3" json:"mac_addresses,omitempty"` + // Layer 2 Virtual Network Identifier (L2VNI) to be advertised with MAC/IP Advertisement + // Route (Type 2) + // default = 0 + L2Vni *uint32 `protobuf:"varint,2,opt,name=l2vni,proto3,oneof" json:"l2vni,omitempty"` + // Host IPv4 address range per Broadcast Domain. + Ipv4Addresses *V4RouteAddress `protobuf:"bytes,3,opt,name=ipv4_addresses,json=ipv4Addresses,proto3" json:"ipv4_addresses,omitempty"` + // Host IPv6 address range per Broadcast Domain. + Ipv6Addresses *V6RouteAddress `protobuf:"bytes,4,opt,name=ipv6_addresses,json=ipv6Addresses,proto3" json:"ipv6_addresses,omitempty"` + // Layer 3 Virtual Network Identifier (L3VNI) to be advertised with MAC/IP Advertisement + // Route (Type 2). + // default = 0 + L3Vni *uint32 `protobuf:"varint,5,opt,name=l3vni,proto3,oneof" json:"l3vni,omitempty"` + // Include default Gateway Extended Community in MAC/IP Advertisement Route (Type 2). + // default = False + IncludeDefaultGateway *bool `protobuf:"varint,6,opt,name=include_default_gateway,json=includeDefaultGateway,proto3,oneof" json:"include_default_gateway,omitempty"` // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` - // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` - // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` - // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` - // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` - // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` - // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` - // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,8,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,9,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + Name *string `protobuf:"bytes,11,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *BgpSrteV4TunnelTlv) Reset() { - *x = BgpSrteV4TunnelTlv{} +func (x *BgpCMacIpRange) Reset() { + *x = BgpCMacIpRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[104] + mi := &file_otg_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4TunnelTlv) String() string { +func (x *BgpCMacIpRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4TunnelTlv) ProtoMessage() {} +func (*BgpCMacIpRange) ProtoMessage() {} -func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[104] +func (x *BgpCMacIpRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32820,118 +33117,125 @@ func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{104} +// Deprecated: Use BgpCMacIpRange.ProtoReflect.Descriptor instead. +func (*BgpCMacIpRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{106} } -func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { +func (x *BgpCMacIpRange) GetMacAddresses() *MACRouteAddress { if x != nil { - return x.RemoteEndpointSubTlv + return x.MacAddresses } return nil } -func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { - if x != nil { - return x.ColorSubTlv +func (x *BgpCMacIpRange) GetL2Vni() uint32 { + if x != nil && x.L2Vni != nil { + return *x.L2Vni } - return nil + return 0 } -func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { +func (x *BgpCMacIpRange) GetIpv4Addresses() *V4RouteAddress { if x != nil { - return x.BindingSubTlv + return x.Ipv4Addresses } return nil } -func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { +func (x *BgpCMacIpRange) GetIpv6Addresses() *V6RouteAddress { if x != nil { - return x.PreferenceSubTlv + return x.Ipv6Addresses } return nil } -func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { +func (x *BgpCMacIpRange) GetL3Vni() uint32 { + if x != nil && x.L3Vni != nil { + return *x.L3Vni + } + return 0 +} + +func (x *BgpCMacIpRange) GetIncludeDefaultGateway() bool { + if x != nil && x.IncludeDefaultGateway != nil { + return *x.IncludeDefaultGateway + } + return false +} + +func (x *BgpCMacIpRange) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.PolicyPrioritySubTlv + return x.Advanced } return nil } -func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { +func (x *BgpCMacIpRange) GetCommunities() []*BgpCommunity { if x != nil { - return x.PolicyNameSubTlv + return x.Communities } return nil } -func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { +func (x *BgpCMacIpRange) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.ExplicitNullLabelPolicySubTlv + return x.ExtCommunities } return nil } -func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { +func (x *BgpCMacIpRange) GetAsPath() *BgpAsPath { if x != nil { - return x.SegmentLists + return x.AsPath } return nil } -func (x *BgpSrteV4TunnelTlv) GetName() string { +func (x *BgpCMacIpRange) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *BgpSrteV4TunnelTlv) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active - } - return false -} - -// Configuration for the BGP remote endpoint sub TLV. -type BgpSrteRemoteEndpointSubTlv struct { +// BGP Route Distinguisher. +type BgpRouteDistinguisher struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Autonomous system (AS) number - // default = 0 - AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Determines the address type - // default = AddressFamily.Enum.ipv4 - AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` - // The IPv4 address of the Remote Endpoint. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The IPv6 address of the Remote Endpoint. - // default = ::0 - Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // 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). + // default = RdType.Enum.as_2octet + RdType *BgpRouteDistinguisher_RdType_Enum `protobuf:"varint,1,opt,name=rd_type,json=rdType,proto3,enum=otg.BgpRouteDistinguisher_RdType_Enum,oneof" json:"rd_type,omitempty"` + // Allow to automatically configure RD IP address from local ip. + // default = False + AutoConfigRdIpAddr *bool `protobuf:"varint,2,opt,name=auto_config_rd_ip_addr,json=autoConfigRdIpAddr,proto3,oneof" json:"auto_config_rd_ip_addr,omitempty"` + // 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 *string `protobuf:"bytes,3,opt,name=rd_value,json=rdValue,proto3,oneof" json:"rd_value,omitempty"` } -func (x *BgpSrteRemoteEndpointSubTlv) Reset() { - *x = BgpSrteRemoteEndpointSubTlv{} +func (x *BgpRouteDistinguisher) Reset() { + *x = BgpRouteDistinguisher{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[105] + mi := &file_otg_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteRemoteEndpointSubTlv) String() string { +func (x *BgpRouteDistinguisher) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} +func (*BgpRouteDistinguisher) ProtoMessage() {} -func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[105] +func (x *BgpRouteDistinguisher) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -32942,70 +33246,65 @@ func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105} -} - -func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 +// Deprecated: Use BgpRouteDistinguisher.ProtoReflect.Descriptor instead. +func (*BgpRouteDistinguisher) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{107} } -func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { - if x != nil && x.AddressFamily != nil { - return *x.AddressFamily +func (x *BgpRouteDistinguisher) GetRdType() BgpRouteDistinguisher_RdType_Enum { + if x != nil && x.RdType != nil { + return *x.RdType } - return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified + return BgpRouteDistinguisher_RdType_unspecified } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpRouteDistinguisher) GetAutoConfigRdIpAddr() bool { + if x != nil && x.AutoConfigRdIpAddr != nil { + return *x.AutoConfigRdIpAddr } - return "" + return false } -func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *BgpRouteDistinguisher) GetRdValue() string { + if x != nil && x.RdValue != nil { + return *x.RdValue } return "" } -// 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 struct { +// BGP Route Target. +type BgpRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Six octet values. Example: 000000000064 for color value 100. - Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` + // 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 *BgpRouteTarget_RtType_Enum `protobuf:"varint,1,opt,name=rt_type,json=rtType,proto3,enum=otg.BgpRouteTarget_RtType_Enum,oneof" json:"rt_type,omitempty"` + // 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 *string `protobuf:"bytes,2,opt,name=rt_value,json=rtValue,proto3,oneof" json:"rt_value,omitempty"` } -func (x *BgpSrteColorSubTlv) Reset() { - *x = BgpSrteColorSubTlv{} +func (x *BgpRouteTarget) Reset() { + *x = BgpRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[106] + mi := &file_otg_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteColorSubTlv) String() string { +func (x *BgpRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteColorSubTlv) ProtoMessage() {} +func (*BgpRouteTarget) ProtoMessage() {} -func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[106] +func (x *BgpRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33016,58 +33315,82 @@ func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{106} +// Deprecated: Use BgpRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{108} } -func (x *BgpSrteColorSubTlv) GetColor() string { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpRouteTarget) GetRtType() BgpRouteTarget_RtType_Enum { + if x != nil && x.RtType != nil { + return *x.RtType + } + return BgpRouteTarget_RtType_unspecified +} + +func (x *BgpRouteTarget) GetRtValue() string { + if x != nil && x.RtValue != nil { + return *x.RtValue } return "" } -// 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 struct { +// Configuration for BGP advanced settings. +type BgpAdvanced struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or - // IPv6 SID. - // default = BindingSidType.Enum.no_binding - BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` - // Binding SID is encoded in 4 octets. - FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` - // IPv6 SID value. - Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` - // S-Flag encodes the Specified-BSID-only behavior. - // default = False - SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // I-Flag encodes the Drop Upon Invalid behavior. + // Number of seconds the sender proposes for the value of the Hold Timer. + // default = 90 + HoldTimeInterval *uint32 `protobuf:"varint,1,opt,name=hold_time_interval,json=holdTimeInterval,proto3,oneof" json:"hold_time_interval,omitempty"` + // Number of seconds between transmissions of Keepalive messages by this peer. + // default = 30 + KeepAliveInterval *uint32 `protobuf:"varint,2,opt,name=keep_alive_interval,json=keepAliveInterval,proto3,oneof" json:"keep_alive_interval,omitempty"` + // The time interval at which Update messages are sent to the DUT, expressed as the + // number of milliseconds between Update messages. The update interval 0 implies to + // send all the updates as fast as possible. + // default = 0 + UpdateInterval *uint32 `protobuf:"varint,3,opt,name=update_interval,json=updateInterval,proto3,oneof" json:"update_interval,omitempty"` + // The limited number of iterations that a unit of data can experience before the data + // is discarded. This is placed in the TTL field in the IP header of the transmitted + // packets. + // default = 64 + TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // The value to be used as a secret MD5 key for authentication. If not configured, MD5 + // authentication will not be enabled. + Md5Key *string `protobuf:"bytes,5,opt,name=md5_key,json=md5Key,proto3,oneof" json:"md5_key,omitempty"` + // If set to true, the local BGP peer will wait for the remote peer to initiate the + // BGP session + // by establishing the TCP connection, rather than initiating sessions from the local + // peer. // default = False - IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` + PassiveMode *bool `protobuf:"varint,6,opt,name=passive_mode,json=passiveMode,proto3,oneof" json:"passive_mode,omitempty"` + // The TCP port number on which to accept BGP connections from the remote peer. + // default = 179 + ListenPort *uint32 `protobuf:"varint,7,opt,name=listen_port,json=listenPort,proto3,oneof" json:"listen_port,omitempty"` + // Destination TCP port number of the BGP peer when initiating a + // session from the local BGP peer. + // default = 179 + NeighborPort *uint32 `protobuf:"varint,8,opt,name=neighbor_port,json=neighborPort,proto3,oneof" json:"neighbor_port,omitempty"` } -func (x *BgpSrteBindingSubTlv) Reset() { - *x = BgpSrteBindingSubTlv{} +func (x *BgpAdvanced) Reset() { + *x = BgpAdvanced{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[107] + mi := &file_otg_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv) String() string { +func (x *BgpAdvanced) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv) ProtoMessage() {} +func (*BgpAdvanced) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[107] +func (x *BgpAdvanced) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33078,74 +33401,179 @@ func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{107} +// Deprecated: Use BgpAdvanced.ProtoReflect.Descriptor instead. +func (*BgpAdvanced) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{109} } -func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { - if x != nil && x.BindingSidType != nil { - return *x.BindingSidType +func (x *BgpAdvanced) GetHoldTimeInterval() uint32 { + if x != nil && x.HoldTimeInterval != nil { + return *x.HoldTimeInterval } - return BgpSrteBindingSubTlv_BindingSidType_unspecified + return 0 } -func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { - if x != nil && x.FourOctetSid != nil { - return *x.FourOctetSid +func (x *BgpAdvanced) GetKeepAliveInterval() uint32 { + if x != nil && x.KeepAliveInterval != nil { + return *x.KeepAliveInterval } return 0 } -func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { - if x != nil && x.Ipv6Sid != nil { - return *x.Ipv6Sid +func (x *BgpAdvanced) GetUpdateInterval() uint32 { + if x != nil && x.UpdateInterval != nil { + return *x.UpdateInterval } - return "" + return 0 } -func (x *BgpSrteBindingSubTlv) GetSFlag() bool { - if x != nil && x.SFlag != nil { - return *x.SFlag +func (x *BgpAdvanced) GetTimeToLive() uint32 { + if x != nil && x.TimeToLive != nil { + return *x.TimeToLive } - return false + return 0 } -func (x *BgpSrteBindingSubTlv) GetIFlag() bool { - if x != nil && x.IFlag != nil { - return *x.IFlag +func (x *BgpAdvanced) GetMd5Key() string { + if x != nil && x.Md5Key != nil { + return *x.Md5Key } - return false + return "" } -// Configuration for BGP preference sub TLV of the SR Policy candidate path. -type BgpSrtePreferenceSubTlv struct { - state protoimpl.MessageState +func (x *BgpAdvanced) GetPassiveMode() bool { + if x != nil && x.PassiveMode != nil { + return *x.PassiveMode + } + return false +} + +func (x *BgpAdvanced) GetListenPort() uint32 { + if x != nil && x.ListenPort != nil { + return *x.ListenPort + } + return 0 +} + +func (x *BgpAdvanced) GetNeighborPort() uint32 { + if x != nil && x.NeighborPort != nil { + return *x.NeighborPort + } + return 0 +} + +// Configuration for BGP capability settings. +type BgpCapability struct { + state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The preference value of the SR Policy candidate path. - // default = 0 - Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` + // Support for the IPv4 Unicast address family. + // default = True + Ipv4Unicast *bool `protobuf:"varint,1,opt,name=ipv4_unicast,json=ipv4Unicast,proto3,oneof" json:"ipv4_unicast,omitempty"` + // Support for the IPv4 Multicast address family. + // default = False + Ipv4Multicast *bool `protobuf:"varint,2,opt,name=ipv4_multicast,json=ipv4Multicast,proto3,oneof" json:"ipv4_multicast,omitempty"` + // Support for the IPv4 Unicast address family. + // default = True + Ipv6Unicast *bool `protobuf:"varint,3,opt,name=ipv6_unicast,json=ipv6Unicast,proto3,oneof" json:"ipv6_unicast,omitempty"` + // Support for the IPv6 Multicast address family. + // default = False + Ipv6Multicast *bool `protobuf:"varint,4,opt,name=ipv6_multicast,json=ipv6Multicast,proto3,oneof" json:"ipv6_multicast,omitempty"` + // Support for VPLS as below. + // RFC4761 - Virtual Private LAN Service (VPLS) using BGP for Auto-Discovery + // and Signaling. + // RFC6624 - Layer 2 Virtual Private Networks using BGP for Auto-Discovery + // and Signaling. + // default = False + Vpls *bool `protobuf:"varint,5,opt,name=vpls,proto3,oneof" json:"vpls,omitempty"` + // Support for the route refresh capabilities. Route Refresh allows the dynamic exchange + // of route refresh requests and routing information between BGP peers and the subsequent + // re-advertisement of the outbound or inbound routing table. + // default = True + RouteRefresh *bool `protobuf:"varint,6,opt,name=route_refresh,json=routeRefresh,proto3,oneof" json:"route_refresh,omitempty"` + // Supports for the route constraint capabilities. Route Constraint allows the advertisement + // of Route Target Membership information. The BGP peers exchange Route Target Reachability + // Information, which is used to build a route distribution graph. This limits the + // propagation of VPN Network Layer Reachability Information (NLRI) between different + // autonomous systems or distinct clusters of the same autonomous system. This is supported + // for Layer 3 Virtual Private Network scenario. + // default = False + RouteConstraint *bool `protobuf:"varint,7,opt,name=route_constraint,json=routeConstraint,proto3,oneof" json:"route_constraint,omitempty"` + // Support for BGP Link State for ISIS and OSPF. + // default = False + LinkStateNonVpn *bool `protobuf:"varint,8,opt,name=link_state_non_vpn,json=linkStateNonVpn,proto3,oneof" json:"link_state_non_vpn,omitempty"` + // Capability advertisement of BGP Link State for VPNs. + // default = False + LinkStateVpn *bool `protobuf:"varint,9,opt,name=link_state_vpn,json=linkStateVpn,proto3,oneof" json:"link_state_vpn,omitempty"` + // Support for the EVPN address family. + // default = False + Evpn *bool `protobuf:"varint,10,opt,name=evpn,proto3,oneof" json:"evpn,omitempty"` + // Support for extended Next Hop Encoding for Nexthop field in IPv4 routes advertisement. + // This allows IPv4 routes being advertised by IPv6 peers to include an IPv6 Nexthop. + // default = False + ExtendedNextHopEncoding *bool `protobuf:"varint,11,opt,name=extended_next_hop_encoding,json=extendedNextHopEncoding,proto3,oneof" json:"extended_next_hop_encoding,omitempty"` + // Support for the IPv4 Multicast VPN address family. + // default = False + Ipv4MulticastVpn *bool `protobuf:"varint,12,opt,name=ipv4_multicast_vpn,json=ipv4MulticastVpn,proto3,oneof" json:"ipv4_multicast_vpn,omitempty"` + // Support for the IPv4 MPLS L3VPN address family. + // default = False + Ipv4MplsVpn *bool `protobuf:"varint,13,opt,name=ipv4_mpls_vpn,json=ipv4MplsVpn,proto3,oneof" json:"ipv4_mpls_vpn,omitempty"` + // Supports for IPv4 MDT address family messages. + // default = False + Ipv4Mdt *bool `protobuf:"varint,14,opt,name=ipv4_mdt,json=ipv4Mdt,proto3,oneof" json:"ipv4_mdt,omitempty"` + // Support for the IPv4 Multicast VPN address family. + // default = False + Ipv4MulticastMplsVpn *bool `protobuf:"varint,15,opt,name=ipv4_multicast_mpls_vpn,json=ipv4MulticastMplsVpn,proto3,oneof" json:"ipv4_multicast_mpls_vpn,omitempty"` + // Support for propagation of IPv4 unicast flow specification rules. + // default = False + Ipv4UnicastFlowSpec *bool `protobuf:"varint,16,opt,name=ipv4_unicast_flow_spec,json=ipv4UnicastFlowSpec,proto3,oneof" json:"ipv4_unicast_flow_spec,omitempty"` + // Support for IPv4 SRTE policy. + // default = False + Ipv4SrTePolicy *bool `protobuf:"varint,17,opt,name=ipv4_sr_te_policy,json=ipv4SrTePolicy,proto3,oneof" json:"ipv4_sr_te_policy,omitempty"` + // Support for IPv4 Unicast Add Path Capability. + // default = False + Ipv4UnicastAddPath *bool `protobuf:"varint,18,opt,name=ipv4_unicast_add_path,json=ipv4UnicastAddPath,proto3,oneof" json:"ipv4_unicast_add_path,omitempty"` + // Support for the IPv6 Multicast VPN address family. + // default = False + Ipv6MulticastVpn *bool `protobuf:"varint,19,opt,name=ipv6_multicast_vpn,json=ipv6MulticastVpn,proto3,oneof" json:"ipv6_multicast_vpn,omitempty"` + // Support for the IPv6 MPLS L3VPN address family. + // default = False + Ipv6MplsVpn *bool `protobuf:"varint,20,opt,name=ipv6_mpls_vpn,json=ipv6MplsVpn,proto3,oneof" json:"ipv6_mpls_vpn,omitempty"` + // Support for IPv6 MDT address family messages. + // default = False + Ipv6Mdt *bool `protobuf:"varint,21,opt,name=ipv6_mdt,json=ipv6Mdt,proto3,oneof" json:"ipv6_mdt,omitempty"` + // Support for the IPv6 Multicast VPN address family. + // default = False + Ipv6MulticastMplsVpn *bool `protobuf:"varint,22,opt,name=ipv6_multicast_mpls_vpn,json=ipv6MulticastMplsVpn,proto3,oneof" json:"ipv6_multicast_mpls_vpn,omitempty"` + // Support for propagation of IPv6 unicast flow specification rules. + // default = False + Ipv6UnicastFlowSpec *bool `protobuf:"varint,23,opt,name=ipv6_unicast_flow_spec,json=ipv6UnicastFlowSpec,proto3,oneof" json:"ipv6_unicast_flow_spec,omitempty"` + // Support for IPv6 SRTE policy. + // default = False + Ipv6SrTePolicy *bool `protobuf:"varint,24,opt,name=ipv6_sr_te_policy,json=ipv6SrTePolicy,proto3,oneof" json:"ipv6_sr_te_policy,omitempty"` + // Support for IPv6 Unicast Add Path Capability. + // default = False + Ipv6UnicastAddPath *bool `protobuf:"varint,25,opt,name=ipv6_unicast_add_path,json=ipv6UnicastAddPath,proto3,oneof" json:"ipv6_unicast_add_path,omitempty"` } -func (x *BgpSrtePreferenceSubTlv) Reset() { - *x = BgpSrtePreferenceSubTlv{} +func (x *BgpCapability) Reset() { + *x = BgpCapability{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[108] + mi := &file_otg_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrtePreferenceSubTlv) String() string { +func (x *BgpCapability) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} +func (*BgpCapability) ProtoMessage() {} -func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[108] +func (x *BgpCapability) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33156,210 +33584,220 @@ func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{108} +// Deprecated: Use BgpCapability.ProtoReflect.Descriptor instead. +func (*BgpCapability) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{110} } -func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { - if x != nil && x.Preference != nil { - return *x.Preference +func (x *BgpCapability) GetIpv4Unicast() bool { + if x != nil && x.Ipv4Unicast != nil { + return *x.Ipv4Unicast } - return 0 + return false } -// 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 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpCapability) GetIpv4Multicast() bool { + if x != nil && x.Ipv4Multicast != nil { + return *x.Ipv4Multicast + } + return false +} - // One-octet Priority value. - PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` +func (x *BgpCapability) GetIpv6Unicast() bool { + if x != nil && x.Ipv6Unicast != nil { + return *x.Ipv6Unicast + } + return false } -func (x *BgpSrtePolicyPrioritySubTlv) Reset() { - *x = BgpSrtePolicyPrioritySubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpCapability) GetIpv6Multicast() bool { + if x != nil && x.Ipv6Multicast != nil { + return *x.Ipv6Multicast } + return false } -func (x *BgpSrtePolicyPrioritySubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpCapability) GetVpls() bool { + if x != nil && x.Vpls != nil { + return *x.Vpls + } + return false } -func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} +func (x *BgpCapability) GetRouteRefresh() bool { + if x != nil && x.RouteRefresh != nil { + return *x.RouteRefresh + } + return false +} -func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpCapability) GetRouteConstraint() bool { + if x != nil && x.RouteConstraint != nil { + return *x.RouteConstraint } - return mi.MessageOf(x) + return false } -// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{109} +func (x *BgpCapability) GetLinkStateNonVpn() bool { + if x != nil && x.LinkStateNonVpn != nil { + return *x.LinkStateNonVpn + } + return false } -func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { - if x != nil && x.PolicyPriority != nil { - return *x.PolicyPriority +func (x *BgpCapability) GetLinkStateVpn() bool { + if x != nil && x.LinkStateVpn != nil { + return *x.LinkStateVpn } - return 0 + return false } -// 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 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpCapability) GetEvpn() bool { + if x != nil && x.Evpn != nil { + return *x.Evpn + } + return false +} - // Symbolic name for the policy that should be a string of printable ASCII characters, - // without a NULL terminator. - PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` +func (x *BgpCapability) GetExtendedNextHopEncoding() bool { + if x != nil && x.ExtendedNextHopEncoding != nil { + return *x.ExtendedNextHopEncoding + } + return false } -func (x *BgpSrtePolicyNameSubTlv) Reset() { - *x = BgpSrtePolicyNameSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpCapability) GetIpv4MulticastVpn() bool { + if x != nil && x.Ipv4MulticastVpn != nil { + return *x.Ipv4MulticastVpn } + return false } -func (x *BgpSrtePolicyNameSubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpCapability) GetIpv4MplsVpn() bool { + if x != nil && x.Ipv4MplsVpn != nil { + return *x.Ipv4MplsVpn + } + return false } -func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} +func (x *BgpCapability) GetIpv4Mdt() bool { + if x != nil && x.Ipv4Mdt != nil { + return *x.Ipv4Mdt + } + return false +} -func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[110] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpCapability) GetIpv4MulticastMplsVpn() bool { + if x != nil && x.Ipv4MulticastMplsVpn != nil { + return *x.Ipv4MulticastMplsVpn } - return mi.MessageOf(x) + return false } -// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{110} +func (x *BgpCapability) GetIpv4UnicastFlowSpec() bool { + if x != nil && x.Ipv4UnicastFlowSpec != nil { + return *x.Ipv4UnicastFlowSpec + } + return false } -func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { - if x != nil && x.PolicyName != nil { - return *x.PolicyName +func (x *BgpCapability) GetIpv4SrTePolicy() bool { + if x != nil && x.Ipv4SrTePolicy != nil { + return *x.Ipv4SrTePolicy } - return "" + return false } -// Configuration for BGP explicit null label policy sub TLV settings. -type BgpSrteExplicitNullLabelPolicySubTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpCapability) GetIpv4UnicastAddPath() bool { + if x != nil && x.Ipv4UnicastAddPath != nil { + return *x.Ipv4UnicastAddPath + } + return false +} - // The value of the explicit null label policy - // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp - ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` +func (x *BgpCapability) GetIpv6MulticastVpn() bool { + if x != nil && x.Ipv6MulticastVpn != nil { + return *x.Ipv6MulticastVpn + } + return false } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[111] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpCapability) GetIpv6MplsVpn() bool { + if x != nil && x.Ipv6MplsVpn != nil { + return *x.Ipv6MplsVpn } + return false } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpCapability) GetIpv6Mdt() bool { + if x != nil && x.Ipv6Mdt != nil { + return *x.Ipv6Mdt + } + return false } -func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} +func (x *BgpCapability) GetIpv6MulticastMplsVpn() bool { + if x != nil && x.Ipv6MulticastMplsVpn != nil { + return *x.Ipv6MulticastMplsVpn + } + return false +} -func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[111] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpCapability) GetIpv6UnicastFlowSpec() bool { + if x != nil && x.Ipv6UnicastFlowSpec != nil { + return *x.Ipv6UnicastFlowSpec } - return mi.MessageOf(x) + return false } -// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{111} +func (x *BgpCapability) GetIpv6SrTePolicy() bool { + if x != nil && x.Ipv6SrTePolicy != nil { + return *x.Ipv6SrTePolicy + } + return false } -func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { - if x != nil && x.ExplicitNullLabelPolicy != nil { - return *x.ExplicitNullLabelPolicy +func (x *BgpCapability) GetIpv6UnicastAddPath() bool { + if x != nil && x.Ipv6UnicastAddPath != nil { + return *x.Ipv6UnicastAddPath } - return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified + return false } -// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV -// encodes a single explicit path towards the Endpoint. -type BgpSrteSegmentList struct { +// Configuration for controlling storage of BGP learned information recieved from the +// peer. +type BgpLearnedInformationFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Weight associated with a given path and the sub-TLV is optional. - // default = 0 - Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` - // Description missing in models - Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` + // If enabled, will store the information related to Unicast IPv4 Prefixes recieved + // from the peer. + // default = False + UnicastIpv4Prefix *bool `protobuf:"varint,1,opt,name=unicast_ipv4_prefix,json=unicastIpv4Prefix,proto3,oneof" json:"unicast_ipv4_prefix,omitempty"` + // If enabled, will store the information related to Unicast IPv6 Prefixes recieved + // from the peer. + // default = False + UnicastIpv6Prefix *bool `protobuf:"varint,2,opt,name=unicast_ipv6_prefix,json=unicastIpv6Prefix,proto3,oneof" json:"unicast_ipv6_prefix,omitempty"` } -func (x *BgpSrteSegmentList) Reset() { - *x = BgpSrteSegmentList{} +func (x *BgpLearnedInformationFilter) Reset() { + *x = BgpLearnedInformationFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[112] + mi := &file_otg_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentList) String() string { +func (x *BgpLearnedInformationFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentList) ProtoMessage() {} +func (*BgpLearnedInformationFilter) ProtoMessage() {} -func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[112] +func (x *BgpLearnedInformationFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33370,114 +33808,125 @@ func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{112} -} - -func (x *BgpSrteSegmentList) GetWeight() uint32 { - if x != nil && x.Weight != nil { - return *x.Weight - } - return 0 -} - -func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { - if x != nil { - return x.Segments - } - return nil +// Deprecated: Use BgpLearnedInformationFilter.ProtoReflect.Descriptor instead. +func (*BgpLearnedInformationFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{111} } -func (x *BgpSrteSegmentList) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpLearnedInformationFilter) GetUnicastIpv4Prefix() bool { + if x != nil && x.UnicastIpv4Prefix != nil { + return *x.UnicastIpv4Prefix } - return "" + return false } -func (x *BgpSrteSegmentList) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpLearnedInformationFilter) GetUnicastIpv6Prefix() bool { + if x != nil && x.UnicastIpv6Prefix != nil { + return *x.UnicastIpv6Prefix } return false } -// 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 struct { +// Emulated BGPv4 route range. +type BgpV4RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specify one of the segment type. - // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 - // Type A: SID only, in the form of MPLS Label. - // Type B: SID only, in the form of IPv6 Address. - // Type C: IPv4 Node Address with optional SID. - // Type D: IPv6 Node Address with optional SID for SR MPLS. - // Type E: IPv4 Address and index with optional SID. - // Type F: IPv4 Local and Remote addresses with optional SID. - // Type G: IPv6 Address and index for local and remote pair with optional - // SID for SR MPLS. - // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. - // Type I: IPv6 Node Address with optional SID for SRv6. - // Type J: IPv6 Address and index for local and remote pair with optional - // SID for SRv6. - // Type K: IPv6 Local and Remote addresses for SRv6. - // required = true - SegmentType *BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum,oneof" json:"segment_type,omitempty"` - // Description missing in models - TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3" json:"type_a,omitempty"` - // Description missing in models - TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3" json:"type_b,omitempty"` - // Description missing in models - TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3" json:"type_c,omitempty"` - // Description missing in models - TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3" json:"type_d,omitempty"` - // Description missing in models - TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3" json:"type_e,omitempty"` - // Description missing in models - TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3" json:"type_f,omitempty"` - // Description missing in models - TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3" json:"type_g,omitempty"` - // Description missing in models - TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3" json:"type_h,omitempty"` + // A list of group of IPv4 route addresses. + Addresses []*V4RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the + // NextHop in the MP REACH NLRI can be one of the following: + // Local IP: Automatically fills the Nexthop with the Local IP of the BGP + // peer. + // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpV4RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV4RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + // default = NextHopAddressType.Enum.ipv4 + NextHopAddressType *BgpV4RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV4RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` // Description missing in models - TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3" json:"type_i,omitempty"` + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` // Description missing in models - TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3" json:"type_j,omitempty"` + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` // Description missing in models - TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3" json:"type_k,omitempty"` + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` // Globally unique name of an object. It also serves as the primary key for arrays of // objects. // required = true - Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // + // 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. Note evpn type is defined mainly for use with evpn + // route updates and not for IPv4 and IPv6 route updates. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // 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 eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six 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. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } -func (x *BgpSrteSegment) Reset() { - *x = BgpSrteSegment{} +func (x *BgpV4RouteRange) Reset() { + *x = BgpV4RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[113] + mi := &file_otg_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegment) String() string { +func (x *BgpV4RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegment) ProtoMessage() {} +func (*BgpV4RouteRange) ProtoMessage() {} -func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[113] +func (x *BgpV4RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -33488,127 +33937,181 @@ func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113} +// Deprecated: Use BgpV4RouteRange.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{112} } -func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { - if x != nil && x.SegmentType != nil { - return *x.SegmentType +func (x *BgpV4RouteRange) GetAddresses() []*V4RouteAddress { + if x != nil { + return x.Addresses } - return BgpSrteSegment_SegmentType_unspecified + return nil } -func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { - if x != nil { - return x.TypeA +func (x *BgpV4RouteRange) GetNextHopMode() BgpV4RouteRange_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return nil + return BgpV4RouteRange_NextHopMode_unspecified } -func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { - if x != nil { - return x.TypeB +func (x *BgpV4RouteRange) GetNextHopAddressType() BgpV4RouteRange_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType } - return nil + return BgpV4RouteRange_NextHopAddressType_unspecified } -func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { - if x != nil { - return x.TypeC +func (x *BgpV4RouteRange) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return nil + return "" } -func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { - if x != nil { - return x.TypeD +func (x *BgpV4RouteRange) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } - return nil + return "" } -func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { +func (x *BgpV4RouteRange) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.TypeE + return x.Advanced } return nil } -func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { +func (x *BgpV4RouteRange) GetCommunities() []*BgpCommunity { if x != nil { - return x.TypeF + return x.Communities } return nil } -func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { +func (x *BgpV4RouteRange) GetAsPath() *BgpAsPath { if x != nil { - return x.TypeG + return x.AsPath } return nil } -func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { +func (x *BgpV4RouteRange) GetAddPath() *BgpAddPath { if x != nil { - return x.TypeH + return x.AddPath } return nil } -func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { - if x != nil { - return x.TypeI +func (x *BgpV4RouteRange) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { +func (x *BgpV4RouteRange) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.TypeJ + return x.ExtCommunities } return nil } -func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { +func (x *BgpV4RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { if x != nil { - return x.TypeK + return x.ExtendedCommunities } return nil } -func (x *BgpSrteSegment) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +// The BGP Additional Paths feature is a BGP extension that allows the advertisement +// of multiple paths for the same prefix without the new paths implicitly replacing +// any previous paths. +type BgpAddPath struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of the additional path. + // default = 1 + PathId *uint32 `protobuf:"varint,1,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` +} + +func (x *BgpAddPath) Reset() { + *x = BgpAddPath{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpSrteSegment) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpAddPath) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAddPath) ProtoMessage() {} + +func (x *BgpAddPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[113] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. -type BgpSrteSrMplsSid struct { +// Deprecated: Use BgpAddPath.ProtoReflect.Descriptor instead. +func (*BgpAddPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{113} +} + +func (x *BgpAddPath) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId + } + return 0 +} + +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// 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 optonal sub-type field. The last +// 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of data in a +// format defined by the type and optional sub-type field. Extended communities provide +// a larger range for grouping or categorizing communities. +type BgpExtendedCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // Description missing in models + // default = Choice.Enum.transitive_2octet_as_type + Choice *BgpExtendedCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunity_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Transitive_2OctetAsType *BgpExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3" json:"transitive_2octet_as_type,omitempty"` + // Description missing in models + TransitiveIpv4AddressType *BgpExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3" json:"transitive_ipv4_address_type,omitempty"` + // Description missing in models + Transitive_4OctetAsType *BgpExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3" json:"transitive_4octet_as_type,omitempty"` + // Description missing in models + TransitiveOpaqueType *BgpExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3" json:"transitive_opaque_type,omitempty"` + // Description missing in models + TransitiveEvpnType *BgpExtendedCommunityTransitiveEvpnType `protobuf:"bytes,6,opt,name=transitive_evpn_type,json=transitiveEvpnType,proto3" json:"transitive_evpn_type,omitempty"` + // Description missing in models + NonTransitive_2OctetAsType *BgpExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,7,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3" json:"non_transitive_2octet_as_type,omitempty"` + // Description missing in models + Custom *BgpExtendedCommunityCustomType `protobuf:"bytes,8,opt,name=custom,proto3" json:"custom,omitempty"` } -func (x *BgpSrteSrMplsSid) Reset() { - *x = BgpSrteSrMplsSid{} +func (x *BgpExtendedCommunity) Reset() { + *x = BgpExtendedCommunity{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33616,13 +34119,13 @@ func (x *BgpSrteSrMplsSid) Reset() { } } -func (x *BgpSrteSrMplsSid) String() string { +func (x *BgpExtendedCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSrMplsSid) ProtoMessage() {} +func (*BgpExtendedCommunity) ProtoMessage() {} -func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunity) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33634,63 +34137,87 @@ func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. -func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunity.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{114} } -func (x *BgpSrteSrMplsSid) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label +func (x *BgpExtendedCommunity) GetChoice() BgpExtendedCommunity_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunity_Choice_unspecified } -func (x *BgpSrteSrMplsSid) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc +func (x *BgpExtendedCommunity) GetTransitive_2OctetAsType() *BgpExtendedCommunityTransitive2OctetAsType { + if x != nil { + return x.Transitive_2OctetAsType } - return 0 + return nil } -func (x *BgpSrteSrMplsSid) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit +func (x *BgpExtendedCommunity) GetTransitiveIpv4AddressType() *BgpExtendedCommunityTransitiveIpv4AddressType { + if x != nil { + return x.TransitiveIpv4AddressType } - return false + return nil } -func (x *BgpSrteSrMplsSid) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpExtendedCommunity) GetTransitive_4OctetAsType() *BgpExtendedCommunityTransitive4OctetAsType { + if x != nil { + return x.Transitive_4OctetAsType } - return 0 + return nil } -// 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. -type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { +func (x *BgpExtendedCommunity) GetTransitiveOpaqueType() *BgpExtendedCommunityTransitiveOpaqueType { + if x != nil { + return x.TransitiveOpaqueType + } + return nil +} + +func (x *BgpExtendedCommunity) GetTransitiveEvpnType() *BgpExtendedCommunityTransitiveEvpnType { + if x != nil { + return x.TransitiveEvpnType + } + return nil +} + +func (x *BgpExtendedCommunity) GetNonTransitive_2OctetAsType() *BgpExtendedCommunityNonTransitive2OctetAsType { + if x != nil { + return x.NonTransitive_2OctetAsType + } + return nil +} + +func (x *BgpExtendedCommunity) GetCustom() *BgpExtendedCommunityCustomType { + if x != nil { + return x.Custom + } + return nil +} + +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // SRv6 SID Locator Block length in bits. - // default = 0 - LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` - // SRv6 SID Locator Node length in bits. - // default = 0 - LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` - // SRv6 SID Function length in bits. - // default = 0 - FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` - // SRv6 SID Arguments length in bits. - // default = 0 - ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // 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. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { - *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33698,13 +34225,13 @@ func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { } } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33716,60 +34243,44 @@ func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. -func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{115} } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { - if x != nil && x.LbLength != nil { - return *x.LbLength - } - return 0 -} - -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { - if x != nil && x.LnLength != nil { - return *x.LnLength - } - return 0 -} - -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { - if x != nil && x.FuncLength != nil { - return *x.FuncLength +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { - if x != nil && x.ArgLength != nil { - return *x.ArgLength +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -// Type A: SID only, in the form of MPLS Label. -type BgpSrteSegmentATypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Label value in [0, 2^20 -1]. - Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` - // Traffic class in bits. - Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` - // Bottom-of-Stack bit. - SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` - // Time To Live. - Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // The two octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // 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. + // default = 1 + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *BgpSrteSegmentATypeSubTlv) Reset() { - *x = BgpSrteSegmentATypeSubTlv{} +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33777,13 +34288,13 @@ func (x *BgpSrteSegmentATypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentATypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33795,64 +34306,42 @@ func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{116} } -func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label - } - return 0 -} - -func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { - if x != nil && x.Tc != nil { - return *x.Tc +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { - if x != nil && x.SBit != nil { - return *x.SBit - } - return false -} - -func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -// Type B: SID only, in the form of IPv6 address. -type BgpSrteSegmentBTypeSubTlv struct { +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type BgpExtendedCommunityTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SRv6 SID. - // required = true - Srv6Sid *string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteSegmentBTypeSubTlv) Reset() { - *x = BgpSrteSegmentBTypeSubTlv{} +func (x *BgpExtendedCommunityTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33860,13 +34349,13 @@ func (x *BgpSrteSegmentBTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentBTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33878,67 +34367,65 @@ func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{117} } -func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetChoice() BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype } - return "" + return nil } -func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { +func (x *BgpExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if x != nil { - return x.Srv6SidEndpointBehavior + return x.RouteOriginSubtype } return nil } -// Type C: IPv4 Node Address with optional SID. -type BgpSrteSegmentCTypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv4 address representing a node. - // required = true - Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` -} - -func (x *BgpSrteSegmentCTypeSubTlv) Reset() { - *x = BgpSrteSegmentCTypeSubTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // 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. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` +} + +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteSegmentCTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -33950,60 +34437,45 @@ func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{118} } -func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { - if x != nil && x.Ipv4NodeAddress != nil { - return *x.Ipv4NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type D: IPv6 Node Address with optional SID for SR MPLS. -type BgpSrteSegmentDTypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // specifying SR Algorithm when when A-Flag as defined in above flags. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // An IPv4 unicast address assigned by one of the Internet registries. + // default = 0.0.0.0 + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // 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. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteSegmentDTypeSubTlv) Reset() { - *x = BgpSrteSegmentDTypeSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34011,13 +34483,13 @@ func (x *BgpSrteSegmentDTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentDTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34029,60 +34501,42 @@ func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{119} } -func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { - if x != nil && x.Ipv6NodeAddress != nil { - return *x.Ipv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type E: IPv4 Address and Local Interface ID with optional SID -type BgpSrteSegmentETypeSubTlv struct { +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type BgpExtendedCommunityTransitiveIpv4AddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv4 address representing a node. - // required = true - Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteSegmentETypeSubTlv) Reset() { - *x = BgpSrteSegmentETypeSubTlv{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34090,13 +34544,13 @@ func (x *BgpSrteSegmentETypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentETypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} -func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34108,60 +34562,52 @@ func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{120} } -func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetChoice() BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified } -func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { - if x != nil && x.Ipv4NodeAddress != nil { - return *x.Ipv4NodeAddress +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype } - return "" + return nil } -func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { if x != nil { - return x.SrMplsSid + return x.RouteOriginSubtype } return nil } -// Type F: IPv4 Local and Remote addresses with optional SID. -type BgpSrteSegmentFTypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv4 Address. - // required = true - LocalIpv4Address *string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3,oneof" json:"local_ipv4_address,omitempty"` - // Remote IPv4 Address. - // required = true - RemoteIpv4Address *string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3,oneof" json:"remote_ipv4_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // 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. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteSegmentFTypeSubTlv) Reset() { - *x = BgpSrteSegmentFTypeSubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34169,13 +34615,13 @@ func (x *BgpSrteSegmentFTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentFTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34187,67 +34633,44 @@ func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{121} } -func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { - if x != nil && x.LocalIpv4Address != nil { - return *x.LocalIpv4Address - } - return "" -} - -func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { - if x != nil && x.RemoteIpv4Address != nil { - return *x.RemoteIpv4Address +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } - return "" + return 0 } -func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } - return nil + return 0 } -// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for -// SR MPLS. -type BgpSrteSegmentGTypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress *string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress *string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + // default = 100 + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // 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. + // default = 1 + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *BgpSrteSegmentGTypeSubTlv) Reset() { - *x = BgpSrteSegmentGTypeSubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34255,13 +34678,13 @@ func (x *BgpSrteSegmentGTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentGTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34273,74 +34696,43 @@ func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{122} } -func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil && x.LocalIpv6NodeAddress != nil { - return *x.LocalIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil && x.RemoteIpv6NodeAddress != nil { - return *x.RemoteIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. -type BgpSrteSegmentHTypeSubTlv struct { +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +type BgpExtendedCommunityTransitive4OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // Local IPv6 Address. - // required = true - LocalIpv6Address *string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` - // Remote IPv6 Address. - // required = true - RemoteIpv6Address *string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // Description missing in models + // default = Choice.Enum.route_target_subtype + Choice *BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouteTargetSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` + // Description missing in models + RouteOriginSubtype *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *BgpSrteSegmentHTypeSubTlv) Reset() { - *x = BgpSrteSegmentHTypeSubTlv{} +func (x *BgpExtendedCommunityTransitive4OctetAsType) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34348,13 +34740,13 @@ func (x *BgpSrteSegmentHTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentHTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} -func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34366,59 +34758,53 @@ func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{123} } -func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { - if x != nil && x.LocalIpv6Address != nil { - return *x.LocalIpv6Address +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetChoice() BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitive4OctetAsType_Choice_unspecified } -func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil && x.RemoteIpv6Address != nil { - return *x.RemoteIpv6Address +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget { + if x != nil { + return x.RouteTargetSubtype } - return "" + return nil } -func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { +func (x *BgpExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin { if x != nil { - return x.SrMplsSid + return x.RouteOriginSubtype } return nil } -// Type I: IPv6 Node Address with optional SRv6 SID. -type BgpSrteSegmentITypeSubTlv struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // IPv6 address representing a node. - // required = true - Ipv6NodeAddress *string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` + // Two octet flag values. + // default = 0 + Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // 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. + // default = 0 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpSrteSegmentITypeSubTlv) Reset() { - *x = BgpSrteSegmentITypeSubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeColor{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34426,13 +34812,13 @@ func (x *BgpSrteSegmentITypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentITypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} -func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34444,72 +34830,52 @@ func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{124} } -func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { if x != nil && x.Flags != nil { return *x.Flags } - return "" -} - -func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { - if x != nil && x.Ipv6NodeAddress != nil { - return *x.Ipv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" + return 0 } -func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior +func (x *BgpExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } - return nil + return 0 } -// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional -// SID. -type BgpSrteSegmentJTypeSubTlv struct { +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +type BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6NodeAddress *string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` - // Local Interface ID: The Interface Index as defined in [RFC8664]. + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + // // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6NodeAddress *string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` + Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // 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] + // default = 1 + TunnelType *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` } -func (x *BgpSrteSegmentJTypeSubTlv) Reset() { - *x = BgpSrteSegmentJTypeSubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34517,13 +34883,13 @@ func (x *BgpSrteSegmentJTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentJTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} -func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34535,93 +34901,42 @@ func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{125} } -func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { + if x != nil && x.Reserved != nil { + return *x.Reserved } return 0 } -func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { - if x != nil && x.LocalIpv6NodeAddress != nil { - return *x.LocalIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return 0 } -func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { - if x != nil && x.RemoteIpv6NodeAddress != nil { - return *x.RemoteIpv6NodeAddress - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid - } - return "" -} - -func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6SidEndpointBehavior - } - return nil -} - -// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. -type BgpSrteSegmentKTypeSubTlv struct { +// The Transitive Opaque Extended Community is sent as type 0x03. +type BgpExtendedCommunityTransitiveOpaqueType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // required = true - LocalIpv6Address *string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` - // IPv6 address representing a node. - // required = true - RemoteIpv6Address *string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` - // Optional SRv6 SID. - Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` - // Optional SRv6 Endpoint Behavior and SID Structure. - Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` + // Description missing in models + // default = Choice.Enum.color_subtype + Choice *BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + ColorSubtype *BgpExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3" json:"color_subtype,omitempty"` + // Description missing in models + EncapsulationSubtype *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3" json:"encapsulation_subtype,omitempty"` } -func (x *BgpSrteSegmentKTypeSubTlv) Reset() { - *x = BgpSrteSegmentKTypeSubTlv{} +func (x *BgpExtendedCommunityTransitiveOpaqueType) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34629,13 +34944,13 @@ func (x *BgpSrteSegmentKTypeSubTlv) Reset() { } } -func (x *BgpSrteSegmentKTypeSubTlv) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} -func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34647,141 +34962,46 @@ func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{126} } -func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { - if x != nil && x.Flags != nil { - return *x.Flags - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { - if x != nil && x.LocalIpv6Address != nil { - return *x.LocalIpv6Address - } - return "" -} - -func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { - if x != nil && x.RemoteIpv6Address != nil { - return *x.RemoteIpv6Address +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetChoice() BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitiveOpaqueType_Choice_unspecified } -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeColor { + if x != nil { + return x.ColorSubtype } - return "" + return nil } -func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { +func (x *BgpExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation { if x != nil { - return x.Srv6SidEndpointBehavior + return x.EncapsulationSubtype } return nil } -// Configuration for BGP Segment Routing Traffic Engineering policy. -type BgpSrteV6Policy struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Identifies the policy in the context of (color and endpoint) tuple. It is used by - // the SR Policy originator to make unique multiple occurrences of the same SR Policy. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // Identifies the policy. It is used to match the color of the destination prefixes - // to steer traffic into the SR Policy. - // default = 100 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected - // on the basis of the SR Policy type (AFI). - // required = true - Ipv6Endpoint *string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3,oneof" json:"ipv6_endpoint,omitempty"` - // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically - // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop - // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary - // IPv4/IPv6 address. - // default = NextHopMode.Enum.local_ip - NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` - // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. - // default = NextHopAddressType.Enum.ipv6 - NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` - // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop - // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding - // capability extended_next_hop_encoding should be enabled. - // default = 0.0.0.0 - NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` - // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' - // and the Nexthop type 'next_hop_address_type' is IPv6. - // default = ::0 - NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` - // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Description missing in models - AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` - // Description missing in models - AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` - // List of optional tunnel TLV settings. - TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` + // MAC Address of the PE Router. + // default = 0:0:0:0:0:0 + RouterMac *string `protobuf:"bytes,1,opt,name=router_mac,json=routerMac,proto3,oneof" json:"router_mac,omitempty"` } -func (x *BgpSrteV6Policy) Reset() { - *x = BgpSrteV6Policy{} +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnTypeRouterMac{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34789,13 +35009,13 @@ func (x *BgpSrteV6Policy) Reset() { } } -func (x *BgpSrteV6Policy) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoMessage() {} -func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -34807,167 +35027,171 @@ func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. -func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnTypeRouterMac.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{127} } -func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpExtendedCommunityTransitiveEvpnTypeRouterMac) GetRouterMac() string { + if x != nil && x.RouterMac != nil { + return *x.RouterMac } - return 0 + return "" } -func (x *BgpSrteV6Policy) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color - } - return 0 +// The Transitive EVPN Extended Community is sent as type 0x06 . +type BgpExtendedCommunityTransitiveEvpnType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.router_mac_subtype + Choice *BgpExtendedCommunityTransitiveEvpnType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityTransitiveEvpnType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RouterMacSubtype *BgpExtendedCommunityTransitiveEvpnTypeRouterMac `protobuf:"bytes,2,opt,name=router_mac_subtype,json=routerMacSubtype,proto3" json:"router_mac_subtype,omitempty"` } -func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { - if x != nil && x.Ipv6Endpoint != nil { - return *x.Ipv6Endpoint +func (x *BgpExtendedCommunityTransitiveEvpnType) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { - if x != nil && x.NextHopMode != nil { - return *x.NextHopMode - } - return BgpSrteV6Policy_NextHopMode_unspecified +func (x *BgpExtendedCommunityTransitiveEvpnType) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { - if x != nil && x.NextHopAddressType != nil { - return *x.NextHopAddressType +func (*BgpExtendedCommunityTransitiveEvpnType) ProtoMessage() {} + +func (x *BgpExtendedCommunityTransitiveEvpnType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return BgpSrteV6Policy_NextHopAddressType_unspecified + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { - if x != nil && x.NextHopIpv4Address != nil { - return *x.NextHopIpv4Address - } - return "" +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128} } -func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { - if x != nil && x.NextHopIpv6Address != nil { - return *x.NextHopIpv6Address +func (x *BgpExtendedCommunityTransitiveEvpnType) GetChoice() BgpExtendedCommunityTransitiveEvpnType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpExtendedCommunityTransitiveEvpnType_Choice_unspecified } -func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { +func (x *BgpExtendedCommunityTransitiveEvpnType) GetRouterMacSubtype() *BgpExtendedCommunityTransitiveEvpnTypeRouterMac { if x != nil { - return x.Advanced + return x.RouterMacSubtype } return nil } -func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { - if x != nil { - return x.AddPath - } - return nil +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +type BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 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. + // default = 100 + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` } -func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities - } - return nil +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { - if x != nil { - return x.Extcommunities +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} + +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[129] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { - if x != nil { - return x.TunnelTlvs - } - return nil +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{129} } -func (x *BgpSrteV6Policy) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } - return "" + return 0 } -func (x *BgpSrteV6Policy) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return false + return 0 } -// Configuration for BGP SRTE Tunnel TLV. -type BgpSrteV6TunnelTlv struct { +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type BgpExtendedCommunityNonTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` - // Description missing in models - ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` - // Description missing in models - BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` - // Description missing in models - PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` - // Description missing in models - PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` - // Description missing in models - PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` - // Description missing in models - ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // default = Choice.Enum.link_bandwidth_subtype + Choice *BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` - // 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. - // default = True - Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` + LinkBandwidthSubtype *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3" json:"link_bandwidth_subtype,omitempty"` } -func (x *BgpSrteV6TunnelTlv) Reset() { - *x = BgpSrteV6TunnelTlv{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[128] + mi := &file_otg_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6TunnelTlv) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6TunnelTlv) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} -func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[128] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -34978,130 +35202,200 @@ func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. -func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{128} +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{130} } -func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { - if x != nil { - return x.RemoteEndpointSubTlv +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetChoice() BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified } -func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { if x != nil { - return x.ColorSubTlv + return x.LinkBandwidthSubtype } return nil } -func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { - if x != nil { - return x.BindingSubTlv - } - return nil -} +// Add a custom Extended Community with a combination of types , sub-types and values +// not explicitly specified above or not defined yet. +type BgpExtendedCommunityCustomType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { - if x != nil { - return x.PreferenceSubTlv - } - return nil + // The type to be set in the Extended Community attribute. Accepts hexadecimal input + // upto ff . + // default = 00 + CommunityType *string `protobuf:"bytes,1,opt,name=community_type,json=communityType,proto3,oneof" json:"community_type,omitempty"` + // 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. + // default = 00 + CommunitySubtype *string `protobuf:"bytes,2,opt,name=community_subtype,json=communitySubtype,proto3,oneof" json:"community_subtype,omitempty"` + // 6 byte hex value to be carried in the last 6 bytes of the Extended Community. Accepts + // hexadecimal input upto ffffffffffff. + // default = 000000000000 + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { - if x != nil { - return x.PolicyPrioritySubTlv +func (x *BgpExtendedCommunityCustomType) Reset() { + *x = BgpExtendedCommunityCustomType{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { - if x != nil { - return x.PolicyNameSubTlv - } - return nil +func (x *BgpExtendedCommunityCustomType) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { - if x != nil { - return x.ExplicitNullLabelPolicySubTlv - } - return nil -} +func (*BgpExtendedCommunityCustomType) ProtoMessage() {} -func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { - if x != nil { - return x.SegmentLists +func (x *BgpExtendedCommunityCustomType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[131] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpSrteV6TunnelTlv) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +// Deprecated: Use BgpExtendedCommunityCustomType.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityCustomType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{131} +} + +func (x *BgpExtendedCommunityCustomType) GetCommunityType() string { + if x != nil && x.CommunityType != nil { + return *x.CommunityType } return "" } -func (x *BgpSrteV6TunnelTlv) GetActive() bool { - if x != nil && x.Active != nil { - return *x.Active +func (x *BgpExtendedCommunityCustomType) GetCommunitySubtype() string { + if x != nil && x.CommunitySubtype != nil { + return *x.CommunitySubtype } - return false + return "" } -// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by -// a BGP speaker to indicate its ability to preserve its forwarding state during BGP -// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent -// between BGP peers. After a BGP session has been established, and the initial routing -// update has been completed, an End-of-RIB (Routing Information Base) marker is sent -// in an UPDATE message to convey information about routing convergence. -type BgpGracefulRestart struct { +func (x *BgpExtendedCommunityCustomType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// Emulated BGPv6 route range. +type BgpV6RouteRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. - // default = False - EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` - // This is the estimated duration (in seconds) it will take for the BGP session to be - // re-established after a restart. This can be used to speed up routing convergence - // by its peer in case the BGP speaker does not come back after a restart. - // default = 45 - RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` - // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability - // will be advertised. - // This capability MUST be advertised in conjunction with the Graceful Restart - // capability. - // default = False - EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` - // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) - // may be retained. This is a three byte field and is applicable - // only if 'enable_llgr' is set to 'true'. - // default = 10 - StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` + // A list of group of IPv6 route addresses. + Addresses []*V6RouteAddress `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // Specify the NextHop in MP REACH NLRI. The mode for setting the IP address of the + // NextHop in the MP REACH NLRI can be one of the following: + // Local IP: Automatically fills the Nexthop with the Local IP of the BGP + // peer. + // If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // Manual: Override the Nexthop with any arbitrary IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpV6RouteRange_NextHopMode_Enum `protobuf:"varint,2,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpV6RouteRange_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // If the Nexthop Mode is Manual, it sets the type of the NextHop IP address. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpV6RouteRange_NextHopAddressType_Enum `protobuf:"varint,3,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpV6RouteRange_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv4. If BGP peer is of type IPv6, Nexthop Encoding capability should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,4,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode is manual and the Nexthop type + // is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,5,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,10,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Deprecated: This property is deprecated in favor of property extended_communities + // + // Deprecated: This property is deprecated in favor of property extended_communities + // + // 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. Note evpn type is defined mainly for use with evpn + // route updates and not for IPv4 and IPv6 route updates. + ExtCommunities []*BgpExtCommunity `protobuf:"bytes,11,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // 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 eight byte value. It + // is divided into two main parts. The first two bytes of the community encode a type + // and sub-type fields and the last six 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. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,12,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` } -func (x *BgpGracefulRestart) Reset() { - *x = BgpGracefulRestart{} +func (x *BgpV6RouteRange) Reset() { + *x = BgpV6RouteRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[129] + mi := &file_otg_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpGracefulRestart) String() string { +func (x *BgpV6RouteRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpGracefulRestart) ProtoMessage() {} +func (*BgpV6RouteRange) ProtoMessage() {} -func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[129] +func (x *BgpV6RouteRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35112,137 +35406,200 @@ func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. -func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{129} +// Deprecated: Use BgpV6RouteRange.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132} } -func (x *BgpGracefulRestart) GetEnableGr() bool { - if x != nil && x.EnableGr != nil { - return *x.EnableGr +func (x *BgpV6RouteRange) GetAddresses() []*V6RouteAddress { + if x != nil { + return x.Addresses } - return false + return nil } -func (x *BgpGracefulRestart) GetRestartTime() uint32 { - if x != nil && x.RestartTime != nil { - return *x.RestartTime +func (x *BgpV6RouteRange) GetNextHopMode() BgpV6RouteRange_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return 0 + return BgpV6RouteRange_NextHopMode_unspecified } -func (x *BgpGracefulRestart) GetEnableLlgr() bool { - if x != nil && x.EnableLlgr != nil { - return *x.EnableLlgr +func (x *BgpV6RouteRange) GetNextHopAddressType() BgpV6RouteRange_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType } - return false + return BgpV6RouteRange_NextHopAddressType_unspecified } -func (x *BgpGracefulRestart) GetStaleTime() uint32 { - if x != nil && x.StaleTime != nil { - return *x.StaleTime +func (x *BgpV6RouteRange) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return 0 + return "" } -// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the -// order given in the input to the peer after the BGP session is established. -type BgpUpdateReplay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.structured_pdus - Choice *BgpUpdateReplay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpUpdateReplay_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - StructuredPdus *BgpStructuredPdus `protobuf:"bytes,2,opt,name=structured_pdus,json=structuredPdus,proto3" json:"structured_pdus,omitempty"` - // Description missing in models - RawBytes *BgpRawBytes `protobuf:"bytes,3,opt,name=raw_bytes,json=rawBytes,proto3" json:"raw_bytes,omitempty"` +func (x *BgpV6RouteRange) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address + } + return "" } -func (x *BgpUpdateReplay) Reset() { - *x = BgpUpdateReplay{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6RouteRange) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } + return nil } -func (x *BgpUpdateReplay) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6RouteRange) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil } -func (*BgpUpdateReplay) ProtoMessage() {} - -func (x *BgpUpdateReplay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6RouteRange) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpUpdateReplay.ProtoReflect.Descriptor instead. -func (*BgpUpdateReplay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{130} +func (x *BgpV6RouteRange) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath + } + return nil } -func (x *BgpUpdateReplay) GetChoice() BgpUpdateReplay_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpV6RouteRange) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return BgpUpdateReplay_Choice_unspecified + return "" } -func (x *BgpUpdateReplay) GetStructuredPdus() *BgpStructuredPdus { +func (x *BgpV6RouteRange) GetExtCommunities() []*BgpExtCommunity { if x != nil { - return x.StructuredPdus + return x.ExtCommunities } return nil } -func (x *BgpUpdateReplay) GetRawBytes() *BgpRawBytes { +func (x *BgpV6RouteRange) GetExtendedCommunities() []*BgpExtendedCommunity { if x != nil { - return x.RawBytes + return x.ExtendedCommunities } return nil } -// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the -// order given in the input to the peer after the BGP session is established. -type BgpRawBytes struct { +// Configuration for BGP Segment Routing Traffic Engineering(SRTE) +// policy. +type BgpSrteV4Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Array of ordered BGP Updates ( including both Advertise and Withdraws ) to be sent - // in the order given in the input to the peer after the BGP session is established. - Updates []*BgpOneUpdateReplay `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"` + // 4-octet value uniquely identifying the policy in the context of (color, endpoint) + // tuple. It is used by the SR Policy originator to make unique (from an NLRI perspective) + // both for multiple candidate paths of the same SR Policy as well as candidate paths + // of different SR Policies (i.e. with different segment list) with the same Color + // and Endpoint but meant for different head-ends. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Policy color is used to match the color of the destination prefixes to steer traffic + // into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g. an anycast address). It is selected + // on the basis of the SR Policy type (AFI). + // required = true + Ipv4Endpoint *string `protobuf:"bytes,3,opt,name=ipv4_endpoint,json=ipv4Endpoint,proto3,oneof" json:"ipv4_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV4Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV4Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv4 + NextHopAddressType *BgpSrteV4Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV4Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the next hop if the Nexthop type 'next_hop_mode' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, + // Nexthop Encoding capability extended_next_hop_encoding should be enabled. + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // Optional Community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // List Tunnel Encapsulation Attributes. + TunnelTlvs []*BgpSrteV4TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpRawBytes) Reset() { - *x = BgpRawBytes{} +func (x *BgpSrteV4Policy) Reset() { + *x = BgpSrteV4Policy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[131] + mi := &file_otg_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRawBytes) String() string { +func (x *BgpSrteV4Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRawBytes) ProtoMessage() {} +func (*BgpSrteV4Policy) ProtoMessage() {} -func (x *BgpRawBytes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[131] +func (x *BgpSrteV4Policy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35253,160 +35610,152 @@ func (x *BgpRawBytes) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpRawBytes.ProtoReflect.Descriptor instead. -func (*BgpRawBytes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{131} +// Deprecated: Use BgpSrteV4Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133} } -func (x *BgpRawBytes) GetUpdates() []*BgpOneUpdateReplay { - if x != nil { - return x.Updates +func (x *BgpSrteV4Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return nil -} - -// Specification of one BGP Update to be sent to the BGP peer. -type BgpOneUpdateReplay struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Minimum time interval in milliseconds from previous Update from the sequence of BGP - // Updates to be replayed. - // default = 0 - TimeGap *uint32 `protobuf:"varint,1,opt,name=time_gap,json=timeGap,proto3,oneof" json:"time_gap,omitempty"` - // Bytes specified in hex format to be sent to peer after the BGP Update Header. The - // Update Header will always have the initial 16 bytes containing Marker bytes, 2 bytes - // containing the Length and 1 byte containing the Type.The string MUST contain sequence - // of valid hex bytes. The bytes specified in hex format should be appended to the Update - // message to be sent to the peer after the fixed 19 bytes described above. This byte - // stream can be of any length from 1 to 4077 bytes.The value 4077 is derived from - // the maximum length allowed for a BGP message in RFC4271 which is 4096 minus mandatory - // 19 bytes described above. In the imported byte stream, one byte is represented as - // string of 2 characters, for example 2 character string (0x)AB represents value of - // a single byte. So the maximum length of this attribute is 8154 (4077 * 2 hex characters - // per byte). - // required = true - UpdateBytes *string `protobuf:"bytes,2,opt,name=update_bytes,json=updateBytes,proto3,oneof" json:"update_bytes,omitempty"` + return 0 } -func (x *BgpOneUpdateReplay) Reset() { - *x = BgpOneUpdateReplay{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } + return 0 } -func (x *BgpOneUpdateReplay) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV4Policy) GetIpv4Endpoint() string { + if x != nil && x.Ipv4Endpoint != nil { + return *x.Ipv4Endpoint + } + return "" } -func (*BgpOneUpdateReplay) ProtoMessage() {} - -func (x *BgpOneUpdateReplay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4Policy) GetNextHopMode() BgpSrteV4Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return mi.MessageOf(x) + return BgpSrteV4Policy_NextHopMode_unspecified } -// Deprecated: Use BgpOneUpdateReplay.ProtoReflect.Descriptor instead. -func (*BgpOneUpdateReplay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{132} +func (x *BgpSrteV4Policy) GetNextHopAddressType() BgpSrteV4Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType + } + return BgpSrteV4Policy_NextHopAddressType_unspecified } -func (x *BgpOneUpdateReplay) GetTimeGap() uint32 { - if x != nil && x.TimeGap != nil { - return *x.TimeGap +func (x *BgpSrteV4Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return 0 + return "" } -func (x *BgpOneUpdateReplay) GetUpdateBytes() string { - if x != nil && x.UpdateBytes != nil { - return *x.UpdateBytes +func (x *BgpSrteV4Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } return "" } -// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the -// order given in the input to the peer after the BGP session is established. -type BgpStructuredPdus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Array of ordered BGP Updates ( including both Advertise and Withdraws ) to be sent - // in the order given in the input to the peer after the BGP session is established. - Updates []*BgpOneStructuredUpdateReplay `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"` +func (x *BgpSrteV4Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (x *BgpStructuredPdus) Reset() { - *x = BgpStructuredPdus{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV4Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath } + return nil } -func (x *BgpStructuredPdus) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV4Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil } -func (*BgpStructuredPdus) ProtoMessage() {} - -func (x *BgpStructuredPdus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV4Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpStructuredPdus.ProtoReflect.Descriptor instead. -func (*BgpStructuredPdus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{133} +func (x *BgpSrteV4Policy) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities + } + return nil } -func (x *BgpStructuredPdus) GetUpdates() []*BgpOneStructuredUpdateReplay { +func (x *BgpSrteV4Policy) GetTunnelTlvs() []*BgpSrteV4TunnelTlv { if x != nil { - return x.Updates + return x.TunnelTlvs } return nil } -// One structured BGP Update. -type BgpOneStructuredUpdateReplay struct { +func (x *BgpSrteV4Policy) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *BgpSrteV4Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV4TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Minimum time interval in milliseconds from previous Update from the sequence of BGP - // Updates to be replayed. - // default = 0 - TimeGap *uint32 `protobuf:"varint,1,opt,name=time_gap,json=timeGap,proto3,oneof" json:"time_gap,omitempty"` - // Attributes carried in the Update packet alongwith the reach/unreach prefixes. - PathAttributes *BgpAttributes `protobuf:"bytes,2,opt,name=path_attributes,json=pathAttributes,proto3" json:"path_attributes,omitempty"` - // The IPv4 prefixes to be included in the traditional UNREACH_NLRI. - TraditionalUnreachNlris []*BgpOneTraditionalNlriPrefix `protobuf:"bytes,3,rep,name=traditional_unreach_nlris,json=traditionalUnreachNlris,proto3" json:"traditional_unreach_nlris,omitempty"` - // The IPv4 prefixes to be included in the traditional REACH_NLRI. - TraditionalReachNlris []*BgpOneTraditionalNlriPrefix `protobuf:"bytes,4,rep,name=traditional_reach_nlris,json=traditionalReachNlris,proto3" json:"traditional_reach_nlris,omitempty"` + // Description missing in models + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` + // Description missing in models + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` + // Description missing in models + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` + // Description missing in models + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` + // Description missing in models + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` + // Description missing in models + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` + // Description missing in models + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpOneStructuredUpdateReplay) Reset() { - *x = BgpOneStructuredUpdateReplay{} +func (x *BgpSrteV4TunnelTlv) Reset() { + *x = BgpSrteV4TunnelTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35414,13 +35763,13 @@ func (x *BgpOneStructuredUpdateReplay) Reset() { } } -func (x *BgpOneStructuredUpdateReplay) String() string { +func (x *BgpSrteV4TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpOneStructuredUpdateReplay) ProtoMessage() {} +func (*BgpSrteV4TunnelTlv) ProtoMessage() {} -func (x *BgpOneStructuredUpdateReplay) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV4TunnelTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35432,61 +35781,103 @@ func (x *BgpOneStructuredUpdateReplay) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpOneStructuredUpdateReplay.ProtoReflect.Descriptor instead. -func (*BgpOneStructuredUpdateReplay) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteV4TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV4TunnelTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{134} } -func (x *BgpOneStructuredUpdateReplay) GetTimeGap() uint32 { - if x != nil && x.TimeGap != nil { - return *x.TimeGap +func (x *BgpSrteV4TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { + if x != nil { + return x.RemoteEndpointSubTlv } - return 0 + return nil } -func (x *BgpOneStructuredUpdateReplay) GetPathAttributes() *BgpAttributes { +func (x *BgpSrteV4TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { if x != nil { - return x.PathAttributes + return x.ColorSubTlv } return nil } -func (x *BgpOneStructuredUpdateReplay) GetTraditionalUnreachNlris() []*BgpOneTraditionalNlriPrefix { +func (x *BgpSrteV4TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.TraditionalUnreachNlris + return x.BindingSubTlv } return nil } -func (x *BgpOneStructuredUpdateReplay) GetTraditionalReachNlris() []*BgpOneTraditionalNlriPrefix { +func (x *BgpSrteV4TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { if x != nil { - return x.TraditionalReachNlris + return x.PreferenceSubTlv } return nil } -// TRADITIONAL_NLRI is an optional part of the the BGP Update which can carry only IPv4 -// prefix information as defined in https://www.rfc-editor.org/rfc/rfc4271.html#section-4.3 -// -// and extended by https://datatracker.ietf.org/doc/html/rfc7911#section-3 to carry -// additional Path Id information per prefix. -type BgpOneTraditionalNlriPrefix struct { +func (x *BgpSrteV4TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { + if x != nil { + return x.PolicyPrioritySubTlv + } + return nil +} + +func (x *BgpSrteV4TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { + if x != nil { + return x.PolicyNameSubTlv + } + return nil +} + +func (x *BgpSrteV4TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { + if x != nil { + return x.ExplicitNullLabelPolicySubTlv + } + return nil +} + +func (x *BgpSrteV4TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { + if x != nil { + return x.SegmentLists + } + return nil +} + +func (x *BgpSrteV4TunnelTlv) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *BgpSrteV4TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// Configuration for the BGP remote endpoint sub TLV. +type BgpSrteRemoteEndpointSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 address of the network. + // Autonomous system (AS) number + // default = 0 + AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Determines the address type + // default = AddressFamily.Enum.ipv4 + AddressFamily *BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum `protobuf:"varint,2,opt,name=address_family,json=addressFamily,proto3,enum=otg.BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum,oneof" json:"address_family,omitempty"` + // The IPv4 address of the Remote Endpoint. // default = 0.0.0.0 - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The IPv4 network prefix length to be applied to the address. - // default = 24 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // Description missing in models - PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` + Ipv4Address *string `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The IPv6 address of the Remote Endpoint. + // default = ::0 + Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` } -func (x *BgpOneTraditionalNlriPrefix) Reset() { - *x = BgpOneTraditionalNlriPrefix{} +func (x *BgpSrteRemoteEndpointSubTlv) Reset() { + *x = BgpSrteRemoteEndpointSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35494,13 +35885,13 @@ func (x *BgpOneTraditionalNlriPrefix) Reset() { } } -func (x *BgpOneTraditionalNlriPrefix) String() string { +func (x *BgpSrteRemoteEndpointSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpOneTraditionalNlriPrefix) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv) ProtoMessage() {} -func (x *BgpOneTraditionalNlriPrefix) ProtoReflect() protoreflect.Message { +func (x *BgpSrteRemoteEndpointSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35512,50 +35903,55 @@ func (x *BgpOneTraditionalNlriPrefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpOneTraditionalNlriPrefix.ProtoReflect.Descriptor instead. -func (*BgpOneTraditionalNlriPrefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteRemoteEndpointSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{135} } -func (x *BgpOneTraditionalNlriPrefix) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpSrteRemoteEndpointSubTlv) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return "" + return 0 } -func (x *BgpOneTraditionalNlriPrefix) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *BgpSrteRemoteEndpointSubTlv) GetAddressFamily() BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum { + if x != nil && x.AddressFamily != nil { + return *x.AddressFamily } - return 0 + return BgpSrteRemoteEndpointSubTlv_AddressFamily_unspecified } -func (x *BgpOneTraditionalNlriPrefix) GetPathId() *BgpNLRIPrefixPathId { - if x != nil { - return x.PathId +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return nil + return "" } -// One IPv4 NLRI Prefix. -type BgpOneIpv4NLRIPrefix struct { +func (x *BgpSrteRemoteEndpointSubTlv) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address + } + return "" +} + +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 address of the network. - // default = 0.0.0.0 - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The IPv4 network prefix length to be applied to the address. - // default = 24 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // Description missing in models - PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` + // Six octet values. Example: 000000000064 for color value 100. + Color *string `protobuf:"bytes,1,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *BgpOneIpv4NLRIPrefix) Reset() { - *x = BgpOneIpv4NLRIPrefix{} +func (x *BgpSrteColorSubTlv) Reset() { + *x = BgpSrteColorSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35563,13 +35959,13 @@ func (x *BgpOneIpv4NLRIPrefix) Reset() { } } -func (x *BgpOneIpv4NLRIPrefix) String() string { +func (x *BgpSrteColorSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpOneIpv4NLRIPrefix) ProtoMessage() {} +func (*BgpSrteColorSubTlv) ProtoMessage() {} -func (x *BgpOneIpv4NLRIPrefix) ProtoReflect() protoreflect.Message { +func (x *BgpSrteColorSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35581,50 +35977,43 @@ func (x *BgpOneIpv4NLRIPrefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpOneIpv4NLRIPrefix.ProtoReflect.Descriptor instead. -func (*BgpOneIpv4NLRIPrefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteColorSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteColorSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{136} } -func (x *BgpOneIpv4NLRIPrefix) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpSrteColorSubTlv) GetColor() string { + if x != nil && x.Color != nil { + return *x.Color } return "" } -func (x *BgpOneIpv4NLRIPrefix) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix - } - return 0 -} - -func (x *BgpOneIpv4NLRIPrefix) GetPathId() *BgpNLRIPrefixPathId { - if x != nil { - return x.PathId - } - return nil -} - -// One IPv6 NLRI Prefix. -type BgpOneIpv6NLRIPrefix struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv6 address of the network. - // default = 0::0 - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The IPv6 network prefix length to be applied to the address. - // default = 64 - Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // Description missing in models - PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` + // Type of the binding SID. Supported types are No Binding SID or Four Octets Sid or + // IPv6 SID. + // default = BindingSidType.Enum.no_binding + BindingSidType *BgpSrteBindingSubTlv_BindingSidType_Enum `protobuf:"varint,1,opt,name=binding_sid_type,json=bindingSidType,proto3,enum=otg.BgpSrteBindingSubTlv_BindingSidType_Enum,oneof" json:"binding_sid_type,omitempty"` + // Binding SID is encoded in 4 octets. + FourOctetSid *uint32 `protobuf:"varint,2,opt,name=four_octet_sid,json=fourOctetSid,proto3,oneof" json:"four_octet_sid,omitempty"` + // IPv6 SID value. + Ipv6Sid *string `protobuf:"bytes,3,opt,name=ipv6_sid,json=ipv6Sid,proto3,oneof" json:"ipv6_sid,omitempty"` + // S-Flag encodes the Specified-BSID-only behavior. + // default = False + SFlag *bool `protobuf:"varint,4,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // I-Flag encodes the Drop Upon Invalid behavior. + // default = False + IFlag *bool `protobuf:"varint,5,opt,name=i_flag,json=iFlag,proto3,oneof" json:"i_flag,omitempty"` } -func (x *BgpOneIpv6NLRIPrefix) Reset() { - *x = BgpOneIpv6NLRIPrefix{} +func (x *BgpSrteBindingSubTlv) Reset() { + *x = BgpSrteBindingSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35632,13 +36021,13 @@ func (x *BgpOneIpv6NLRIPrefix) Reset() { } } -func (x *BgpOneIpv6NLRIPrefix) String() string { +func (x *BgpSrteBindingSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpOneIpv6NLRIPrefix) ProtoMessage() {} +func (*BgpSrteBindingSubTlv) ProtoMessage() {} -func (x *BgpOneIpv6NLRIPrefix) ProtoReflect() protoreflect.Message { +func (x *BgpSrteBindingSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35650,45 +36039,59 @@ func (x *BgpOneIpv6NLRIPrefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpOneIpv6NLRIPrefix.ProtoReflect.Descriptor instead. -func (*BgpOneIpv6NLRIPrefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteBindingSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{137} } -func (x *BgpOneIpv6NLRIPrefix) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpSrteBindingSubTlv) GetBindingSidType() BgpSrteBindingSubTlv_BindingSidType_Enum { + if x != nil && x.BindingSidType != nil { + return *x.BindingSidType } - return "" + return BgpSrteBindingSubTlv_BindingSidType_unspecified } -func (x *BgpOneIpv6NLRIPrefix) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *BgpSrteBindingSubTlv) GetFourOctetSid() uint32 { + if x != nil && x.FourOctetSid != nil { + return *x.FourOctetSid } return 0 } -func (x *BgpOneIpv6NLRIPrefix) GetPathId() *BgpNLRIPrefixPathId { - if x != nil { - return x.PathId +func (x *BgpSrteBindingSubTlv) GetIpv6Sid() string { + if x != nil && x.Ipv6Sid != nil { + return *x.Ipv6Sid } - return nil + return "" } -// Optional field in the NLRI carrying Path Id of the prefix. -type BgpNLRIPrefixPathId struct { +func (x *BgpSrteBindingSubTlv) GetSFlag() bool { + if x != nil && x.SFlag != nil { + return *x.SFlag + } + return false +} + +func (x *BgpSrteBindingSubTlv) GetIFlag() bool { + if x != nil && x.IFlag != nil { + return *x.IFlag + } + return false +} + +// Configuration for BGP preference sub TLV of the SR Policy candidate path. +type BgpSrtePreferenceSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value of the optional Path ID of the prefix. - // default = 1 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The preference value of the SR Policy candidate path. + // default = 0 + Preference *uint32 `protobuf:"varint,1,opt,name=preference,proto3,oneof" json:"preference,omitempty"` } -func (x *BgpNLRIPrefixPathId) Reset() { - *x = BgpNLRIPrefixPathId{} +func (x *BgpSrtePreferenceSubTlv) Reset() { + *x = BgpSrtePreferenceSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35696,13 +36099,13 @@ func (x *BgpNLRIPrefixPathId) Reset() { } } -func (x *BgpNLRIPrefixPathId) String() string { +func (x *BgpSrtePreferenceSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpNLRIPrefixPathId) ProtoMessage() {} +func (*BgpSrtePreferenceSubTlv) ProtoMessage() {} -func (x *BgpNLRIPrefixPathId) ProtoReflect() protoreflect.Message { +func (x *BgpSrtePreferenceSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35714,46 +36117,31 @@ func (x *BgpNLRIPrefixPathId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpNLRIPrefixPathId.ProtoReflect.Descriptor instead. -func (*BgpNLRIPrefixPathId) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrtePreferenceSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePreferenceSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{138} } -func (x *BgpNLRIPrefixPathId) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpSrtePreferenceSubTlv) GetPreference() uint32 { + if x != nil && x.Preference != nil { + return *x.Preference } return 0 } -// IPv4 Segment Routing Policy NLRI Prefix. -type BgpIpv4SrPolicyNLRIPrefix struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The 4-octet value uniquely identifying the policy in the context of - // tuple. The distinguisher has no semantic value and is solely used by the SR Policy - // originator to make unique (from an NLRI perspective) both for multiple candidate - // paths of the same SR Policy as well as candidate paths of different SR Policies - // (i.e. with different segment lists) with the same Color and Endpoint but meant for - // different headends. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // 4-octet value identifying (with the endpoint) the policy. The color is used to match - // the color of the destination prefixes to steer traffic into the SR Policy as specified - // in section 8 of RFC9256. - // default = 1 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Identifies the endpoint of a policy. The Endpoint is an IPv4 address and can be - // either a unicast or an unspecified address (0.0.0.0) as specified in section 2.1 - // of RFC9256. - // default = 0.0.0.0 - Endpoint *string `protobuf:"bytes,3,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` + // One-octet Priority value. + PolicyPriority *uint32 `protobuf:"varint,1,opt,name=policy_priority,json=policyPriority,proto3,oneof" json:"policy_priority,omitempty"` } -func (x *BgpIpv4SrPolicyNLRIPrefix) Reset() { - *x = BgpIpv4SrPolicyNLRIPrefix{} +func (x *BgpSrtePolicyPrioritySubTlv) Reset() { + *x = BgpSrtePolicyPrioritySubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35761,13 +36149,13 @@ func (x *BgpIpv4SrPolicyNLRIPrefix) Reset() { } } -func (x *BgpIpv4SrPolicyNLRIPrefix) String() string { +func (x *BgpSrtePolicyPrioritySubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpIpv4SrPolicyNLRIPrefix) ProtoMessage() {} +func (*BgpSrtePolicyPrioritySubTlv) ProtoMessage() {} -func (x *BgpIpv4SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { +func (x *BgpSrtePolicyPrioritySubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35779,61 +36167,32 @@ func (x *BgpIpv4SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpIpv4SrPolicyNLRIPrefix.ProtoReflect.Descriptor instead. -func (*BgpIpv4SrPolicyNLRIPrefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrtePolicyPrioritySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyPrioritySubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{139} } -func (x *BgpIpv4SrPolicyNLRIPrefix) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher - } - return 0 -} - -func (x *BgpIpv4SrPolicyNLRIPrefix) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *BgpSrtePolicyPrioritySubTlv) GetPolicyPriority() uint32 { + if x != nil && x.PolicyPriority != nil { + return *x.PolicyPriority } return 0 } -func (x *BgpIpv4SrPolicyNLRIPrefix) GetEndpoint() string { - if x != nil && x.Endpoint != nil { - return *x.Endpoint - } - return "" -} - -// One IPv6 Segment Routing Policy NLRI Prefix. -type BgpIpv6SrPolicyNLRIPrefix struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The 4-octet value uniquely identifying the policy in the context of - // tuple. The distinguisher has no semantic value and is solely used by the SR Policy - // originator to make unique (from an NLRI perspective) both for multiple candidate - // paths of the same SR Policy as well as candidate paths of different SR Policies - // (i.e. with different segment lists) with the same Color and Endpoint but meant for - // different headends. - // default = 1 - Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` - // 4-octet value identifying (with the endpoint) the policy. The color is used to match - // the color of the destination prefixes to steer traffic into the SR Policy as specified - // in section 8 of RFC9256. - // default = 1 - Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` - // Identifies the endpoint of a policy. The Endpoint may represent a single node or - // a set of nodes (e.g., an anycast address). The Endpoint is an IPv6 address and can - // be either a unicast or an unspecified address (0::0) as specified in section 2.1 - // of RFC9256. - // default = 0::0 - Endpoint *string `protobuf:"bytes,3,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` + // Symbolic name for the policy that should be a string of printable ASCII characters, + // without a NULL terminator. + PolicyName *string `protobuf:"bytes,1,opt,name=policy_name,json=policyName,proto3,oneof" json:"policy_name,omitempty"` } -func (x *BgpIpv6SrPolicyNLRIPrefix) Reset() { - *x = BgpIpv6SrPolicyNLRIPrefix{} +func (x *BgpSrtePolicyNameSubTlv) Reset() { + *x = BgpSrtePolicyNameSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35841,13 +36200,13 @@ func (x *BgpIpv6SrPolicyNLRIPrefix) Reset() { } } -func (x *BgpIpv6SrPolicyNLRIPrefix) String() string { +func (x *BgpSrtePolicyNameSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpIpv6SrPolicyNLRIPrefix) ProtoMessage() {} +func (*BgpSrtePolicyNameSubTlv) ProtoMessage() {} -func (x *BgpIpv6SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { +func (x *BgpSrtePolicyNameSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -35859,112 +36218,109 @@ func (x *BgpIpv6SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpIpv6SrPolicyNLRIPrefix.ProtoReflect.Descriptor instead. -func (*BgpIpv6SrPolicyNLRIPrefix) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrtePolicyNameSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrtePolicyNameSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{140} } -func (x *BgpIpv6SrPolicyNLRIPrefix) GetDistinguisher() uint32 { - if x != nil && x.Distinguisher != nil { - return *x.Distinguisher +func (x *BgpSrtePolicyNameSubTlv) GetPolicyName() string { + if x != nil && x.PolicyName != nil { + return *x.PolicyName } - return 0 + return "" } -func (x *BgpIpv6SrPolicyNLRIPrefix) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color - } - return 0 +// Configuration for BGP explicit null label policy sub TLV settings. +type BgpSrteExplicitNullLabelPolicySubTlv struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value of the explicit null label policy + // default = ExplicitNullLabelPolicy.Enum.do_not_push_enlp + ExplicitNullLabelPolicy *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum `protobuf:"varint,1,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3,enum=otg.BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum,oneof" json:"explicit_null_label_policy,omitempty"` } -func (x *BgpIpv6SrPolicyNLRIPrefix) GetEndpoint() string { - if x != nil && x.Endpoint != nil { - return *x.Endpoint +func (x *BgpSrteExplicitNullLabelPolicySubTlv) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -// Attributes carried in the Update packet alongwith the reach/unreach prefixes. -type BgpAttributes struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpSrteExplicitNullLabelPolicySubTlv) String() string { + return protoimpl.X.MessageStringOf(x) +} - // Any attributes not present in the list of configurable attributes should be added - // to the list of unknown attributes. - OtherAttributes []*BgpAttributesOtherAttribute `protobuf:"bytes,1,rep,name=other_attributes,json=otherAttributes,proto3" json:"other_attributes,omitempty"` - // The ORIGIN attribute is a mandatory attribute which can take three values: - // the prefix originates from an interior routing protocol 'igp', it originates from - // 'egp' - // or the origin is 'incomplete',if the prefix is learned through other means. - // - // default = Origin.Enum.incomplete - Origin *BgpAttributes_Origin_Enum `protobuf:"varint,2,opt,name=origin,proto3,enum=otg.BgpAttributes_Origin_Enum,oneof" json:"origin,omitempty"` - // AS_PATH attribute to be included in the Update. - AsPath *BgpAttributesAsPath `protobuf:"bytes,3,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // AS4_PATH attribute to be included in the Update. - As4Path *BgpAttributesAs4Path `protobuf:"bytes,4,opt,name=as4_path,json=as4Path,proto3" json:"as4_path,omitempty"` - // Description missing in models - NextHop *BgpAttributesNextHop `protobuf:"bytes,5,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"` - // Description missing in models - MultiExitDiscriminator *BgpAttributesMultiExitDiscriminator `protobuf:"bytes,6,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3" json:"multi_exit_discriminator,omitempty"` - // Description missing in models - LocalPreference *BgpAttributesLocalPreference `protobuf:"bytes,7,opt,name=local_preference,json=localPreference,proto3" json:"local_preference,omitempty"` - // If enabled, it indicates that the ATOMIC_AGGREGATOR attribute should be included - // in the Update. - // Presence of this attribute Indicates that this route might not be getting sent on - // a fully optimized path - // since some intermediate BGP speaker has aggregated the route. - // - // default = False - IncludeAtomicAggregator *bool `protobuf:"varint,8,opt,name=include_atomic_aggregator,json=includeAtomicAggregator,proto3,oneof" json:"include_atomic_aggregator,omitempty"` - // Description missing in models - Aggregator *BgpAttributesAggregator `protobuf:"bytes,9,opt,name=aggregator,proto3" json:"aggregator,omitempty"` - // Description missing in models - As4Aggregator *BgpAttributesAs4Aggregator `protobuf:"bytes,10,opt,name=as4_aggregator,json=as4Aggregator,proto3" json:"as4_aggregator,omitempty"` - // Description missing in models - Community []*BgpAttributesCommunity `protobuf:"bytes,11,rep,name=community,proto3" json:"community,omitempty"` - // Description missing in models - OriginatorId *BgpAttributesOriginatorId `protobuf:"bytes,12,opt,name=originator_id,json=originatorId,proto3" json:"originator_id,omitempty"` - // When a Route Reflector reflects a route, it prepends the local CLUSTER_ID to the - // CLUSTER_LIST as defined in RFC4456. - ClusterIds []string `protobuf:"bytes,13,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` - // Optional EXTENDED_COMMUNITY attribute settings. - // The EXTENDED_COMMUNITY 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 eight byte value. - // It is divided into two main parts. The first two bytes of the community encode a - // type and sub-type fields and the last six 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. - ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,14,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` - // Description missing in models - TunnelEncapsulation *BgpAttributesTunnelEncapsulation `protobuf:"bytes,15,opt,name=tunnel_encapsulation,json=tunnelEncapsulation,proto3" json:"tunnel_encapsulation,omitempty"` - // Description missing in models - MpReach *BgpAttributesMpReachNlri `protobuf:"bytes,16,opt,name=mp_reach,json=mpReach,proto3" json:"mp_reach,omitempty"` +func (*BgpSrteExplicitNullLabelPolicySubTlv) ProtoMessage() {} + +func (x *BgpSrteExplicitNullLabelPolicySubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[141] + 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 BgpSrteExplicitNullLabelPolicySubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{141} +} + +func (x *BgpSrteExplicitNullLabelPolicySubTlv) GetExplicitNullLabelPolicy() BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum { + if x != nil && x.ExplicitNullLabelPolicy != nil { + return *x.ExplicitNullLabelPolicy + } + return BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_unspecified +} + +// Optional configuration for BGP SR TE Policy segment list. The Segment List sub-TLV +// encodes a single explicit path towards the Endpoint. +type BgpSrteSegmentList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Weight associated with a given path and the sub-TLV is optional. + // default = 0 + Weight *uint32 `protobuf:"varint,1,opt,name=weight,proto3,oneof" json:"weight,omitempty"` // Description missing in models - MpUnreach *BgpAttributesMpUnreachNlri `protobuf:"bytes,17,opt,name=mp_unreach,json=mpUnreach,proto3" json:"mp_unreach,omitempty"` + Segments []*BgpSrteSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,4,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpAttributes) Reset() { - *x = BgpAttributes{} +func (x *BgpSrteSegmentList) Reset() { + *x = BgpSrteSegmentList{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[141] + mi := &file_otg_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributes) String() string { +func (x *BgpSrteSegmentList) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributes) ProtoMessage() {} +func (*BgpSrteSegmentList) ProtoMessage() {} -func (x *BgpAttributes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[141] +func (x *BgpSrteSegmentList) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -35975,175 +36331,260 @@ func (x *BgpAttributes) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributes.ProtoReflect.Descriptor instead. -func (*BgpAttributes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141} +// Deprecated: Use BgpSrteSegmentList.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentList) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{142} } -func (x *BgpAttributes) GetOtherAttributes() []*BgpAttributesOtherAttribute { +func (x *BgpSrteSegmentList) GetWeight() uint32 { + if x != nil && x.Weight != nil { + return *x.Weight + } + return 0 +} + +func (x *BgpSrteSegmentList) GetSegments() []*BgpSrteSegment { if x != nil { - return x.OtherAttributes + return x.Segments } return nil } -func (x *BgpAttributes) GetOrigin() BgpAttributes_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *BgpSrteSegmentList) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return BgpAttributes_Origin_unspecified + return "" } -func (x *BgpAttributes) GetAsPath() *BgpAttributesAsPath { - if x != nil { - return x.AsPath +func (x *BgpSrteSegmentList) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -func (x *BgpAttributes) GetAs4Path() *BgpAttributesAs4Path { - if x != nil { - return x.As4Path +// 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 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specify one of the segment type. + // https://datatracker.ietf.org/doc/html/draft-ietf-idr-segment-routing-te-policy-13 + // Type A: SID only, in the form of MPLS Label. + // Type B: SID only, in the form of IPv6 Address. + // Type C: IPv4 Node Address with optional SID. + // Type D: IPv6 Node Address with optional SID for SR MPLS. + // Type E: IPv4 Address and index with optional SID. + // Type F: IPv4 Local and Remote addresses with optional SID. + // Type G: IPv6 Address and index for local and remote pair with optional + // SID for SR MPLS. + // Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. + // Type I: IPv6 Node Address with optional SID for SRv6. + // Type J: IPv6 Address and index for local and remote pair with optional + // SID for SRv6. + // Type K: IPv6 Local and Remote addresses for SRv6. + // required = true + SegmentType *BgpSrteSegment_SegmentType_Enum `protobuf:"varint,1,opt,name=segment_type,json=segmentType,proto3,enum=otg.BgpSrteSegment_SegmentType_Enum,oneof" json:"segment_type,omitempty"` + // Description missing in models + TypeA *BgpSrteSegmentATypeSubTlv `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3" json:"type_a,omitempty"` + // Description missing in models + TypeB *BgpSrteSegmentBTypeSubTlv `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3" json:"type_b,omitempty"` + // Description missing in models + TypeC *BgpSrteSegmentCTypeSubTlv `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3" json:"type_c,omitempty"` + // Description missing in models + TypeD *BgpSrteSegmentDTypeSubTlv `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3" json:"type_d,omitempty"` + // Description missing in models + TypeE *BgpSrteSegmentETypeSubTlv `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3" json:"type_e,omitempty"` + // Description missing in models + TypeF *BgpSrteSegmentFTypeSubTlv `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3" json:"type_f,omitempty"` + // Description missing in models + TypeG *BgpSrteSegmentGTypeSubTlv `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3" json:"type_g,omitempty"` + // Description missing in models + TypeH *BgpSrteSegmentHTypeSubTlv `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3" json:"type_h,omitempty"` + // Description missing in models + TypeI *BgpSrteSegmentITypeSubTlv `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3" json:"type_i,omitempty"` + // Description missing in models + TypeJ *BgpSrteSegmentJTypeSubTlv `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3" json:"type_j,omitempty"` + // Description missing in models + TypeK *BgpSrteSegmentKTypeSubTlv `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3" json:"type_k,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,13,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,14,opt,name=active,proto3,oneof" json:"active,omitempty"` +} + +func (x *BgpSrteSegment) Reset() { + *x = BgpSrteSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpAttributes) GetNextHop() *BgpAttributesNextHop { - if x != nil { - return x.NextHop +func (x *BgpSrteSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpSrteSegment) ProtoMessage() {} + +func (x *BgpSrteSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[143] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *BgpAttributes) GetMultiExitDiscriminator() *BgpAttributesMultiExitDiscriminator { - if x != nil { - return x.MultiExitDiscriminator +// Deprecated: Use BgpSrteSegment.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{143} +} + +func (x *BgpSrteSegment) GetSegmentType() BgpSrteSegment_SegmentType_Enum { + if x != nil && x.SegmentType != nil { + return *x.SegmentType } - return nil + return BgpSrteSegment_SegmentType_unspecified } -func (x *BgpAttributes) GetLocalPreference() *BgpAttributesLocalPreference { +func (x *BgpSrteSegment) GetTypeA() *BgpSrteSegmentATypeSubTlv { if x != nil { - return x.LocalPreference + return x.TypeA } return nil } -func (x *BgpAttributes) GetIncludeAtomicAggregator() bool { - if x != nil && x.IncludeAtomicAggregator != nil { - return *x.IncludeAtomicAggregator +func (x *BgpSrteSegment) GetTypeB() *BgpSrteSegmentBTypeSubTlv { + if x != nil { + return x.TypeB } - return false + return nil } -func (x *BgpAttributes) GetAggregator() *BgpAttributesAggregator { +func (x *BgpSrteSegment) GetTypeC() *BgpSrteSegmentCTypeSubTlv { if x != nil { - return x.Aggregator + return x.TypeC } return nil } -func (x *BgpAttributes) GetAs4Aggregator() *BgpAttributesAs4Aggregator { +func (x *BgpSrteSegment) GetTypeD() *BgpSrteSegmentDTypeSubTlv { if x != nil { - return x.As4Aggregator + return x.TypeD } return nil } -func (x *BgpAttributes) GetCommunity() []*BgpAttributesCommunity { +func (x *BgpSrteSegment) GetTypeE() *BgpSrteSegmentETypeSubTlv { if x != nil { - return x.Community + return x.TypeE } return nil } -func (x *BgpAttributes) GetOriginatorId() *BgpAttributesOriginatorId { +func (x *BgpSrteSegment) GetTypeF() *BgpSrteSegmentFTypeSubTlv { if x != nil { - return x.OriginatorId + return x.TypeF } return nil } -func (x *BgpAttributes) GetClusterIds() []string { +func (x *BgpSrteSegment) GetTypeG() *BgpSrteSegmentGTypeSubTlv { if x != nil { - return x.ClusterIds + return x.TypeG } return nil } -func (x *BgpAttributes) GetExtendedCommunities() []*BgpExtendedCommunity { +func (x *BgpSrteSegment) GetTypeH() *BgpSrteSegmentHTypeSubTlv { if x != nil { - return x.ExtendedCommunities + return x.TypeH } return nil } -func (x *BgpAttributes) GetTunnelEncapsulation() *BgpAttributesTunnelEncapsulation { +func (x *BgpSrteSegment) GetTypeI() *BgpSrteSegmentITypeSubTlv { if x != nil { - return x.TunnelEncapsulation + return x.TypeI } return nil } -func (x *BgpAttributes) GetMpReach() *BgpAttributesMpReachNlri { +func (x *BgpSrteSegment) GetTypeJ() *BgpSrteSegmentJTypeSubTlv { if x != nil { - return x.MpReach + return x.TypeJ } return nil } -func (x *BgpAttributes) GetMpUnreach() *BgpAttributesMpUnreachNlri { +func (x *BgpSrteSegment) GetTypeK() *BgpSrteSegmentKTypeSubTlv { if x != nil { - return x.MpUnreach + return x.TypeK } return nil } -// One unknown attribute stored as hex bytes. -type BgpAttributesOtherAttribute struct { +func (x *BgpSrteSegment) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *BgpSrteSegment) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// Configuration for SR-MPLS with Label, TC, Bottom-of-Stack and TTL. +type BgpSrteSrMplsSid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Optional flag in the BGP attribute. - // default = False - FlagOptional *bool `protobuf:"varint,1,opt,name=flag_optional,json=flagOptional,proto3,oneof" json:"flag_optional,omitempty"` - // Transitive flag in the BGP attribute. - // default = False - FlagTransitive *bool `protobuf:"varint,2,opt,name=flag_transitive,json=flagTransitive,proto3,oneof" json:"flag_transitive,omitempty"` - // Partial flag in the BGP attribute. - // default = False - FlagPartial *bool `protobuf:"varint,3,opt,name=flag_partial,json=flagPartial,proto3,oneof" json:"flag_partial,omitempty"` - // Extended length flag in the BGP attribute. - // default = False - FlagExtendedLength *bool `protobuf:"varint,4,opt,name=flag_extended_length,json=flagExtendedLength,proto3,oneof" json:"flag_extended_length,omitempty"` - // The value of the Type field in the attribute. - // required = true - Type *uint32 `protobuf:"varint,5,opt,name=type,proto3,oneof" json:"type,omitempty"` - // Contents of the value field ( the contents after the initial two bytes containing - // the Flags and Type field ) of the attribute in hex bytes. - // It includes the contents of length of the extended length field if included. - // required = true - RawValue *string `protobuf:"bytes,6,opt,name=raw_value,json=rawValue,proto3,oneof" json:"raw_value,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,2,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,3,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpAttributesOtherAttribute) Reset() { - *x = BgpAttributesOtherAttribute{} +func (x *BgpSrteSrMplsSid) Reset() { + *x = BgpSrteSrMplsSid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[142] + mi := &file_otg_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesOtherAttribute) String() string { +func (x *BgpSrteSrMplsSid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesOtherAttribute) ProtoMessage() {} +func (*BgpSrteSrMplsSid) ProtoMessage() {} -func (x *BgpAttributesOtherAttribute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[142] +func (x *BgpSrteSrMplsSid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36154,96 +36595,78 @@ func (x *BgpAttributesOtherAttribute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesOtherAttribute.ProtoReflect.Descriptor instead. -func (*BgpAttributesOtherAttribute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{142} -} - -func (x *BgpAttributesOtherAttribute) GetFlagOptional() bool { - if x != nil && x.FlagOptional != nil { - return *x.FlagOptional - } - return false +// Deprecated: Use BgpSrteSrMplsSid.ProtoReflect.Descriptor instead. +func (*BgpSrteSrMplsSid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{144} } -func (x *BgpAttributesOtherAttribute) GetFlagTransitive() bool { - if x != nil && x.FlagTransitive != nil { - return *x.FlagTransitive +func (x *BgpSrteSrMplsSid) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return false + return 0 } -func (x *BgpAttributesOtherAttribute) GetFlagPartial() bool { - if x != nil && x.FlagPartial != nil { - return *x.FlagPartial +func (x *BgpSrteSrMplsSid) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } - return false + return 0 } -func (x *BgpAttributesOtherAttribute) GetFlagExtendedLength() bool { - if x != nil && x.FlagExtendedLength != nil { - return *x.FlagExtendedLength +func (x *BgpSrteSrMplsSid) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } return false } -func (x *BgpAttributesOtherAttribute) GetType() uint32 { - if x != nil && x.Type != nil { - return *x.Type +func (x *BgpSrteSrMplsSid) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -func (x *BgpAttributesOtherAttribute) GetRawValue() string { - if x != nil && x.RawValue != nil { - return *x.RawValue - } - return "" -} - -// The AS_PATH 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. -// There are two modes in which AS numbers can be encoded in the AS Path Segments -// - When the AS Path is being exchanged between old and new BGP speakers or between -// two old BGP speakers , the AS numbers are encoded as 2 byte values. -// - When the AS Path is being exchanged between two new BGP speakers supporting 4 byte -// AS , the AS numbers are encoded as 4 byte values. -type BgpAttributesAsPath struct { +// 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. +type BgpSrteSRv6SIDEndpointBehaviorAndStructure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.four_byte_as_path - Choice *BgpAttributesAsPath_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesAsPath_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - FourByteAsPath *BgpAttributesAsPathFourByteAsPath `protobuf:"bytes,2,opt,name=four_byte_as_path,json=fourByteAsPath,proto3" json:"four_byte_as_path,omitempty"` - // Description missing in models - TwoByteAsPath *BgpAttributesAsPathTwoByteAsPath `protobuf:"bytes,3,opt,name=two_byte_as_path,json=twoByteAsPath,proto3" json:"two_byte_as_path,omitempty"` + // SRv6 SID Locator Block length in bits. + // default = 0 + LbLength *uint32 `protobuf:"varint,1,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` + // SRv6 SID Locator Node length in bits. + // default = 0 + LnLength *uint32 `protobuf:"varint,2,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` + // SRv6 SID Function length in bits. + // default = 0 + FuncLength *uint32 `protobuf:"varint,3,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` + // SRv6 SID Arguments length in bits. + // default = 0 + ArgLength *uint32 `protobuf:"varint,4,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` } -func (x *BgpAttributesAsPath) Reset() { - *x = BgpAttributesAsPath{} +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) Reset() { + *x = BgpSrteSRv6SIDEndpointBehaviorAndStructure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[143] + mi := &file_otg_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesAsPath) String() string { +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAsPath) ProtoMessage() {} +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} -func (x *BgpAttributesAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[143] +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36254,124 +36677,75 @@ func (x *BgpAttributesAsPath) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAsPath.ProtoReflect.Descriptor instead. -func (*BgpAttributesAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143} -} - -func (x *BgpAttributesAsPath) GetChoice() BgpAttributesAsPath_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return BgpAttributesAsPath_Choice_unspecified -} - -func (x *BgpAttributesAsPath) GetFourByteAsPath() *BgpAttributesAsPathFourByteAsPath { - if x != nil { - return x.FourByteAsPath - } - return nil +// Deprecated: Use BgpSrteSRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. +func (*BgpSrteSRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{145} } -func (x *BgpAttributesAsPath) GetTwoByteAsPath() *BgpAttributesAsPathTwoByteAsPath { - if x != nil { - return x.TwoByteAsPath +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { + if x != nil && x.LbLength != nil { + return *x.LbLength } - return nil -} - -// AS Paths with 4 byte AS numbers can be exchanged only if both BGP speakers support -// 4 byte AS number extensions. -type BgpAttributesAsPathFourByteAsPath struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The AS path segments containing 4 byte AS numbers to be added in the AS Path attribute. - // By default, an empty AS path should always be included and for EBGP at minimum the - // local AS number should be present in the AS Path. - Segments []*BgpAttributesFourByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` + return 0 } -func (x *BgpAttributesAsPathFourByteAsPath) Reset() { - *x = BgpAttributesAsPathFourByteAsPath{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[144] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { + if x != nil && x.LnLength != nil { + return *x.LnLength } + return 0 } -func (x *BgpAttributesAsPathFourByteAsPath) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpAttributesAsPathFourByteAsPath) ProtoMessage() {} - -func (x *BgpAttributesAsPathFourByteAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[144] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { + if x != nil && x.FuncLength != nil { + return *x.FuncLength } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpAttributesAsPathFourByteAsPath.ProtoReflect.Descriptor instead. -func (*BgpAttributesAsPathFourByteAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{144} + return 0 } -func (x *BgpAttributesAsPathFourByteAsPath) GetSegments() []*BgpAttributesFourByteAsPathSegment { - if x != nil { - return x.Segments +func (x *BgpSrteSRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { + if x != nil && x.ArgLength != nil { + return *x.ArgLength } - return nil + return 0 } -// Configuration for a single BGP AS path segment containing 4 byte AS numbers. -type BgpAttributesFourByteAsPathSegment struct { +// Type A: SID only, in the form of MPLS Label. +type BgpSrteSegmentATypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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. - // default = Type.Enum.as_seq - Type *BgpAttributesFourByteAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAttributesFourByteAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The 4 byte AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Label value in [0, 2^20 -1]. + Label *uint32 `protobuf:"varint,2,opt,name=label,proto3,oneof" json:"label,omitempty"` + // Traffic class in bits. + Tc *uint32 `protobuf:"varint,3,opt,name=tc,proto3,oneof" json:"tc,omitempty"` + // Bottom-of-Stack bit. + SBit *bool `protobuf:"varint,4,opt,name=s_bit,json=sBit,proto3,oneof" json:"s_bit,omitempty"` + // Time To Live. + Ttl *uint32 `protobuf:"varint,5,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpAttributesFourByteAsPathSegment) Reset() { - *x = BgpAttributesFourByteAsPathSegment{} +func (x *BgpSrteSegmentATypeSubTlv) Reset() { + *x = BgpSrteSegmentATypeSubTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[145] + mi := &file_otg_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesFourByteAsPathSegment) String() string { +func (x *BgpSrteSegmentATypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesFourByteAsPathSegment) ProtoMessage() {} +func (*BgpSrteSegmentATypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesFourByteAsPathSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[145] +func (x *BgpSrteSegmentATypeSubTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -36382,103 +36756,64 @@ func (x *BgpAttributesFourByteAsPathSegment) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesFourByteAsPathSegment.ProtoReflect.Descriptor instead. -func (*BgpAttributesFourByteAsPathSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{145} +// Deprecated: Use BgpSrteSegmentATypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentATypeSubTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{146} } -func (x *BgpAttributesFourByteAsPathSegment) GetType() BgpAttributesFourByteAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *BgpSrteSegmentATypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesFourByteAsPathSegment_Type_unspecified + return "" } -func (x *BgpAttributesFourByteAsPathSegment) GetAsNumbers() []uint32 { - if x != nil { - return x.AsNumbers +func (x *BgpSrteSegmentATypeSubTlv) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return nil -} - -// AS Paths with 2 byte AS numbers is used when any of the two scenarios occur : -// - An old BGP speaker and new BGP speaker are sending BGP Updates to one another. -// - Two old BGP speakers are sending BGP Updates to one another. -type BgpAttributesAsPathTwoByteAsPath struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The AS path segments containing 2 byte AS numbers to be added in the AS Path attribute. - // By default, an empty AS path should always be included and for EBGP the sender's - // AS number should be prepended to the AS Path. - Segments []*BgpAttributesTwoByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` + return 0 } -func (x *BgpAttributesAsPathTwoByteAsPath) Reset() { - *x = BgpAttributesAsPathTwoByteAsPath{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[146] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteSegmentATypeSubTlv) GetTc() uint32 { + if x != nil && x.Tc != nil { + return *x.Tc } + return 0 } -func (x *BgpAttributesAsPathTwoByteAsPath) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpAttributesAsPathTwoByteAsPath) ProtoMessage() {} - -func (x *BgpAttributesAsPathTwoByteAsPath) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[146] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteSegmentATypeSubTlv) GetSBit() bool { + if x != nil && x.SBit != nil { + return *x.SBit } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpAttributesAsPathTwoByteAsPath.ProtoReflect.Descriptor instead. -func (*BgpAttributesAsPathTwoByteAsPath) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{146} + return false } -func (x *BgpAttributesAsPathTwoByteAsPath) GetSegments() []*BgpAttributesTwoByteAsPathSegment { - if x != nil { - return x.Segments +func (x *BgpSrteSegmentATypeSubTlv) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } - return nil + return 0 } -// Configuration for a single BGP AS path segment containing 2 byte AS numbers. -type BgpAttributesTwoByteAsPathSegment struct { +// Type B: SID only, in the form of IPv6 address. +type BgpSrteSegmentBTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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. - // default = Type.Enum.as_seq - Type *BgpAttributesTwoByteAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAttributesTwoByteAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The 2 byte AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SRv6 SID. + // required = true + Srv6Sid *string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpAttributesTwoByteAsPathSegment) Reset() { - *x = BgpAttributesTwoByteAsPathSegment{} +func (x *BgpSrteSegmentBTypeSubTlv) Reset() { + *x = BgpSrteSegmentBTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36486,13 +36821,13 @@ func (x *BgpAttributesTwoByteAsPathSegment) Reset() { } } -func (x *BgpAttributesTwoByteAsPathSegment) String() string { +func (x *BgpSrteSegmentBTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesTwoByteAsPathSegment) ProtoMessage() {} +func (*BgpSrteSegmentBTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesTwoByteAsPathSegment) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentBTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36504,49 +36839,53 @@ func (x *BgpAttributesTwoByteAsPathSegment) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesTwoByteAsPathSegment.ProtoReflect.Descriptor instead. -func (*BgpAttributesTwoByteAsPathSegment) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentBTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentBTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{147} } -func (x *BgpAttributesTwoByteAsPathSegment) GetType() BgpAttributesTwoByteAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *BgpSrteSegmentBTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesTwoByteAsPathSegment_Type_unspecified + return "" } -func (x *BgpAttributesTwoByteAsPathSegment) GetAsNumbers() []uint32 { +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentBTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.AsNumbers + return x.Srv6SidEndpointBehavior } return nil } -// The AS4_PATH 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. -// AS4_PATH is only exchanged in two scenarios: -// - When an old BGP speaker has to forward a received AS4_PATH containing 4 byte AS -// numbers to new BGP speaker. -// - When a new BGP speaker is connected to an old BGP speaker and has to propagate -// 4 byte AS numbers via the old BGP speaker. -// Its usage is described in RFC4893. -type BgpAttributesAs4Path struct { +// Type C: IPv4 Node Address with optional SID. +type BgpSrteSegmentCTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The AS path segments containing 4 byte AS numbers to be added in the AS4_PATH attribute. - Segments []*BgpAttributesFourByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesAs4Path) Reset() { - *x = BgpAttributesAs4Path{} +func (x *BgpSrteSegmentCTypeSubTlv) Reset() { + *x = BgpSrteSegmentCTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36554,13 +36893,13 @@ func (x *BgpAttributesAs4Path) Reset() { } } -func (x *BgpAttributesAs4Path) String() string { +func (x *BgpSrteSegmentCTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAs4Path) ProtoMessage() {} +func (*BgpSrteSegmentCTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesAs4Path) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentCTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36572,50 +36911,60 @@ func (x *BgpAttributesAs4Path) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAs4Path.ProtoReflect.Descriptor instead. -func (*BgpAttributesAs4Path) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentCTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentCTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{148} } -func (x *BgpAttributesAs4Path) GetSegments() []*BgpAttributesFourByteAsPathSegment { +func (x *BgpSrteSegmentCTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentCTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpSrteSegmentCTypeSubTlv) GetIpv4NodeAddress() string { + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress + } + return "" +} + +func (x *BgpSrteSegmentCTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.Segments + return x.SrMplsSid } return nil } -// Optional AGGREGATOR attribute which maybe be added by a BGP speaker which performs -// route aggregation. -// When AGGREGATOR attribute is being sent to a new BGP speaker , the AS number is encoded -// as a 4 byte value. -// When AGGREGATOR attribute is being exchanged between a new and an old BGP speaker -// or between two old BGP speakers, -// the AS number is encoded as a 2 byte value. -// It contain the AS number and IP address of the speaker performing the aggregation. -type BgpAttributesAggregator struct { +// Type D: IPv6 Node Address with optional SID for SR MPLS. +type BgpSrteSegmentDTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.four_byte_as - Choice *BgpAttributesAggregator_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesAggregator_Choice_Enum,oneof" json:"choice,omitempty"` - // The value of the 4 byte AS number of the BGP speaker which aggregated the route. - // If the value of the AS number is less than 2 octets ( 65535 or less), the AS4_AGGREGATOR - // object should not be sent. - // default = 65536 - FourByteAs *uint32 `protobuf:"varint,2,opt,name=four_byte_as,json=fourByteAs,proto3,oneof" json:"four_byte_as,omitempty"` - // The value of the 2 byte AS number of the BGP speaker which aggregated the route. - // - // default = 1 - TwoByteAs *uint32 `protobuf:"varint,3,opt,name=two_byte_as,json=twoByteAs,proto3,oneof" json:"two_byte_as,omitempty"` - // The IPv4 address of the BGP speaker which aggregated the route. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,4,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // specifying SR Algorithm when when A-Flag as defined in above flags. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesAggregator) Reset() { - *x = BgpAttributesAggregator{} +func (x *BgpSrteSegmentDTypeSubTlv) Reset() { + *x = BgpSrteSegmentDTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36623,13 +36972,13 @@ func (x *BgpAttributesAggregator) Reset() { } } -func (x *BgpAttributesAggregator) String() string { +func (x *BgpSrteSegmentDTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAggregator) ProtoMessage() {} +func (*BgpSrteSegmentDTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesAggregator) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentDTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36641,60 +36990,60 @@ func (x *BgpAttributesAggregator) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAggregator.ProtoReflect.Descriptor instead. -func (*BgpAttributesAggregator) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentDTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentDTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{149} } -func (x *BgpAttributesAggregator) GetChoice() BgpAttributesAggregator_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentDTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesAggregator_Choice_unspecified + return "" } -func (x *BgpAttributesAggregator) GetFourByteAs() uint32 { - if x != nil && x.FourByteAs != nil { - return *x.FourByteAs +func (x *BgpSrteSegmentDTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } return 0 } -func (x *BgpAttributesAggregator) GetTwoByteAs() uint32 { - if x != nil && x.TwoByteAs != nil { - return *x.TwoByteAs +func (x *BgpSrteSegmentDTypeSubTlv) GetIpv6NodeAddress() string { + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } - return 0 + return "" } -func (x *BgpAttributesAggregator) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpSrteSegmentDTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid } - return "" + return nil } -// Optional AS4_AGGREGATOR attribute which maybe be added by a BGP speaker in one of -// two cases: -// - If it is a new BGP speaker speaking to an old BGP speaker and needs to send a 4 -// byte value for the AS number of the BGP route aggregator. -// - If it is a old BGP speaker speaking to a new BGP speaker and has to transparently -// forward a received AS4_AGGREGATOR from some other peer. -// Its usage is described in RFC4893. -type BgpAttributesAs4Aggregator struct { +// Type E: IPv4 Address and Local Interface ID with optional SID +type BgpSrteSegmentETypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value of the 4 byte AS number of the BGP speaker which aggregated the route. - AsNum *uint32 `protobuf:"varint,1,opt,name=as_num,json=asNum,proto3,oneof" json:"as_num,omitempty"` - // The IPv4 address of the BGP speaker which aggregated the route. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv4 address representing a node. + // required = true + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesAs4Aggregator) Reset() { - *x = BgpAttributesAs4Aggregator{} +func (x *BgpSrteSegmentETypeSubTlv) Reset() { + *x = BgpSrteSegmentETypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36702,13 +37051,13 @@ func (x *BgpAttributesAs4Aggregator) Reset() { } } -func (x *BgpAttributesAs4Aggregator) String() string { +func (x *BgpSrteSegmentETypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAs4Aggregator) ProtoMessage() {} +func (*BgpSrteSegmentETypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesAs4Aggregator) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentETypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36720,44 +37069,60 @@ func (x *BgpAttributesAs4Aggregator) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAs4Aggregator.ProtoReflect.Descriptor instead. -func (*BgpAttributesAs4Aggregator) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentETypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentETypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{150} } -func (x *BgpAttributesAs4Aggregator) GetAsNum() uint32 { - if x != nil && x.AsNum != nil { - return *x.AsNum +func (x *BgpSrteSegmentETypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentETypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } return 0 } -func (x *BgpAttributesAs4Aggregator) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpSrteSegmentETypeSubTlv) GetIpv4NodeAddress() string { + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress } return "" } -// The COMMUNITY attribute provide additional capability for tagging routes and for -// modifying BGP routing policy on -// upstream and downstream routers. BGP community is a 32-bit number which is broken -// into 16-bit AS number and a -// 16-bit custom value or it contains some pre-defined well known values. -type BgpAttributesCommunity struct { +func (x *BgpSrteSegmentETypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid + } + return nil +} + +// Type F: IPv4 Local and Remote addresses with optional SID. +type BgpSrteSegmentFTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of community AS number. + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv4 Address. // required = true - Choice *BgpAttributesCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesCommunity_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - CustomCommunity *BgpAttributesCustomCommunity `protobuf:"bytes,2,opt,name=custom_community,json=customCommunity,proto3" json:"custom_community,omitempty"` + LocalIpv4Address *string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3,oneof" json:"local_ipv4_address,omitempty"` + // Remote IPv4 Address. + // required = true + RemoteIpv4Address *string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3,oneof" json:"remote_ipv4_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesCommunity) Reset() { - *x = BgpAttributesCommunity{} +func (x *BgpSrteSegmentFTypeSubTlv) Reset() { + *x = BgpSrteSegmentFTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36765,13 +37130,13 @@ func (x *BgpAttributesCommunity) Reset() { } } -func (x *BgpAttributesCommunity) String() string { +func (x *BgpSrteSegmentFTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesCommunity) ProtoMessage() {} +func (*BgpSrteSegmentFTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesCommunity) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentFTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36783,43 +37148,67 @@ func (x *BgpAttributesCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesCommunity.ProtoReflect.Descriptor instead. -func (*BgpAttributesCommunity) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentFTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentFTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{151} } -func (x *BgpAttributesCommunity) GetChoice() BgpAttributesCommunity_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentFTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesCommunity_Choice_unspecified + return "" } -func (x *BgpAttributesCommunity) GetCustomCommunity() *BgpAttributesCustomCommunity { +func (x *BgpSrteSegmentFTypeSubTlv) GetLocalIpv4Address() string { + if x != nil && x.LocalIpv4Address != nil { + return *x.LocalIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetRemoteIpv4Address() string { + if x != nil && x.RemoteIpv4Address != nil { + return *x.RemoteIpv4Address + } + return "" +} + +func (x *BgpSrteSegmentFTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.CustomCommunity + return x.SrMplsSid } return nil } -// User defined COMMUNITY attribute containing 2 byte AS and custom 2 byte value defined -// by the administrator of the domain. -type BgpAttributesCustomCommunity struct { +// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for +// SR MPLS. +type BgpSrteSegmentGTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // First two octets of the community value containing a 2 byte AS number. + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. // default = 0 - AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Last two octets of the community value in hex. If user provides less than 4 hex - // bytes, it should be left-padded with 0s. - // default = 0000 - Custom *string `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6NodeAddress *string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress *string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesCustomCommunity) Reset() { - *x = BgpAttributesCustomCommunity{} +func (x *BgpSrteSegmentGTypeSubTlv) Reset() { + *x = BgpSrteSegmentGTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36827,13 +37216,13 @@ func (x *BgpAttributesCustomCommunity) Reset() { } } -func (x *BgpAttributesCustomCommunity) String() string { +func (x *BgpSrteSegmentGTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesCustomCommunity) ProtoMessage() {} +func (*BgpSrteSegmentGTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesCustomCommunity) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentGTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36845,47 +37234,74 @@ func (x *BgpAttributesCustomCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesCustomCommunity.ProtoReflect.Descriptor instead. -func (*BgpAttributesCustomCommunity) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentGTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentGTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{152} } -func (x *BgpAttributesCustomCommunity) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *BgpSrteSegmentGTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags + } + return "" +} + +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } return 0 } -func (x *BgpAttributesCustomCommunity) GetCustom() string { - if x != nil && x.Custom != nil { - return *x.Custom +func (x *BgpSrteSegmentGTypeSubTlv) GetLocalIpv6NodeAddress() string { + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } return "" } -// Next hop to be sent inside MP_REACH NLRI or as the NEXT_HOP attribute if advertised -// as traditional NLRI. -type BgpAttributesNextHop struct { +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId + } + return 0 +} + +func (x *BgpSrteSegmentGTypeSubTlv) GetRemoteIpv6NodeAddress() string { + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress + } + return "" +} + +func (x *BgpSrteSegmentGTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { + if x != nil { + return x.SrMplsSid + } + return nil +} + +// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. +type BgpSrteSegmentHTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of the next HOP. + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // Local IPv6 Address. // required = true - Choice *BgpAttributesNextHop_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesNextHop_Choice_Enum,oneof" json:"choice,omitempty"` - // The 4 byte IPv4 address of the next-hop from which the route was received. - // default = 0.0.0.0 - Ipv4 *string `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` - // The 16 byte IPv6 address of the next-hop from which the route was received. - // default = 0::0 - Ipv6 *string `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` - // Description missing in models - Ipv6TwoAddresses *BgpAttributesNextHopIpv6TwoAddresses `protobuf:"bytes,4,opt,name=ipv6_two_addresses,json=ipv6TwoAddresses,proto3" json:"ipv6_two_addresses,omitempty"` + LocalIpv6Address *string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` + // Remote IPv6 Address. + // required = true + RemoteIpv6Address *string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpSrteSrMplsSid `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *BgpAttributesNextHop) Reset() { - *x = BgpAttributesNextHop{} +func (x *BgpSrteSegmentHTypeSubTlv) Reset() { + *x = BgpSrteSegmentHTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36893,13 +37309,13 @@ func (x *BgpAttributesNextHop) Reset() { } } -func (x *BgpAttributesNextHop) String() string { +func (x *BgpSrteSegmentHTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesNextHop) ProtoMessage() {} +func (*BgpSrteSegmentHTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesNextHop) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentHTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36911,57 +37327,59 @@ func (x *BgpAttributesNextHop) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesNextHop.ProtoReflect.Descriptor instead. -func (*BgpAttributesNextHop) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentHTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentHTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{153} } -func (x *BgpAttributesNextHop) GetChoice() BgpAttributesNextHop_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentHTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesNextHop_Choice_unspecified + return "" } -func (x *BgpAttributesNextHop) GetIpv4() string { - if x != nil && x.Ipv4 != nil { - return *x.Ipv4 +func (x *BgpSrteSegmentHTypeSubTlv) GetLocalIpv6Address() string { + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } return "" } -func (x *BgpAttributesNextHop) GetIpv6() string { - if x != nil && x.Ipv6 != nil { - return *x.Ipv6 +func (x *BgpSrteSegmentHTypeSubTlv) GetRemoteIpv6Address() string { + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } return "" } -func (x *BgpAttributesNextHop) GetIpv6TwoAddresses() *BgpAttributesNextHopIpv6TwoAddresses { +func (x *BgpSrteSegmentHTypeSubTlv) GetSrMplsSid() *BgpSrteSrMplsSid { if x != nil { - return x.Ipv6TwoAddresses + return x.SrMplsSid } return nil } -// There is a specific scenario in which it is possible to receive a Global and Link -// Local address in the Next Hop -// field in a MP_REACH attribute or in the NEXT_HOP attribute(RFC2545: Section 3). -type BgpAttributesNextHopIpv6TwoAddresses struct { +// Type I: IPv6 Node Address with optional SRv6 SID. +type BgpSrteSegmentITypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The first IPv6 next hop in the 32 byte IPv6 Next Hop. - // default = 0::0 - First *string `protobuf:"bytes,1,opt,name=first,proto3,oneof" json:"first,omitempty"` - // The second IPv6 next hop in the 32 byte IPv6 Next Hop. - // default = 0::0 - Second *string `protobuf:"bytes,2,opt,name=second,proto3,oneof" json:"second,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // IPv6 address representing a node. + // required = true + Ipv6NodeAddress *string `protobuf:"bytes,2,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,3,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,4,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpAttributesNextHopIpv6TwoAddresses) Reset() { - *x = BgpAttributesNextHopIpv6TwoAddresses{} +func (x *BgpSrteSegmentITypeSubTlv) Reset() { + *x = BgpSrteSegmentITypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36969,13 +37387,13 @@ func (x *BgpAttributesNextHopIpv6TwoAddresses) Reset() { } } -func (x *BgpAttributesNextHopIpv6TwoAddresses) String() string { +func (x *BgpSrteSegmentITypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesNextHopIpv6TwoAddresses) ProtoMessage() {} +func (*BgpSrteSegmentITypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesNextHopIpv6TwoAddresses) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentITypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -36987,55 +37405,72 @@ func (x *BgpAttributesNextHopIpv6TwoAddresses) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesNextHopIpv6TwoAddresses.ProtoReflect.Descriptor instead. -func (*BgpAttributesNextHopIpv6TwoAddresses) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentITypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentITypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{154} } -func (x *BgpAttributesNextHopIpv6TwoAddresses) GetFirst() string { - if x != nil && x.First != nil { - return *x.First +func (x *BgpSrteSegmentITypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } return "" } -func (x *BgpAttributesNextHopIpv6TwoAddresses) GetSecond() string { - if x != nil && x.Second != nil { - return *x.Second +func (x *BgpSrteSegmentITypeSubTlv) GetIpv6NodeAddress() string { + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } return "" } -// The MP_REACH attribute is an optional attribute which can be included in the attributes -// of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3. -// The following AFI / SAFI combinations are supported: -// - IPv4 Unicast with AFI as 1 and SAFI as 1 -// - IPv6 Unicast with AFI as 2 and SAFI as 1 -// - Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 ( draft-ietf-idr-sr-policy-safi-02 -// Section 2.1 ) -// - Segment Routing Policy for IPv6 Unicast with AFI as 2 and SAFI as 73 -type BgpAttributesMpReachNlri struct { +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentITypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6SidEndpointBehavior + } + return nil +} + +// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional +// SID. +type BgpSrteSegmentJTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - NextHop *BgpAttributesNextHop `protobuf:"bytes,1,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"` - // The AFI and SAFI to be sent in the MPREACH_NLRI in the Update. + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv6 address representing a node. // required = true - Choice *BgpAttributesMpReachNlri_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.BgpAttributesMpReachNlri_Choice_Enum,oneof" json:"choice,omitempty"` - // List of IPv4 prefixes being sent in the IPv4 Unicast MPREACH_NLRI . - Ipv4Unicast []*BgpOneIpv4NLRIPrefix `protobuf:"bytes,3,rep,name=ipv4_unicast,json=ipv4Unicast,proto3" json:"ipv4_unicast,omitempty"` - // List of IPv6 prefixes being sent in the IPv6 Unicast MPREACH_NLRI . - Ipv6Unicast []*BgpOneIpv6NLRIPrefix `protobuf:"bytes,4,rep,name=ipv6_unicast,json=ipv6Unicast,proto3" json:"ipv6_unicast,omitempty"` - // IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPREACH_NLRI . - Ipv4Srpolicy *BgpIpv4SrPolicyNLRIPrefix `protobuf:"bytes,5,opt,name=ipv4_srpolicy,json=ipv4Srpolicy,proto3" json:"ipv4_srpolicy,omitempty"` - // IPv6 endpoint with Segment Routing Policy being sent in the IPv6 MPREACH_NLRI . - Ipv6Srpolicy *BgpIpv6SrPolicyNLRIPrefix `protobuf:"bytes,6,opt,name=ipv6_srpolicy,json=ipv6Srpolicy,proto3" json:"ipv6_srpolicy,omitempty"` + LocalIpv6NodeAddress *string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` + // Local Interface ID: The Interface Index as defined in [RFC8664]. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6NodeAddress *string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpAttributesMpReachNlri) Reset() { - *x = BgpAttributesMpReachNlri{} +func (x *BgpSrteSegmentJTypeSubTlv) Reset() { + *x = BgpSrteSegmentJTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37043,13 +37478,13 @@ func (x *BgpAttributesMpReachNlri) Reset() { } } -func (x *BgpAttributesMpReachNlri) String() string { +func (x *BgpSrteSegmentJTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesMpReachNlri) ProtoMessage() {} +func (*BgpSrteSegmentJTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesMpReachNlri) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentJTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37061,80 +37496,93 @@ func (x *BgpAttributesMpReachNlri) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesMpReachNlri.ProtoReflect.Descriptor instead. -func (*BgpAttributesMpReachNlri) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentJTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentJTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{155} } -func (x *BgpAttributesMpReachNlri) GetNextHop() *BgpAttributesNextHop { - if x != nil { - return x.NextHop +func (x *BgpSrteSegmentJTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return nil + return "" } -func (x *BgpAttributesMpReachNlri) GetChoice() BgpAttributesMpReachNlri_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentJTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return BgpAttributesMpReachNlri_Choice_unspecified + return 0 } -func (x *BgpAttributesMpReachNlri) GetIpv4Unicast() []*BgpOneIpv4NLRIPrefix { - if x != nil { - return x.Ipv4Unicast +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } - return nil + return 0 } -func (x *BgpAttributesMpReachNlri) GetIpv6Unicast() []*BgpOneIpv6NLRIPrefix { - if x != nil { - return x.Ipv6Unicast +func (x *BgpSrteSegmentJTypeSubTlv) GetLocalIpv6NodeAddress() string { + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } - return nil + return "" } -func (x *BgpAttributesMpReachNlri) GetIpv4Srpolicy() *BgpIpv4SrPolicyNLRIPrefix { - if x != nil { - return x.Ipv4Srpolicy +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId } - return nil + return 0 } -func (x *BgpAttributesMpReachNlri) GetIpv6Srpolicy() *BgpIpv6SrPolicyNLRIPrefix { +func (x *BgpSrteSegmentJTypeSubTlv) GetRemoteIpv6NodeAddress() string { + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentJTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.Ipv6Srpolicy + return x.Srv6SidEndpointBehavior } return nil } -// The MP_UNREACH attribute is an optional attribute which can be included in the attributes -// of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3. -// The following AFI / SAFI combinations are supported: -// - IPv4 Unicast with AFI as 1 and SAFI as 1 -// - IPv6 Unicast with AFI as 2 and SAFI as 1 -// - Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 (draft-ietf-idr-sr-policy-safi-02 -// Section 2.1) -// - Segment Routing Policy for IPv6 Unicast with AFI as 2 and SAFI as 73 -type BgpAttributesMpUnreachNlri struct { +// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. +type BgpSrteSegmentKTypeSubTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The AFI and SAFI to be sent in the MPUNREACH_NLRI in the Update. - Choice *BgpAttributesMpUnreachNlri_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesMpUnreachNlri_Choice_Enum,oneof" json:"choice,omitempty"` - // List of IPv4 prefixes being sent in the IPv4 Unicast MPUNREACH_NLRI . - Ipv4Unicast []*BgpOneIpv4NLRIPrefix `protobuf:"bytes,2,rep,name=ipv4_unicast,json=ipv4Unicast,proto3" json:"ipv4_unicast,omitempty"` - // List of IPv6 prefixes being sent in the IPv6 Unicast MPUNREACH_NLRI . - Ipv6Unicast []*BgpOneIpv6NLRIPrefix `protobuf:"bytes,3,rep,name=ipv6_unicast,json=ipv6Unicast,proto3" json:"ipv6_unicast,omitempty"` - // IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPUNREACH_NLRI . - Ipv4Srpolicy *BgpIpv4SrPolicyNLRIPrefix `protobuf:"bytes,4,opt,name=ipv4_srpolicy,json=ipv4Srpolicy,proto3" json:"ipv4_srpolicy,omitempty"` - // IPv6 endpoint with Segment Routing Policy being sent in the IPv4 MPUNREACH_NLRI . - Ipv6Srpolicy *BgpIpv6SrPolicyNLRIPrefix `protobuf:"bytes,5,opt,name=ipv6_srpolicy,json=ipv6Srpolicy,proto3" json:"ipv6_srpolicy,omitempty"` + // 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 *string `protobuf:"bytes,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // required = true + LocalIpv6Address *string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` + // IPv6 address representing a node. + // required = true + RemoteIpv6Address *string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` + // Optional SRv6 SID. + Srv6Sid *string `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Optional SRv6 Endpoint Behavior and SID Structure. + Srv6SidEndpointBehavior *BgpSrteSRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_sid_endpoint_behavior,json=srv6SidEndpointBehavior,proto3" json:"srv6_sid_endpoint_behavior,omitempty"` } -func (x *BgpAttributesMpUnreachNlri) Reset() { - *x = BgpAttributesMpUnreachNlri{} +func (x *BgpSrteSegmentKTypeSubTlv) Reset() { + *x = BgpSrteSegmentKTypeSubTlv{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37142,13 +37590,13 @@ func (x *BgpAttributesMpUnreachNlri) Reset() { } } -func (x *BgpAttributesMpUnreachNlri) String() string { +func (x *BgpSrteSegmentKTypeSubTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesMpUnreachNlri) ProtoMessage() {} +func (*BgpSrteSegmentKTypeSubTlv) ProtoMessage() {} -func (x *BgpAttributesMpUnreachNlri) ProtoReflect() protoreflect.Message { +func (x *BgpSrteSegmentKTypeSubTlv) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37160,61 +37608,141 @@ func (x *BgpAttributesMpUnreachNlri) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesMpUnreachNlri.ProtoReflect.Descriptor instead. -func (*BgpAttributesMpUnreachNlri) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteSegmentKTypeSubTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteSegmentKTypeSubTlv) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{156} } -func (x *BgpAttributesMpUnreachNlri) GetChoice() BgpAttributesMpUnreachNlri_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteSegmentKTypeSubTlv) GetFlags() string { + if x != nil && x.Flags != nil { + return *x.Flags } - return BgpAttributesMpUnreachNlri_Choice_unspecified + return "" } -func (x *BgpAttributesMpUnreachNlri) GetIpv4Unicast() []*BgpOneIpv4NLRIPrefix { - if x != nil { - return x.Ipv4Unicast +func (x *BgpSrteSegmentKTypeSubTlv) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } - return nil + return 0 } -func (x *BgpAttributesMpUnreachNlri) GetIpv6Unicast() []*BgpOneIpv6NLRIPrefix { - if x != nil { - return x.Ipv6Unicast +func (x *BgpSrteSegmentKTypeSubTlv) GetLocalIpv6Address() string { + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } - return nil + return "" } -func (x *BgpAttributesMpUnreachNlri) GetIpv4Srpolicy() *BgpIpv4SrPolicyNLRIPrefix { - if x != nil { - return x.Ipv4Srpolicy +func (x *BgpSrteSegmentKTypeSubTlv) GetRemoteIpv6Address() string { + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } - return nil + return "" } -func (x *BgpAttributesMpUnreachNlri) GetIpv6Srpolicy() *BgpIpv6SrPolicyNLRIPrefix { +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid + } + return "" +} + +func (x *BgpSrteSegmentKTypeSubTlv) GetSrv6SidEndpointBehavior() *BgpSrteSRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.Ipv6Srpolicy + return x.Srv6SidEndpointBehavior } return nil } -// Optional MULTI_EXIT_DISCRIMINATOR attribute sent to the peer to help in the route -// selection process. -type BgpAttributesMultiExitDiscriminator struct { +// Configuration for BGP Segment Routing Traffic Engineering policy. +type BgpSrteV6Policy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The multi exit discriminator (MED) value used for route selection sent to the peer. - // - // default = 0 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Identifies the policy in the context of (color and endpoint) tuple. It is used by + // the SR Policy originator to make unique multiple occurrences of the same SR Policy. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // Identifies the policy. It is used to match the color of the destination prefixes + // to steer traffic into the SR Policy. + // default = 100 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Specifies a single node or a set of nodes (e.g., an anycast address). It is selected + // on the basis of the SR Policy type (AFI). + // required = true + Ipv6Endpoint *string `protobuf:"bytes,3,opt,name=ipv6_endpoint,json=ipv6Endpoint,proto3,oneof" json:"ipv6_endpoint,omitempty"` + // Mode for choosing the NextHop in MP REACH NLRI. Available modes are : Local IP: Automatically + // fills the Nexthop with the Local IP of the BGP peer. For IPv6 BGP peer the Nexthop + // Encoding capability should be enabled. Manual: Override the Nexthop with any arbitrary + // IPv4/IPv6 address. + // default = NextHopMode.Enum.local_ip + NextHopMode *BgpSrteV6Policy_NextHopMode_Enum `protobuf:"varint,4,opt,name=next_hop_mode,json=nextHopMode,proto3,enum=otg.BgpSrteV6Policy_NextHopMode_Enum,oneof" json:"next_hop_mode,omitempty"` + // Type of next hop IP address to be used when 'next_hop_mode' is set to 'manual'. + // default = NextHopAddressType.Enum.ipv6 + NextHopAddressType *BgpSrteV6Policy_NextHopAddressType_Enum `protobuf:"varint,5,opt,name=next_hop_address_type,json=nextHopAddressType,proto3,enum=otg.BgpSrteV6Policy_NextHopAddressType_Enum,oneof" json:"next_hop_address_type,omitempty"` + // The IPv4 address of the Nexthop if the 'next_hop_mode' is 'manual' and the Nexthop + // type 'next_hop_address_type' is IPv4. If BGP peer is of type IPv6, Nexthop Encoding + // capability extended_next_hop_encoding should be enabled. + // default = 0.0.0.0 + NextHopIpv4Address *string `protobuf:"bytes,6,opt,name=next_hop_ipv4_address,json=nextHopIpv4Address,proto3,oneof" json:"next_hop_ipv4_address,omitempty"` + // The IPv6 address of the next hop if the Nexthop Mode 'next_hop_address_type' is 'manual' + // and the Nexthop type 'next_hop_address_type' is IPv6. + // default = ::0 + NextHopIpv6Address *string `protobuf:"bytes,7,opt,name=next_hop_ipv6_address,json=nextHopIpv6Address,proto3,oneof" json:"next_hop_ipv6_address,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,8,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Description missing in models + AddPath *BgpAddPath `protobuf:"bytes,9,opt,name=add_path,json=addPath,proto3" json:"add_path,omitempty"` + // Description missing in models + AsPath *BgpAsPath `protobuf:"bytes,10,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=extcommunities,proto3" json:"extcommunities,omitempty"` + // List of optional tunnel TLV settings. + TunnelTlvs []*BgpSrteV6TunnelTlv `protobuf:"bytes,13,rep,name=tunnel_tlvs,json=tunnelTlvs,proto3" json:"tunnel_tlvs,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,15,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpAttributesMultiExitDiscriminator) Reset() { - *x = BgpAttributesMultiExitDiscriminator{} +func (x *BgpSrteV6Policy) Reset() { + *x = BgpSrteV6Policy{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37222,13 +37750,13 @@ func (x *BgpAttributesMultiExitDiscriminator) Reset() { } } -func (x *BgpAttributesMultiExitDiscriminator) String() string { +func (x *BgpSrteV6Policy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesMultiExitDiscriminator) ProtoMessage() {} +func (*BgpSrteV6Policy) ProtoMessage() {} -func (x *BgpAttributesMultiExitDiscriminator) ProtoReflect() protoreflect.Message { +func (x *BgpSrteV6Policy) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -37240,239 +37768,167 @@ func (x *BgpAttributesMultiExitDiscriminator) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesMultiExitDiscriminator.ProtoReflect.Descriptor instead. -func (*BgpAttributesMultiExitDiscriminator) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpSrteV6Policy.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{157} } -func (x *BgpAttributesMultiExitDiscriminator) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpSrteV6Policy) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } return 0 } -// Optional LOCAL_PREFERENCE attribute sent to the peer to indicate the degree of preference -// -// for externally learned routes.This should be included only for internal peers.It -// is -// used for the selection of the path for the traffic leaving the AS.The route with -// the -// highest local preference value is preferred. -type BgpAttributesLocalPreference struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Value to be set in the LOCAL_PREFERENCE attribute The multi exit discriminator (MED) - // value used for route selection sent to the peer. - // default = 100 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` -} - -func (x *BgpAttributesLocalPreference) Reset() { - *x = BgpAttributesLocalPreference{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[158] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6Policy) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } + return 0 } -func (x *BgpAttributesLocalPreference) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpAttributesLocalPreference) ProtoMessage() {} - -func (x *BgpAttributesLocalPreference) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[158] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6Policy) GetIpv6Endpoint() string { + if x != nil && x.Ipv6Endpoint != nil { + return *x.Ipv6Endpoint } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpAttributesLocalPreference.ProtoReflect.Descriptor instead. -func (*BgpAttributesLocalPreference) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{158} + return "" } -func (x *BgpAttributesLocalPreference) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpSrteV6Policy) GetNextHopMode() BgpSrteV6Policy_NextHopMode_Enum { + if x != nil && x.NextHopMode != nil { + return *x.NextHopMode } - return 0 -} - -// Optional ORIGINATOR_ID attribute (type code 9) carries the Router Id of the route's -// originator in the local AS. -type BgpAttributesOriginatorId struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The value of the originator's Router Id. - // default = 0.0.0.0 - Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + return BgpSrteV6Policy_NextHopMode_unspecified } -func (x *BgpAttributesOriginatorId) Reset() { - *x = BgpAttributesOriginatorId{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[159] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6Policy) GetNextHopAddressType() BgpSrteV6Policy_NextHopAddressType_Enum { + if x != nil && x.NextHopAddressType != nil { + return *x.NextHopAddressType } + return BgpSrteV6Policy_NextHopAddressType_unspecified } -func (x *BgpAttributesOriginatorId) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpAttributesOriginatorId) ProtoMessage() {} - -func (x *BgpAttributesOriginatorId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[159] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6Policy) GetNextHopIpv4Address() string { + if x != nil && x.NextHopIpv4Address != nil { + return *x.NextHopIpv4Address } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpAttributesOriginatorId.ProtoReflect.Descriptor instead. -func (*BgpAttributesOriginatorId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{159} + return "" } -func (x *BgpAttributesOriginatorId) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpSrteV6Policy) GetNextHopIpv6Address() string { + if x != nil && x.NextHopIpv6Address != nil { + return *x.NextHopIpv6Address } return "" } -// The TUNNEL_ENCAPSULATION attribute is used by a BGP speaker to inform other BGP -// speakers how to encapsulate packets that need to be sent to it. -// It is defined in RFC9012 and is assigned a Type code of 23. -type BgpAttributesTunnelEncapsulation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Identifies a type of tunnel. The field contains values from the IANA registry BGP - // Tunnel Encapsulation Attribute Tunnel Types. - // default = Choice.Enum.sr_policy - Choice *BgpAttributesTunnelEncapsulation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesTunnelEncapsulation_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - SrPolicy *BgpAttributesSegmentRoutingPolicy `protobuf:"bytes,2,opt,name=sr_policy,json=srPolicy,proto3" json:"sr_policy,omitempty"` +func (x *BgpSrteV6Policy) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced + } + return nil } -func (x *BgpAttributesTunnelEncapsulation) Reset() { - *x = BgpAttributesTunnelEncapsulation{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpSrteV6Policy) GetAddPath() *BgpAddPath { + if x != nil { + return x.AddPath } + return nil } -func (x *BgpAttributesTunnelEncapsulation) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpSrteV6Policy) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil } -func (*BgpAttributesTunnelEncapsulation) ProtoMessage() {} +func (x *BgpSrteV6Policy) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities + } + return nil +} -func (x *BgpAttributesTunnelEncapsulation) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[160] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpSrteV6Policy) GetExtcommunities() []*BgpExtCommunity { + if x != nil { + return x.Extcommunities } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpAttributesTunnelEncapsulation.ProtoReflect.Descriptor instead. -func (*BgpAttributesTunnelEncapsulation) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{160} +func (x *BgpSrteV6Policy) GetTunnelTlvs() []*BgpSrteV6TunnelTlv { + if x != nil { + return x.TunnelTlvs + } + return nil } -func (x *BgpAttributesTunnelEncapsulation) GetChoice() BgpAttributesTunnelEncapsulation_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpSrteV6Policy) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return BgpAttributesTunnelEncapsulation_Choice_unspecified + return "" } -func (x *BgpAttributesTunnelEncapsulation) GetSrPolicy() *BgpAttributesSegmentRoutingPolicy { - if x != nil { - return x.SrPolicy +func (x *BgpSrteV6Policy) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active } - return nil + return false } -// Optional Segment Routing Policy information as defined in draft-ietf-idr-sr-policy-safi-02. -// This information is carried in TUNNEL_ENCAPSULATION attribute with type set to SR -// Policy (15). -type BgpAttributesSegmentRoutingPolicy struct { +// Configuration for BGP SRTE Tunnel TLV. +type BgpSrteV6TunnelTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - BindingSegmentIdentifier *BgpAttributesBsid `protobuf:"bytes,1,opt,name=binding_segment_identifier,json=bindingSegmentIdentifier,proto3" json:"binding_segment_identifier,omitempty"` - // The SRv6 Binding SID sub-TLV is an optional sub-TLV of type 20 that is used to signal - // the SRv6 Binding SID - // related information of an SR Policy candidate path. - // - More than one SRv6 Binding SID sub-TLVs MAY be signaled in the same SR Policy - // encoding to indicate one - // or more SRv6 SIDs, each with potentially different SRv6 Endpoint Behaviors to - // be instantiated. - // - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section - // 2.4.3 . - Srv6BindingSegmentIdentifier []*BgpAttributesSrv6Bsid `protobuf:"bytes,2,rep,name=srv6_binding_segment_identifier,json=srv6BindingSegmentIdentifier,proto3" json:"srv6_binding_segment_identifier,omitempty"` + RemoteEndpointSubTlv *BgpSrteRemoteEndpointSubTlv `protobuf:"bytes,1,opt,name=remote_endpoint_sub_tlv,json=remoteEndpointSubTlv,proto3" json:"remote_endpoint_sub_tlv,omitempty"` // Description missing in models - Preference *BgpAttributesSrPolicyPreference `protobuf:"bytes,3,opt,name=preference,proto3" json:"preference,omitempty"` + ColorSubTlv *BgpSrteColorSubTlv `protobuf:"bytes,2,opt,name=color_sub_tlv,json=colorSubTlv,proto3" json:"color_sub_tlv,omitempty"` // Description missing in models - Priority *BgpAttributesSrPolicyPriority `protobuf:"bytes,4,opt,name=priority,proto3" json:"priority,omitempty"` + BindingSubTlv *BgpSrteBindingSubTlv `protobuf:"bytes,3,opt,name=binding_sub_tlv,json=bindingSubTlv,proto3" json:"binding_sub_tlv,omitempty"` // Description missing in models - PolicyName *BgpAttributesSrPolicyPolicyName `protobuf:"bytes,5,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + PreferenceSubTlv *BgpSrtePreferenceSubTlv `protobuf:"bytes,4,opt,name=preference_sub_tlv,json=preferenceSubTlv,proto3" json:"preference_sub_tlv,omitempty"` // Description missing in models - PolicyCandidateName *BgpAttributesSrPolicyPolicyCandidateName `protobuf:"bytes,6,opt,name=policy_candidate_name,json=policyCandidateName,proto3" json:"policy_candidate_name,omitempty"` + PolicyPrioritySubTlv *BgpSrtePolicyPrioritySubTlv `protobuf:"bytes,5,opt,name=policy_priority_sub_tlv,json=policyPrioritySubTlv,proto3" json:"policy_priority_sub_tlv,omitempty"` // Description missing in models - ExplicitNullLabelPolicy *BgpAttributesSrPolicyExplicitNullPolicy `protobuf:"bytes,7,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3" json:"explicit_null_label_policy,omitempty"` + PolicyNameSubTlv *BgpSrtePolicyNameSubTlv `protobuf:"bytes,6,opt,name=policy_name_sub_tlv,json=policyNameSubTlv,proto3" json:"policy_name_sub_tlv,omitempty"` // Description missing in models - SegmentList []*BgpAttributesSrPolicySegmentList `protobuf:"bytes,8,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` + ExplicitNullLabelPolicySubTlv *BgpSrteExplicitNullLabelPolicySubTlv `protobuf:"bytes,7,opt,name=explicit_null_label_policy_sub_tlv,json=explicitNullLabelPolicySubTlv,proto3" json:"explicit_null_label_policy_sub_tlv,omitempty"` + // Description missing in models + SegmentLists []*BgpSrteSegmentList `protobuf:"bytes,8,rep,name=segment_lists,json=segmentLists,proto3" json:"segment_lists,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,9,opt,name=name,proto3,oneof" json:"name,omitempty"` + // 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. + // default = True + Active *bool `protobuf:"varint,10,opt,name=active,proto3,oneof" json:"active,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicy) Reset() { - *x = BgpAttributesSegmentRoutingPolicy{} +func (x *BgpSrteV6TunnelTlv) Reset() { + *x = BgpSrteV6TunnelTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[161] + mi := &file_otg_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicy) String() string { +func (x *BgpSrteV6TunnelTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicy) ProtoMessage() {} +func (*BgpSrteV6TunnelTlv) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[161] +func (x *BgpSrteV6TunnelTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37483,109 +37939,130 @@ func (x *BgpAttributesSegmentRoutingPolicy) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicy.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{161} +// Deprecated: Use BgpSrteV6TunnelTlv.ProtoReflect.Descriptor instead. +func (*BgpSrteV6TunnelTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{158} } -func (x *BgpAttributesSegmentRoutingPolicy) GetBindingSegmentIdentifier() *BgpAttributesBsid { +func (x *BgpSrteV6TunnelTlv) GetRemoteEndpointSubTlv() *BgpSrteRemoteEndpointSubTlv { if x != nil { - return x.BindingSegmentIdentifier + return x.RemoteEndpointSubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetSrv6BindingSegmentIdentifier() []*BgpAttributesSrv6Bsid { +func (x *BgpSrteV6TunnelTlv) GetColorSubTlv() *BgpSrteColorSubTlv { if x != nil { - return x.Srv6BindingSegmentIdentifier + return x.ColorSubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetPreference() *BgpAttributesSrPolicyPreference { +func (x *BgpSrteV6TunnelTlv) GetBindingSubTlv() *BgpSrteBindingSubTlv { if x != nil { - return x.Preference + return x.BindingSubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetPriority() *BgpAttributesSrPolicyPriority { +func (x *BgpSrteV6TunnelTlv) GetPreferenceSubTlv() *BgpSrtePreferenceSubTlv { if x != nil { - return x.Priority + return x.PreferenceSubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetPolicyName() *BgpAttributesSrPolicyPolicyName { +func (x *BgpSrteV6TunnelTlv) GetPolicyPrioritySubTlv() *BgpSrtePolicyPrioritySubTlv { if x != nil { - return x.PolicyName + return x.PolicyPrioritySubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetPolicyCandidateName() *BgpAttributesSrPolicyPolicyCandidateName { +func (x *BgpSrteV6TunnelTlv) GetPolicyNameSubTlv() *BgpSrtePolicyNameSubTlv { if x != nil { - return x.PolicyCandidateName + return x.PolicyNameSubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetExplicitNullLabelPolicy() *BgpAttributesSrPolicyExplicitNullPolicy { +func (x *BgpSrteV6TunnelTlv) GetExplicitNullLabelPolicySubTlv() *BgpSrteExplicitNullLabelPolicySubTlv { if x != nil { - return x.ExplicitNullLabelPolicy + return x.ExplicitNullLabelPolicySubTlv } return nil } -func (x *BgpAttributesSegmentRoutingPolicy) GetSegmentList() []*BgpAttributesSrPolicySegmentList { +func (x *BgpSrteV6TunnelTlv) GetSegmentLists() []*BgpSrteSegmentList { if x != nil { - return x.SegmentList + return x.SegmentLists } return nil } -// The Binding Segment Identifier is an optional sub-tlv of type 13 that can be sent -// with a SR Policy -// Tunnel Encapsulation attribute. -// When the active candidate path has a specified Binding Segment Identifier, the SR -// Policy uses that -// BSID if this value (label in MPLS, IPv6 address in SRv6) is available. -// - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section -// 2.4.2 . -// - It is recommended that if SRv6 Binding SID is desired to be signalled, the SRv6 -// Binding SID sub-TLV that enables -// the specification of the SRv6 Endpoint Behavior should be used. -type BgpAttributesBsid struct { +func (x *BgpSrteV6TunnelTlv) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *BgpSrteV6TunnelTlv) GetActive() bool { + if x != nil && x.Active != nil { + return *x.Active + } + return false +} + +// The Graceful Restart Capability (RFC 4724) is a BGP capability that can be used by +// a BGP speaker to indicate its ability to preserve its forwarding state during BGP +// restart. The Graceful Restart (GR) capability is advertised in OPEN messages sent +// between BGP peers. After a BGP session has been established, and the initial routing +// update has been completed, an End-of-RIB (Routing Information Base) marker is sent +// in an UPDATE message to convey information about routing convergence. +type BgpGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of Segment Identifier. - // required = true - Choice *BgpAttributesBsid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesBsid_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Mpls *BgpAttributesBsidMpls `protobuf:"bytes,2,opt,name=mpls,proto3" json:"mpls,omitempty"` - // Description missing in models - Srv6 *BgpAttributesBsidSrv6 `protobuf:"bytes,3,opt,name=srv6,proto3" json:"srv6,omitempty"` + // If enabled, Graceful Restart capability is advertised in BGP OPEN messages. + // default = False + EnableGr *bool `protobuf:"varint,1,opt,name=enable_gr,json=enableGr,proto3,oneof" json:"enable_gr,omitempty"` + // This is the estimated duration (in seconds) it will take for the BGP session to be + // re-established after a restart. This can be used to speed up routing convergence + // by its peer in case the BGP speaker does not come back after a restart. + // default = 45 + RestartTime *uint32 `protobuf:"varint,2,opt,name=restart_time,json=restartTime,proto3,oneof" json:"restart_time,omitempty"` + // If enabled, the Long-lived Graceful Restart Capability, or LLGR Capability + // will be advertised. + // This capability MUST be advertised in conjunction with the Graceful Restart + // capability. + // default = False + EnableLlgr *bool `protobuf:"varint,3,opt,name=enable_llgr,json=enableLlgr,proto3,oneof" json:"enable_llgr,omitempty"` + // Duration (in seconds) specifying how long stale information (for the AFI/SAFI) + // may be retained. This is a three byte field and is applicable + // only if 'enable_llgr' is set to 'true'. + // default = 10 + StaleTime *uint32 `protobuf:"varint,4,opt,name=stale_time,json=staleTime,proto3,oneof" json:"stale_time,omitempty"` } -func (x *BgpAttributesBsid) Reset() { - *x = BgpAttributesBsid{} +func (x *BgpGracefulRestart) Reset() { + *x = BgpGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[162] + mi := &file_otg_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesBsid) String() string { +func (x *BgpGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesBsid) ProtoMessage() {} +func (*BgpGracefulRestart) ProtoMessage() {} -func (x *BgpAttributesBsid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[162] +func (x *BgpGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37596,70 +38073,72 @@ func (x *BgpAttributesBsid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesBsid.ProtoReflect.Descriptor instead. -func (*BgpAttributesBsid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162} +// Deprecated: Use BgpGracefulRestart.ProtoReflect.Descriptor instead. +func (*BgpGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{159} } -func (x *BgpAttributesBsid) GetChoice() BgpAttributesBsid_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpGracefulRestart) GetEnableGr() bool { + if x != nil && x.EnableGr != nil { + return *x.EnableGr } - return BgpAttributesBsid_Choice_unspecified + return false } -func (x *BgpAttributesBsid) GetMpls() *BgpAttributesBsidMpls { - if x != nil { - return x.Mpls +func (x *BgpGracefulRestart) GetRestartTime() uint32 { + if x != nil && x.RestartTime != nil { + return *x.RestartTime } - return nil + return 0 } -func (x *BgpAttributesBsid) GetSrv6() *BgpAttributesBsidSrv6 { - if x != nil { - return x.Srv6 +func (x *BgpGracefulRestart) GetEnableLlgr() bool { + if x != nil && x.EnableLlgr != nil { + return *x.EnableLlgr } - return nil + return false } -// When the active candidate path has a specified Binding Segment Identifier, the SR -// Policy uses that BSID defined -// as a MPLS label.The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 -// Section 2.4.2 . -type BgpAttributesBsidMpls struct { +func (x *BgpGracefulRestart) GetStaleTime() uint32 { + if x != nil && x.StaleTime != nil { + return *x.StaleTime + } + return 0 +} + +// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the +// order given in the input to the peer after the BGP session is established. +type BgpUpdateReplay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is - // described in section 6.2.3 in [RFC9256]. - // default = False - FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` - // I-Flag: This flag encodes the Drop Upon Invalid behavior. - // It's usage is described in section 8.2 in [RFC9256]. - // default = False - FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` // Description missing in models - MplsSid *BgpAttributesSidMpls `protobuf:"bytes,3,opt,name=mpls_sid,json=mplsSid,proto3" json:"mpls_sid,omitempty"` + // default = Choice.Enum.structured_pdus + Choice *BgpUpdateReplay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpUpdateReplay_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + StructuredPdus *BgpStructuredPdus `protobuf:"bytes,2,opt,name=structured_pdus,json=structuredPdus,proto3" json:"structured_pdus,omitempty"` + // Description missing in models + RawBytes *BgpRawBytes `protobuf:"bytes,3,opt,name=raw_bytes,json=rawBytes,proto3" json:"raw_bytes,omitempty"` } -func (x *BgpAttributesBsidMpls) Reset() { - *x = BgpAttributesBsidMpls{} +func (x *BgpUpdateReplay) Reset() { + *x = BgpUpdateReplay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[163] + mi := &file_otg_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesBsidMpls) String() string { +func (x *BgpUpdateReplay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesBsidMpls) ProtoMessage() {} +func (*BgpUpdateReplay) ProtoMessage() {} -func (x *BgpAttributesBsidMpls) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[163] +func (x *BgpUpdateReplay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37670,71 +38149,61 @@ func (x *BgpAttributesBsidMpls) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesBsidMpls.ProtoReflect.Descriptor instead. -func (*BgpAttributesBsidMpls) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{163} +// Deprecated: Use BgpUpdateReplay.ProtoReflect.Descriptor instead. +func (*BgpUpdateReplay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{160} } -func (x *BgpAttributesBsidMpls) GetFlagSpecifiedBsidOnly() bool { - if x != nil && x.FlagSpecifiedBsidOnly != nil { - return *x.FlagSpecifiedBsidOnly +func (x *BgpUpdateReplay) GetChoice() BgpUpdateReplay_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return BgpUpdateReplay_Choice_unspecified } -func (x *BgpAttributesBsidMpls) GetFlagDropUponInvalid() bool { - if x != nil && x.FlagDropUponInvalid != nil { - return *x.FlagDropUponInvalid +func (x *BgpUpdateReplay) GetStructuredPdus() *BgpStructuredPdus { + if x != nil { + return x.StructuredPdus } - return false + return nil } -func (x *BgpAttributesBsidMpls) GetMplsSid() *BgpAttributesSidMpls { +func (x *BgpUpdateReplay) GetRawBytes() *BgpRawBytes { if x != nil { - return x.MplsSid + return x.RawBytes } return nil } -// When the active candidate path has a specified Binding Segment Identifier, the SR -// Policy uses that BSID defined -// as an IPv6 Address.The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 -// Section 2.4.2 . -type BgpAttributesBsidSrv6 struct { +// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the +// order given in the input to the peer after the BGP session is established. +type BgpRawBytes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is - // described in section 6.2.3 in [RFC9256]. - // default = False - FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` - // I-Flag: This flag encodes the Drop Upon Invalid behavior. - // It's usage is described in section 8.2 in [RFC9256]. - // default = False - FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` - // IPv6 address denoting the SRv6 SID. - // default = 0::0 - Ipv6Addr *string `protobuf:"bytes,3,opt,name=ipv6_addr,json=ipv6Addr,proto3,oneof" json:"ipv6_addr,omitempty"` + // Array of ordered BGP Updates ( including both Advertise and Withdraws ) to be sent + // in the order given in the input to the peer after the BGP session is established. + Updates []*BgpOneUpdateReplay `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"` } -func (x *BgpAttributesBsidSrv6) Reset() { - *x = BgpAttributesBsidSrv6{} +func (x *BgpRawBytes) Reset() { + *x = BgpRawBytes{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[164] + mi := &file_otg_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesBsidSrv6) String() string { +func (x *BgpRawBytes) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesBsidSrv6) ProtoMessage() {} +func (*BgpRawBytes) ProtoMessage() {} -func (x *BgpAttributesBsidSrv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[164] +func (x *BgpRawBytes) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37745,83 +38214,60 @@ func (x *BgpAttributesBsidSrv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesBsidSrv6.ProtoReflect.Descriptor instead. -func (*BgpAttributesBsidSrv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{164} -} - -func (x *BgpAttributesBsidSrv6) GetFlagSpecifiedBsidOnly() bool { - if x != nil && x.FlagSpecifiedBsidOnly != nil { - return *x.FlagSpecifiedBsidOnly - } - return false +// Deprecated: Use BgpRawBytes.ProtoReflect.Descriptor instead. +func (*BgpRawBytes) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{161} } -func (x *BgpAttributesBsidSrv6) GetFlagDropUponInvalid() bool { - if x != nil && x.FlagDropUponInvalid != nil { - return *x.FlagDropUponInvalid +func (x *BgpRawBytes) GetUpdates() []*BgpOneUpdateReplay { + if x != nil { + return x.Updates } - return false + return nil } -func (x *BgpAttributesBsidSrv6) GetIpv6Addr() string { - if x != nil && x.Ipv6Addr != nil { - return *x.Ipv6Addr - } - return "" -} +// Specification of one BGP Update to be sent to the BGP peer. +type BgpOneUpdateReplay struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -// The SRv6 Binding SID sub-TLV is an optional sub-TLV of type 20 that is used to signal -// the SRv6 Binding SID -// related information of an SR Policy candidate path. -// - More than one SRv6 Binding SID sub-TLVs MAY be signaled in the same SR Policy -// encoding to indicate one or -// more SRv6 SIDs, each with potentially different SRv6 Endpoint Behaviors to be -// instantiated. -// - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section -// 2.4.3 . -type BgpAttributesSrv6Bsid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is - // described in section 6.2.3 in [RFC9256]. - // default = False - FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` - // I-Flag: This flag encodes the Drop Upon Invalid behavior. - // It's usage is described in section 8.2 in [RFC9256]. - // default = False - FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` - // B-Flag: This flag, when set, indicates the presence of the SRv6 Endpoint Behavior - // - // and SID Structure encoding specified in Section 2.4.4.2.4 of draft-ietf-idr-sr-policy-safi-02. - // default = False - FlagSrv6EndpointBehavior *bool `protobuf:"varint,3,opt,name=flag_srv6_endpoint_behavior,json=flagSrv6EndpointBehavior,proto3,oneof" json:"flag_srv6_endpoint_behavior,omitempty"` - // IPv6 address denoting the SRv6 SID. - // default = 0::0 - Ipv6Addr *string `protobuf:"bytes,4,opt,name=ipv6_addr,json=ipv6Addr,proto3,oneof" json:"ipv6_addr,omitempty"` - // Description missing in models - Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,5,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` + // Minimum time interval in milliseconds from previous Update from the sequence of BGP + // Updates to be replayed. + // default = 0 + TimeGap *uint32 `protobuf:"varint,1,opt,name=time_gap,json=timeGap,proto3,oneof" json:"time_gap,omitempty"` + // Bytes specified in hex format to be sent to peer after the BGP Update Header. The + // Update Header will always have the initial 16 bytes containing Marker bytes, 2 bytes + // containing the Length and 1 byte containing the Type.The string MUST contain sequence + // of valid hex bytes. The bytes specified in hex format should be appended to the Update + // message to be sent to the peer after the fixed 19 bytes described above. This byte + // stream can be of any length from 1 to 4077 bytes.The value 4077 is derived from + // the maximum length allowed for a BGP message in RFC4271 which is 4096 minus mandatory + // 19 bytes described above. In the imported byte stream, one byte is represented as + // string of 2 characters, for example 2 character string (0x)AB represents value of + // a single byte. So the maximum length of this attribute is 8154 (4077 * 2 hex characters + // per byte). + // required = true + UpdateBytes *string `protobuf:"bytes,2,opt,name=update_bytes,json=updateBytes,proto3,oneof" json:"update_bytes,omitempty"` } -func (x *BgpAttributesSrv6Bsid) Reset() { - *x = BgpAttributesSrv6Bsid{} +func (x *BgpOneUpdateReplay) Reset() { + *x = BgpOneUpdateReplay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[165] + mi := &file_otg_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrv6Bsid) String() string { +func (x *BgpOneUpdateReplay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrv6Bsid) ProtoMessage() {} +func (*BgpOneUpdateReplay) ProtoMessage() {} -func (x *BgpAttributesSrv6Bsid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[165] +func (x *BgpOneUpdateReplay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37832,85 +38278,54 @@ func (x *BgpAttributesSrv6Bsid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrv6Bsid.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrv6Bsid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{165} -} - -func (x *BgpAttributesSrv6Bsid) GetFlagSpecifiedBsidOnly() bool { - if x != nil && x.FlagSpecifiedBsidOnly != nil { - return *x.FlagSpecifiedBsidOnly - } - return false -} - -func (x *BgpAttributesSrv6Bsid) GetFlagDropUponInvalid() bool { - if x != nil && x.FlagDropUponInvalid != nil { - return *x.FlagDropUponInvalid - } - return false +// Deprecated: Use BgpOneUpdateReplay.ProtoReflect.Descriptor instead. +func (*BgpOneUpdateReplay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{162} } -func (x *BgpAttributesSrv6Bsid) GetFlagSrv6EndpointBehavior() bool { - if x != nil && x.FlagSrv6EndpointBehavior != nil { - return *x.FlagSrv6EndpointBehavior +func (x *BgpOneUpdateReplay) GetTimeGap() uint32 { + if x != nil && x.TimeGap != nil { + return *x.TimeGap } - return false + return 0 } -func (x *BgpAttributesSrv6Bsid) GetIpv6Addr() string { - if x != nil && x.Ipv6Addr != nil { - return *x.Ipv6Addr +func (x *BgpOneUpdateReplay) GetUpdateBytes() string { + if x != nil && x.UpdateBytes != nil { + return *x.UpdateBytes } return "" } -func (x *BgpAttributesSrv6Bsid) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6EndpointBehavior - } - return nil -} - -// This carries a 20 bit Multi Protocol Label Switching alongwith 3 bits traffic class, -// 1 bit indicating presence -// or absence of Bottom-Of-Stack and 8 bits carrying the Time to Live value. -type BgpAttributesSidMpls struct { +// Ordered BGP Updates ( including both Advertise and Withdraws ) to be sent in the +// order given in the input to the peer after the BGP session is established. +type BgpStructuredPdus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 20 bit MPLS Label value. - // default = 16 - Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` - // 3 bits of Traffic Class. - // default = 0 - TrafficClass *uint32 `protobuf:"varint,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` - // Bottom of Stack - // default = True - FlagBos *bool `protobuf:"varint,3,opt,name=flag_bos,json=flagBos,proto3,oneof" json:"flag_bos,omitempty"` - // 8 bits Time to Live - // default = 63 - Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // Array of ordered BGP Updates ( including both Advertise and Withdraws ) to be sent + // in the order given in the input to the peer after the BGP session is established. + Updates []*BgpOneStructuredUpdateReplay `protobuf:"bytes,1,rep,name=updates,proto3" json:"updates,omitempty"` } -func (x *BgpAttributesSidMpls) Reset() { - *x = BgpAttributesSidMpls{} +func (x *BgpStructuredPdus) Reset() { + *x = BgpStructuredPdus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[166] + mi := &file_otg_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSidMpls) String() string { +func (x *BgpStructuredPdus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSidMpls) ProtoMessage() {} +func (*BgpStructuredPdus) ProtoMessage() {} -func (x *BgpAttributesSidMpls) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[166] +func (x *BgpStructuredPdus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37921,67 +38336,53 @@ func (x *BgpAttributesSidMpls) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSidMpls.ProtoReflect.Descriptor instead. -func (*BgpAttributesSidMpls) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{166} -} - -func (x *BgpAttributesSidMpls) GetLabel() uint32 { - if x != nil && x.Label != nil { - return *x.Label - } - return 0 -} - -func (x *BgpAttributesSidMpls) GetTrafficClass() uint32 { - if x != nil && x.TrafficClass != nil { - return *x.TrafficClass - } - return 0 -} - -func (x *BgpAttributesSidMpls) GetFlagBos() bool { - if x != nil && x.FlagBos != nil { - return *x.FlagBos - } - return false +// Deprecated: Use BgpStructuredPdus.ProtoReflect.Descriptor instead. +func (*BgpStructuredPdus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{163} } -func (x *BgpAttributesSidMpls) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *BgpStructuredPdus) GetUpdates() []*BgpOneStructuredUpdateReplay { + if x != nil { + return x.Updates } - return 0 + return nil } -// An IPv6 address denoting a SRv6 SID. -type BgpAttributesSidSrv6 struct { +// One structured BGP Update. +type BgpOneStructuredUpdateReplay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 0::0 - Ip *string `protobuf:"bytes,1,opt,name=ip,proto3,oneof" json:"ip,omitempty"` + // Minimum time interval in milliseconds from previous Update from the sequence of BGP + // Updates to be replayed. + // default = 0 + TimeGap *uint32 `protobuf:"varint,1,opt,name=time_gap,json=timeGap,proto3,oneof" json:"time_gap,omitempty"` + // Attributes carried in the Update packet alongwith the reach/unreach prefixes. + PathAttributes *BgpAttributes `protobuf:"bytes,2,opt,name=path_attributes,json=pathAttributes,proto3" json:"path_attributes,omitempty"` + // The IPv4 prefixes to be included in the traditional UNREACH_NLRI. + TraditionalUnreachNlris []*BgpOneTraditionalNlriPrefix `protobuf:"bytes,3,rep,name=traditional_unreach_nlris,json=traditionalUnreachNlris,proto3" json:"traditional_unreach_nlris,omitempty"` + // The IPv4 prefixes to be included in the traditional REACH_NLRI. + TraditionalReachNlris []*BgpOneTraditionalNlriPrefix `protobuf:"bytes,4,rep,name=traditional_reach_nlris,json=traditionalReachNlris,proto3" json:"traditional_reach_nlris,omitempty"` } -func (x *BgpAttributesSidSrv6) Reset() { - *x = BgpAttributesSidSrv6{} +func (x *BgpOneStructuredUpdateReplay) Reset() { + *x = BgpOneStructuredUpdateReplay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[167] + mi := &file_otg_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSidSrv6) String() string { +func (x *BgpOneStructuredUpdateReplay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSidSrv6) ProtoMessage() {} +func (*BgpOneStructuredUpdateReplay) ProtoMessage() {} -func (x *BgpAttributesSidSrv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[167] +func (x *BgpOneStructuredUpdateReplay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -37992,100 +38393,76 @@ func (x *BgpAttributesSidSrv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSidSrv6.ProtoReflect.Descriptor instead. -func (*BgpAttributesSidSrv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{167} +// Deprecated: Use BgpOneStructuredUpdateReplay.ProtoReflect.Descriptor instead. +func (*BgpOneStructuredUpdateReplay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{164} } -func (x *BgpAttributesSidSrv6) GetIp() string { - if x != nil && x.Ip != nil { - return *x.Ip +func (x *BgpOneStructuredUpdateReplay) GetTimeGap() uint32 { + if x != nil && x.TimeGap != nil { + return *x.TimeGap } - return "" -} - -// Optional Preference sub-tlv (Type 12) is used to select the best candidate path for -// an SR Policy. -// It is defined in Section 2.4.1 of draft-ietf-idr-sr-policy-safi-02 . -type BgpAttributesSrPolicyPreference struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Value to be carried in the Preference sub-tlv. - // default = 0 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + return 0 } -func (x *BgpAttributesSrPolicyPreference) Reset() { - *x = BgpAttributesSrPolicyPreference{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[168] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpOneStructuredUpdateReplay) GetPathAttributes() *BgpAttributes { + if x != nil { + return x.PathAttributes } + return nil } -func (x *BgpAttributesSrPolicyPreference) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpAttributesSrPolicyPreference) ProtoMessage() {} - -func (x *BgpAttributesSrPolicyPreference) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[168] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpOneStructuredUpdateReplay) GetTraditionalUnreachNlris() []*BgpOneTraditionalNlriPrefix { + if x != nil { + return x.TraditionalUnreachNlris } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpAttributesSrPolicyPreference.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyPreference) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{168} + return nil } -func (x *BgpAttributesSrPolicyPreference) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpOneStructuredUpdateReplay) GetTraditionalReachNlris() []*BgpOneTraditionalNlriPrefix { + if x != nil { + return x.TraditionalReachNlris } - return 0 + return nil } -// Optional Priority sub-tlv (Type 15) used to select the order in which policies should -// be re-computed. -// - It is defined in Section 2.4.6 of draft-ietf-idr-sr-policy-safi-02 . -type BgpAttributesSrPolicyPriority struct { +// TRADITIONAL_NLRI is an optional part of the the BGP Update which can carry only IPv4 +// prefix information as defined in https://www.rfc-editor.org/rfc/rfc4271.html#section-4.3 +// +// and extended by https://datatracker.ietf.org/doc/html/rfc7911#section-3 to carry +// additional Path Id information per prefix. +type BgpOneTraditionalNlriPrefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Value to be carried in the Priority sub-tlv. - // default = 0 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The IPv4 address of the network. + // default = 0.0.0.0 + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The IPv4 network prefix length to be applied to the address. + // default = 24 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // Description missing in models + PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` } -func (x *BgpAttributesSrPolicyPriority) Reset() { - *x = BgpAttributesSrPolicyPriority{} +func (x *BgpOneTraditionalNlriPrefix) Reset() { + *x = BgpOneTraditionalNlriPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[169] + mi := &file_otg_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicyPriority) String() string { +func (x *BgpOneTraditionalNlriPrefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicyPriority) ProtoMessage() {} +func (*BgpOneTraditionalNlriPrefix) ProtoMessage() {} -func (x *BgpAttributesSrPolicyPriority) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[169] +func (x *BgpOneTraditionalNlriPrefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38096,51 +38473,65 @@ func (x *BgpAttributesSrPolicyPriority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicyPriority.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyPriority) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{169} +// Deprecated: Use BgpOneTraditionalNlriPrefix.ProtoReflect.Descriptor instead. +func (*BgpOneTraditionalNlriPrefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{165} } -func (x *BgpAttributesSrPolicyPriority) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpOneTraditionalNlriPrefix) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *BgpOneTraditionalNlriPrefix) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix } return 0 } -// Optional Policy Candidate Path Name sub-tlv (Type 129) which carries the symbolic -// name for the SR Policy candidate path -// for debugging. -// - It is defined in Section 2.4.7 of draft-ietf-idr-sr-policy-safi-02 . -type BgpAttributesSrPolicyPolicyCandidateName struct { +func (x *BgpOneTraditionalNlriPrefix) GetPathId() *BgpNLRIPrefixPathId { + if x != nil { + return x.PathId + } + return nil +} + +// One IPv4 NLRI Prefix. +type BgpOneIpv4NLRIPrefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Value of the symbolic Policy Candidate Path Name carried in the Policy Candidate - // Path Name sub-tlv. - // It is recommended that the size of the name is limited to 255 bytes. - // required = true - Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The IPv4 address of the network. + // default = 0.0.0.0 + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The IPv4 network prefix length to be applied to the address. + // default = 24 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // Description missing in models + PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` } -func (x *BgpAttributesSrPolicyPolicyCandidateName) Reset() { - *x = BgpAttributesSrPolicyPolicyCandidateName{} +func (x *BgpOneIpv4NLRIPrefix) Reset() { + *x = BgpOneIpv4NLRIPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[170] + mi := &file_otg_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicyPolicyCandidateName) String() string { +func (x *BgpOneIpv4NLRIPrefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicyPolicyCandidateName) ProtoMessage() {} +func (*BgpOneIpv4NLRIPrefix) ProtoMessage() {} -func (x *BgpAttributesSrPolicyPolicyCandidateName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[170] +func (x *BgpOneIpv4NLRIPrefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38151,50 +38542,65 @@ func (x *BgpAttributesSrPolicyPolicyCandidateName) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicyPolicyCandidateName.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyPolicyCandidateName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{170} +// Deprecated: Use BgpOneIpv4NLRIPrefix.ProtoReflect.Descriptor instead. +func (*BgpOneIpv4NLRIPrefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{166} } -func (x *BgpAttributesSrPolicyPolicyCandidateName) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpOneIpv4NLRIPrefix) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } return "" } -// Optional Policy Name sub-tlv (Type 130) which carries the symbolic name for the SR -// Policy for which the -// candidate path is being advertised for debugging. -// - It is defined in Section 2.4.8 of draft-ietf-idr-sr-policy-safi-02 . -type BgpAttributesSrPolicyPolicyName struct { +func (x *BgpOneIpv4NLRIPrefix) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return 0 +} + +func (x *BgpOneIpv4NLRIPrefix) GetPathId() *BgpNLRIPrefixPathId { + if x != nil { + return x.PathId + } + return nil +} + +// One IPv6 NLRI Prefix. +type BgpOneIpv6NLRIPrefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Value of the symbolic policy name carried in the Policy Name sub-tlv. - // It is recommended that the size of the name is limited to 255 bytes. - // required = true - Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The IPv6 address of the network. + // default = 0::0 + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The IPv6 network prefix length to be applied to the address. + // default = 64 + Prefix *uint32 `protobuf:"varint,2,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // Description missing in models + PathId *BgpNLRIPrefixPathId `protobuf:"bytes,3,opt,name=path_id,json=pathId,proto3" json:"path_id,omitempty"` } -func (x *BgpAttributesSrPolicyPolicyName) Reset() { - *x = BgpAttributesSrPolicyPolicyName{} +func (x *BgpOneIpv6NLRIPrefix) Reset() { + *x = BgpOneIpv6NLRIPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[171] + mi := &file_otg_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicyPolicyName) String() string { +func (x *BgpOneIpv6NLRIPrefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicyPolicyName) ProtoMessage() {} +func (*BgpOneIpv6NLRIPrefix) ProtoMessage() {} -func (x *BgpAttributesSrPolicyPolicyName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[171] +func (x *BgpOneIpv6NLRIPrefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38205,49 +38611,60 @@ func (x *BgpAttributesSrPolicyPolicyName) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicyPolicyName.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyPolicyName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{171} +// Deprecated: Use BgpOneIpv6NLRIPrefix.ProtoReflect.Descriptor instead. +func (*BgpOneIpv6NLRIPrefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{167} } -func (x *BgpAttributesSrPolicyPolicyName) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpOneIpv6NLRIPrefix) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } return "" } -// This is an optional sub-tlv (Type 14) which indicates whether an Explicit NULL Label -// must be pushed on an unlabeled IP -// packet before other labels for IPv4 or IPv6 flows. -// - It is defined in Section 2.4.5 of draft-ietf-idr-sr-policy-safi-02. -type BgpAttributesSrPolicyExplicitNullPolicy struct { +func (x *BgpOneIpv6NLRIPrefix) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix + } + return 0 +} + +func (x *BgpOneIpv6NLRIPrefix) GetPathId() *BgpNLRIPrefixPathId { + if x != nil { + return x.PathId + } + return nil +} + +// Optional field in the NLRI carrying Path Id of the prefix. +type BgpNLRIPrefixPathId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Explicit NULL Label policy. - // default = Choice.Enum.push_ipv4_and_ipv6 - Choice *BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum,oneof" json:"choice,omitempty"` + // The value of the optional Path ID of the prefix. + // default = 1 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpAttributesSrPolicyExplicitNullPolicy) Reset() { - *x = BgpAttributesSrPolicyExplicitNullPolicy{} +func (x *BgpNLRIPrefixPathId) Reset() { + *x = BgpNLRIPrefixPathId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[172] + mi := &file_otg_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicyExplicitNullPolicy) String() string { +func (x *BgpNLRIPrefixPathId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicyExplicitNullPolicy) ProtoMessage() {} +func (*BgpNLRIPrefixPathId) ProtoMessage() {} -func (x *BgpAttributesSrPolicyExplicitNullPolicy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[172] +func (x *BgpNLRIPrefixPathId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38258,53 +38675,61 @@ func (x *BgpAttributesSrPolicyExplicitNullPolicy) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicyExplicitNullPolicy.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyExplicitNullPolicy) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172} +// Deprecated: Use BgpNLRIPrefixPathId.ProtoReflect.Descriptor instead. +func (*BgpNLRIPrefixPathId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{168} } -func (x *BgpAttributesSrPolicyExplicitNullPolicy) GetChoice() BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpNLRIPrefixPathId) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return BgpAttributesSrPolicyExplicitNullPolicy_Choice_unspecified + return 0 } -// One optional SEGMENT_LIST sub-tlv encoded with type of 128. -// One sub-tlv (Type 128) encodes a single explicit path towards the endpoint as described -// in -// section 5.1 of [RFC9256]. -// The Segment List sub-TLV includes the elements of the paths (i.e., segments) as well -// -// as an optional Weight sub-TLV. -type BgpAttributesSrPolicySegmentList struct { +// IPv4 Segment Routing Policy NLRI Prefix. +type BgpIpv4SrPolicyNLRIPrefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Weight *BgpAttributesSegmentRoutingPolicySegmentListWeight `protobuf:"bytes,1,opt,name=weight,proto3" json:"weight,omitempty"` - // Description missing in models - Segments []*BgpAttributesSegmentRoutingPolicySegmentListSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // The 4-octet value uniquely identifying the policy in the context of + // tuple. The distinguisher has no semantic value and is solely used by the SR Policy + // originator to make unique (from an NLRI perspective) both for multiple candidate + // paths of the same SR Policy as well as candidate paths of different SR Policies + // (i.e. with different segment lists) with the same Color and Endpoint but meant for + // different headends. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // 4-octet value identifying (with the endpoint) the policy. The color is used to match + // the color of the destination prefixes to steer traffic into the SR Policy as specified + // in section 8 of RFC9256. + // default = 1 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Identifies the endpoint of a policy. The Endpoint is an IPv4 address and can be + // either a unicast or an unspecified address (0.0.0.0) as specified in section 2.1 + // of RFC9256. + // default = 0.0.0.0 + Endpoint *string `protobuf:"bytes,3,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` } -func (x *BgpAttributesSrPolicySegmentList) Reset() { - *x = BgpAttributesSrPolicySegmentList{} +func (x *BgpIpv4SrPolicyNLRIPrefix) Reset() { + *x = BgpIpv4SrPolicyNLRIPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[173] + mi := &file_otg_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicySegmentList) String() string { +func (x *BgpIpv4SrPolicyNLRIPrefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicySegmentList) ProtoMessage() {} +func (*BgpIpv4SrPolicyNLRIPrefix) ProtoMessage() {} -func (x *BgpAttributesSrPolicySegmentList) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[173] +func (x *BgpIpv4SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38315,54 +38740,76 @@ func (x *BgpAttributesSrPolicySegmentList) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicySegmentList.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicySegmentList) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{173} +// Deprecated: Use BgpIpv4SrPolicyNLRIPrefix.ProtoReflect.Descriptor instead. +func (*BgpIpv4SrPolicyNLRIPrefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{169} } -func (x *BgpAttributesSrPolicySegmentList) GetWeight() *BgpAttributesSegmentRoutingPolicySegmentListWeight { - if x != nil { - return x.Weight +func (x *BgpIpv4SrPolicyNLRIPrefix) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } - return nil + return 0 } -func (x *BgpAttributesSrPolicySegmentList) GetSegments() []*BgpAttributesSegmentRoutingPolicySegmentListSegment { - if x != nil { - return x.Segments +func (x *BgpIpv4SrPolicyNLRIPrefix) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } - return nil + return 0 } -// The optional Weight sub-TLV (Type 9) specifies the weight associated with a given -// segment list. The weight is used for weighted multipath. -type BgpAttributesSegmentRoutingPolicySegmentListWeight struct { +func (x *BgpIpv4SrPolicyNLRIPrefix) GetEndpoint() string { + if x != nil && x.Endpoint != nil { + return *x.Endpoint + } + return "" +} + +// One IPv6 Segment Routing Policy NLRI Prefix. +type BgpIpv6SrPolicyNLRIPrefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Value of the weight. - // default = 0 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The 4-octet value uniquely identifying the policy in the context of + // tuple. The distinguisher has no semantic value and is solely used by the SR Policy + // originator to make unique (from an NLRI perspective) both for multiple candidate + // paths of the same SR Policy as well as candidate paths of different SR Policies + // (i.e. with different segment lists) with the same Color and Endpoint but meant for + // different headends. + // default = 1 + Distinguisher *uint32 `protobuf:"varint,1,opt,name=distinguisher,proto3,oneof" json:"distinguisher,omitempty"` + // 4-octet value identifying (with the endpoint) the policy. The color is used to match + // the color of the destination prefixes to steer traffic into the SR Policy as specified + // in section 8 of RFC9256. + // default = 1 + Color *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // Identifies the endpoint of a policy. The Endpoint may represent a single node or + // a set of nodes (e.g., an anycast address). The Endpoint is an IPv6 address and can + // be either a unicast or an unspecified address (0::0) as specified in section 2.1 + // of RFC9256. + // default = 0::0 + Endpoint *string `protobuf:"bytes,3,opt,name=endpoint,proto3,oneof" json:"endpoint,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) Reset() { - *x = BgpAttributesSegmentRoutingPolicySegmentListWeight{} +func (x *BgpIpv6SrPolicyNLRIPrefix) Reset() { + *x = BgpIpv6SrPolicyNLRIPrefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[174] + mi := &file_otg_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) String() string { +func (x *BgpIpv6SrPolicyNLRIPrefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicySegmentListWeight) ProtoMessage() {} +func (*BgpIpv6SrPolicyNLRIPrefix) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[174] +func (x *BgpIpv6SrPolicyNLRIPrefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38373,85 +38820,112 @@ func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListWeight.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicySegmentListWeight) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{174} +// Deprecated: Use BgpIpv6SrPolicyNLRIPrefix.ProtoReflect.Descriptor instead. +func (*BgpIpv6SrPolicyNLRIPrefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{170} } -func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpIpv6SrPolicyNLRIPrefix) GetDistinguisher() uint32 { + if x != nil && x.Distinguisher != nil { + return *x.Distinguisher } return 0 } -// 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. -// Segment Types A and B are defined as described in 2.4.4.2. -// Segment Types C upto K are defined as described in in draft-ietf-idr-bgp-sr-segtypes-ext-03 -// . -type BgpAttributesSegmentRoutingPolicySegmentListSegment struct { +func (x *BgpIpv6SrPolicyNLRIPrefix) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *BgpIpv6SrPolicyNLRIPrefix) GetEndpoint() string { + if x != nil && x.Endpoint != nil { + return *x.Endpoint + } + return "" +} + +// Attributes carried in the Update packet alongwith the reach/unreach prefixes. +type BgpAttributes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specify one of the segment types as defined in ietf-idr-segment-routing-te-policy - // - Type A: SID only, in the form of MPLS Label. - // - Type B: SID only, in the form of IPv6 Address. - // - Type C: IPv4 Prefix with optional SR Algorithm. - // - Type D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS. - // - Type E: IPv4 Prefix with Local Interface ID. - // - Type F: IPv4 Addresses for link endpoints as Local, Remote pair. - // - Type G: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair - // for SR-MPLS. - // - Type H: IPv6 Addresses for link endpoints as Local, Remote pair for SR-MPLS. - // - Type I: IPv6 Global Prefix with optional SR Algorithm for SRv6. - // - Type J: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair - // for SRv6. - // - Type K: IPv6 Addresses for link endpoints as Local, Remote pair for SRv6. - // required = true - Choice *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - TypeA *BgpAttributesSegmentRoutingPolicyTypeA `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3" json:"type_a,omitempty"` + // Any attributes not present in the list of configurable attributes should be added + // to the list of unknown attributes. + OtherAttributes []*BgpAttributesOtherAttribute `protobuf:"bytes,1,rep,name=other_attributes,json=otherAttributes,proto3" json:"other_attributes,omitempty"` + // The ORIGIN attribute is a mandatory attribute which can take three values: + // the prefix originates from an interior routing protocol 'igp', it originates from + // 'egp' + // or the origin is 'incomplete',if the prefix is learned through other means. + // + // default = Origin.Enum.incomplete + Origin *BgpAttributes_Origin_Enum `protobuf:"varint,2,opt,name=origin,proto3,enum=otg.BgpAttributes_Origin_Enum,oneof" json:"origin,omitempty"` + // AS_PATH attribute to be included in the Update. + AsPath *BgpAttributesAsPath `protobuf:"bytes,3,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // AS4_PATH attribute to be included in the Update. + As4Path *BgpAttributesAs4Path `protobuf:"bytes,4,opt,name=as4_path,json=as4Path,proto3" json:"as4_path,omitempty"` // Description missing in models - TypeB *BgpAttributesSegmentRoutingPolicyTypeB `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3" json:"type_b,omitempty"` + NextHop *BgpAttributesNextHop `protobuf:"bytes,5,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"` // Description missing in models - TypeC *BgpAttributesSegmentRoutingPolicyTypeC `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3" json:"type_c,omitempty"` + MultiExitDiscriminator *BgpAttributesMultiExitDiscriminator `protobuf:"bytes,6,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3" json:"multi_exit_discriminator,omitempty"` // Description missing in models - TypeD *BgpAttributesSegmentRoutingPolicyTypeD `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3" json:"type_d,omitempty"` + LocalPreference *BgpAttributesLocalPreference `protobuf:"bytes,7,opt,name=local_preference,json=localPreference,proto3" json:"local_preference,omitempty"` + // If enabled, it indicates that the ATOMIC_AGGREGATOR attribute should be included + // in the Update. + // Presence of this attribute Indicates that this route might not be getting sent on + // a fully optimized path + // since some intermediate BGP speaker has aggregated the route. + // + // default = False + IncludeAtomicAggregator *bool `protobuf:"varint,8,opt,name=include_atomic_aggregator,json=includeAtomicAggregator,proto3,oneof" json:"include_atomic_aggregator,omitempty"` // Description missing in models - TypeE *BgpAttributesSegmentRoutingPolicyTypeE `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3" json:"type_e,omitempty"` + Aggregator *BgpAttributesAggregator `protobuf:"bytes,9,opt,name=aggregator,proto3" json:"aggregator,omitempty"` // Description missing in models - TypeF *BgpAttributesSegmentRoutingPolicyTypeF `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3" json:"type_f,omitempty"` + As4Aggregator *BgpAttributesAs4Aggregator `protobuf:"bytes,10,opt,name=as4_aggregator,json=as4Aggregator,proto3" json:"as4_aggregator,omitempty"` // Description missing in models - TypeG *BgpAttributesSegmentRoutingPolicyTypeG `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3" json:"type_g,omitempty"` + Community []*BgpAttributesCommunity `protobuf:"bytes,11,rep,name=community,proto3" json:"community,omitempty"` // Description missing in models - TypeH *BgpAttributesSegmentRoutingPolicyTypeH `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3" json:"type_h,omitempty"` + OriginatorId *BgpAttributesOriginatorId `protobuf:"bytes,12,opt,name=originator_id,json=originatorId,proto3" json:"originator_id,omitempty"` + // When a Route Reflector reflects a route, it prepends the local CLUSTER_ID to the + // CLUSTER_LIST as defined in RFC4456. + ClusterIds []string `protobuf:"bytes,13,rep,name=cluster_ids,json=clusterIds,proto3" json:"cluster_ids,omitempty"` + // Optional EXTENDED_COMMUNITY attribute settings. + // The EXTENDED_COMMUNITY 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 eight byte value. + // It is divided into two main parts. The first two bytes of the community encode a + // type and sub-type fields and the last six 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. + ExtendedCommunities []*BgpExtendedCommunity `protobuf:"bytes,14,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` // Description missing in models - TypeI *BgpAttributesSegmentRoutingPolicyTypeI `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3" json:"type_i,omitempty"` + TunnelEncapsulation *BgpAttributesTunnelEncapsulation `protobuf:"bytes,15,opt,name=tunnel_encapsulation,json=tunnelEncapsulation,proto3" json:"tunnel_encapsulation,omitempty"` // Description missing in models - TypeJ *BgpAttributesSegmentRoutingPolicyTypeJ `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3" json:"type_j,omitempty"` + MpReach *BgpAttributesMpReachNlri `protobuf:"bytes,16,opt,name=mp_reach,json=mpReach,proto3" json:"mp_reach,omitempty"` // Description missing in models - TypeK *BgpAttributesSegmentRoutingPolicyTypeK `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3" json:"type_k,omitempty"` + MpUnreach *BgpAttributesMpUnreachNlri `protobuf:"bytes,17,opt,name=mp_unreach,json=mpUnreach,proto3" json:"mp_unreach,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) Reset() { - *x = BgpAttributesSegmentRoutingPolicySegmentListSegment{} +func (x *BgpAttributes) Reset() { + *x = BgpAttributes{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[175] + mi := &file_otg_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) String() string { +func (x *BgpAttributes) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicySegmentListSegment) ProtoMessage() {} +func (*BgpAttributes) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[175] +func (x *BgpAttributes) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38462,125 +38936,175 @@ func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListSegment.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicySegmentListSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{175} +// Deprecated: Use BgpAttributes.ProtoReflect.Descriptor instead. +func (*BgpAttributes) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{171} } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetChoice() BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpAttributes) GetOtherAttributes() []*BgpAttributesOtherAttribute { + if x != nil { + return x.OtherAttributes } - return BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_unspecified + return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeA() *BgpAttributesSegmentRoutingPolicyTypeA { +func (x *BgpAttributes) GetOrigin() BgpAttributes_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpAttributes_Origin_unspecified +} + +func (x *BgpAttributes) GetAsPath() *BgpAttributesAsPath { if x != nil { - return x.TypeA + return x.AsPath } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeB() *BgpAttributesSegmentRoutingPolicyTypeB { +func (x *BgpAttributes) GetAs4Path() *BgpAttributesAs4Path { if x != nil { - return x.TypeB + return x.As4Path } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeC() *BgpAttributesSegmentRoutingPolicyTypeC { +func (x *BgpAttributes) GetNextHop() *BgpAttributesNextHop { if x != nil { - return x.TypeC + return x.NextHop } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeD() *BgpAttributesSegmentRoutingPolicyTypeD { +func (x *BgpAttributes) GetMultiExitDiscriminator() *BgpAttributesMultiExitDiscriminator { if x != nil { - return x.TypeD + return x.MultiExitDiscriminator } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeE() *BgpAttributesSegmentRoutingPolicyTypeE { +func (x *BgpAttributes) GetLocalPreference() *BgpAttributesLocalPreference { if x != nil { - return x.TypeE + return x.LocalPreference } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeF() *BgpAttributesSegmentRoutingPolicyTypeF { +func (x *BgpAttributes) GetIncludeAtomicAggregator() bool { + if x != nil && x.IncludeAtomicAggregator != nil { + return *x.IncludeAtomicAggregator + } + return false +} + +func (x *BgpAttributes) GetAggregator() *BgpAttributesAggregator { if x != nil { - return x.TypeF + return x.Aggregator } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeG() *BgpAttributesSegmentRoutingPolicyTypeG { +func (x *BgpAttributes) GetAs4Aggregator() *BgpAttributesAs4Aggregator { if x != nil { - return x.TypeG + return x.As4Aggregator } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeH() *BgpAttributesSegmentRoutingPolicyTypeH { +func (x *BgpAttributes) GetCommunity() []*BgpAttributesCommunity { if x != nil { - return x.TypeH + return x.Community } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeI() *BgpAttributesSegmentRoutingPolicyTypeI { +func (x *BgpAttributes) GetOriginatorId() *BgpAttributesOriginatorId { if x != nil { - return x.TypeI + return x.OriginatorId } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeJ() *BgpAttributesSegmentRoutingPolicyTypeJ { +func (x *BgpAttributes) GetClusterIds() []string { if x != nil { - return x.TypeJ + return x.ClusterIds } return nil } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeK() *BgpAttributesSegmentRoutingPolicyTypeK { +func (x *BgpAttributes) GetExtendedCommunities() []*BgpExtendedCommunity { if x != nil { - return x.TypeK + return x.ExtendedCommunities } return nil } -// Type A: SID only, in the form of MPLS Label. -// It is encoded as a Segment of Type 1 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeA struct { +func (x *BgpAttributes) GetTunnelEncapsulation() *BgpAttributesTunnelEncapsulation { + if x != nil { + return x.TunnelEncapsulation + } + return nil +} + +func (x *BgpAttributes) GetMpReach() *BgpAttributesMpReachNlri { + if x != nil { + return x.MpReach + } + return nil +} + +func (x *BgpAttributes) GetMpUnreach() *BgpAttributesMpUnreachNlri { + if x != nil { + return x.MpUnreach + } + return nil +} + +// One unknown attribute stored as hex bytes. +type BgpAttributesOtherAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // Description missing in models - MplsSid *BgpAttributesSidMpls `protobuf:"bytes,2,opt,name=mpls_sid,json=mplsSid,proto3" json:"mpls_sid,omitempty"` + // Optional flag in the BGP attribute. + // default = False + FlagOptional *bool `protobuf:"varint,1,opt,name=flag_optional,json=flagOptional,proto3,oneof" json:"flag_optional,omitempty"` + // Transitive flag in the BGP attribute. + // default = False + FlagTransitive *bool `protobuf:"varint,2,opt,name=flag_transitive,json=flagTransitive,proto3,oneof" json:"flag_transitive,omitempty"` + // Partial flag in the BGP attribute. + // default = False + FlagPartial *bool `protobuf:"varint,3,opt,name=flag_partial,json=flagPartial,proto3,oneof" json:"flag_partial,omitempty"` + // Extended length flag in the BGP attribute. + // default = False + FlagExtendedLength *bool `protobuf:"varint,4,opt,name=flag_extended_length,json=flagExtendedLength,proto3,oneof" json:"flag_extended_length,omitempty"` + // The value of the Type field in the attribute. + // required = true + Type *uint32 `protobuf:"varint,5,opt,name=type,proto3,oneof" json:"type,omitempty"` + // Contents of the value field ( the contents after the initial two bytes containing + // the Flags and Type field ) of the attribute in hex bytes. + // It includes the contents of length of the extended length field if included. + // required = true + RawValue *string `protobuf:"bytes,6,opt,name=raw_value,json=rawValue,proto3,oneof" json:"raw_value,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeA) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeA{} +func (x *BgpAttributesOtherAttribute) Reset() { + *x = BgpAttributesOtherAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[176] + mi := &file_otg_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeA) String() string { +func (x *BgpAttributesOtherAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeA) ProtoMessage() {} +func (*BgpAttributesOtherAttribute) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeA) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[176] +func (x *BgpAttributesOtherAttribute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38591,58 +39115,96 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeA) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeA.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeA) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{176} +// Deprecated: Use BgpAttributesOtherAttribute.ProtoReflect.Descriptor instead. +func (*BgpAttributesOtherAttribute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{172} } -func (x *BgpAttributesSegmentRoutingPolicyTypeA) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags +func (x *BgpAttributesOtherAttribute) GetFlagOptional() bool { + if x != nil && x.FlagOptional != nil { + return *x.FlagOptional } - return nil + return false } -func (x *BgpAttributesSegmentRoutingPolicyTypeA) GetMplsSid() *BgpAttributesSidMpls { - if x != nil { - return x.MplsSid +func (x *BgpAttributesOtherAttribute) GetFlagTransitive() bool { + if x != nil && x.FlagTransitive != nil { + return *x.FlagTransitive } - return nil + return false } -// Type B: SID only, in the form of IPv6 address. -// It is encoded as a Segment of Type 13 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeB struct { +func (x *BgpAttributesOtherAttribute) GetFlagPartial() bool { + if x != nil && x.FlagPartial != nil { + return *x.FlagPartial + } + return false +} + +func (x *BgpAttributesOtherAttribute) GetFlagExtendedLength() bool { + if x != nil && x.FlagExtendedLength != nil { + return *x.FlagExtendedLength + } + return false +} + +func (x *BgpAttributesOtherAttribute) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *BgpAttributesOtherAttribute) GetRawValue() string { + if x != nil && x.RawValue != nil { + return *x.RawValue + } + return "" +} + +// The AS_PATH 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. +// There are two modes in which AS numbers can be encoded in the AS Path Segments +// - When the AS Path is being exchanged between old and new BGP speakers or between +// two old BGP speakers , the AS numbers are encoded as 2 byte values. +// - When the AS Path is being exchanged between two new BGP speakers supporting 4 byte +// AS , the AS numbers are encoded as 4 byte values. +type BgpAttributesAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SRv6 SID. - // default = 0::0 - Srv6Sid *string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // default = Choice.Enum.four_byte_as_path + Choice *BgpAttributesAsPath_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesAsPath_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` + FourByteAsPath *BgpAttributesAsPathFourByteAsPath `protobuf:"bytes,2,opt,name=four_byte_as_path,json=fourByteAsPath,proto3" json:"four_byte_as_path,omitempty"` + // Description missing in models + TwoByteAsPath *BgpAttributesAsPathTwoByteAsPath `protobuf:"bytes,3,opt,name=two_byte_as_path,json=twoByteAsPath,proto3" json:"two_byte_as_path,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeB) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeB{} +func (x *BgpAttributesAsPath) Reset() { + *x = BgpAttributesAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[177] + mi := &file_otg_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeB) String() string { +func (x *BgpAttributesAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeB) ProtoMessage() {} +func (*BgpAttributesAsPath) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeB) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[177] +func (x *BgpAttributesAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38653,69 +39215,62 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeB) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeB.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeB) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{177} +// Deprecated: Use BgpAttributesAsPath.ProtoReflect.Descriptor instead. +func (*BgpAttributesAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{173} } -func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags +func (x *BgpAttributesAsPath) GetChoice() BgpAttributesAsPath_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpAttributesAsPath_Choice_unspecified } -func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetSrv6Sid() string { - if x != nil && x.Srv6Sid != nil { - return *x.Srv6Sid +func (x *BgpAttributesAsPath) GetFourByteAsPath() *BgpAttributesAsPathFourByteAsPath { + if x != nil { + return x.FourByteAsPath } - return "" + return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { +func (x *BgpAttributesAsPath) GetTwoByteAsPath() *BgpAttributesAsPathTwoByteAsPath { if x != nil { - return x.Srv6EndpointBehavior + return x.TwoByteAsPath } return nil } -// Type C: IPv4 Node Address with optional SID. -// It is encoded as a Segment of Type 3 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeC struct { +// AS Paths with 4 byte AS numbers can be exchanged only if both BGP speakers support +// 4 byte AS number extensions. +type BgpAttributesAsPathFourByteAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be - // set to 0 on transmission and ignored on receipt. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv4 address representing a node. - // default = 0.0.0.0 - Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // The AS path segments containing 4 byte AS numbers to be added in the AS Path attribute. + // By default, an empty AS path should always be included and for EBGP at minimum the + // local AS number should be present in the AS Path. + Segments []*BgpAttributesFourByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeC) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeC{} +func (x *BgpAttributesAsPathFourByteAsPath) Reset() { + *x = BgpAttributesAsPathFourByteAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[178] + mi := &file_otg_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeC) String() string { +func (x *BgpAttributesAsPathFourByteAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeC) ProtoMessage() {} +func (*BgpAttributesAsPathFourByteAsPath) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeC) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[178] +func (x *BgpAttributesAsPathFourByteAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38726,76 +39281,118 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeC) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeC.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeC) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{178} -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { +// Deprecated: Use BgpAttributesAsPathFourByteAsPath.ProtoReflect.Descriptor instead. +func (*BgpAttributesAsPathFourByteAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{174} +} + +func (x *BgpAttributesAsPathFourByteAsPath) GetSegments() []*BgpAttributesFourByteAsPathSegment { if x != nil { - return x.Flags + return x.Segments } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +// Configuration for a single BGP AS path segment containing 4 byte AS numbers. +type BgpAttributesFourByteAsPathSegment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 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. + // default = Type.Enum.as_seq + Type *BgpAttributesFourByteAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAttributesFourByteAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The 4 byte AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` +} + +func (x *BgpAttributesFourByteAsPathSegment) Reset() { + *x = BgpAttributesFourByteAsPathSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetIpv4NodeAddress() string { - if x != nil && x.Ipv4NodeAddress != nil { - return *x.Ipv4NodeAddress +func (x *BgpAttributesFourByteAsPathSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesFourByteAsPathSegment) ProtoMessage() {} + +func (x *BgpAttributesFourByteAsPathSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[175] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetSrMplsSid() *BgpAttributesSidMpls { +// Deprecated: Use BgpAttributesFourByteAsPathSegment.ProtoReflect.Descriptor instead. +func (*BgpAttributesFourByteAsPathSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{175} +} + +func (x *BgpAttributesFourByteAsPathSegment) GetType() BgpAttributesFourByteAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type + } + return BgpAttributesFourByteAsPathSegment_Type_unspecified +} + +func (x *BgpAttributesFourByteAsPathSegment) GetAsNumbers() []uint32 { if x != nil { - return x.SrMplsSid + return x.AsNumbers } return nil } -// Type D: IPv6 Node Address with optional SID for SR MPLS. -// It is encoded as a Segment of Type 4 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeD struct { +// AS Paths with 2 byte AS numbers is used when any of the two scenarios occur : +// - An old BGP speaker and new BGP speaker are sending BGP Updates to one another. +// - Two old BGP speakers are sending BGP Updates to one another. +type BgpAttributesAsPathTwoByteAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be - // set to 0 on transmission and ignored on receipt. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. - // default = 0::0 - Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // The AS path segments containing 2 byte AS numbers to be added in the AS Path attribute. + // By default, an empty AS path should always be included and for EBGP the sender's + // AS number should be prepended to the AS Path. + Segments []*BgpAttributesTwoByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeD{} +func (x *BgpAttributesAsPathTwoByteAsPath) Reset() { + *x = BgpAttributesAsPathTwoByteAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[179] + mi := &file_otg_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) String() string { +func (x *BgpAttributesAsPathTwoByteAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeD) ProtoMessage() {} +func (*BgpAttributesAsPathTwoByteAsPath) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeD) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[179] +func (x *BgpAttributesAsPathTwoByteAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38806,75 +39403,126 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeD) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeD.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeD) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{179} +// Deprecated: Use BgpAttributesAsPathTwoByteAsPath.ProtoReflect.Descriptor instead. +func (*BgpAttributesAsPathTwoByteAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{176} } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { +func (x *BgpAttributesAsPathTwoByteAsPath) GetSegments() []*BgpAttributesTwoByteAsPathSegment { if x != nil { - return x.Flags + return x.Segments } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +// Configuration for a single BGP AS path segment containing 2 byte AS numbers. +type BgpAttributesTwoByteAsPathSegment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 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. + // default = Type.Enum.as_seq + Type *BgpAttributesTwoByteAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.BgpAttributesTwoByteAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The 2 byte AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` +} + +func (x *BgpAttributesTwoByteAsPathSegment) Reset() { + *x = BgpAttributesTwoByteAsPathSegment{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetIpv6NodeAddress() string { - if x != nil && x.Ipv6NodeAddress != nil { - return *x.Ipv6NodeAddress +func (x *BgpAttributesTwoByteAsPathSegment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesTwoByteAsPathSegment) ProtoMessage() {} + +func (x *BgpAttributesTwoByteAsPathSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[177] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetSrMplsSid() *BgpAttributesSidMpls { +// Deprecated: Use BgpAttributesTwoByteAsPathSegment.ProtoReflect.Descriptor instead. +func (*BgpAttributesTwoByteAsPathSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{177} +} + +func (x *BgpAttributesTwoByteAsPathSegment) GetType() BgpAttributesTwoByteAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type + } + return BgpAttributesTwoByteAsPathSegment_Type_unspecified +} + +func (x *BgpAttributesTwoByteAsPathSegment) GetAsNumbers() []uint32 { if x != nil { - return x.SrMplsSid + return x.AsNumbers } return nil } -// Type E: IPv4 Address and Local Interface ID with optional SID -// It is encoded as a Segment of Type 5 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeE struct { +// The AS4_PATH 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. +// AS4_PATH is only exchanged in two scenarios: +// - When an old BGP speaker has to forward a received AS4_PATH containing 4 byte AS +// numbers to new BGP speaker. +// - When a new BGP speaker is connected to an old BGP speaker and has to propagate +// 4 byte AS numbers via the old BGP speaker. +// Its usage is described in RFC4893. +type BgpAttributesAs4Path struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // The Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // IPv4 address representing a node. - // default = 0.0.0.0 - Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + // The AS path segments containing 4 byte AS numbers to be added in the AS4_PATH attribute. + Segments []*BgpAttributesFourByteAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeE{} +func (x *BgpAttributesAs4Path) Reset() { + *x = BgpAttributesAs4Path{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[180] + mi := &file_otg_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) String() string { +func (x *BgpAttributesAs4Path) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeE) ProtoMessage() {} +func (*BgpAttributesAs4Path) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeE) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[180] +func (x *BgpAttributesAs4Path) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38885,75 +39533,144 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeE) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeE.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeE) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{180} +// Deprecated: Use BgpAttributesAs4Path.ProtoReflect.Descriptor instead. +func (*BgpAttributesAs4Path) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{178} } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { +func (x *BgpAttributesAs4Path) GetSegments() []*BgpAttributesFourByteAsPathSegment { if x != nil { - return x.Flags + return x.Segments } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId +// Optional AGGREGATOR attribute which maybe be added by a BGP speaker which performs +// route aggregation. +// When AGGREGATOR attribute is being sent to a new BGP speaker , the AS number is encoded +// as a 4 byte value. +// When AGGREGATOR attribute is being exchanged between a new and an old BGP speaker +// or between two old BGP speakers, +// the AS number is encoded as a 2 byte value. +// It contain the AS number and IP address of the speaker performing the aggregation. +type BgpAttributesAggregator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.four_byte_as + Choice *BgpAttributesAggregator_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesAggregator_Choice_Enum,oneof" json:"choice,omitempty"` + // The value of the 4 byte AS number of the BGP speaker which aggregated the route. + // If the value of the AS number is less than 2 octets ( 65535 or less), the AS4_AGGREGATOR + // object should not be sent. + // default = 65536 + FourByteAs *uint32 `protobuf:"varint,2,opt,name=four_byte_as,json=fourByteAs,proto3,oneof" json:"four_byte_as,omitempty"` + // The value of the 2 byte AS number of the BGP speaker which aggregated the route. + // + // default = 1 + TwoByteAs *uint32 `protobuf:"varint,3,opt,name=two_byte_as,json=twoByteAs,proto3,oneof" json:"two_byte_as,omitempty"` + // The IPv4 address of the BGP speaker which aggregated the route. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,4,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` +} + +func (x *BgpAttributesAggregator) Reset() { + *x = BgpAttributesAggregator{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[179] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BgpAttributesAggregator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesAggregator) ProtoMessage() {} + +func (x *BgpAttributesAggregator) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[179] + 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 BgpAttributesAggregator.ProtoReflect.Descriptor instead. +func (*BgpAttributesAggregator) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{179} +} + +func (x *BgpAttributesAggregator) GetChoice() BgpAttributesAggregator_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return BgpAttributesAggregator_Choice_unspecified +} + +func (x *BgpAttributesAggregator) GetFourByteAs() uint32 { + if x != nil && x.FourByteAs != nil { + return *x.FourByteAs } return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetIpv4NodeAddress() string { - if x != nil && x.Ipv4NodeAddress != nil { - return *x.Ipv4NodeAddress +func (x *BgpAttributesAggregator) GetTwoByteAs() uint32 { + if x != nil && x.TwoByteAs != nil { + return *x.TwoByteAs } - return "" + return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetSrMplsSid() *BgpAttributesSidMpls { - if x != nil { - return x.SrMplsSid +func (x *BgpAttributesAggregator) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return nil + return "" } -// Type F: IPv4 Local and Remote addresses with optional SR-MPLS SID. -// It is encoded as a Segment of Type 6 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeF struct { +// Optional AS4_AGGREGATOR attribute which maybe be added by a BGP speaker in one of +// two cases: +// - If it is a new BGP speaker speaking to an old BGP speaker and needs to send a 4 +// byte value for the AS number of the BGP route aggregator. +// - If it is a old BGP speaker speaking to a new BGP speaker and has to transparently +// forward a received AS4_AGGREGATOR from some other peer. +// Its usage is described in RFC4893. +type BgpAttributesAs4Aggregator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // Local IPv4 Address. - // default = 0.0.0.0 - LocalIpv4Address *string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3,oneof" json:"local_ipv4_address,omitempty"` - // Remote IPv4 Address. + // The value of the 4 byte AS number of the BGP speaker which aggregated the route. + AsNum *uint32 `protobuf:"varint,1,opt,name=as_num,json=asNum,proto3,oneof" json:"as_num,omitempty"` + // The IPv4 address of the BGP speaker which aggregated the route. // default = 0.0.0.0 - RemoteIpv4Address *string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3,oneof" json:"remote_ipv4_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeF) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeF{} +func (x *BgpAttributesAs4Aggregator) Reset() { + *x = BgpAttributesAs4Aggregator{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[181] + mi := &file_otg_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeF) String() string { +func (x *BgpAttributesAs4Aggregator) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeF) ProtoMessage() {} +func (*BgpAttributesAs4Aggregator) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeF) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[181] +func (x *BgpAttributesAs4Aggregator) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -38964,85 +39681,59 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeF) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeF.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeF) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{181} -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags - } - return nil +// Deprecated: Use BgpAttributesAs4Aggregator.ProtoReflect.Descriptor instead. +func (*BgpAttributesAs4Aggregator) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{180} } -func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetLocalIpv4Address() string { - if x != nil && x.LocalIpv4Address != nil { - return *x.LocalIpv4Address +func (x *BgpAttributesAs4Aggregator) GetAsNum() uint32 { + if x != nil && x.AsNum != nil { + return *x.AsNum } - return "" + return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetRemoteIpv4Address() string { - if x != nil && x.RemoteIpv4Address != nil { - return *x.RemoteIpv4Address +func (x *BgpAttributesAs4Aggregator) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetSrMplsSid() *BgpAttributesSidMpls { - if x != nil { - return x.SrMplsSid - } - return nil -} - -// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for -// SR MPLS. -// It is encoded as a Segment of Type 7 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeG struct { +// The COMMUNITY attribute provide additional capability for tagging routes and for +// modifying BGP routing policy on +// upstream and downstream routers. BGP community is a 32-bit number which is broken +// into 16-bit AS number and a +// 16-bit custom value or it contains some pre-defined well known values. +type BgpAttributesCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The type of community AS number. + // required = true + Choice *BgpAttributesCommunity_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesCommunity_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // The local Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // The IPv6 address representing the local node. - // default = 0::0 - LocalIpv6NodeAddress *string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` - // The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero - // when the local node address and interface identifiers are sufficient to describe - // the link. - // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing the remote node. The value MAY be set to zero when the - // local node address and interface identifiers are sufficient to describe the link. - // default = 0::0 - RemoteIpv6NodeAddress *string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + CustomCommunity *BgpAttributesCustomCommunity `protobuf:"bytes,2,opt,name=custom_community,json=customCommunity,proto3" json:"custom_community,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeG{} +func (x *BgpAttributesCommunity) Reset() { + *x = BgpAttributesCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[182] + mi := &file_otg_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) String() string { +func (x *BgpAttributesCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeG) ProtoMessage() {} +func (*BgpAttributesCommunity) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeG) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[182] +func (x *BgpAttributesCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -39053,74 +39744,109 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeG) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeG.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeG) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{182} +// Deprecated: Use BgpAttributesCommunity.ProtoReflect.Descriptor instead. +func (*BgpAttributesCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{181} } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { +func (x *BgpAttributesCommunity) GetChoice() BgpAttributesCommunity_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return BgpAttributesCommunity_Choice_unspecified +} + +func (x *BgpAttributesCommunity) GetCustomCommunity() *BgpAttributesCustomCommunity { if x != nil { - return x.Flags + return x.CustomCommunity } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId - } - return 0 +// User defined COMMUNITY attribute containing 2 byte AS and custom 2 byte value defined +// by the administrator of the domain. +type BgpAttributesCustomCommunity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // First two octets of the community value containing a 2 byte AS number. + // default = 0 + AsNumber *uint32 `protobuf:"varint,1,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Last two octets of the community value in hex. If user provides less than 4 hex + // bytes, it should be left-padded with 0s. + // default = 0000 + Custom *string `protobuf:"bytes,2,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetLocalIpv6NodeAddress() string { - if x != nil && x.LocalIpv6NodeAddress != nil { - return *x.LocalIpv6NodeAddress +func (x *BgpAttributesCustomCommunity) Reset() { + *x = BgpAttributesCustomCommunity{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[182] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpAttributesCustomCommunity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesCustomCommunity) ProtoMessage() {} + +func (x *BgpAttributesCustomCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[182] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetRemoteIpv6NodeAddress() string { - if x != nil && x.RemoteIpv6NodeAddress != nil { - return *x.RemoteIpv6NodeAddress +// Deprecated: Use BgpAttributesCustomCommunity.ProtoReflect.Descriptor instead. +func (*BgpAttributesCustomCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{182} +} + +func (x *BgpAttributesCustomCommunity) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return "" + return 0 } -func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetSrMplsSid() *BgpAttributesSidMpls { - if x != nil { - return x.SrMplsSid +func (x *BgpAttributesCustomCommunity) GetCustom() string { + if x != nil && x.Custom != nil { + return *x.Custom } - return nil + return "" } -// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. -// It is encoded as a Segment of Type 8 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeH struct { +// Next hop to be sent inside MP_REACH NLRI or as the NEXT_HOP attribute if advertised +// as traditional NLRI. +type BgpAttributesNextHop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // Local IPv6 Address. - // default = 0::0 - LocalIpv6Address *string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` - // Remote IPv6 Address. + // The type of the next HOP. + // required = true + Choice *BgpAttributesNextHop_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesNextHop_Choice_Enum,oneof" json:"choice,omitempty"` + // The 4 byte IPv4 address of the next-hop from which the route was received. + // default = 0.0.0.0 + Ipv4 *string `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + // The 16 byte IPv6 address of the next-hop from which the route was received. // default = 0::0 - RemoteIpv6Address *string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` - // Optional SR-MPLS SID. - SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` + Ipv6 *string `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + // Description missing in models + Ipv6TwoAddresses *BgpAttributesNextHopIpv6TwoAddresses `protobuf:"bytes,4,opt,name=ipv6_two_addresses,json=ipv6TwoAddresses,proto3" json:"ipv6_two_addresses,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeH{} +func (x *BgpAttributesNextHop) Reset() { + *x = BgpAttributesNextHop{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39128,13 +39854,13 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeH) Reset() { } } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) String() string { +func (x *BgpAttributesNextHop) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeH) ProtoMessage() {} +func (*BgpAttributesNextHop) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeH) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesNextHop) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39146,63 +39872,57 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeH) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeH.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeH) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesNextHop.ProtoReflect.Descriptor instead. +func (*BgpAttributesNextHop) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{183} } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags +func (x *BgpAttributesNextHop) GetChoice() BgpAttributesNextHop_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return BgpAttributesNextHop_Choice_unspecified } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetLocalIpv6Address() string { - if x != nil && x.LocalIpv6Address != nil { - return *x.LocalIpv6Address +func (x *BgpAttributesNextHop) GetIpv4() string { + if x != nil && x.Ipv4 != nil { + return *x.Ipv4 } return "" } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetRemoteIpv6Address() string { - if x != nil && x.RemoteIpv6Address != nil { - return *x.RemoteIpv6Address +func (x *BgpAttributesNextHop) GetIpv6() string { + if x != nil && x.Ipv6 != nil { + return *x.Ipv6 } return "" } -func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetSrMplsSid() *BgpAttributesSidMpls { +func (x *BgpAttributesNextHop) GetIpv6TwoAddresses() *BgpAttributesNextHopIpv6TwoAddresses { if x != nil { - return x.SrMplsSid + return x.Ipv6TwoAddresses } return nil } -// Type I: IPv6 Node Address with optional SR Algorithm and optional SRv6 SID. -// It is encoded as a Segment of Type 14 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeI struct { +// There is a specific scenario in which it is possible to receive a Global and Link +// Local address in the Next Hop +// field in a MP_REACH attribute or in the NEXT_HOP attribute(RFC2545: Section 3). +type BgpAttributesNextHopIpv6TwoAddresses struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be - // set to 0 on transmission and ignored on receipt. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // IPv6 address representing a node. + // The first IPv6 next hop in the 32 byte IPv6 Next Hop. // default = 0::0 - Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` - // Description missing in models - Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,4,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` - // Description missing in models - Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,5,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` + First *string `protobuf:"bytes,1,opt,name=first,proto3,oneof" json:"first,omitempty"` + // The second IPv6 next hop in the 32 byte IPv6 Next Hop. + // default = 0::0 + Second *string `protobuf:"bytes,2,opt,name=second,proto3,oneof" json:"second,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeI) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeI{} +func (x *BgpAttributesNextHopIpv6TwoAddresses) Reset() { + *x = BgpAttributesNextHopIpv6TwoAddresses{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39210,13 +39930,13 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeI) Reset() { } } -func (x *BgpAttributesSegmentRoutingPolicyTypeI) String() string { +func (x *BgpAttributesNextHopIpv6TwoAddresses) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeI) ProtoMessage() {} +func (*BgpAttributesNextHopIpv6TwoAddresses) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeI) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesNextHopIpv6TwoAddresses) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39228,83 +39948,55 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeI) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeI.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeI) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesNextHopIpv6TwoAddresses.ProtoReflect.Descriptor instead. +func (*BgpAttributesNextHopIpv6TwoAddresses) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{184} } -func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags - } - return nil -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetIpv6NodeAddress() string { - if x != nil && x.Ipv6NodeAddress != nil { - return *x.Ipv6NodeAddress +func (x *BgpAttributesNextHopIpv6TwoAddresses) GetFirst() string { + if x != nil && x.First != nil { + return *x.First } return "" } -func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrv6Sid() *BgpAttributesSidSrv6 { - if x != nil { - return x.Srv6Sid - } - return nil -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { - if x != nil { - return x.Srv6EndpointBehavior +func (x *BgpAttributesNextHopIpv6TwoAddresses) GetSecond() string { + if x != nil && x.Second != nil { + return *x.Second } - return nil + return "" } -// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional -// SID. -// It is encoded as a Segment of Type 15 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeJ struct { +// The MP_REACH attribute is an optional attribute which can be included in the attributes +// of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3. +// The following AFI / SAFI combinations are supported: +// - IPv4 Unicast with AFI as 1 and SAFI as 1 +// - IPv6 Unicast with AFI as 2 and SAFI as 1 +// - Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 ( draft-ietf-idr-sr-policy-safi-02 +// Section 2.1 ) +// - Segment Routing Policy for IPv6 Unicast with AFI as 2 and SAFI as 73 +type BgpAttributesMpReachNlri struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be - // set to 0 on transmission and ignored on receipt. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // The local Interface Index as defined in [RFC8664]. - // default = 0 - LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` - // The IPv6 address representing the local node. - // default = 0::0 - LocalIpv6NodeAddress *string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` - // The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero - // when the local node address and interface identifiers are sufficient to describe - // the link. - // default = 0 - RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` - // IPv6 address representing the remote node. The value MAY be set to zero when the - // local node address and interface identifiers are sufficient to describe the link. - // default = 0::0 - RemoteIpv6NodeAddress *string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` - // Description missing in models - Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` - // Description missing in models - Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` + NextHop *BgpAttributesNextHop `protobuf:"bytes,1,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"` + // The AFI and SAFI to be sent in the MPREACH_NLRI in the Update. + // required = true + Choice *BgpAttributesMpReachNlri_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.BgpAttributesMpReachNlri_Choice_Enum,oneof" json:"choice,omitempty"` + // List of IPv4 prefixes being sent in the IPv4 Unicast MPREACH_NLRI . + Ipv4Unicast []*BgpOneIpv4NLRIPrefix `protobuf:"bytes,3,rep,name=ipv4_unicast,json=ipv4Unicast,proto3" json:"ipv4_unicast,omitempty"` + // List of IPv6 prefixes being sent in the IPv6 Unicast MPREACH_NLRI . + Ipv6Unicast []*BgpOneIpv6NLRIPrefix `protobuf:"bytes,4,rep,name=ipv6_unicast,json=ipv6Unicast,proto3" json:"ipv6_unicast,omitempty"` + // IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPREACH_NLRI . + Ipv4Srpolicy *BgpIpv4SrPolicyNLRIPrefix `protobuf:"bytes,5,opt,name=ipv4_srpolicy,json=ipv4Srpolicy,proto3" json:"ipv4_srpolicy,omitempty"` + // IPv6 endpoint with Segment Routing Policy being sent in the IPv6 MPREACH_NLRI . + Ipv6Srpolicy *BgpIpv6SrPolicyNLRIPrefix `protobuf:"bytes,6,opt,name=ipv6_srpolicy,json=ipv6Srpolicy,proto3" json:"ipv6_srpolicy,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeJ{} +func (x *BgpAttributesMpReachNlri) Reset() { + *x = BgpAttributesMpReachNlri{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39312,13 +40004,13 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeJ) Reset() { } } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) String() string { +func (x *BgpAttributesMpReachNlri) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeJ) ProtoMessage() {} +func (*BgpAttributesMpReachNlri) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesMpReachNlri) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39330,94 +40022,80 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeJ) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeJ.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeJ) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesMpReachNlri.ProtoReflect.Descriptor instead. +func (*BgpAttributesMpReachNlri) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{185} } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { +func (x *BgpAttributesMpReachNlri) GetNextHop() *BgpAttributesNextHop { if x != nil { - return x.Flags + return x.NextHop } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm - } - return 0 -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetLocalInterfaceId() uint32 { - if x != nil && x.LocalInterfaceId != nil { - return *x.LocalInterfaceId - } - return 0 -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetLocalIpv6NodeAddress() string { - if x != nil && x.LocalIpv6NodeAddress != nil { - return *x.LocalIpv6NodeAddress +func (x *BgpAttributesMpReachNlri) GetChoice() BgpAttributesMpReachNlri_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpAttributesMpReachNlri_Choice_unspecified } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetRemoteInterfaceId() uint32 { - if x != nil && x.RemoteInterfaceId != nil { - return *x.RemoteInterfaceId +func (x *BgpAttributesMpReachNlri) GetIpv4Unicast() []*BgpOneIpv4NLRIPrefix { + if x != nil { + return x.Ipv4Unicast } - return 0 + return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetRemoteIpv6NodeAddress() string { - if x != nil && x.RemoteIpv6NodeAddress != nil { - return *x.RemoteIpv6NodeAddress +func (x *BgpAttributesMpReachNlri) GetIpv6Unicast() []*BgpOneIpv6NLRIPrefix { + if x != nil { + return x.Ipv6Unicast } - return "" + return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrv6Sid() *BgpAttributesSidSrv6 { +func (x *BgpAttributesMpReachNlri) GetIpv4Srpolicy() *BgpIpv4SrPolicyNLRIPrefix { if x != nil { - return x.Srv6Sid + return x.Ipv4Srpolicy } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { +func (x *BgpAttributesMpReachNlri) GetIpv6Srpolicy() *BgpIpv6SrPolicyNLRIPrefix { if x != nil { - return x.Srv6EndpointBehavior + return x.Ipv6Srpolicy } return nil } -// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. -// It is encoded as a Segment of Type 16 in the SEGMENT_LIST sub-tlv. -type BgpAttributesSegmentRoutingPolicyTypeK struct { +// The MP_UNREACH attribute is an optional attribute which can be included in the attributes +// of a BGP Update message as defined in https://datatracker.ietf.org/doc/html/rfc4760#section-3. +// The following AFI / SAFI combinations are supported: +// - IPv4 Unicast with AFI as 1 and SAFI as 1 +// - IPv6 Unicast with AFI as 2 and SAFI as 1 +// - Segment Routing Policy for IPv4 Unicast with AFI as 1 and SAFI as 73 (draft-ietf-idr-sr-policy-safi-02 +// Section 2.1) +// - Segment Routing Policy for IPv6 Unicast with AFI as 2 and SAFI as 73 +type BgpAttributesMpUnreachNlri struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be - // set to 0 on transmission and ignored on receipt. - // default = 0 - SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` - // Local IPv6 Address. - // default = 0::0 - LocalIpv6Address *string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` - // Remote IPv6 Address. - // default = 0::0 - RemoteIpv6Address *string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` - // Description missing in models - Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` - // Description missing in models - Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` + // The AFI and SAFI to be sent in the MPUNREACH_NLRI in the Update. + Choice *BgpAttributesMpUnreachNlri_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesMpUnreachNlri_Choice_Enum,oneof" json:"choice,omitempty"` + // List of IPv4 prefixes being sent in the IPv4 Unicast MPUNREACH_NLRI . + Ipv4Unicast []*BgpOneIpv4NLRIPrefix `protobuf:"bytes,2,rep,name=ipv4_unicast,json=ipv4Unicast,proto3" json:"ipv4_unicast,omitempty"` + // List of IPv6 prefixes being sent in the IPv6 Unicast MPUNREACH_NLRI . + Ipv6Unicast []*BgpOneIpv6NLRIPrefix `protobuf:"bytes,3,rep,name=ipv6_unicast,json=ipv6Unicast,proto3" json:"ipv6_unicast,omitempty"` + // IPv4 endpoint with Segment Routing Policy being sent in the IPv4 MPUNREACH_NLRI . + Ipv4Srpolicy *BgpIpv4SrPolicyNLRIPrefix `protobuf:"bytes,4,opt,name=ipv4_srpolicy,json=ipv4Srpolicy,proto3" json:"ipv4_srpolicy,omitempty"` + // IPv6 endpoint with Segment Routing Policy being sent in the IPv4 MPUNREACH_NLRI . + Ipv6Srpolicy *BgpIpv6SrPolicyNLRIPrefix `protobuf:"bytes,5,opt,name=ipv6_srpolicy,json=ipv6Srpolicy,proto3" json:"ipv6_srpolicy,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeK{} +func (x *BgpAttributesMpUnreachNlri) Reset() { + *x = BgpAttributesMpUnreachNlri{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39425,13 +40103,13 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeK) Reset() { } } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) String() string { +func (x *BgpAttributesMpUnreachNlri) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeK) ProtoMessage() {} +func (*BgpAttributesMpUnreachNlri) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeK) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesMpUnreachNlri) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39443,87 +40121,61 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeK) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeK.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeK) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesMpUnreachNlri.ProtoReflect.Descriptor instead. +func (*BgpAttributesMpUnreachNlri) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{186} } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { - if x != nil { - return x.Flags - } - return nil -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrAlgorithm() uint32 { - if x != nil && x.SrAlgorithm != nil { - return *x.SrAlgorithm +func (x *BgpAttributesMpUnreachNlri) GetChoice() BgpAttributesMpUnreachNlri_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return BgpAttributesMpUnreachNlri_Choice_unspecified } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetLocalIpv6Address() string { - if x != nil && x.LocalIpv6Address != nil { - return *x.LocalIpv6Address +func (x *BgpAttributesMpUnreachNlri) GetIpv4Unicast() []*BgpOneIpv4NLRIPrefix { + if x != nil { + return x.Ipv4Unicast } - return "" + return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetRemoteIpv6Address() string { - if x != nil && x.RemoteIpv6Address != nil { - return *x.RemoteIpv6Address +func (x *BgpAttributesMpUnreachNlri) GetIpv6Unicast() []*BgpOneIpv6NLRIPrefix { + if x != nil { + return x.Ipv6Unicast } - return "" + return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrv6Sid() *BgpAttributesSidSrv6 { +func (x *BgpAttributesMpUnreachNlri) GetIpv4Srpolicy() *BgpIpv4SrPolicyNLRIPrefix { if x != nil { - return x.Srv6Sid + return x.Ipv4Srpolicy } return nil } -func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { +func (x *BgpAttributesMpUnreachNlri) GetIpv6Srpolicy() *BgpIpv6SrPolicyNLRIPrefix { if x != nil { - return x.Srv6EndpointBehavior + return x.Ipv6Srpolicy } return nil } -// Flags for each Segment in SEGMENT_LIST sub-tlv. -// - V-flag. Indicates verification is enabled. See section 5, of https://datatracker.ietf.org/doc/html/rfc9256 -// - A-flag. Indicates presence of SR Algorithm field applicable to Segment Types C, -// D , I , J and K . -// - B-Flag. Indicates presence of SRv6 Endpoint Behavior and SID Structure encoding -// applicable to Segment Types B , I , J and K . -// - S-Flag: This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID -// depending on the segment type. (draft-ietf-idr-bgp-sr-segtypes-ext-03 Section 2.10). -// This flag is applicable for Segment Types C, D, E, F, G, H, I, J, and K. -type BgpAttributesSegmentRoutingPolicyTypeFlags struct { +// Optional MULTI_EXIT_DISCRIMINATOR attribute sent to the peer to help in the route +// selection process. +type BgpAttributesMultiExitDiscriminator struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Indicates verification of segment data in is enabled. - // default = False - VFlag *bool `protobuf:"varint,1,opt,name=v_flag,json=vFlag,proto3,oneof" json:"v_flag,omitempty"` - // Indicates presence of SR Algorithm field applicable to Segment Types 3, 4, and 9. + // The multi exit discriminator (MED) value used for route selection sent to the peer. // - // default = False - AFlag *bool `protobuf:"varint,2,opt,name=a_flag,json=aFlag,proto3,oneof" json:"a_flag,omitempty"` - // This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID depending - // on the segment type. - // default = False - SFlag *bool `protobuf:"varint,3,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` - // Indicates presence of SRv6 Endpoint Behavior and SID Structure encoding specified - // in Section 2.4.4.2.4 - // of draft-ietf-idr-sr-policy-safi-02. - // default = False - BFlag *bool `protobuf:"varint,4,opt,name=b_flag,json=bFlag,proto3,oneof" json:"b_flag,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) Reset() { - *x = BgpAttributesSegmentRoutingPolicyTypeFlags{} +func (x *BgpAttributesMultiExitDiscriminator) Reset() { + *x = BgpAttributesMultiExitDiscriminator{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39531,13 +40183,13 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) Reset() { } } -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) String() string { +func (x *BgpAttributesMultiExitDiscriminator) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicyTypeFlags) ProtoMessage() {} +func (*BgpAttributesMultiExitDiscriminator) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesMultiExitDiscriminator) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39549,72 +40201,38 @@ func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeFlags.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicyTypeFlags) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesMultiExitDiscriminator.ProtoReflect.Descriptor instead. +func (*BgpAttributesMultiExitDiscriminator) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{187} } -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetVFlag() bool { - if x != nil && x.VFlag != nil { - return *x.VFlag - } - return false -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetAFlag() bool { - if x != nil && x.AFlag != nil { - return *x.AFlag - } - return false -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetSFlag() bool { - if x != nil && x.SFlag != nil { - return *x.SFlag - } - return false -} - -func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetBFlag() bool { - if x != nil && x.BFlag != nil { - return *x.BFlag +func (x *BgpAttributesMultiExitDiscriminator) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return false + return 0 } -// Configuration for optional SRv6 Endpoint Behavior and SID Structure. Summation of -// lengths for Locator Block, Locator Node, Function, and Argument MUST be less than -// or equal to 128. - This is specified in draft-ietf-idr-sr-policy-safi-02 Section -// 2.4.4.2.4 -type BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure struct { +// Optional LOCAL_PREFERENCE attribute sent to the peer to indicate the degree of preference +// +// for externally learned routes.This should be included only for internal peers.It +// is +// used for the selection of the path for the traffic leaving the AS.The route with +// the +// highest local preference value is preferred. +type BgpAttributesLocalPreference struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This is a 2-octet field that is used to specify the SRv6 Endpoint Behavior code point - // for the SRv6 SID as defined - // in section 9.2 of [RFC8986]. When set with the value 0xFFFF (i.e., Opaque), the choice - // of SRv6 Endpoint Behavior is - // left to the headend. Well known 16-bit values for this field are available at - // https://www.iana.org/assignments/segment-routing/segment-routing.xhtml . - // default = ffff - EndpointBehaviour *string `protobuf:"bytes,1,opt,name=endpoint_behaviour,json=endpointBehaviour,proto3,oneof" json:"endpoint_behaviour,omitempty"` - // SRv6 SID Locator Block length in bits. - // default = 0 - LbLength *uint32 `protobuf:"varint,2,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` - // SRv6 SID Locator Node length in bits. - // default = 0 - LnLength *uint32 `protobuf:"varint,3,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` - // SRv6 SID Function length in bits. - // default = 0 - FuncLength *uint32 `protobuf:"varint,4,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` - // SRv6 SID Arguments length in bits. - // default = 0 - ArgLength *uint32 `protobuf:"varint,5,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` + // Value to be set in the LOCAL_PREFERENCE attribute The multi exit discriminator (MED) + // value used for route selection sent to the peer. + // default = 100 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) Reset() { - *x = BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure{} +func (x *BgpAttributesLocalPreference) Reset() { + *x = BgpAttributesLocalPreference{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39622,13 +40240,13 @@ func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) R } } -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) String() string { +func (x *BgpAttributesLocalPreference) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} +func (*BgpAttributesLocalPreference) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesLocalPreference) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39640,60 +40258,32 @@ func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) P return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesLocalPreference.ProtoReflect.Descriptor instead. +func (*BgpAttributesLocalPreference) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{188} } -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetEndpointBehaviour() string { - if x != nil && x.EndpointBehaviour != nil { - return *x.EndpointBehaviour - } - return "" -} - -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { - if x != nil && x.LbLength != nil { - return *x.LbLength - } - return 0 -} - -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { - if x != nil && x.LnLength != nil { - return *x.LnLength +func (x *BgpAttributesLocalPreference) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { - if x != nil && x.FuncLength != nil { - return *x.FuncLength - } - return 0 -} - -func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { - if x != nil && x.ArgLength != nil { - return *x.ArgLength - } - return 0 -} - -// Optional field in the NLRI carrying the distinguisher for Segment Routing Policy -// NLRI with SAFI 73. -type BgpNLRIPrefixSegmentRoutingDistinguisher struct { +// Optional ORIGINATOR_ID attribute (type code 9) carries the Router Id of the route's +// originator in the local AS. +type BgpAttributesOriginatorId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The value of the optional Segment Routing distinguisher of the prefix. - // default = 1 - Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The value of the originator's Router Id. + // default = 0.0.0.0 + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) Reset() { - *x = BgpNLRIPrefixSegmentRoutingDistinguisher{} +func (x *BgpAttributesOriginatorId) Reset() { + *x = BgpAttributesOriginatorId{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39701,13 +40291,13 @@ func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) Reset() { } } -func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) String() string { +func (x *BgpAttributesOriginatorId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpNLRIPrefixSegmentRoutingDistinguisher) ProtoMessage() {} +func (*BgpAttributesOriginatorId) ProtoMessage() {} -func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesOriginatorId) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39719,96 +40309,36 @@ func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use BgpNLRIPrefixSegmentRoutingDistinguisher.ProtoReflect.Descriptor instead. -func (*BgpNLRIPrefixSegmentRoutingDistinguisher) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesOriginatorId.ProtoReflect.Descriptor instead. +func (*BgpAttributesOriginatorId) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{189} } -func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) GetValue() uint32 { +func (x *BgpAttributesOriginatorId) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -// Configuration for BGPv6 peer settings and routes. -type BgpV6Peer struct { +// The TUNNEL_ENCAPSULATION attribute is used by a BGP speaker to inform other BGP +// speakers how to encapsulate packets that need to be sent to it. +// It is defined in RFC9012 and is assigned a Type code of 23. +type BgpAttributesTunnelEncapsulation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 address of the BGP peer for the session - // required = true - PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` - // Description missing in models - SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3" json:"segment_routing,omitempty"` - // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments - // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). - // - // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . - // Each EVI contains a list of Broadcast Domains. - // Each Broadcast Domain contains a list of MAC/IP Ranges. - // - // is responsible for advertising Ethernet - // Auto-discovery Route Per EVI (Type 1). - // - // is responsible for advertising Ethernet Auto-discovery Route - // Per Ethernet Segment (Type 1). - // - // is responsible for advertising - // MAC/IP Advertisement Route (Type 2). - // - // is responsible for advertising Inclusive - // Multicast Ethernet Tag Route (Type 3). - // - // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). - EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` - // The type of BGP autonomous system. External BGP is used for BGP links between two - // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous - // system (ibgp). BGP property defaults are aligned with this object defined as an internal - // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to - // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' - // attribute in 'as_path' field in any Route Range should be changed from default value - // 'do_not_include_local_as' to any other value. - // required = true - AsType *BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum,oneof" json:"as_type,omitempty"` - // Autonomous System Number (AS number or ASN) - // required = true - AsNumber *uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // The width in bytes of the as_number values. Any as_number values that exceeds the - // width MUST result in an error. - // default = AsNumberWidth.Enum.four - AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` - // Description missing in models - Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Description missing in models - Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3" json:"capability,omitempty"` - // Description missing in models - LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` - // Emulated BGPv4 route ranges. - V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` - // Emulated BGPv6 route ranges. - V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier - // (AFI). - V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` - // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier - // (AFI). - V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Identifies a type of tunnel. The field contains values from the IANA registry BGP + // Tunnel Encapsulation Attribute Tunnel Types. + // default = Choice.Enum.sr_policy + Choice *BgpAttributesTunnelEncapsulation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesTunnelEncapsulation_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` - // BGP Updates to be sent to the peer as specified after the session is established. - ReplayUpdates *BgpUpdateReplay `protobuf:"bytes,16,opt,name=replay_updates,json=replayUpdates,proto3" json:"replay_updates,omitempty"` + SrPolicy *BgpAttributesSegmentRoutingPolicy `protobuf:"bytes,2,opt,name=sr_policy,json=srPolicy,proto3" json:"sr_policy,omitempty"` } -func (x *BgpV6Peer) Reset() { - *x = BgpV6Peer{} +func (x *BgpAttributesTunnelEncapsulation) Reset() { + *x = BgpAttributesTunnelEncapsulation{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39816,13 +40346,13 @@ func (x *BgpV6Peer) Reset() { } } -func (x *BgpV6Peer) String() string { +func (x *BgpAttributesTunnelEncapsulation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer) ProtoMessage() {} +func (*BgpAttributesTunnelEncapsulation) ProtoMessage() {} -func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { +func (x *BgpAttributesTunnelEncapsulation) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -39834,165 +40364,189 @@ func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. -func (*BgpV6Peer) Descriptor() ([]byte, []int) { +// Deprecated: Use BgpAttributesTunnelEncapsulation.ProtoReflect.Descriptor instead. +func (*BgpAttributesTunnelEncapsulation) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{190} } -func (x *BgpV6Peer) GetPeerAddress() string { - if x != nil && x.PeerAddress != nil { - return *x.PeerAddress +func (x *BgpAttributesTunnelEncapsulation) GetChoice() BgpAttributesTunnelEncapsulation_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpAttributesTunnelEncapsulation_Choice_unspecified } -func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { +func (x *BgpAttributesTunnelEncapsulation) GetSrPolicy() *BgpAttributesSegmentRoutingPolicy { if x != nil { - return x.SegmentRouting + return x.SrPolicy } return nil } -func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { - if x != nil { - return x.EvpnEthernetSegments - } - return nil +// Optional Segment Routing Policy information as defined in draft-ietf-idr-sr-policy-safi-02. +// This information is carried in TUNNEL_ENCAPSULATION attribute with type set to SR +// Policy (15). +type BgpAttributesSegmentRoutingPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + BindingSegmentIdentifier *BgpAttributesBsid `protobuf:"bytes,1,opt,name=binding_segment_identifier,json=bindingSegmentIdentifier,proto3" json:"binding_segment_identifier,omitempty"` + // The SRv6 Binding SID sub-TLV is an optional sub-TLV of type 20 that is used to signal + // the SRv6 Binding SID + // related information of an SR Policy candidate path. + // - More than one SRv6 Binding SID sub-TLVs MAY be signaled in the same SR Policy + // encoding to indicate one + // or more SRv6 SIDs, each with potentially different SRv6 Endpoint Behaviors to + // be instantiated. + // - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section + // 2.4.3 . + Srv6BindingSegmentIdentifier []*BgpAttributesSrv6Bsid `protobuf:"bytes,2,rep,name=srv6_binding_segment_identifier,json=srv6BindingSegmentIdentifier,proto3" json:"srv6_binding_segment_identifier,omitempty"` + // Description missing in models + Preference *BgpAttributesSrPolicyPreference `protobuf:"bytes,3,opt,name=preference,proto3" json:"preference,omitempty"` + // Description missing in models + Priority *BgpAttributesSrPolicyPriority `protobuf:"bytes,4,opt,name=priority,proto3" json:"priority,omitempty"` + // Description missing in models + PolicyName *BgpAttributesSrPolicyPolicyName `protobuf:"bytes,5,opt,name=policy_name,json=policyName,proto3" json:"policy_name,omitempty"` + // Description missing in models + PolicyCandidateName *BgpAttributesSrPolicyPolicyCandidateName `protobuf:"bytes,6,opt,name=policy_candidate_name,json=policyCandidateName,proto3" json:"policy_candidate_name,omitempty"` + // Description missing in models + ExplicitNullLabelPolicy *BgpAttributesSrPolicyExplicitNullPolicy `protobuf:"bytes,7,opt,name=explicit_null_label_policy,json=explicitNullLabelPolicy,proto3" json:"explicit_null_label_policy,omitempty"` + // Description missing in models + SegmentList []*BgpAttributesSrPolicySegmentList `protobuf:"bytes,8,rep,name=segment_list,json=segmentList,proto3" json:"segment_list,omitempty"` } -func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { - if x != nil && x.AsType != nil { - return *x.AsType +func (x *BgpAttributesSegmentRoutingPolicy) Reset() { + *x = BgpAttributesSegmentRoutingPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[191] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return BgpV6Peer_AsType_unspecified } -func (x *BgpV6Peer) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 +func (x *BgpAttributesSegmentRoutingPolicy) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { - if x != nil && x.AsNumberWidth != nil { - return *x.AsNumberWidth +func (*BgpAttributesSegmentRoutingPolicy) ProtoMessage() {} + +func (x *BgpAttributesSegmentRoutingPolicy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[191] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return BgpV6Peer_AsNumberWidth_unspecified + return mi.MessageOf(x) } -func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { - if x != nil { - return x.Advanced - } - return nil +// Deprecated: Use BgpAttributesSegmentRoutingPolicy.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{191} } -func (x *BgpV6Peer) GetCapability() *BgpCapability { +func (x *BgpAttributesSegmentRoutingPolicy) GetBindingSegmentIdentifier() *BgpAttributesBsid { if x != nil { - return x.Capability + return x.BindingSegmentIdentifier } return nil } -func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { +func (x *BgpAttributesSegmentRoutingPolicy) GetSrv6BindingSegmentIdentifier() []*BgpAttributesSrv6Bsid { if x != nil { - return x.LearnedInformationFilter + return x.Srv6BindingSegmentIdentifier } return nil } -func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { +func (x *BgpAttributesSegmentRoutingPolicy) GetPreference() *BgpAttributesSrPolicyPreference { if x != nil { - return x.V4Routes + return x.Preference } return nil } -func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { +func (x *BgpAttributesSegmentRoutingPolicy) GetPriority() *BgpAttributesSrPolicyPriority { if x != nil { - return x.V6Routes + return x.Priority } return nil } -func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { +func (x *BgpAttributesSegmentRoutingPolicy) GetPolicyName() *BgpAttributesSrPolicyPolicyName { if x != nil { - return x.V4SrtePolicies + return x.PolicyName } return nil } -func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { +func (x *BgpAttributesSegmentRoutingPolicy) GetPolicyCandidateName() *BgpAttributesSrPolicyPolicyCandidateName { if x != nil { - return x.V6SrtePolicies + return x.PolicyCandidateName } return nil } -func (x *BgpV6Peer) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { +func (x *BgpAttributesSegmentRoutingPolicy) GetExplicitNullLabelPolicy() *BgpAttributesSrPolicyExplicitNullPolicy { if x != nil { - return x.GracefulRestart + return x.ExplicitNullLabelPolicy } return nil } -func (x *BgpV6Peer) GetReplayUpdates() *BgpUpdateReplay { +func (x *BgpAttributesSegmentRoutingPolicy) GetSegmentList() []*BgpAttributesSrPolicySegmentList { if x != nil { - return x.ReplayUpdates + return x.SegmentList } return nil } -// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. -type BgpV6Interface struct { +// The Binding Segment Identifier is an optional sub-tlv of type 13 that can be sent +// with a SR Policy +// Tunnel Encapsulation attribute. +// When the active candidate path has a specified Binding Segment Identifier, the SR +// Policy uses that +// BSID if this value (label in MPLS, IPv6 address in SRv6) is available. +// - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section +// 2.4.2 . +// - It is recommended that if SRv6 Binding SID is desired to be signalled, the SRv6 +// Binding SID sub-TLV that enables +// the specification of the SRv6 Endpoint Behavior should be used. +type BgpAttributesBsid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source - // IP for this list of BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - /components/schemas/DhcpClient.V6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - /components/schemas/DhcpClient.V6/properties/name - // + // The type of Segment Identifier. // required = true - Ipv6Name *string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3,oneof" json:"ipv6_name,omitempty"` - // This contains the list of BGPv6 peers configured on this interface. - Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` + Choice *BgpAttributesBsid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesBsid_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Mpls *BgpAttributesBsidMpls `protobuf:"bytes,2,opt,name=mpls,proto3" json:"mpls,omitempty"` + // Description missing in models + Srv6 *BgpAttributesBsidSrv6 `protobuf:"bytes,3,opt,name=srv6,proto3" json:"srv6,omitempty"` } -func (x *BgpV6Interface) Reset() { - *x = BgpV6Interface{} +func (x *BgpAttributesBsid) Reset() { + *x = BgpAttributesBsid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[191] + mi := &file_otg_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Interface) String() string { +func (x *BgpAttributesBsid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Interface) ProtoMessage() {} +func (*BgpAttributesBsid) ProtoMessage() {} -func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[191] +func (x *BgpAttributesBsid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40003,74 +40557,70 @@ func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. -func (*BgpV6Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{191} +// Deprecated: Use BgpAttributesBsid.ProtoReflect.Descriptor instead. +func (*BgpAttributesBsid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192} } -func (x *BgpV6Interface) GetIpv6Name() string { - if x != nil && x.Ipv6Name != nil { - return *x.Ipv6Name +func (x *BgpAttributesBsid) GetChoice() BgpAttributesBsid_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpAttributesBsid_Choice_unspecified } -func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { +func (x *BgpAttributesBsid) GetMpls() *BgpAttributesBsidMpls { if x != nil { - return x.Peers + return x.Mpls } return nil } -// Configuration for BGPv6 segment routing settings. -type BgpV6SegmentRouting struct { +func (x *BgpAttributesBsid) GetSrv6() *BgpAttributesBsidSrv6 { + if x != nil { + return x.Srv6 + } + return nil +} + +// When the active candidate path has a specified Binding Segment Identifier, the SR +// Policy uses that BSID defined +// as a MPLS label.The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 +// Section 2.4.2 . +type BgpAttributesBsidMpls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // TBD - // default = False - IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` - // TBD - // default = False - ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` - // TBD - // default = False - CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` - // TBD - // default = 0 - TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` - // TBD - // default = 0 - MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` - // TBD + // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is + // described in section 6.2.3 in [RFC9256]. // default = False - AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` - // TBD - // default = 0 - SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` - // TBD + FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` + // I-Flag: This flag encodes the Drop Upon Invalid behavior. + // It's usage is described in section 8.2 in [RFC9256]. // default = False - AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` + FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` + // Description missing in models + MplsSid *BgpAttributesSidMpls `protobuf:"bytes,3,opt,name=mpls_sid,json=mplsSid,proto3" json:"mpls_sid,omitempty"` } -func (x *BgpV6SegmentRouting) Reset() { - *x = BgpV6SegmentRouting{} +func (x *BgpAttributesBsidMpls) Reset() { + *x = BgpAttributesBsidMpls{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[192] + mi := &file_otg_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6SegmentRouting) String() string { +func (x *BgpAttributesBsidMpls) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6SegmentRouting) ProtoMessage() {} +func (*BgpAttributesBsidMpls) ProtoMessage() {} -func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[192] +func (x *BgpAttributesBsidMpls) 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 { @@ -40081,143 +40631,158 @@ func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. -func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{192} +// Deprecated: Use BgpAttributesBsidMpls.ProtoReflect.Descriptor instead. +func (*BgpAttributesBsidMpls) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{193} } -func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { - if x != nil && x.IngressSupportsVpn != nil { - return *x.IngressSupportsVpn +func (x *BgpAttributesBsidMpls) GetFlagSpecifiedBsidOnly() bool { + if x != nil && x.FlagSpecifiedBsidOnly != nil { + return *x.FlagSpecifiedBsidOnly } return false } -func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { - if x != nil && x.ReducedEncapsulation != nil { - return *x.ReducedEncapsulation +func (x *BgpAttributesBsidMpls) GetFlagDropUponInvalid() bool { + if x != nil && x.FlagDropUponInvalid != nil { + return *x.FlagDropUponInvalid } return false } -func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { - if x != nil && x.CopyTimeToLive != nil { - return *x.CopyTimeToLive +func (x *BgpAttributesBsidMpls) GetMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.MplsSid } - return false + return nil } -func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { - if x != nil && x.TimeToLive != nil { - return *x.TimeToLive +// When the active candidate path has a specified Binding Segment Identifier, the SR +// Policy uses that BSID defined +// as an IPv6 Address.The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 +// Section 2.4.2 . +type BgpAttributesBsidSrv6 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is + // described in section 6.2.3 in [RFC9256]. + // default = False + FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` + // I-Flag: This flag encodes the Drop Upon Invalid behavior. + // It's usage is described in section 8.2 in [RFC9256]. + // default = False + FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` + // IPv6 address denoting the SRv6 SID. + // default = 0::0 + Ipv6Addr *string `protobuf:"bytes,3,opt,name=ipv6_addr,json=ipv6Addr,proto3,oneof" json:"ipv6_addr,omitempty"` +} + +func (x *BgpAttributesBsidSrv6) Reset() { + *x = BgpAttributesBsidSrv6{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[194] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { - if x != nil && x.MaxSidsPerSrh != nil { - return *x.MaxSidsPerSrh +func (x *BgpAttributesBsidSrv6) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesBsidSrv6) ProtoMessage() {} + +func (x *BgpAttributesBsidSrv6) 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 0 + return mi.MessageOf(x) } -func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { - if x != nil && x.AutoGenerateSegmentLeftValue != nil { - return *x.AutoGenerateSegmentLeftValue +// Deprecated: Use BgpAttributesBsidSrv6.ProtoReflect.Descriptor instead. +func (*BgpAttributesBsidSrv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{194} +} + +func (x *BgpAttributesBsidSrv6) GetFlagSpecifiedBsidOnly() bool { + if x != nil && x.FlagSpecifiedBsidOnly != nil { + return *x.FlagSpecifiedBsidOnly } return false } -func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { - if x != nil && x.SegmentLeftValue != nil { - return *x.SegmentLeftValue +func (x *BgpAttributesBsidSrv6) GetFlagDropUponInvalid() bool { + if x != nil && x.FlagDropUponInvalid != nil { + return *x.FlagDropUponInvalid } - return 0 + return false } -func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { - if x != nil && x.AdvertiseSrTePolicy != nil { - return *x.AdvertiseSrTePolicy +func (x *BgpAttributesBsidSrv6) GetIpv6Addr() string { + if x != nil && x.Ipv6Addr != nil { + return *x.Ipv6Addr } - return false + return "" } -// Configuration for BGP Ethernet Segment ranges. Advertises following routes - -// -// Type 4 - Ethernet Segment Route -type BgpV6EthernetSegment struct { +// The SRv6 Binding SID sub-TLV is an optional sub-TLV of type 20 that is used to signal +// the SRv6 Binding SID +// related information of an SR Policy candidate path. +// - More than one SRv6 Binding SID sub-TLVs MAY be signaled in the same SR Policy +// encoding to indicate one or +// more SRv6 SIDs, each with potentially different SRv6 Endpoint Behaviors to be +// instantiated. +// - The format of the sub-TLV is defined in draft-ietf-idr-sr-policy-safi-02 Section +// 2.4.3 . +type BgpAttributesSrv6Bsid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Designated Forwarder (DF) election configuration. - DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` - // This contains the list of EVIs. - Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` - // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero - // ESI is '10000000000000000000' . - // default = 00000000000000000000 - Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` - // Single Active or All Active mode Redundancy mode selection for Multi-home. - // default = ActiveMode.Enum.all_active - ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` - // The label value to be advertised as ESI Label in ESI Label Extended Community. This - // is included in Ethernet Auto-discovery per ES Routes advertised by a router. - // default = 0 - EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` + // S-Flag: This flag encodes the Specified-BSID-only behavior. It's usage is + // described in section 6.2.3 in [RFC9256]. + // default = False + FlagSpecifiedBsidOnly *bool `protobuf:"varint,1,opt,name=flag_specified_bsid_only,json=flagSpecifiedBsidOnly,proto3,oneof" json:"flag_specified_bsid_only,omitempty"` + // I-Flag: This flag encodes the Drop Upon Invalid behavior. + // It's usage is described in section 8.2 in [RFC9256]. + // default = False + FlagDropUponInvalid *bool `protobuf:"varint,2,opt,name=flag_drop_upon_invalid,json=flagDropUponInvalid,proto3,oneof" json:"flag_drop_upon_invalid,omitempty"` + // B-Flag: This flag, when set, indicates the presence of the SRv6 Endpoint Behavior + // + // and SID Structure encoding specified in Section 2.4.4.2.4 of draft-ietf-idr-sr-policy-safi-02. + // default = False + FlagSrv6EndpointBehavior *bool `protobuf:"varint,3,opt,name=flag_srv6_endpoint_behavior,json=flagSrv6EndpointBehavior,proto3,oneof" json:"flag_srv6_endpoint_behavior,omitempty"` + // IPv6 address denoting the SRv6 SID. + // default = 0::0 + Ipv6Addr *string `protobuf:"bytes,4,opt,name=ipv6_addr,json=ipv6Addr,proto3,oneof" json:"ipv6_addr,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,5,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` } -func (x *BgpV6EthernetSegment) Reset() { - *x = BgpV6EthernetSegment{} +func (x *BgpAttributesSrv6Bsid) Reset() { + *x = BgpAttributesSrv6Bsid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[193] + mi := &file_otg_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment) String() string { +func (x *BgpAttributesSrv6Bsid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment) ProtoMessage() {} +func (*BgpAttributesSrv6Bsid) ProtoMessage() {} -func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[193] +func (x *BgpAttributesSrv6Bsid) 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 { @@ -40228,107 +40793,85 @@ func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. -func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{193} -} - -func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { - if x != nil { - return x.DfElection - } - return nil -} - -func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { - if x != nil { - return x.Evis - } - return nil -} - -func (x *BgpV6EthernetSegment) GetEsi() string { - if x != nil && x.Esi != nil { - return *x.Esi - } - return "" -} - -func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { - if x != nil && x.ActiveMode != nil { - return *x.ActiveMode - } - return BgpV6EthernetSegment_ActiveMode_unspecified +// Deprecated: Use BgpAttributesSrv6Bsid.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrv6Bsid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{195} } -func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { - if x != nil && x.EsiLabel != nil { - return *x.EsiLabel +func (x *BgpAttributesSrv6Bsid) GetFlagSpecifiedBsidOnly() bool { + if x != nil && x.FlagSpecifiedBsidOnly != nil { + return *x.FlagSpecifiedBsidOnly } - return 0 + return false } -func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced +func (x *BgpAttributesSrv6Bsid) GetFlagDropUponInvalid() bool { + if x != nil && x.FlagDropUponInvalid != nil { + return *x.FlagDropUponInvalid } - return nil + return false } -func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (x *BgpAttributesSrv6Bsid) GetFlagSrv6EndpointBehavior() bool { + if x != nil && x.FlagSrv6EndpointBehavior != nil { + return *x.FlagSrv6EndpointBehavior } - return nil + return false } -func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities +func (x *BgpAttributesSrv6Bsid) GetIpv6Addr() string { + if x != nil && x.Ipv6Addr != nil { + return *x.Ipv6Addr } - return nil + return "" } -func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { +func (x *BgpAttributesSrv6Bsid) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.AsPath + return x.Srv6EndpointBehavior } return nil } -// This contains a list of different flavors of EVPN. -// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. -// -// Need to instantiate correct type of EVPN instance as per requirement. -type BgpV6EvpnEvis struct { +// This carries a 20 bit Multi Protocol Label Switching alongwith 3 bits traffic class, +// 1 bit indicating presence +// or absence of Bottom-Of-Stack and 8 bits carrying the Time to Live value. +type BgpAttributesSidMpls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.evi_vxlan - Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` - // EVPN VXLAN instance to be configured per Ethernet Segment. - EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` + // 20 bit MPLS Label value. + // default = 16 + Label *uint32 `protobuf:"varint,1,opt,name=label,proto3,oneof" json:"label,omitempty"` + // 3 bits of Traffic Class. + // default = 0 + TrafficClass *uint32 `protobuf:"varint,2,opt,name=traffic_class,json=trafficClass,proto3,oneof" json:"traffic_class,omitempty"` + // Bottom of Stack + // default = True + FlagBos *bool `protobuf:"varint,3,opt,name=flag_bos,json=flagBos,proto3,oneof" json:"flag_bos,omitempty"` + // 8 bits Time to Live + // default = 63 + Ttl *uint32 `protobuf:"varint,4,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` } -func (x *BgpV6EvpnEvis) Reset() { - *x = BgpV6EvpnEvis{} +func (x *BgpAttributesSidMpls) Reset() { + *x = BgpAttributesSidMpls{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[194] + mi := &file_otg_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis) String() string { +func (x *BgpAttributesSidMpls) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis) ProtoMessage() {} +func (*BgpAttributesSidMpls) ProtoMessage() {} -func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[194] +func (x *BgpAttributesSidMpls) 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 { @@ -40339,115 +40882,67 @@ func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. -func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{194} +// Deprecated: Use BgpAttributesSidMpls.ProtoReflect.Descriptor instead. +func (*BgpAttributesSidMpls) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{196} } -func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpAttributesSidMpls) GetLabel() uint32 { + if x != nil && x.Label != nil { + return *x.Label } - return BgpV6EvpnEvis_Choice_unspecified + return 0 } -func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { - if x != nil { - return x.EviVxlan +func (x *BgpAttributesSidMpls) GetTrafficClass() uint32 { + if x != nil && x.TrafficClass != nil { + return *x.TrafficClass } - return nil + return 0 } -// 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 struct { +func (x *BgpAttributesSidMpls) GetFlagBos() bool { + if x != nil && x.FlagBos != nil { + return *x.FlagBos + } + return false +} + +func (x *BgpAttributesSidMpls) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl + } + return 0 +} + +// An IPv6 address denoting a SRv6 SID. +type BgpAttributesSidSrv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains the list of Broadcast Domains to be configured per EVI. - BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` - // This model only supports Ingress Replication - // default = ReplicationType.Enum.ingress_replication - ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` - // 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. - // default = 16 - PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` - // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet - // Auto-discovery Route per - // default = 0 - AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` - // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying - // an EVI. Example - for the as_2octet 60005:100. - RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` - // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with - // this EVI. - RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` - // List of L2VNI import targets associated with this EVI. - RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` - // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. - L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` - // List of L3VNI Import Route Targets. - L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` // Description missing in models - Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` - // Optional community settings. - Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` - // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` - // Optional AS PATH settings. - AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // default = 0::0 + Ip *string `protobuf:"bytes,1,opt,name=ip,proto3,oneof" json:"ip,omitempty"` } -func (x *BgpV6EviVxlan) Reset() { - *x = BgpV6EviVxlan{} +func (x *BgpAttributesSidSrv6) Reset() { + *x = BgpAttributesSidSrv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[195] + mi := &file_otg_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan) String() string { +func (x *BgpAttributesSidSrv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan) ProtoMessage() {} +func (*BgpAttributesSidSrv6) ProtoMessage() {} -func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[195] +func (x *BgpAttributesSidSrv6) 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 { @@ -40458,138 +40953,100 @@ func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{195} -} - -func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { - if x != nil { - return x.BroadcastDomains - } - return nil -} - -func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { - if x != nil && x.ReplicationType != nil { - return *x.ReplicationType - } - return BgpV6EviVxlan_ReplicationType_unspecified -} - -func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { - if x != nil && x.PmsiLabel != nil { - return *x.PmsiLabel - } - return 0 -} - -func (x *BgpV6EviVxlan) GetAdLabel() uint32 { - if x != nil && x.AdLabel != nil { - return *x.AdLabel - } - return 0 +// Deprecated: Use BgpAttributesSidSrv6.ProtoReflect.Descriptor instead. +func (*BgpAttributesSidSrv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{197} } -func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { - if x != nil { - return x.RouteDistinguisher +func (x *BgpAttributesSidSrv6) GetIp() string { + if x != nil && x.Ip != nil { + return *x.Ip } - return nil + return "" } -func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetExport - } - return nil -} +// Optional Preference sub-tlv (Type 12) is used to select the best candidate path for +// an SR Policy. +// It is defined in Section 2.4.1 of draft-ietf-idr-sr-policy-safi-02 . +type BgpAttributesSrPolicyPreference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.RouteTargetImport - } - return nil + // Value to be carried in the Preference sub-tlv. + // default = 0 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetExport +func (x *BgpAttributesSrPolicyPreference) Reset() { + *x = BgpAttributesSrPolicyPreference{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[198] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { - if x != nil { - return x.L3RouteTargetImport - } - return nil +func (x *BgpAttributesSrPolicyPreference) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { - if x != nil { - return x.Advanced - } - return nil -} +func (*BgpAttributesSrPolicyPreference) ProtoMessage() {} -func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { - if x != nil { - return x.Communities +func (x *BgpAttributesSrPolicyPreference) 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 nil + return mi.MessageOf(x) } -func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { - if x != nil { - return x.ExtCommunities - } - return nil +// Deprecated: Use BgpAttributesSrPolicyPreference.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyPreference) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{198} } -func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { - if x != nil { - return x.AsPath +func (x *BgpAttributesSrPolicyPreference) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return 0 } -// Configuration for Broadcast Domains per EVI. -type BgpV6EviVxlanBroadcastDomain struct { +// Optional Priority sub-tlv (Type 15) used to select the order in which policies should +// be re-computed. +// - It is defined in Section 2.4.6 of draft-ietf-idr-sr-policy-safi-02 . +type BgpAttributesSrPolicyPriority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` - // The Ethernet Tag ID of the Broadcast Domain. + // Value to be carried in the Priority sub-tlv. // default = 0 - EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` - // VLAN-Aware service to be enabled or disabled. - // default = False - VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *BgpV6EviVxlanBroadcastDomain) Reset() { - *x = BgpV6EviVxlanBroadcastDomain{} +func (x *BgpAttributesSrPolicyPriority) Reset() { + *x = BgpAttributesSrPolicyPriority{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[196] + mi := &file_otg_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlanBroadcastDomain) String() string { +func (x *BgpAttributesSrPolicyPriority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} +func (*BgpAttributesSrPolicyPriority) ProtoMessage() {} -func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[196] +func (x *BgpAttributesSrPolicyPriority) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40600,61 +41057,51 @@ func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. -func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{196} -} - -func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { - if x != nil { - return x.CmacIpRange - } - return nil +// Deprecated: Use BgpAttributesSrPolicyPriority.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyPriority) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{199} } -func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { - if x != nil && x.EthernetTagId != nil { - return *x.EthernetTagId +func (x *BgpAttributesSrPolicyPriority) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { - if x != nil && x.VlanAwareService != nil { - return *x.VlanAwareService - } - return false -} - -// Description missing in models -type DeviceVxlan struct { +// Optional Policy Candidate Path Name sub-tlv (Type 129) which carries the symbolic +// name for the SR Policy candidate path +// for debugging. +// - It is defined in Section 2.4.7 of draft-ietf-idr-sr-policy-safi-02 . +type BgpAttributesSrPolicyPolicyCandidateName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 VXLAN Tunnels - V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` - // IPv6 VXLAN Tunnels - V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` + // Value of the symbolic Policy Candidate Path Name carried in the Policy Candidate + // Path Name sub-tlv. + // It is recommended that the size of the name is limited to 255 bytes. + // required = true + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *DeviceVxlan) Reset() { - *x = DeviceVxlan{} +func (x *BgpAttributesSrPolicyPolicyCandidateName) Reset() { + *x = BgpAttributesSrPolicyPolicyCandidateName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[197] + mi := &file_otg_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceVxlan) String() string { +func (x *BgpAttributesSrPolicyPolicyCandidateName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceVxlan) ProtoMessage() {} +func (*BgpAttributesSrPolicyPolicyCandidateName) ProtoMessage() {} -func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[197] +func (x *BgpAttributesSrPolicyPolicyCandidateName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40665,74 +41112,50 @@ func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. -func (*DeviceVxlan) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{197} -} - -func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { - if x != nil { - return x.V4Tunnels - } - return nil +// Deprecated: Use BgpAttributesSrPolicyPolicyCandidateName.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyPolicyCandidateName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{200} } -func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { - if x != nil { - return x.V6Tunnels +func (x *BgpAttributesSrPolicyPolicyCandidateName) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return "" } -// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point -// interface. -type VxlanV4Tunnel struct { +// Optional Policy Name sub-tlv (Type 130) which carries the symbolic name for the SR +// Policy for which the +// candidate path is being advertised for debugging. +// - It is defined in Section 2.4.8 of draft-ietf-idr-sr-policy-safi-02 . +type BgpAttributesSrPolicyPolicyName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` - // Description missing in models - DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire - // required = true - Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + // Value of the symbolic policy name carried in the Policy Name sub-tlv. + // It is recommended that the size of the name is limited to 255 bytes. // required = true - Name *string `protobuf:"bytes,4,opt,name=name,proto3,oneof" json:"name,omitempty"` + Value *string `protobuf:"bytes,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *VxlanV4Tunnel) Reset() { - *x = VxlanV4Tunnel{} +func (x *BgpAttributesSrPolicyPolicyName) Reset() { + *x = BgpAttributesSrPolicyPolicyName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[198] + mi := &file_otg_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4Tunnel) String() string { +func (x *BgpAttributesSrPolicyPolicyName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4Tunnel) ProtoMessage() {} +func (*BgpAttributesSrPolicyPolicyName) ProtoMessage() {} -func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[198] +func (x *BgpAttributesSrPolicyPolicyName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40743,88 +41166,106 @@ func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{198} +// Deprecated: Use BgpAttributesSrPolicyPolicyName.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyPolicyName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{201} } -func (x *VxlanV4Tunnel) GetSourceInterface() string { - if x != nil && x.SourceInterface != nil { - return *x.SourceInterface +func (x *BgpAttributesSrPolicyPolicyName) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } return "" } -func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { - if x != nil { - return x.DestinationIpMode +// This is an optional sub-tlv (Type 14) which indicates whether an Explicit NULL Label +// must be pushed on an unlabeled IP +// packet before other labels for IPv4 or IPv6 flows. +// - It is defined in Section 2.4.5 of draft-ietf-idr-sr-policy-safi-02. +type BgpAttributesSrPolicyExplicitNullPolicy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Explicit NULL Label policy. + // default = Choice.Enum.push_ipv4_and_ipv6 + Choice *BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum,oneof" json:"choice,omitempty"` +} + +func (x *BgpAttributesSrPolicyExplicitNullPolicy) Reset() { + *x = BgpAttributesSrPolicyExplicitNullPolicy{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[202] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *VxlanV4Tunnel) GetVni() uint32 { - if x != nil && x.Vni != nil { - return *x.Vni +func (x *BgpAttributesSrPolicyExplicitNullPolicy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BgpAttributesSrPolicyExplicitNullPolicy) ProtoMessage() {} + +func (x *BgpAttributesSrPolicyExplicitNullPolicy) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[202] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *VxlanV4Tunnel) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +// Deprecated: Use BgpAttributesSrPolicyExplicitNullPolicy.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyExplicitNullPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{202} +} + +func (x *BgpAttributesSrPolicyExplicitNullPolicy) GetChoice() BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpAttributesSrPolicyExplicitNullPolicy_Choice_unspecified } -// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point -// interface. -type VxlanV6Tunnel struct { +// One optional SEGMENT_LIST sub-tlv encoded with type of 128. +// One sub-tlv (Type 128) encodes a single explicit path towards the endpoint as described +// in +// section 5.1 of [RFC9256]. +// The Segment List sub-TLV includes the elements of the paths (i.e., segments) as well +// +// as an optional Weight sub-TLV. +type BgpAttributesSrPolicySegmentList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the source interface. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Device.Ipv6Loopback/properties/name - // - // required = true - SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` // Description missing in models - DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` - // VXLAN Network Identifier (VNI) to distinguish network instances on the wire - // required = true - Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // 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"` + Weight *BgpAttributesSegmentRoutingPolicySegmentListWeight `protobuf:"bytes,1,opt,name=weight,proto3" json:"weight,omitempty"` + // Description missing in models + Segments []*BgpAttributesSegmentRoutingPolicySegmentListSegment `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *VxlanV6Tunnel) Reset() { - *x = VxlanV6Tunnel{} +func (x *BgpAttributesSrPolicySegmentList) Reset() { + *x = BgpAttributesSrPolicySegmentList{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[199] + mi := &file_otg_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6Tunnel) String() string { +func (x *BgpAttributesSrPolicySegmentList) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6Tunnel) ProtoMessage() {} +func (*BgpAttributesSrPolicySegmentList) ProtoMessage() {} -func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[199] +func (x *BgpAttributesSrPolicySegmentList) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40835,71 +41276,54 @@ func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. -func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{199} -} - -func (x *VxlanV6Tunnel) GetSourceInterface() string { - if x != nil && x.SourceInterface != nil { - return *x.SourceInterface - } - return "" +// Deprecated: Use BgpAttributesSrPolicySegmentList.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicySegmentList) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{203} } -func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { +func (x *BgpAttributesSrPolicySegmentList) GetWeight() *BgpAttributesSegmentRoutingPolicySegmentListWeight { if x != nil { - return x.DestinationIpMode + return x.Weight } return nil } -func (x *VxlanV6Tunnel) GetVni() uint32 { - if x != nil && x.Vni != nil { - return *x.Vni - } - return 0 -} - -func (x *VxlanV6Tunnel) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpAttributesSrPolicySegmentList) GetSegments() []*BgpAttributesSegmentRoutingPolicySegmentListSegment { + if x != nil { + return x.Segments } - return "" + return nil } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV4TunnelDestinationIPMode struct { +// The optional Weight sub-TLV (Type 9) specifies the weight associated with a given +// segment list. The weight is used for weighted multipath. +type BgpAttributesSegmentRoutingPolicySegmentListWeight struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` - // Description missing in models - Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` + // Value of the weight. + // default = 0 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *VxlanV4TunnelDestinationIPMode) Reset() { - *x = VxlanV4TunnelDestinationIPMode{} +func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) Reset() { + *x = BgpAttributesSegmentRoutingPolicySegmentListWeight{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[200] + mi := &file_otg_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPMode) String() string { +func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicySegmentListWeight) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[200] +func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40910,64 +41334,85 @@ func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{200} -} - -func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return VxlanV4TunnelDestinationIPMode_Choice_unspecified -} - -func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { - if x != nil { - return x.Unicast - } - return nil +// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListWeight.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicySegmentListWeight) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{204} } -func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { - if x != nil { - return x.Multicast +func (x *BgpAttributesSegmentRoutingPolicySegmentListWeight) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return 0 } -// Communication mode between the VTEPs, either unicast or multicast. -type VxlanV6TunnelDestinationIPMode struct { +// 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. +// Segment Types A and B are defined as described in 2.4.4.2. +// Segment Types C upto K are defined as described in in draft-ietf-idr-bgp-sr-segtypes-ext-03 +// . +type BgpAttributesSegmentRoutingPolicySegmentListSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // unicast or multicast - // default = Choice.Enum.multicast - Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Specify one of the segment types as defined in ietf-idr-segment-routing-te-policy + // - Type A: SID only, in the form of MPLS Label. + // - Type B: SID only, in the form of IPv6 Address. + // - Type C: IPv4 Prefix with optional SR Algorithm. + // - Type D: IPv6 Global Prefix with optional SR Algorithm for SR-MPLS. + // - Type E: IPv4 Prefix with Local Interface ID. + // - Type F: IPv4 Addresses for link endpoints as Local, Remote pair. + // - Type G: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair + // for SR-MPLS. + // - Type H: IPv6 Addresses for link endpoints as Local, Remote pair for SR-MPLS. + // - Type I: IPv6 Global Prefix with optional SR Algorithm for SRv6. + // - Type J: IPv6 Prefix and Interface ID for link endpoints as Local, Remote pair + // for SRv6. + // - Type K: IPv6 Addresses for link endpoints as Local, Remote pair for SRv6. + // required = true + Choice *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` + TypeA *BgpAttributesSegmentRoutingPolicyTypeA `protobuf:"bytes,2,opt,name=type_a,json=typeA,proto3" json:"type_a,omitempty"` // Description missing in models - Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` + TypeB *BgpAttributesSegmentRoutingPolicyTypeB `protobuf:"bytes,3,opt,name=type_b,json=typeB,proto3" json:"type_b,omitempty"` + // Description missing in models + TypeC *BgpAttributesSegmentRoutingPolicyTypeC `protobuf:"bytes,4,opt,name=type_c,json=typeC,proto3" json:"type_c,omitempty"` + // Description missing in models + TypeD *BgpAttributesSegmentRoutingPolicyTypeD `protobuf:"bytes,5,opt,name=type_d,json=typeD,proto3" json:"type_d,omitempty"` + // Description missing in models + TypeE *BgpAttributesSegmentRoutingPolicyTypeE `protobuf:"bytes,6,opt,name=type_e,json=typeE,proto3" json:"type_e,omitempty"` + // Description missing in models + TypeF *BgpAttributesSegmentRoutingPolicyTypeF `protobuf:"bytes,7,opt,name=type_f,json=typeF,proto3" json:"type_f,omitempty"` + // Description missing in models + TypeG *BgpAttributesSegmentRoutingPolicyTypeG `protobuf:"bytes,8,opt,name=type_g,json=typeG,proto3" json:"type_g,omitempty"` + // Description missing in models + TypeH *BgpAttributesSegmentRoutingPolicyTypeH `protobuf:"bytes,9,opt,name=type_h,json=typeH,proto3" json:"type_h,omitempty"` + // Description missing in models + TypeI *BgpAttributesSegmentRoutingPolicyTypeI `protobuf:"bytes,10,opt,name=type_i,json=typeI,proto3" json:"type_i,omitempty"` + // Description missing in models + TypeJ *BgpAttributesSegmentRoutingPolicyTypeJ `protobuf:"bytes,11,opt,name=type_j,json=typeJ,proto3" json:"type_j,omitempty"` + // Description missing in models + TypeK *BgpAttributesSegmentRoutingPolicyTypeK `protobuf:"bytes,12,opt,name=type_k,json=typeK,proto3" json:"type_k,omitempty"` } -func (x *VxlanV6TunnelDestinationIPMode) Reset() { - *x = VxlanV6TunnelDestinationIPMode{} +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) Reset() { + *x = BgpAttributesSegmentRoutingPolicySegmentListSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[201] + mi := &file_otg_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode) String() string { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicySegmentListSegment) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[201] +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -40978,108 +41423,125 @@ func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{201} +// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListSegment.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicySegmentListSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{205} } -func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetChoice() BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return VxlanV6TunnelDestinationIPMode_Choice_unspecified + return BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_unspecified } -func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeA() *BgpAttributesSegmentRoutingPolicyTypeA { if x != nil { - return x.Unicast + return x.TypeA } return nil } -func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeB() *BgpAttributesSegmentRoutingPolicyTypeB { if x != nil { - return x.Multicast + return x.TypeB } return nil } -// Description missing in models -type VxlanV4TunnelDestinationIPModeUnicast struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeC() *BgpAttributesSegmentRoutingPolicyTypeC { + if x != nil { + return x.TypeC + } + return nil +} - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeD() *BgpAttributesSegmentRoutingPolicyTypeD { + if x != nil { + return x.TypeD + } + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicast{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[202] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeE() *BgpAttributesSegmentRoutingPolicyTypeE { + if x != nil { + return x.TypeE } + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeF() *BgpAttributesSegmentRoutingPolicyTypeF { + if x != nil { + return x.TypeF + } + return nil } -func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeG() *BgpAttributesSegmentRoutingPolicyTypeG { + if x != nil { + return x.TypeG + } + return nil +} -func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[202] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeH() *BgpAttributesSegmentRoutingPolicyTypeH { + if x != nil { + return x.TypeH } - return mi.MessageOf(x) + return nil } -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{202} +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeI() *BgpAttributesSegmentRoutingPolicyTypeI { + if x != nil { + return x.TypeI + } + return nil } -func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeJ() *BgpAttributesSegmentRoutingPolicyTypeJ { if x != nil { - return x.Vteps + return x.TypeJ } return nil } -// Description missing in models -type VxlanV6TunnelDestinationIPModeUnicast struct { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment) GetTypeK() *BgpAttributesSegmentRoutingPolicyTypeK { + if x != nil { + return x.TypeK + } + return nil +} + +// Type A: SID only, in the form of MPLS Label. +// It is encoded as a Segment of Type 1 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeA struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of VTEPs for member VNI(VXLAN Network Identifier) - Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // Description missing in models + MplsSid *BgpAttributesSidMpls `protobuf:"bytes,2,opt,name=mpls_sid,json=mplsSid,proto3" json:"mpls_sid,omitempty"` } -func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicast{} +func (x *BgpAttributesSegmentRoutingPolicyTypeA) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeA{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[203] + mi := &file_otg_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeA) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeA) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[203] +func (x *BgpAttributesSegmentRoutingPolicyTypeA) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41090,51 +41552,58 @@ func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{203} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeA.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeA) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{206} } -func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { +func (x *BgpAttributesSegmentRoutingPolicyTypeA) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { if x != nil { - return x.Vteps + return x.Flags } return nil } -// 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 struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeA) GetMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.MplsSid + } + return nil +} + +// Type B: SID only, in the form of IPv6 address. +// It is encoded as a Segment of Type 13 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeB struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VM MAC address bound to Remote VM IPv4 address - RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` - // Remote VM IPv4 address - RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SRv6 SID. + // default = 0::0 + Srv6Sid *string `protobuf:"bytes,2,opt,name=srv6_sid,json=srv6Sid,proto3,oneof" json:"srv6_sid,omitempty"` + // Description missing in models + Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,3,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { - *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} +func (x *BgpAttributesSegmentRoutingPolicyTypeB) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeB{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[204] + mi := &file_otg_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeB) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeB) ProtoMessage() {} -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[204] +func (x *BgpAttributesSegmentRoutingPolicyTypeB) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41145,58 +41614,69 @@ func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. -func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{204} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeB.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeB) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{207} } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { - if x != nil && x.RemoteVmMac != nil { - return *x.RemoteVmMac +func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags } - return "" + return nil } -func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { - if x != nil && x.RemoteVmIpv4 != nil { - return *x.RemoteVmIpv4 +func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetSrv6Sid() string { + if x != nil && x.Srv6Sid != nil { + return *x.Srv6Sid } return "" } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV4TunnelDestinationIPModeUnicastVtep struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeB) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6EndpointBehavior + } + return nil +} + +// Type C: IPv4 Node Address with optional SID. +// It is encoded as a Segment of Type 3 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeC struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // 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. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be + // set to 0 on transmission and ignored on receipt. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv4 address representing a node. + // default = 0.0.0.0 + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} +func (x *BgpAttributesSegmentRoutingPolicyTypeC) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeC{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[205] + mi := &file_otg_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeC) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeC) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[205] +func (x *BgpAttributesSegmentRoutingPolicyTypeC) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41207,58 +41687,76 @@ func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{205} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeC.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeC) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{208} } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetIpv4NodeAddress() string { + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress } return "" } -func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpAttributesSegmentRoutingPolicyTypeC) GetSrMplsSid() *BgpAttributesSidMpls { if x != nil { - return x.ArpSuppressionCache + return x.SrMplsSid } return nil } -// VTEP (VXLAN Tunnel End Point (VTEP)) parameters -type VxlanV6TunnelDestinationIPModeUnicastVtep struct { +// Type D: IPv6 Node Address with optional SID for SR MPLS. +// It is encoded as a Segment of Type 4 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeD struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Remote VXLAN Tunnel End Point address - RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` - // 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. - ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be + // set to 0 on transmission and ignored on receipt. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // default = 0::0 + Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { - *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} +func (x *BgpAttributesSegmentRoutingPolicyTypeD) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeD{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[206] + mi := &file_otg_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeD) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeD) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[206] +func (x *BgpAttributesSegmentRoutingPolicyTypeD) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41269,52 +41767,75 @@ func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{206} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeD.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeD) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{209} } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { - if x != nil && x.RemoteVtepAddress != nil { - return *x.RemoteVtepAddress +func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetIpv6NodeAddress() string { + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } return "" } -func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { +func (x *BgpAttributesSegmentRoutingPolicyTypeD) GetSrMplsSid() *BgpAttributesSidMpls { if x != nil { - return x.ArpSuppressionCache + return x.SrMplsSid } return nil } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV4TunnelDestinationIPModeMulticast struct { +// Type E: IPv4 Address and Local Interface ID with optional SID +// It is encoded as a Segment of Type 5 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeE struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // The Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // IPv4 address representing a node. + // default = 0.0.0.0 + Ipv4NodeAddress *string `protobuf:"bytes,3,opt,name=ipv4_node_address,json=ipv4NodeAddress,proto3,oneof" json:"ipv4_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV4TunnelDestinationIPModeMulticast{} +func (x *BgpAttributesSegmentRoutingPolicyTypeE) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeE{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[207] + mi := &file_otg_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeE) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeE) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[207] +func (x *BgpAttributesSegmentRoutingPolicyTypeE) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41325,45 +41846,75 @@ func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{207} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeE.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeE) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{210} } -func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetIpv4NodeAddress() string { + if x != nil && x.Ipv4NodeAddress != nil { + return *x.Ipv4NodeAddress } return "" } -// Multicast Group address for member VNI(VXLAN Network Identifier) -type VxlanV6TunnelDestinationIPModeMulticast struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeE) GetSrMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.SrMplsSid + } + return nil +} + +// Type F: IPv4 Local and Remote addresses with optional SR-MPLS SID. +// It is encoded as a Segment of Type 6 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeF struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 Multicast address - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // Local IPv4 Address. + // default = 0.0.0.0 + LocalIpv4Address *string `protobuf:"bytes,2,opt,name=local_ipv4_address,json=localIpv4Address,proto3,oneof" json:"local_ipv4_address,omitempty"` + // Remote IPv4 Address. + // default = 0.0.0.0 + RemoteIpv4Address *string `protobuf:"bytes,3,opt,name=remote_ipv4_address,json=remoteIpv4Address,proto3,oneof" json:"remote_ipv4_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,4,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { - *x = VxlanV6TunnelDestinationIPModeMulticast{} +func (x *BgpAttributesSegmentRoutingPolicyTypeF) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeF{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[208] + mi := &file_otg_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeF) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeF) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[208] +func (x *BgpAttributesSegmentRoutingPolicyTypeF) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41374,54 +41925,85 @@ func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. -func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{208} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeF.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeF) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{211} } -func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetLocalIpv4Address() string { + if x != nil && x.LocalIpv4Address != nil { + return *x.LocalIpv4Address } return "" } -// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, -// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related -// specifications. -type DeviceRsvp struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetRemoteIpv4Address() string { + if x != nil && x.RemoteIpv4Address != nil { + return *x.RemoteIpv4Address + } + return "" +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeF) GetSrMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.SrMplsSid + } + return nil +} + +// Type G: IPv6 Address, Interface ID for local and remote pair with optional SID for +// SR MPLS. +// It is encoded as a Segment of Type 7 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeG struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 RSVP connected interfaces. At least one interface should be present - // for device connected to the DUT. For unconnected devices, this array must be empty. - Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` - // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress - // endpoints. - LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // The local Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,2,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // The IPv6 address representing the local node. + // default = 0::0 + LocalIpv6NodeAddress *string `protobuf:"bytes,3,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` + // The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero + // when the local node address and interface identifiers are sufficient to describe + // the link. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,4,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing the remote node. The value MAY be set to zero when the + // local node address and interface identifiers are sufficient to describe the link. + // default = 0::0 + RemoteIpv6NodeAddress *string `protobuf:"bytes,5,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *DeviceRsvp) Reset() { - *x = DeviceRsvp{} +func (x *BgpAttributesSegmentRoutingPolicyTypeG) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeG{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[209] + mi := &file_otg_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceRsvp) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeG) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceRsvp) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeG) ProtoMessage() {} -func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[209] +func (x *BgpAttributesSegmentRoutingPolicyTypeG) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41432,108 +42014,89 @@ func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. -func (*DeviceRsvp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{209} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeG.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeG) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{212} } -func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { if x != nil { - return x.Ipv4Interfaces + return x.Flags } return nil } -func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { - if x != nil { - return x.LspIpv4Interfaces +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } - return nil + return 0 } -func (x *DeviceRsvp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetLocalIpv6NodeAddress() string { + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } return "" } -// Configuration for RSVP Interface. -type RsvpIpv4Interface struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetRemoteIpv6NodeAddress() string { + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress + } + return "" +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeG) GetSrMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.SrMplsSid + } + return nil +} + +// Type H: IPv6 Local and Remote addresses with optional SID for SR MPLS. +// It is encoded as a Segment of Type 8 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeH struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The globally unique name of the IPv4 interface connected to the DUT. This name must - // match the name field of the ipv4_addresses on top which this RSVP interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` - // IPv4 address of the RSVP neighbor on this interface. - // required = true - NeighborIp *string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3,oneof" json:"neighbor_ip,omitempty"` - // The user-defined label space start value. The LSPs for which this router acts as - // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end - // together defines this label-pool. - // default = 1000 - LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` - // The user-defined label space end value.The last label value that can be assigned - // to the LSPs for which this router acts as egress. - // default = 100000 - LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` - // Enables sending of Refresh Reduction as described in RFC2961. - // default = False - EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` - // The number of seconds between transmissions of successive Summary Refreshes. There - // is no specification specified maximum value. For clarity, setting the maximum to - // 1 hour. - // default = 30 - SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` - // Enables aggregration of different RSVP messages within a single PDU. - // default = False - SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` - // The number of milliseconds to wait after which RSVP will bundle different RSVP messages - // and transmit Bundle messages. - // default = 50 - BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` - // Enables sending of Hello Messages as per RFC3209. - // default = False - EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` - // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds - // at which successive Hello Messages are sent as per RFC3209. There is no specification - // specified maximum value. For clarity, setting the maximum to 1 hour. - // default = 9 - HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` - // The number of missed hellos after which the node should consider RSVP Neighbor to - // have timed out. There is no specification specified maximum value. Setting the maximum - // allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // Local IPv6 Address. + // default = 0::0 + LocalIpv6Address *string `protobuf:"bytes,2,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` + // Remote IPv6 Address. + // default = 0::0 + RemoteIpv6Address *string `protobuf:"bytes,3,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` + // Optional SR-MPLS SID. + SrMplsSid *BgpAttributesSidMpls `protobuf:"bytes,6,opt,name=sr_mpls_sid,json=srMplsSid,proto3" json:"sr_mpls_sid,omitempty"` } -func (x *RsvpIpv4Interface) Reset() { - *x = RsvpIpv4Interface{} +func (x *BgpAttributesSegmentRoutingPolicyTypeH) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeH{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[210] + mi := &file_otg_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpIpv4Interface) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeH) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIpv4Interface) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeH) ProtoMessage() {} -func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[210] +func (x *BgpAttributesSegmentRoutingPolicyTypeH) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41544,132 +42107,78 @@ func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{210} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeH.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeH) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{213} } -func (x *RsvpIpv4Interface) GetIpv4Name() string { - if x != nil && x.Ipv4Name != nil { - return *x.Ipv4Name +func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags } - return "" + return nil } -func (x *RsvpIpv4Interface) GetNeighborIp() string { - if x != nil && x.NeighborIp != nil { - return *x.NeighborIp +func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetLocalIpv6Address() string { + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } return "" } -func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { - if x != nil && x.LabelSpaceStart != nil { - return *x.LabelSpaceStart - } - return 0 -} - -func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { - if x != nil && x.LabelSpaceEnd != nil { - return *x.LabelSpaceEnd +func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetRemoteIpv6Address() string { + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } - return 0 + return "" } -func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { - if x != nil && x.EnableRefreshReduction != nil { - return *x.EnableRefreshReduction +func (x *BgpAttributesSegmentRoutingPolicyTypeH) GetSrMplsSid() *BgpAttributesSidMpls { + if x != nil { + return x.SrMplsSid } - return false + return nil } -func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { - if x != nil && x.SummaryRefreshInterval != nil { - return *x.SummaryRefreshInterval - } - return 0 -} +// Type I: IPv6 Node Address with optional SR Algorithm and optional SRv6 SID. +// It is encoded as a Segment of Type 14 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeI struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpIpv4Interface) GetSendBundle() bool { - if x != nil && x.SendBundle != nil { - return *x.SendBundle - } - return false -} - -func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { - if x != nil && x.BundleThreshold != nil { - return *x.BundleThreshold - } - return 0 -} - -func (x *RsvpIpv4Interface) GetEnableHello() bool { - if x != nil && x.EnableHello != nil { - return *x.EnableHello - } - return false -} - -func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { - if x != nil && x.HelloInterval != nil { - return *x.HelloInterval - } - return 0 -} - -func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier - } - return 0 -} - -// Configuration for RSVP LSP IPv4 Interface. -type RsvpLspIpv4Interface struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP - // ingress and egress endpoint for the LSPs configured on this interface. This must - // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP - // interface is configured. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv4Loopback/properties/name - // - // required = true - Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` - // Contains properties of Tail(Egress) LSPs. - P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3" json:"p2p_egress_ipv4_lsps,omitempty"` - // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. - P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be + // set to 0 on transmission and ignored on receipt. + // default = 0 + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // IPv6 address representing a node. + // default = 0::0 + Ipv6NodeAddress *string `protobuf:"bytes,3,opt,name=ipv6_node_address,json=ipv6NodeAddress,proto3,oneof" json:"ipv6_node_address,omitempty"` + // Description missing in models + Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,4,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + // Description missing in models + Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,5,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` } -func (x *RsvpLspIpv4Interface) Reset() { - *x = RsvpLspIpv4Interface{} +func (x *BgpAttributesSegmentRoutingPolicyTypeI) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeI{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[211] + mi := &file_otg_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Interface) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeI) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Interface) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeI) ProtoMessage() {} -func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[211] +func (x *BgpAttributesSegmentRoutingPolicyTypeI) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41680,88 +42189,98 @@ func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{211} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeI.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeI) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{214} } -func (x *RsvpLspIpv4Interface) GetIpv4Name() string { - if x != nil && x.Ipv4Name != nil { - return *x.Ipv4Name +func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetIpv6NodeAddress() string { + if x != nil && x.Ipv6NodeAddress != nil { + return *x.Ipv6NodeAddress } return "" } -func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { +func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrv6Sid() *BgpAttributesSidSrv6 { if x != nil { - return x.P2PEgressIpv4Lsps + return x.Srv6Sid } return nil } -func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { +func (x *BgpAttributesSegmentRoutingPolicyTypeI) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.P2PIngressIpv4Lsps + return x.Srv6EndpointBehavior } return nil } -// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { +// Type J: IPv6 Address, Interface ID for local and remote pair for SRv6 with optional +// SID. +// It is encoded as a Segment of Type 15 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeJ struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The time in seconds between successive transmissions of RESV Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed PATH refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // It determines how RSVP-TE enabled network devices set up reservations along the path - // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is - // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the - // style is chosen based on the value selected for this attribute. - // default = ReservationStyle.Enum.shared_explicit - ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` - // If enabled, a specific fixed label will be advertised by the egress or tail end for - // all Path messages received by this egress. This can be leveraged to advertise Explicit - // or Implicit null labels. - // default = False - EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` - // The fixed label value as advertised by egress in RESV message. Applicable only if - // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - - // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected - // to have a minimum value of 16. + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be + // set to 0 on transmission and ignored on receipt. // default = 0 - FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // The local Interface Index as defined in [RFC8664]. + // default = 0 + LocalInterfaceId *uint32 `protobuf:"varint,3,opt,name=local_interface_id,json=localInterfaceId,proto3,oneof" json:"local_interface_id,omitempty"` + // The IPv6 address representing the local node. + // default = 0::0 + LocalIpv6NodeAddress *string `protobuf:"bytes,4,opt,name=local_ipv6_node_address,json=localIpv6NodeAddress,proto3,oneof" json:"local_ipv6_node_address,omitempty"` + // The remote Interface Index as defined in [RFC8664]. The value MAY be set to zero + // when the local node address and interface identifiers are sufficient to describe + // the link. + // default = 0 + RemoteInterfaceId *uint32 `protobuf:"varint,5,opt,name=remote_interface_id,json=remoteInterfaceId,proto3,oneof" json:"remote_interface_id,omitempty"` + // IPv6 address representing the remote node. The value MAY be set to zero when the + // local node address and interface identifiers are sufficient to describe the link. + // default = 0::0 + RemoteIpv6NodeAddress *string `protobuf:"bytes,6,opt,name=remote_ipv6_node_address,json=remoteIpv6NodeAddress,proto3,oneof" json:"remote_ipv6_node_address,omitempty"` + // Description missing in models + Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,7,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + // Description missing in models + Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,8,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeJ{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[212] + mi := &file_otg_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeJ) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[212] +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41772,134 +42291,109 @@ func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{212} +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeJ.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeJ) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{215} } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags } - return "" + return nil } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetLocalInterfaceId() uint32 { + if x != nil && x.LocalInterfaceId != nil { + return *x.LocalInterfaceId } return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { - if x != nil && x.ReservationStyle != nil { - return *x.ReservationStyle +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetLocalIpv6NodeAddress() string { + if x != nil && x.LocalIpv6NodeAddress != nil { + return *x.LocalIpv6NodeAddress } - return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified + return "" } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { - if x != nil && x.EnableFixedLabel != nil { - return *x.EnableFixedLabel +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetRemoteInterfaceId() uint32 { + if x != nil && x.RemoteInterfaceId != nil { + return *x.RemoteInterfaceId } - return false + return 0 } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { - if x != nil && x.FixedLabelValue != nil { - return *x.FixedLabelValue +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetRemoteIpv6NodeAddress() string { + if x != nil && x.RemoteIpv6NodeAddress != nil { + return *x.RemoteIpv6NodeAddress } - return 0 + return "" } -// Configuration for an RSVP Ingress point-to-point LSP. -type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrv6Sid() *BgpAttributesSidSrv6 { + if x != nil { + return x.Srv6Sid + } + return nil +} + +func (x *BgpAttributesSegmentRoutingPolicyTypeJ) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { + if x != nil { + return x.Srv6EndpointBehavior + } + return nil +} + +// Type K: IPv6 Local and Remote addresses for SRv6 with optional SID. +// It is encoded as a Segment of Type 16 in the SEGMENT_LIST sub-tlv. +type BgpAttributesSegmentRoutingPolicyTypeK struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // IPv4 address of the remote endpoint of the LSP. - // required = true - RemoteAddress *string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3,oneof" json:"remote_address,omitempty"` - // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. - // default = 1 - TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. - // default = 1 - LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The time in seconds between successive transmissions of PATH Refreshes. The actual - // refresh interval is jittered by upto 50%. There is no specification specified maximum - // value. For clarity, setting the maximum to 1 hour. - // default = 30 - RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` - // The number of missed RESV refreshes after which a recieving node should consider - // the LSP state to have timed out. There is no specification specified maximum value. - // Setting the maximum allowed value to 10. - // default = 3 - TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` - // The LSP id that will be used when creating a Make-Before-Break LSP when the active - // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is - // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. - // default = 2 - BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` - // The amount of delay in milliseconds that an implementation should wait for before - // switching traffic to the new LSP created after a Make-Before-Break is done on an - // LSP. The default value is 0 which means to switch immediately. An implementation - // should support a minimum delay value of at least 50ms . There is no specification - // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value - // is supplied which is lesser than the minimum delay value supported, a warning should - // be provided indicating that the minimum value of LSP switchover delay is automatically - // increased to the supported minimum value. This warning should be included in the - // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' - // Response. + // Description missing in models + Flags *BgpAttributesSegmentRoutingPolicyTypeFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // SR Algorithm identifier when A-Flag in on. If A-flag is not enabled, it should be + // set to 0 on transmission and ignored on receipt. // default = 0 - LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` - // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object - // in the Path Message sent for the LSP. - SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3" json:"session_attribute,omitempty"` - // This contains the values of the fields to be included in the TSPEC object in the - // Path Message sent for the LSP. - Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3" json:"tspec,omitempty"` - // This contains the values of the fields to be included in the FAST_REROUTE object - // in the Path Message sent for the LSP. - // This is an optional object . If this attribute is not included , the FAST_REROUTE - // object will not be included. - FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3" json:"fast_reroute,omitempty"` - // This contains the values of the fields to be included in the ERO object in the Path - // Message sent for the LSP. - // This is an optional object . If this attribute is not included , the ERO object will - // not be included. - Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3" json:"ero,omitempty"` + SrAlgorithm *uint32 `protobuf:"varint,2,opt,name=sr_algorithm,json=srAlgorithm,proto3,oneof" json:"sr_algorithm,omitempty"` + // Local IPv6 Address. + // default = 0::0 + LocalIpv6Address *string `protobuf:"bytes,3,opt,name=local_ipv6_address,json=localIpv6Address,proto3,oneof" json:"local_ipv6_address,omitempty"` + // Remote IPv6 Address. + // default = 0::0 + RemoteIpv6Address *string `protobuf:"bytes,4,opt,name=remote_ipv6_address,json=remoteIpv6Address,proto3,oneof" json:"remote_ipv6_address,omitempty"` + // Description missing in models + Srv6Sid *BgpAttributesSidSrv6 `protobuf:"bytes,5,opt,name=srv6_sid,json=srv6Sid,proto3" json:"srv6_sid,omitempty"` + // Description missing in models + Srv6EndpointBehavior *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure `protobuf:"bytes,6,opt,name=srv6_endpoint_behavior,json=srv6EndpointBehavior,proto3" json:"srv6_endpoint_behavior,omitempty"` } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { - *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} +func (x *BgpAttributesSegmentRoutingPolicyTypeK) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeK{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[213] + mi := &file_otg_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeK) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeK) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[213] +func (x *BgpAttributesSegmentRoutingPolicyTypeK) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -41910,177 +42404,102 @@ func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{213} -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { - if x != nil && x.RemoteAddress != nil { - return *x.RemoteAddress - } - return "" -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { - if x != nil && x.RefreshInterval != nil { - return *x.RefreshInterval - } - return 0 -} - -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { - if x != nil && x.TimeoutMultiplier != nil { - return *x.TimeoutMultiplier - } - return 0 +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeK.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeK) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{216} } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { - if x != nil && x.BackupLspId != nil { - return *x.BackupLspId +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetFlags() *BgpAttributesSegmentRoutingPolicyTypeFlags { + if x != nil { + return x.Flags } - return 0 + return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { - if x != nil && x.LspSwitchoverDelay != nil { - return *x.LspSwitchoverDelay +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrAlgorithm() uint32 { + if x != nil && x.SrAlgorithm != nil { + return *x.SrAlgorithm } return 0 } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { - if x != nil { - return x.SessionAttribute +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetLocalIpv6Address() string { + if x != nil && x.LocalIpv6Address != nil { + return *x.LocalIpv6Address } - return nil + return "" } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { - if x != nil { - return x.Tspec +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetRemoteIpv6Address() string { + if x != nil && x.RemoteIpv6Address != nil { + return *x.RemoteIpv6Address } - return nil + return "" } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrv6Sid() *BgpAttributesSidSrv6 { if x != nil { - return x.FastReroute + return x.Srv6Sid } return nil } -func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { +func (x *BgpAttributesSegmentRoutingPolicyTypeK) GetSrv6EndpointBehavior() *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure { if x != nil { - return x.Ero + return x.Srv6EndpointBehavior } return nil } -// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined -// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are -// defined in RFC4090 (Fast Reroute). -type RsvpSessionAttribute struct { +// Flags for each Segment in SEGMENT_LIST sub-tlv. +// - V-flag. Indicates verification is enabled. See section 5, of https://datatracker.ietf.org/doc/html/rfc9256 +// - A-flag. Indicates presence of SR Algorithm field applicable to Segment Types C, +// D , I , J and K . +// - B-Flag. Indicates presence of SRv6 Endpoint Behavior and SID Structure encoding +// applicable to Segment Types B , I , J and K . +// - S-Flag: This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID +// depending on the segment type. (draft-ietf-idr-bgp-sr-segtypes-ext-03 Section 2.10). +// This flag is applicable for Segment Types C, D, E, F, G, H, I, J, and K. +type BgpAttributesSegmentRoutingPolicyTypeFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE - // object in the Path Message for this LSP. - // default = True - AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` - // If auto_generate_session_name is set to 'false', then the value of this field is - // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message - // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP - // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. - // The maximum length of session name is 254 bytes. - SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // Specifies the value of the Setup Priority field. This controls whether the LSP should - // pre-empt existing LSP setup with certain Holding Priority if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP if resource limitation - // is encountered when setting up the LSP. (e.g. bandwidth availability). The value - // 0 is the highest priority while 7 is the lowest. - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // This flag permits transit routers to use a local repair mechanism which may result - // in violation of the explicit route object. When a fault is detected on an adjacent - // downstream link or node, a transit router can reroute traffic for fast service restoration. - // default = False - LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` - // This flag indicates that label information should be included when doing a route - // record. + // Indicates verification of segment data in is enabled. // default = False - LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` - // This flag indicates that the tunnel ingress node may choose to reroute this tunnel - // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) - // Style when responding with a Resv message. + VFlag *bool `protobuf:"varint,1,opt,name=v_flag,json=vFlag,proto3,oneof" json:"v_flag,omitempty"` + // Indicates presence of SR Algorithm field applicable to Segment Types 3, 4, and 9. + // // default = False - SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along the protected LSP path that a backup path with a bandwidth guarantee is desired. - // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object - // is included in the PATH message. If a FAST_REROUTE object is present in the Path - // message, then the bandwidth specified therein is to be guaranteed. + AFlag *bool `protobuf:"varint,2,opt,name=a_flag,json=aFlag,proto3,oneof" json:"a_flag,omitempty"` + // This flag, when set, indicates the presence of the SR-MPLS or SRv6 SID depending + // on the segment type. // default = False - BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` - // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs - // along a protected LSP path that it is desired to have a backup path that bypasses - // at least the next node of the protected LSP. + SFlag *bool `protobuf:"varint,3,opt,name=s_flag,json=sFlag,proto3,oneof" json:"s_flag,omitempty"` + // Indicates presence of SRv6 Endpoint Behavior and SID Structure encoding specified + // in Section 2.4.4.2.4 + // of draft-ietf-idr-sr-policy-safi-02. // default = False - NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` - // This is an optional object. If included the extended SESSION_ATTRIBUTE object is - // sent in the Path message containing - // the additional fields included in this object. This contains a set of three bitmaps - // using which further constraints can be - // set on the path calculated for the LSP based on the Admin Group settings in the IGP - // (e.g ISIS or OSPF interface). - ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3" json:"resource_affinities,omitempty"` + BFlag *bool `protobuf:"varint,4,opt,name=b_flag,json=bFlag,proto3,oneof" json:"b_flag,omitempty"` } -func (x *RsvpSessionAttribute) Reset() { - *x = RsvpSessionAttribute{} +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) Reset() { + *x = BgpAttributesSegmentRoutingPolicyTypeFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[214] + mi := &file_otg_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpSessionAttribute) String() string { +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpSessionAttribute) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicyTypeFlags) ProtoMessage() {} -func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[214] +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42091,132 +42510,87 @@ func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. -func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{214} -} - -func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { - if x != nil && x.AutoGenerateSessionName != nil { - return *x.AutoGenerateSessionName - } - return false -} - -func (x *RsvpSessionAttribute) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName - } - return "" -} - -func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority - } - return 0 -} - -func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority - } - return 0 -} - -func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { - if x != nil && x.LocalProtectionDesired != nil { - return *x.LocalProtectionDesired - } - return false +// Deprecated: Use BgpAttributesSegmentRoutingPolicyTypeFlags.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicyTypeFlags) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{217} } -func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { - if x != nil && x.LabelRecordingDesired != nil { - return *x.LabelRecordingDesired +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetVFlag() bool { + if x != nil && x.VFlag != nil { + return *x.VFlag } return false } -func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { - if x != nil && x.SeStyleDesired != nil { - return *x.SeStyleDesired +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetAFlag() bool { + if x != nil && x.AFlag != nil { + return *x.AFlag } return false } -func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { - if x != nil && x.BandwidthProtectionDesired != nil { - return *x.BandwidthProtectionDesired +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetSFlag() bool { + if x != nil && x.SFlag != nil { + return *x.SFlag } return false } -func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { - if x != nil && x.NodeProtectionDesired != nil { - return *x.NodeProtectionDesired +func (x *BgpAttributesSegmentRoutingPolicyTypeFlags) GetBFlag() bool { + if x != nil && x.BFlag != nil { + return *x.BFlag } return false } -func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { - if x != nil { - return x.ResourceAffinities - } - return nil -} - -// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is -// sent in the Path message containing -// the additional fields included in this object. This contains a set of three bitmaps -// using which further constraints can be -// set on the path calculated for the LSP based on the Admin Group settings in the IGP -// (e.g ISIS or OSPF interface). -type RsvpResourceAffinities struct { +// Configuration for optional SRv6 Endpoint Behavior and SID Structure. Summation of +// lengths for Locator Block, Locator Node, Function, and Argument MUST be less than +// or equal to 128. - This is specified in draft-ietf-idr-sr-policy-safi-02 Section +// 2.4.4.2.4 +type BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. + // This is a 2-octet field that is used to specify the SRv6 Endpoint Behavior code point + // for the SRv6 SID as defined + // in section 9.2 of [RFC8986]. When set with the value 0xFFFF (i.e., Opaque), the choice + // of SRv6 Endpoint Behavior is + // left to the headend. Well known 16-bit values for this field are available at + // https://www.iana.org/assignments/segment-routing/segment-routing.xhtml . + // default = ffff + EndpointBehaviour *string `protobuf:"bytes,1,opt,name=endpoint_behaviour,json=endpointBehaviour,proto3,oneof" json:"endpoint_behaviour,omitempty"` + // SRv6 SID Locator Block length in bits. // default = 0 - ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. + LbLength *uint32 `protobuf:"varint,2,opt,name=lb_length,json=lbLength,proto3,oneof" json:"lb_length,omitempty"` + // SRv6 SID Locator Node length in bits. // default = 0 - IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. + LnLength *uint32 `protobuf:"varint,3,opt,name=ln_length,json=lnLength,proto3,oneof" json:"ln_length,omitempty"` + // SRv6 SID Function length in bits. // default = 0 - IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + FuncLength *uint32 `protobuf:"varint,4,opt,name=func_length,json=funcLength,proto3,oneof" json:"func_length,omitempty"` + // SRv6 SID Arguments length in bits. + // default = 0 + ArgLength *uint32 `protobuf:"varint,5,opt,name=arg_length,json=argLength,proto3,oneof" json:"arg_length,omitempty"` } -func (x *RsvpResourceAffinities) Reset() { - *x = RsvpResourceAffinities{} +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) Reset() { + *x = BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[215] + mi := &file_otg_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpResourceAffinities) String() string { +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpResourceAffinities) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) ProtoMessage() {} -func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[215] +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42227,78 +42601,75 @@ func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. -func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{215} +// Deprecated: Use BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{218} } -func (x *RsvpResourceAffinities) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetEndpointBehaviour() string { + if x != nil && x.EndpointBehaviour != nil { + return *x.EndpointBehaviour } return "" } -func (x *RsvpResourceAffinities) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetLbLength() uint32 { + if x != nil && x.LbLength != nil { + return *x.LbLength } - return "" + return 0 } -func (x *RsvpResourceAffinities) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetLnLength() uint32 { + if x != nil && x.LnLength != nil { + return *x.LnLength } - return "" + return 0 } -// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these -// parameters is defined in RFC2215. -type RsvpTspec struct { +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetFuncLength() uint32 { + if x != nil && x.FuncLength != nil { + return *x.FuncLength + } + return 0 +} + +func (x *BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure) GetArgLength() uint32 { + if x != nil && x.ArgLength != nil { + return *x.ArgLength + } + return 0 +} + +// Optional field in the NLRI carrying the distinguisher for Segment Routing Policy +// NLRI with SAFI 73. +type BgpNLRIPrefixSegmentRoutingDistinguisher struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The rate of the traffic to be carried in this LSP in bytes per second. This is part - // of the Token Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` - // The depth of the token bucket in bytes used to specify the Token Bucket characteristics - // of the traffic to be carried in the LSP. This is part of the Token Bucket specification - // defined for a traffic flow defined in RFC2215. - // default = 0 - TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` - // The peak data rate of the traffic in bytes per second used to specify the Token Bucket - // characteristics of the traffic to be carried in the LSP. This is part of the Token - // Bucket specification defined for a traffic flow defined in RFC2215. - // default = 0 - PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` - // Specifies the minium length of packet frames that will be policed. - // default = 0 - MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` - // Specifies the maximum length of packet frames that will be policed. - // default = 0 - MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` + // The value of the optional Segment Routing distinguisher of the prefix. + // default = 1 + Value *uint32 `protobuf:"varint,1,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *RsvpTspec) Reset() { - *x = RsvpTspec{} +func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) Reset() { + *x = BgpNLRIPrefixSegmentRoutingDistinguisher{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[216] + mi := &file_otg_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpTspec) String() string { +func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpTspec) ProtoMessage() {} +func (*BgpNLRIPrefixSegmentRoutingDistinguisher) ProtoMessage() {} -func (x *RsvpTspec) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[216] +func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42309,119 +42680,111 @@ func (x *RsvpTspec) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. -func (*RsvpTspec) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{216} -} - -func (x *RsvpTspec) GetTokenBucketRate() float32 { - if x != nil && x.TokenBucketRate != nil { - return *x.TokenBucketRate - } - return 0 -} - -func (x *RsvpTspec) GetTokenBucketSize() float32 { - if x != nil && x.TokenBucketSize != nil { - return *x.TokenBucketSize - } - return 0 -} - -func (x *RsvpTspec) GetPeakDataRate() float32 { - if x != nil && x.PeakDataRate != nil { - return *x.PeakDataRate - } - return 0 -} - -func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { - if x != nil && x.MinimumPolicedUnit != nil { - return *x.MinimumPolicedUnit - } - return 0 +// Deprecated: Use BgpNLRIPrefixSegmentRoutingDistinguisher.ProtoReflect.Descriptor instead. +func (*BgpNLRIPrefixSegmentRoutingDistinguisher) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{219} } -func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { - if x != nil && x.MaximumPolicedUnit != nil { - return *x.MaximumPolicedUnit +func (x *BgpNLRIPrefixSegmentRoutingDistinguisher) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages -// as defined in RFC4090. -type RsvpFastReroute struct { +// Configuration for BGPv6 peer settings and routes. +type BgpV6Peer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Specifies the value of the Setup Priority field. This controls whether the backup - // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While - // setting up a backup LSP, preemption of existing LSP can happen if resource limitation - // is encountered (e.g bandwidth availability). - // default = 7 - SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // Specifies the value of the Holding Priority field. This controls whether a new LSP - // being created with certain Setup Priority should pre-empt this LSP set up with this - // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen - // if resource limitation is encountered (e.g bandwidth availability). - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // Specifies the value of the Hop Limit field. This controls the maximum number of hops - // the LSP should traverse to reach the LSP end-point. - // default = 3 - HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` - // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, - // in bytes per second, as desired for the LSP. - // default = 0 - Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 0 - IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 0 - IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` - // Requests protection via the one-to-one backup method. - // default = False - OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` - // Requests protection via the facility backup method. - // default = False - FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` + // IPv6 address of the BGP peer for the session + // required = true + PeerAddress *string `protobuf:"bytes,1,opt,name=peer_address,json=peerAddress,proto3,oneof" json:"peer_address,omitempty"` + // Description missing in models + SegmentRouting *BgpV6SegmentRouting `protobuf:"bytes,2,opt,name=segment_routing,json=segmentRouting,proto3" json:"segment_routing,omitempty"` + // This contains the list of Ethernet Virtual Private Network (EVPN) Ethernet Segments + // (ES) Per BGP Peer for IPv6 Address Family Identifier (AFI). + // + // Each Ethernet Segment contains a list of EVPN Instances (EVIs) . + // Each EVI contains a list of Broadcast Domains. + // Each Broadcast Domain contains a list of MAC/IP Ranges. + // + // is responsible for advertising Ethernet + // Auto-discovery Route Per EVI (Type 1). + // + // is responsible for advertising Ethernet Auto-discovery Route + // Per Ethernet Segment (Type 1). + // + // is responsible for advertising + // MAC/IP Advertisement Route (Type 2). + // + // is responsible for advertising Inclusive + // Multicast Ethernet Tag Route (Type 3). + // + // Ethernet Segment is responsible for advertising Ethernet Segment Route (Type 4). + EvpnEthernetSegments []*BgpV6EthernetSegment `protobuf:"bytes,3,rep,name=evpn_ethernet_segments,json=evpnEthernetSegments,proto3" json:"evpn_ethernet_segments,omitempty"` + // The type of BGP autonomous system. External BGP is used for BGP links between two + // or more autonomous systems (ebgp). Internal BGP is used within a single autonomous + // system (ibgp). BGP property defaults are aligned with this object defined as an internal + // BGP peer. If the as_type is specified as 'ebgp' then other properties will need to + // be specified as per an external BGP peer. Specifically, for 'ebgp', 'as_set_mode' + // attribute in 'as_path' field in any Route Range should be changed from default value + // 'do_not_include_local_as' to any other value. + // required = true + AsType *BgpV6Peer_AsType_Enum `protobuf:"varint,4,opt,name=as_type,json=asType,proto3,enum=otg.BgpV6Peer_AsType_Enum,oneof" json:"as_type,omitempty"` + // Autonomous System Number (AS number or ASN) + // required = true + AsNumber *uint32 `protobuf:"varint,5,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // The width in bytes of the as_number values. Any as_number values that exceeds the + // width MUST result in an error. + // default = AsNumberWidth.Enum.four + AsNumberWidth *BgpV6Peer_AsNumberWidth_Enum `protobuf:"varint,6,opt,name=as_number_width,json=asNumberWidth,proto3,enum=otg.BgpV6Peer_AsNumberWidth_Enum,oneof" json:"as_number_width,omitempty"` + // Description missing in models + Advanced *BgpAdvanced `protobuf:"bytes,7,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Description missing in models + Capability *BgpCapability `protobuf:"bytes,8,opt,name=capability,proto3" json:"capability,omitempty"` + // Description missing in models + LearnedInformationFilter *BgpLearnedInformationFilter `protobuf:"bytes,9,opt,name=learned_information_filter,json=learnedInformationFilter,proto3" json:"learned_information_filter,omitempty"` + // Emulated BGPv4 route ranges. + V4Routes []*BgpV4RouteRange `protobuf:"bytes,10,rep,name=v4_routes,json=v4Routes,proto3" json:"v4_routes,omitempty"` + // Emulated BGPv6 route ranges. + V6Routes []*BgpV6RouteRange `protobuf:"bytes,11,rep,name=v6_routes,json=v6Routes,proto3" json:"v6_routes,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv4 Address Family Identifier + // (AFI). + V4SrtePolicies []*BgpSrteV4Policy `protobuf:"bytes,12,rep,name=v4_srte_policies,json=v4SrtePolicies,proto3" json:"v4_srte_policies,omitempty"` + // Segment Routing Traffic Engineering (SR TE) Policies for IPv6 Address Family Identifier + // (AFI). + V6SrtePolicies []*BgpSrteV6Policy `protobuf:"bytes,13,rep,name=v6_srte_policies,json=v6SrtePolicies,proto3" json:"v6_srte_policies,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,14,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + GracefulRestart *BgpGracefulRestart `protobuf:"bytes,15,opt,name=graceful_restart,json=gracefulRestart,proto3" json:"graceful_restart,omitempty"` + // BGP Updates to be sent to the peer as specified after the session is established. + ReplayUpdates *BgpUpdateReplay `protobuf:"bytes,16,opt,name=replay_updates,json=replayUpdates,proto3" json:"replay_updates,omitempty"` } -func (x *RsvpFastReroute) Reset() { - *x = RsvpFastReroute{} +func (x *BgpV6Peer) Reset() { + *x = BgpV6Peer{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[217] + mi := &file_otg_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpFastReroute) String() string { +func (x *BgpV6Peer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpFastReroute) ProtoMessage() {} +func (*BgpV6Peer) ProtoMessage() {} -func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[217] +func (x *BgpV6Peer) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42432,195 +42795,165 @@ func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. -func (*RsvpFastReroute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{217} +// Deprecated: Use BgpV6Peer.ProtoReflect.Descriptor instead. +func (*BgpV6Peer) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{220} } -func (x *RsvpFastReroute) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority +func (x *BgpV6Peer) GetPeerAddress() string { + if x != nil && x.PeerAddress != nil { + return *x.PeerAddress } - return 0 + return "" } -func (x *RsvpFastReroute) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority +func (x *BgpV6Peer) GetSegmentRouting() *BgpV6SegmentRouting { + if x != nil { + return x.SegmentRouting } - return 0 + return nil } -func (x *RsvpFastReroute) GetHopLimit() uint32 { - if x != nil && x.HopLimit != nil { - return *x.HopLimit +func (x *BgpV6Peer) GetEvpnEthernetSegments() []*BgpV6EthernetSegment { + if x != nil { + return x.EvpnEthernetSegments } - return 0 + return nil } -func (x *RsvpFastReroute) GetBandwidth() float32 { - if x != nil && x.Bandwidth != nil { - return *x.Bandwidth +func (x *BgpV6Peer) GetAsType() BgpV6Peer_AsType_Enum { + if x != nil && x.AsType != nil { + return *x.AsType } - return 0 + return BgpV6Peer_AsType_unspecified } -func (x *RsvpFastReroute) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny +func (x *BgpV6Peer) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return "" + return 0 } -func (x *RsvpFastReroute) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny +func (x *BgpV6Peer) GetAsNumberWidth() BgpV6Peer_AsNumberWidth_Enum { + if x != nil && x.AsNumberWidth != nil { + return *x.AsNumberWidth } - return "" + return BgpV6Peer_AsNumberWidth_unspecified } -func (x *RsvpFastReroute) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *BgpV6Peer) GetAdvanced() *BgpAdvanced { + if x != nil { + return x.Advanced } - return "" + return nil } -func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { - if x != nil && x.OneToOneBackupDesired != nil { - return *x.OneToOneBackupDesired +func (x *BgpV6Peer) GetCapability() *BgpCapability { + if x != nil { + return x.Capability } - return false + return nil } -func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { - if x != nil && x.FacilityBackupDesired != nil { - return *x.FacilityBackupDesired +func (x *BgpV6Peer) GetLearnedInformationFilter() *BgpLearnedInformationFilter { + if x != nil { + return x.LearnedInformationFilter } - return false + return nil } -// Configuration for the optional RSVP-TE explicit route object(ERO) object included -// in Path Messages. -type RsvpEro struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Determines whether the IP address of the RSVP neighbor should be added as an ERO - // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict - // hop. - // default = PrependNeighborIp.Enum.prepend_loose - PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` - // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set - // this value as the prefix length of the ERO sub-object containing egress IP address. - // - // default = 32 - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate - // hops to be traversed by the LSP while being forwarded towards the egress endpoint. - // These sub-objects are included after the optional sub-object containing IP address - // of egress endpoint of the LSP (when present). - Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` +func (x *BgpV6Peer) GetV4Routes() []*BgpV4RouteRange { + if x != nil { + return x.V4Routes + } + return nil } -func (x *RsvpEro) Reset() { - *x = RsvpEro{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[218] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6Peer) GetV6Routes() []*BgpV6RouteRange { + if x != nil { + return x.V6Routes } + return nil } -func (x *RsvpEro) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RsvpEro) ProtoMessage() {} - -func (x *RsvpEro) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[218] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6Peer) GetV4SrtePolicies() []*BgpSrteV4Policy { + if x != nil { + return x.V4SrtePolicies } - return mi.MessageOf(x) + return nil } -// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. -func (*RsvpEro) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{218} +func (x *BgpV6Peer) GetV6SrtePolicies() []*BgpSrteV6Policy { + if x != nil { + return x.V6SrtePolicies + } + return nil } -func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { - if x != nil && x.PrependNeighborIp != nil { - return *x.PrependNeighborIp +func (x *BgpV6Peer) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return RsvpEro_PrependNeighborIp_unspecified + return "" } -func (x *RsvpEro) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *BgpV6Peer) GetGracefulRestart() *BgpGracefulRestart { + if x != nil { + return x.GracefulRestart } - return 0 + return nil } -func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { +func (x *BgpV6Peer) GetReplayUpdates() *BgpUpdateReplay { if x != nil { - return x.Subobjects + return x.ReplayUpdates } return nil } -// Configuration for the ERO sub-object. -type RsvpEroSubobject struct { +// Configuration for emulated BGPv6 peers and routes on a single IPv6 interface. +type BgpV6Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of the ERO sub-object, one of IPv4 Address or AS Number. - // default = Type.Enum.ipv4 - Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` - // IPv4 address that this LSP should traverse through. This field is applicable only - // if the value of 'type' is set to 'ipv4'. - // default = 0.0.0.0 - Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable - // only if the value of 'type' is set to 'ipv4'. - // default = 32 - PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // Autonomous System number to be set in the ERO sub-object that this LSP should traverse - // through. This field is applicable only if the value of 'type' is set to 'as_number'. - // Note that as per RFC3209, 4-byte AS encoding is not supported. - // default = 0 - AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // The hop type of the ERO sub-object, one of Strict or Loose. - // default = HopType.Enum.loose - HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` + // The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source + // IP for this list of BGP peers. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // required = true + Ipv6Name *string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3,oneof" json:"ipv6_name,omitempty"` + // This contains the list of BGPv6 peers configured on this interface. + Peers []*BgpV6Peer `protobuf:"bytes,2,rep,name=peers,proto3" json:"peers,omitempty"` } -func (x *RsvpEroSubobject) Reset() { - *x = RsvpEroSubobject{} +func (x *BgpV6Interface) Reset() { + *x = BgpV6Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[219] + mi := &file_otg_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject) String() string { +func (x *BgpV6Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject) ProtoMessage() {} +func (*BgpV6Interface) ProtoMessage() {} -func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[219] +func (x *BgpV6Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42631,74 +42964,74 @@ func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. -func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{219} -} - -func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type - } - return RsvpEroSubobject_Type_unspecified +// Deprecated: Use BgpV6Interface.ProtoReflect.Descriptor instead. +func (*BgpV6Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{221} } -func (x *RsvpEroSubobject) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *BgpV6Interface) GetIpv6Name() string { + if x != nil && x.Ipv6Name != nil { + return *x.Ipv6Name } return "" } -func (x *RsvpEroSubobject) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *RsvpEroSubobject) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber - } - return 0 -} - -func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { - if x != nil && x.HopType != nil { - return *x.HopType +func (x *BgpV6Interface) GetPeers() []*BgpV6Peer { + if x != nil { + return x.Peers } - return RsvpEroSubobject_HopType_unspecified + return nil } -// Configuration for one or more IPv4 or IPv6 DHCP servers. -type DeviceDhcpServer struct { +// Configuration for BGPv6 segment routing settings. +type BgpV6SegmentRouting struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This contains an array of references to IPv4 interfaces, each of which will contain - // one DHCPv4 server. - Ipv4Interfaces []*DhcpServerV4 `protobuf:"bytes,2,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // TBD + // default = False + IngressSupportsVpn *bool `protobuf:"varint,1,opt,name=ingress_supports_vpn,json=ingressSupportsVpn,proto3,oneof" json:"ingress_supports_vpn,omitempty"` + // TBD + // default = False + ReducedEncapsulation *bool `protobuf:"varint,2,opt,name=reduced_encapsulation,json=reducedEncapsulation,proto3,oneof" json:"reduced_encapsulation,omitempty"` + // TBD + // default = False + CopyTimeToLive *bool `protobuf:"varint,3,opt,name=copy_time_to_live,json=copyTimeToLive,proto3,oneof" json:"copy_time_to_live,omitempty"` + // TBD + // default = 0 + TimeToLive *uint32 `protobuf:"varint,4,opt,name=time_to_live,json=timeToLive,proto3,oneof" json:"time_to_live,omitempty"` + // TBD + // default = 0 + MaxSidsPerSrh *uint32 `protobuf:"varint,5,opt,name=max_sids_per_srh,json=maxSidsPerSrh,proto3,oneof" json:"max_sids_per_srh,omitempty"` + // TBD + // default = False + AutoGenerateSegmentLeftValue *bool `protobuf:"varint,6,opt,name=auto_generate_segment_left_value,json=autoGenerateSegmentLeftValue,proto3,oneof" json:"auto_generate_segment_left_value,omitempty"` + // TBD + // default = 0 + SegmentLeftValue *uint32 `protobuf:"varint,7,opt,name=segment_left_value,json=segmentLeftValue,proto3,oneof" json:"segment_left_value,omitempty"` + // TBD + // default = False + AdvertiseSrTePolicy *bool `protobuf:"varint,8,opt,name=advertise_sr_te_policy,json=advertiseSrTePolicy,proto3,oneof" json:"advertise_sr_te_policy,omitempty"` } -func (x *DeviceDhcpServer) Reset() { - *x = DeviceDhcpServer{} +func (x *BgpV6SegmentRouting) Reset() { + *x = BgpV6SegmentRouting{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[220] + mi := &file_otg_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceDhcpServer) String() string { +func (x *BgpV6SegmentRouting) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceDhcpServer) ProtoMessage() {} +func (*BgpV6SegmentRouting) ProtoMessage() {} -func (x *DeviceDhcpServer) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[220] +func (x *BgpV6SegmentRouting) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42709,141 +43042,143 @@ func (x *DeviceDhcpServer) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceDhcpServer.ProtoReflect.Descriptor instead. -func (*DeviceDhcpServer) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{220} +// Deprecated: Use BgpV6SegmentRouting.ProtoReflect.Descriptor instead. +func (*BgpV6SegmentRouting) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{222} } -func (x *DeviceDhcpServer) GetIpv4Interfaces() []*DhcpServerV4 { - if x != nil { - return x.Ipv4Interfaces +func (x *BgpV6SegmentRouting) GetIngressSupportsVpn() bool { + if x != nil && x.IngressSupportsVpn != nil { + return *x.IngressSupportsVpn } - return nil -} - -// Configuration for emulated DHCPv4 Server. -type DhcpServerV4 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The unique name of the IPv4 on which DHCPv4 server will run. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - Ipv4Name *string `protobuf:"bytes,2,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` - // List of DHCPv4 Server Lease parameters - AddressPools []*DhcpServerV4Pool `protobuf:"bytes,3,rep,name=address_pools,json=addressPools,proto3" json:"address_pools,omitempty"` + return false } -func (x *DhcpServerV4) Reset() { - *x = DhcpServerV4{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[221] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BgpV6SegmentRouting) GetReducedEncapsulation() bool { + if x != nil && x.ReducedEncapsulation != nil { + return *x.ReducedEncapsulation } + return false } -func (x *DhcpServerV4) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *BgpV6SegmentRouting) GetCopyTimeToLive() bool { + if x != nil && x.CopyTimeToLive != nil { + return *x.CopyTimeToLive + } + return false } -func (*DhcpServerV4) ProtoMessage() {} - -func (x *DhcpServerV4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[221] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BgpV6SegmentRouting) GetTimeToLive() uint32 { + if x != nil && x.TimeToLive != nil { + return *x.TimeToLive } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use DhcpServerV4.ProtoReflect.Descriptor instead. -func (*DhcpServerV4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{221} +func (x *BgpV6SegmentRouting) GetMaxSidsPerSrh() uint32 { + if x != nil && x.MaxSidsPerSrh != nil { + return *x.MaxSidsPerSrh + } + return 0 } -func (x *DhcpServerV4) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpV6SegmentRouting) GetAutoGenerateSegmentLeftValue() bool { + if x != nil && x.AutoGenerateSegmentLeftValue != nil { + return *x.AutoGenerateSegmentLeftValue } - return "" + return false } -func (x *DhcpServerV4) GetIpv4Name() string { - if x != nil && x.Ipv4Name != nil { - return *x.Ipv4Name +func (x *BgpV6SegmentRouting) GetSegmentLeftValue() uint32 { + if x != nil && x.SegmentLeftValue != nil { + return *x.SegmentLeftValue } - return "" + return 0 } -func (x *DhcpServerV4) GetAddressPools() []*DhcpServerV4Pool { - if x != nil { - return x.AddressPools +func (x *BgpV6SegmentRouting) GetAdvertiseSrTePolicy() bool { + if x != nil && x.AdvertiseSrTePolicy != nil { + return *x.AdvertiseSrTePolicy } - return nil + return false } -// Configuration for DHCPv4 address pool for a lease. -type DhcpServerV4Pool struct { +// Configuration for BGP Ethernet Segment ranges. Advertises following routes - +// +// Type 4 - Ethernet Segment Route +type BgpV6EthernetSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The duration of time in seconds that is assigned to a lease. - // default = 86400 - LeaseTime *uint32 `protobuf:"varint,2,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` - // The IPv4 address of the first lease pool. - // required = true - StartAddress *string `protobuf:"bytes,3,opt,name=start_address,json=startAddress,proto3,oneof" json:"start_address,omitempty"` - // The IPv4 network prefix length to be applied to the address. - // default = 24 - PrefixLength *uint32 `protobuf:"varint,4,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The total number of addresses in the pool. - // default = 1 - Count *uint32 `protobuf:"varint,5,opt,name=count,proto3,oneof" json:"count,omitempty"` - // The increment value for the lease address within the lease pool. The value is incremented - // according to the prefix_length and step. - // default = 1 - Step *uint32 `protobuf:"varint,6,opt,name=step,proto3,oneof" json:"step,omitempty"` - // Optional configuration for DHCPv4 address pool for the lease. - Options *DhcpServerV4PoolOption `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"` + // Designated Forwarder (DF) election configuration. + DfElection *BgpEthernetSegmentDfElection `protobuf:"bytes,1,opt,name=df_election,json=dfElection,proto3" json:"df_election,omitempty"` + // This contains the list of EVIs. + Evis []*BgpV6EvpnEvis `protobuf:"bytes,2,rep,name=evis,proto3" json:"evis,omitempty"` + // 10-octet Ethernet Segment Identifier (ESI) Example - For multi-home scenario nonZero + // ESI is '10000000000000000000' . + // default = 00000000000000000000 + Esi *string `protobuf:"bytes,3,opt,name=esi,proto3,oneof" json:"esi,omitempty"` + // Single Active or All Active mode Redundancy mode selection for Multi-home. + // default = ActiveMode.Enum.all_active + ActiveMode *BgpV6EthernetSegment_ActiveMode_Enum `protobuf:"varint,4,opt,name=active_mode,json=activeMode,proto3,enum=otg.BgpV6EthernetSegment_ActiveMode_Enum,oneof" json:"active_mode,omitempty"` + // The label value to be advertised as ESI Label in ESI Label Extended Community. This + // is included in Ethernet Auto-discovery per ES Routes advertised by a router. + // default = 0 + EsiLabel *uint32 `protobuf:"varint,5,opt,name=esi_label,json=esiLabel,proto3,oneof" json:"esi_label,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,6,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,8,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,9,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } -func (x *DhcpServerV4Pool) Reset() { - *x = DhcpServerV4Pool{} +func (x *BgpV6EthernetSegment) Reset() { + *x = BgpV6EthernetSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[222] + mi := &file_otg_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DhcpServerV4Pool) String() string { +func (x *BgpV6EthernetSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DhcpServerV4Pool) ProtoMessage() {} +func (*BgpV6EthernetSegment) ProtoMessage() {} -func (x *DhcpServerV4Pool) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[222] +func (x *BgpV6EthernetSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42854,101 +43189,107 @@ func (x *DhcpServerV4Pool) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DhcpServerV4Pool.ProtoReflect.Descriptor instead. -func (*DhcpServerV4Pool) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{222} +// Deprecated: Use BgpV6EthernetSegment.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{223} } -func (x *DhcpServerV4Pool) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpV6EthernetSegment) GetDfElection() *BgpEthernetSegmentDfElection { + if x != nil { + return x.DfElection } - return "" + return nil } -func (x *DhcpServerV4Pool) GetLeaseTime() uint32 { - if x != nil && x.LeaseTime != nil { - return *x.LeaseTime +func (x *BgpV6EthernetSegment) GetEvis() []*BgpV6EvpnEvis { + if x != nil { + return x.Evis } - return 0 + return nil } -func (x *DhcpServerV4Pool) GetStartAddress() string { - if x != nil && x.StartAddress != nil { - return *x.StartAddress +func (x *BgpV6EthernetSegment) GetEsi() string { + if x != nil && x.Esi != nil { + return *x.Esi } return "" } -func (x *DhcpServerV4Pool) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *BgpV6EthernetSegment) GetActiveMode() BgpV6EthernetSegment_ActiveMode_Enum { + if x != nil && x.ActiveMode != nil { + return *x.ActiveMode } - return 0 + return BgpV6EthernetSegment_ActiveMode_unspecified } -func (x *DhcpServerV4Pool) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *BgpV6EthernetSegment) GetEsiLabel() uint32 { + if x != nil && x.EsiLabel != nil { + return *x.EsiLabel } return 0 } -func (x *DhcpServerV4Pool) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *BgpV6EthernetSegment) GetAdvanced() *BgpRouteAdvanced { + if x != nil { + return x.Advanced } - return 0 + return nil } -func (x *DhcpServerV4Pool) GetOptions() *DhcpServerV4PoolOption { +func (x *BgpV6EthernetSegment) GetCommunities() []*BgpCommunity { if x != nil { - return x.Options + return x.Communities } return nil } -// Optional configuration for DHCPv4 address pool for the lease. -type DhcpServerV4PoolOption struct { +func (x *BgpV6EthernetSegment) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities + } + return nil +} + +func (x *BgpV6EthernetSegment) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil +} + +// This contains a list of different flavors of EVPN. +// For example EVPN over VXLAN or EVPN over MPLS etc to be configured per Ethernet segment. +// +// Need to instantiate correct type of EVPN instance as per requirement. +type BgpV6EvpnEvis struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Router address advertised by the DHCPv4 server in Offer and Ack messages. - // default = 0.0.0.0 - RouterAddress *string `protobuf:"bytes,1,opt,name=router_address,json=routerAddress,proto3,oneof" json:"router_address,omitempty"` - // The primary DNS server address that is offered to DHCP clients that request this - // information through a TLV option. - // default = 0.0.0.0 - PrimaryDnsServer *string `protobuf:"bytes,2,opt,name=primary_dns_server,json=primaryDnsServer,proto3,oneof" json:"primary_dns_server,omitempty"` - // The primary DNS server address that is offered to DHCP clients that request this - // information through a TLV option. - // default = 0.0.0.0 - SecondaryDnsServer *string `protobuf:"bytes,3,opt,name=secondary_dns_server,json=secondaryDnsServer,proto3,oneof" json:"secondary_dns_server,omitempty"` - // If selected, the DHCP server includes in its replies the TLV information for the - // DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from - // a DHCP relay agent, otherwise it replies without including this TLV. - // default = True - EchoRelayWithTlv_82 *bool `protobuf:"varint,4,opt,name=echo_relay_with_tlv_82,json=echoRelayWithTlv82,proto3,oneof" json:"echo_relay_with_tlv_82,omitempty"` + // Description missing in models + // default = Choice.Enum.evi_vxlan + Choice *BgpV6EvpnEvis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.BgpV6EvpnEvis_Choice_Enum,oneof" json:"choice,omitempty"` + // EVPN VXLAN instance to be configured per Ethernet Segment. + EviVxlan *BgpV6EviVxlan `protobuf:"bytes,2,opt,name=evi_vxlan,json=eviVxlan,proto3" json:"evi_vxlan,omitempty"` } -func (x *DhcpServerV4PoolOption) Reset() { - *x = DhcpServerV4PoolOption{} +func (x *BgpV6EvpnEvis) Reset() { + *x = BgpV6EvpnEvis{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[223] + mi := &file_otg_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DhcpServerV4PoolOption) String() string { +func (x *BgpV6EvpnEvis) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DhcpServerV4PoolOption) ProtoMessage() {} +func (*BgpV6EvpnEvis) ProtoMessage() {} -func (x *DhcpServerV4PoolOption) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[223] +func (x *BgpV6EvpnEvis) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -42959,108 +43300,115 @@ func (x *DhcpServerV4PoolOption) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DhcpServerV4PoolOption.ProtoReflect.Descriptor instead. -func (*DhcpServerV4PoolOption) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{223} -} - -func (x *DhcpServerV4PoolOption) GetRouterAddress() string { - if x != nil && x.RouterAddress != nil { - return *x.RouterAddress - } - return "" -} - -func (x *DhcpServerV4PoolOption) GetPrimaryDnsServer() string { - if x != nil && x.PrimaryDnsServer != nil { - return *x.PrimaryDnsServer - } - return "" +// Deprecated: Use BgpV6EvpnEvis.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{224} } -func (x *DhcpServerV4PoolOption) GetSecondaryDnsServer() string { - if x != nil && x.SecondaryDnsServer != nil { - return *x.SecondaryDnsServer +func (x *BgpV6EvpnEvis) GetChoice() BgpV6EvpnEvis_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return BgpV6EvpnEvis_Choice_unspecified } -func (x *DhcpServerV4PoolOption) GetEchoRelayWithTlv_82() bool { - if x != nil && x.EchoRelayWithTlv_82 != nil { - return *x.EchoRelayWithTlv_82 +func (x *BgpV6EvpnEvis) GetEviVxlan() *BgpV6EviVxlan { + if x != nil { + return x.EviVxlan } - return false + return nil } -// A high level data plane traffic flow. -type Flow struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The transmit and receive endpoints. - // required = true - TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is transmitted - // by traffic-generator port. - // - // The order of protocol headers assigned to the list is the - // order they will appear on the wire. - // - // In the case of an empty list the keyword/value of minItems: 1 - // indicates that an implementation MUST provide at least one - // Flow.Header object. - // - // The default value for the Flow.Header choice property is ethernet - // which will result in an implementation by default providing at least - // one ethernet packet header. - Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // Under Review: The packet header schema for egress tracking currently exposes unwanted - // fields. The query structure for tagged metrics inside flows metrics requires documenting - // expected response format. - // - // The list of protocol headers defining the shape of all - // intended packets in corresponding flow as it is received - // by traffic-generator port. - // - // For all protocol headers, only the `metric_tags` property is configurable. - EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` - // The size of the packets. - Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3" json:"size,omitempty"` - // The transmit rate of the packets. - Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3" json:"rate,omitempty"` - // The transmit duration of the packets. - Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` - // Flow metrics. - Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3" json:"metrics,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` + // This contains the list of Broadcast Domains to be configured per EVI. + BroadcastDomains []*BgpV6EviVxlanBroadcastDomain `protobuf:"bytes,1,rep,name=broadcast_domains,json=broadcastDomains,proto3" json:"broadcast_domains,omitempty"` + // This model only supports Ingress Replication + // default = ReplicationType.Enum.ingress_replication + ReplicationType *BgpV6EviVxlan_ReplicationType_Enum `protobuf:"varint,2,opt,name=replication_type,json=replicationType,proto3,enum=otg.BgpV6EviVxlan_ReplicationType_Enum,oneof" json:"replication_type,omitempty"` + // 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. + // default = 16 + PmsiLabel *uint32 `protobuf:"varint,3,opt,name=pmsi_label,json=pmsiLabel,proto3,oneof" json:"pmsi_label,omitempty"` + // The Auto-discovery Route label (AD label) value, which gets advertised in the Ethernet + // Auto-discovery Route per + // default = 0 + AdLabel *uint32 `protobuf:"varint,4,opt,name=ad_label,json=adLabel,proto3,oneof" json:"ad_label,omitempty"` + // Colon separated Extended Community value of 6 Bytes - AS number: Value identifying + // an EVI. Example - for the as_2octet 60005:100. + RouteDistinguisher *BgpRouteDistinguisher `protobuf:"bytes,5,opt,name=route_distinguisher,json=routeDistinguisher,proto3" json:"route_distinguisher,omitempty"` + // List of Layer 2 Virtual Network Identifier (L2VNI) export targets associated with + // this EVI. + RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,6,rep,name=route_target_export,json=routeTargetExport,proto3" json:"route_target_export,omitempty"` + // List of L2VNI import targets associated with this EVI. + RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,7,rep,name=route_target_import,json=routeTargetImport,proto3" json:"route_target_import,omitempty"` + // List of Layer 3 Virtual Network Identifier (L3VNI) Export Route Targets. + L3RouteTargetExport []*BgpRouteTarget `protobuf:"bytes,8,rep,name=l3_route_target_export,json=l3RouteTargetExport,proto3" json:"l3_route_target_export,omitempty"` + // List of L3VNI Import Route Targets. + L3RouteTargetImport []*BgpRouteTarget `protobuf:"bytes,9,rep,name=l3_route_target_import,json=l3RouteTargetImport,proto3" json:"l3_route_target_import,omitempty"` + // Description missing in models + Advanced *BgpRouteAdvanced `protobuf:"bytes,10,opt,name=advanced,proto3" json:"advanced,omitempty"` + // Optional community settings. + Communities []*BgpCommunity `protobuf:"bytes,11,rep,name=communities,proto3" json:"communities,omitempty"` + // 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 []*BgpExtCommunity `protobuf:"bytes,12,rep,name=ext_communities,json=extCommunities,proto3" json:"ext_communities,omitempty"` + // Optional AS PATH settings. + AsPath *BgpAsPath `protobuf:"bytes,13,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` } -func (x *Flow) Reset() { - *x = Flow{} +func (x *BgpV6EviVxlan) Reset() { + *x = BgpV6EviVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[224] + mi := &file_otg_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Flow) String() string { +func (x *BgpV6EviVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Flow) ProtoMessage() {} +func (*BgpV6EviVxlan) ProtoMessage() {} -func (x *Flow) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[224] +func (x *BgpV6EviVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43071,100 +43419,138 @@ func (x *Flow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Flow.ProtoReflect.Descriptor instead. -func (*Flow) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{224} +// Deprecated: Use BgpV6EviVxlan.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{225} } -func (x *Flow) GetTxRx() *FlowTxRx { +func (x *BgpV6EviVxlan) GetBroadcastDomains() []*BgpV6EviVxlanBroadcastDomain { if x != nil { - return x.TxRx + return x.BroadcastDomains } return nil } -func (x *Flow) GetPacket() []*FlowHeader { +func (x *BgpV6EviVxlan) GetReplicationType() BgpV6EviVxlan_ReplicationType_Enum { + if x != nil && x.ReplicationType != nil { + return *x.ReplicationType + } + return BgpV6EviVxlan_ReplicationType_unspecified +} + +func (x *BgpV6EviVxlan) GetPmsiLabel() uint32 { + if x != nil && x.PmsiLabel != nil { + return *x.PmsiLabel + } + return 0 +} + +func (x *BgpV6EviVxlan) GetAdLabel() uint32 { + if x != nil && x.AdLabel != nil { + return *x.AdLabel + } + return 0 +} + +func (x *BgpV6EviVxlan) GetRouteDistinguisher() *BgpRouteDistinguisher { if x != nil { - return x.Packet + return x.RouteDistinguisher } return nil } -func (x *Flow) GetEgressPacket() []*FlowHeader { +func (x *BgpV6EviVxlan) GetRouteTargetExport() []*BgpRouteTarget { if x != nil { - return x.EgressPacket + return x.RouteTargetExport } return nil } -func (x *Flow) GetSize() *FlowSize { +func (x *BgpV6EviVxlan) GetRouteTargetImport() []*BgpRouteTarget { if x != nil { - return x.Size + return x.RouteTargetImport } return nil } -func (x *Flow) GetRate() *FlowRate { +func (x *BgpV6EviVxlan) GetL3RouteTargetExport() []*BgpRouteTarget { if x != nil { - return x.Rate + return x.L3RouteTargetExport } return nil } -func (x *Flow) GetDuration() *FlowDuration { +func (x *BgpV6EviVxlan) GetL3RouteTargetImport() []*BgpRouteTarget { if x != nil { - return x.Duration + return x.L3RouteTargetImport } return nil } -func (x *Flow) GetMetrics() *FlowMetrics { +func (x *BgpV6EviVxlan) GetAdvanced() *BgpRouteAdvanced { if x != nil { - return x.Metrics + return x.Advanced } return nil } -func (x *Flow) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpV6EviVxlan) GetCommunities() []*BgpCommunity { + if x != nil { + return x.Communities } - return "" + return nil } -// A container for different types of transmit and receive -// endpoint containers. -type FlowTxRx struct { +func (x *BgpV6EviVxlan) GetExtCommunities() []*BgpExtCommunity { + if x != nil { + return x.ExtCommunities + } + return nil +} + +func (x *BgpV6EviVxlan) GetAsPath() *BgpAsPath { + if x != nil { + return x.AsPath + } + return nil +} + +// Configuration for Broadcast Domains per EVI. +type BgpV6EviVxlanBroadcastDomain struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of transmit and receive container used by the flow. - // default = Choice.Enum.port - Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` - // Description missing in models - Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` + // 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 []*BgpCMacIpRange `protobuf:"bytes,1,rep,name=cmac_ip_range,json=cmacIpRange,proto3" json:"cmac_ip_range,omitempty"` + // The Ethernet Tag ID of the Broadcast Domain. + // default = 0 + EthernetTagId *uint32 `protobuf:"varint,2,opt,name=ethernet_tag_id,json=ethernetTagId,proto3,oneof" json:"ethernet_tag_id,omitempty"` + // VLAN-Aware service to be enabled or disabled. + // default = False + VlanAwareService *bool `protobuf:"varint,3,opt,name=vlan_aware_service,json=vlanAwareService,proto3,oneof" json:"vlan_aware_service,omitempty"` } -func (x *FlowTxRx) Reset() { - *x = FlowTxRx{} +func (x *BgpV6EviVxlanBroadcastDomain) Reset() { + *x = BgpV6EviVxlanBroadcastDomain{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[225] + mi := &file_otg_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx) String() string { +func (x *BgpV6EviVxlanBroadcastDomain) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx) ProtoMessage() {} +func (*BgpV6EviVxlanBroadcastDomain) ProtoMessage() {} -func (x *FlowTxRx) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[225] +func (x *BgpV6EviVxlanBroadcastDomain) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43175,99 +43561,61 @@ func (x *FlowTxRx) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. -func (*FlowTxRx) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{225} +// Deprecated: Use BgpV6EviVxlanBroadcastDomain.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlanBroadcastDomain) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{226} } -func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpV6EviVxlanBroadcastDomain) GetCmacIpRange() []*BgpCMacIpRange { + if x != nil { + return x.CmacIpRange } - return FlowTxRx_Choice_unspecified + return nil } -func (x *FlowTxRx) GetPort() *FlowPort { - if x != nil { - return x.Port +func (x *BgpV6EviVxlanBroadcastDomain) GetEthernetTagId() uint32 { + if x != nil && x.EthernetTagId != nil { + return *x.EthernetTagId } - return nil + return 0 } -func (x *FlowTxRx) GetDevice() *FlowRouter { - if x != nil { - return x.Device +func (x *BgpV6EviVxlanBroadcastDomain) GetVlanAwareService() bool { + if x != nil && x.VlanAwareService != nil { + return *x.VlanAwareService } - return nil + return false } -// A container for a transmit port and 0..n intended receive ports. -// When assigning this container to a flow the flows's -// packet headers will not be populated with any address resolution -// information such as source and/or destination addresses. -// For example Flow.Ethernet dst mac address values will be defaulted to 0. -// For full control over the Flow.properties.packet header contents use this -// container. -type FlowPort struct { +// Description missing in models +type DeviceVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of a port that is the transmit port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // required = true - TxName *string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3,oneof" json:"tx_name,omitempty"` - // Deprecated: This property is deprecated in favor of property rx_names - // - // Deprecated: This property is deprecated in favor of property rx_names - // - // The unique name of a port that is the intended receive port. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` - // Unique name of ports or lags that are intended receive endpoints. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Lag/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // IPv4 VXLAN Tunnels + V4Tunnels []*VxlanV4Tunnel `protobuf:"bytes,1,rep,name=v4_tunnels,json=v4Tunnels,proto3" json:"v4_tunnels,omitempty"` + // IPv6 VXLAN Tunnels + V6Tunnels []*VxlanV6Tunnel `protobuf:"bytes,2,rep,name=v6_tunnels,json=v6Tunnels,proto3" json:"v6_tunnels,omitempty"` } -func (x *FlowPort) Reset() { - *x = FlowPort{} +func (x *DeviceVxlan) Reset() { + *x = DeviceVxlan{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[226] + mi := &file_otg_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPort) String() string { +func (x *DeviceVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPort) ProtoMessage() {} +func (*DeviceVxlan) ProtoMessage() {} -func (x *FlowPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[226] +func (x *DeviceVxlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43278,153 +43626,74 @@ func (x *FlowPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. -func (*FlowPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{226} -} - -func (x *FlowPort) GetTxName() string { - if x != nil && x.TxName != nil { - return *x.TxName - } - return "" +// Deprecated: Use DeviceVxlan.ProtoReflect.Descriptor instead. +func (*DeviceVxlan) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{227} } -func (x *FlowPort) GetRxName() string { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *DeviceVxlan) GetV4Tunnels() []*VxlanV4Tunnel { + if x != nil { + return x.V4Tunnels } - return "" + return nil } -func (x *FlowPort) GetRxNames() []string { +func (x *DeviceVxlan) GetV6Tunnels() []*VxlanV6Tunnel { if x != nil { - return x.RxNames + return x.V6Tunnels } return nil } -// A container for declaring a map of 1..n transmit devices to 1..n receive devices. -// This allows for a single flow to have different tx to rx device flows such as a -// single one to one map or a many to many map. -type FlowRouter struct { +// Configuration and operational state parameters relating to IPv4 VXLAN tunnel end-point +// interface. +type VxlanV4Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Determines the intent of creating traffic sub-flow(s) between the device - // endpoints, from the entities of tx_names to the entities of rx_names - // - // to derive how auto packet fields can be populated with - // the actual value(s) by the implementation. - // - // The one_to_one mode creates traffic sub-flow(s) between each device endpoint - // pair in - // tx_names to rx_names by index. - // The length of tx_names and rx_names MUST be the same. - // The same device name can be repeated multiple times in tx_names or rx_names, in any - // order to create desired meshing between device(s). - // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would - // be generated (each pair representing a traffic sub-flow). - // - // The mesh mode creates traffic sub-flow(s) between each value in tx_names to - // every value in rx_names, forming the device endpoint pair(s). - // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs - // would be 2x3=6. - // - // A generated device endpoint pair with same device endpoint name for both transmit - // & receive device endpoint MUST raise an error. - // - // Packet fields of type auto would be populated with one value for each device - // endpoint pair (representing the traffic sub-flow). - // The value would be determined considering transmit & receive device of the sub-flow. - // And the sequence of the populated value(s) - // would be in the order of generated device endpoint pair(s). - // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), - // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then - // the auto field would be replaced by the implementation with a sequence of - // 2 values, [v1,v2] where - // v1 is determined using context (d1,d3) and v2 using context (d2,d3). - // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... - // for ethernet.dst field. Any non-auto packet fields - // should be configured accordingly. For example, non-auto packet field ethernet.src - // can be configured with values [u1, u2], where - // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. - // Then packets on the wire will contain correct value pairs - // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. - // default = Mode.Enum.mesh - Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` - // TBD - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - /components/schemas/Device.Dhcpv4client/properties/name + // Determines the source interface. // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - /components/schemas/Device.Dhcpv4client/properties/name - TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` - // TBD + // - /components/schemas/Device.Ipv4Loopback/properties/name // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - /components/schemas/Device.Ipv4/properties/name - // - /components/schemas/Device.Ipv6/properties/name - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Bgp.CMacIpRange/properties/name - // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - /components/schemas/Device.Dhcpv4client/properties/name - RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` + // required = true + SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV4TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // 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 *FlowRouter) Reset() { - *x = FlowRouter{} +func (x *VxlanV4Tunnel) Reset() { + *x = VxlanV4Tunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[227] + mi := &file_otg_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter) String() string { +func (x *VxlanV4Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter) ProtoMessage() {} +func (*VxlanV4Tunnel) ProtoMessage() {} -func (x *FlowRouter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[227] +func (x *VxlanV4Tunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -43435,291 +43704,73 @@ func (x *FlowRouter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. -func (*FlowRouter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{227} +// Deprecated: Use VxlanV4Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV4Tunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{228} } -func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode - } - return FlowRouter_Mode_unspecified -} - -func (x *FlowRouter) GetTxNames() []string { - if x != nil { - return x.TxNames - } - return nil -} - -func (x *FlowRouter) GetRxNames() []string { - if x != nil { - return x.RxNames - } - return nil -} - -// Configuration for all traffic packet headers -type FlowHeader struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The available types of flow headers. If one is not provided the - // default ethernet packet header MUST be provided. - // default = Choice.Enum.ethernet - Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` - // Description missing in models - Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` - // Description missing in models - Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` - // Description missing in models - Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3" json:"vxlan,omitempty"` - // Description missing in models - Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3" json:"ipv6,omitempty"` - // Description missing in models - Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3" json:"pfcpause,omitempty"` - // Description missing in models - Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3" json:"ethernetpause,omitempty"` - // Description missing in models - Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3" json:"tcp,omitempty"` - // Description missing in models - Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3" json:"udp,omitempty"` - // Description missing in models - Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3" json:"gre,omitempty"` - // Description missing in models - Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3" json:"gtpv1,omitempty"` - // Description missing in models - Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3" json:"gtpv2,omitempty"` - // Description missing in models - Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3" json:"arp,omitempty"` - // Description missing in models - Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3" json:"icmp,omitempty"` - // Description missing in models - Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3" json:"icmpv6,omitempty"` - // Description missing in models - Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3" json:"ppp,omitempty"` - // Description missing in models - 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"` - // Description missing in models - Rsvp *FlowRsvp `protobuf:"bytes,22,opt,name=rsvp,proto3" json:"rsvp,omitempty"` -} - -func (x *FlowHeader) Reset() { - *x = FlowHeader{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[228] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FlowHeader) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowHeader) ProtoMessage() {} - -func (x *FlowHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[228] - 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 FlowHeader.ProtoReflect.Descriptor instead. -func (*FlowHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{228} -} - -func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowHeader_Choice_unspecified -} - -func (x *FlowHeader) GetCustom() *FlowCustom { - if x != nil { - return x.Custom - } - return nil -} - -func (x *FlowHeader) GetEthernet() *FlowEthernet { - if x != nil { - return x.Ethernet - } - return nil -} - -func (x *FlowHeader) GetVlan() *FlowVlan { - if x != nil { - return x.Vlan - } - return nil -} - -func (x *FlowHeader) GetVxlan() *FlowVxlan { - if x != nil { - return x.Vxlan - } - return nil -} - -func (x *FlowHeader) GetIpv4() *FlowIpv4 { - if x != nil { - return x.Ipv4 - } - return nil -} - -func (x *FlowHeader) GetIpv6() *FlowIpv6 { - if x != nil { - return x.Ipv6 - } - return nil -} - -func (x *FlowHeader) GetPfcpause() *FlowPfcPause { - if x != nil { - return x.Pfcpause - } - return nil -} - -func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { - if x != nil { - return x.Ethernetpause - } - return nil -} - -func (x *FlowHeader) GetTcp() *FlowTcp { - if x != nil { - return x.Tcp - } - return nil -} - -func (x *FlowHeader) GetUdp() *FlowUdp { - if x != nil { - return x.Udp - } - return nil -} - -func (x *FlowHeader) GetGre() *FlowGre { - if x != nil { - return x.Gre - } - return nil -} - -func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { - if x != nil { - return x.Gtpv1 - } - return nil -} - -func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { - if x != nil { - return x.Gtpv2 - } - return nil -} - -func (x *FlowHeader) GetArp() *FlowArp { - if x != nil { - return x.Arp - } - return nil -} - -func (x *FlowHeader) GetIcmp() *FlowIcmp { - if x != nil { - return x.Icmp - } - return nil -} - -func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { - if x != nil { - return x.Icmpv6 - } - return nil -} - -func (x *FlowHeader) GetPpp() *FlowPpp { - if x != nil { - return x.Ppp - } - return nil -} - -func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { - if x != nil { - return x.Igmpv1 +func (x *VxlanV4Tunnel) GetSourceInterface() string { + if x != nil && x.SourceInterface != nil { + return *x.SourceInterface } - return nil + return "" } -func (x *FlowHeader) GetMpls() *FlowMpls { +func (x *VxlanV4Tunnel) GetDestinationIpMode() *VxlanV4TunnelDestinationIPMode { if x != nil { - return x.Mpls + return x.DestinationIpMode } return nil } -func (x *FlowHeader) GetSnmpv2C() *FlowSnmpv2C { - if x != nil { - return x.Snmpv2C +func (x *VxlanV4Tunnel) GetVni() uint32 { + if x != nil && x.Vni != nil { + return *x.Vni } - return nil + return 0 } -func (x *FlowHeader) GetRsvp() *FlowRsvp { - if x != nil { - return x.Rsvp +func (x *VxlanV4Tunnel) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// Custom packet header -type FlowCustom struct { +// Configuration and operational state parameters relating to IPv6 VXLAN tunnel end-point +// interface. +type VxlanV6Tunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A custom packet header defined as a string of hex bytes. The string MUST contain - // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be - // discarded. This packet header can be used in multiple places in the packet. + // Determines the source interface. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // // required = true - Bytes *string `protobuf:"bytes,1,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // One or more metric tags 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. - MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + SourceInterface *string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3,oneof" json:"source_interface,omitempty"` + // Description missing in models + DestinationIpMode *VxlanV6TunnelDestinationIPMode `protobuf:"bytes,2,opt,name=destination_ip_mode,json=destinationIpMode,proto3" json:"destination_ip_mode,omitempty"` + // VXLAN Network Identifier (VNI) to distinguish network instances on the wire + // required = true + Vni *uint32 `protobuf:"varint,3,opt,name=vni,proto3,oneof" json:"vni,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // 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 *FlowCustom) Reset() { - *x = FlowCustom{} +func (x *VxlanV6Tunnel) Reset() { + *x = VxlanV6Tunnel{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43727,13 +43778,13 @@ func (x *FlowCustom) Reset() { } } -func (x *FlowCustom) String() string { +func (x *VxlanV6Tunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustom) ProtoMessage() {} +func (*VxlanV6Tunnel) ProtoMessage() {} -func (x *FlowCustom) ProtoReflect() protoreflect.Message { +func (x *VxlanV6Tunnel) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43745,48 +43796,56 @@ func (x *FlowCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. -func (*FlowCustom) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV6Tunnel.ProtoReflect.Descriptor instead. +func (*VxlanV6Tunnel) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{229} } -func (x *FlowCustom) GetBytes() string { - if x != nil && x.Bytes != nil { - return *x.Bytes +func (x *VxlanV6Tunnel) GetSourceInterface() string { + if x != nil && x.SourceInterface != nil { + return *x.SourceInterface } return "" } -func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { +func (x *VxlanV6Tunnel) GetDestinationIpMode() *VxlanV6TunnelDestinationIPMode { if x != nil { - return x.MetricTags + return x.DestinationIpMode } return nil } -// 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 FlowCustomMetricTag struct { +func (x *VxlanV6Tunnel) GetVni() uint32 { + if x != nil && x.Vni != nil { + return *x.Vni + } + return 0 +} + +func (x *VxlanV6Tunnel) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV4TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable - // for configured offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset - // of corresponding header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV4TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV4TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Unicast *VxlanV4TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` + // Description missing in models + Multicast *VxlanV4TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` } -func (x *FlowCustomMetricTag) Reset() { - *x = FlowCustomMetricTag{} +func (x *VxlanV4TunnelDestinationIPMode) Reset() { + *x = VxlanV4TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43794,13 +43853,13 @@ func (x *FlowCustomMetricTag) Reset() { } } -func (x *FlowCustomMetricTag) String() string { +func (x *VxlanV4TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowCustomMetricTag) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode) ProtoMessage() {} -func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { +func (x *VxlanV4TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43812,50 +43871,49 @@ func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. -func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV4TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{230} } -func (x *FlowCustomMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *VxlanV4TunnelDestinationIPMode) GetChoice() VxlanV4TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return VxlanV4TunnelDestinationIPMode_Choice_unspecified } -func (x *FlowCustomMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *VxlanV4TunnelDestinationIPMode) GetUnicast() *VxlanV4TunnelDestinationIPModeUnicast { + if x != nil { + return x.Unicast } - return 0 + return nil } -func (x *FlowCustomMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *VxlanV4TunnelDestinationIPMode) GetMulticast() *VxlanV4TunnelDestinationIPModeMulticast { + if x != nil { + return x.Multicast } - return 0 + return nil } -// Ethernet packet header -type FlowEthernet struct { +// Communication mode between the VTEPs, either unicast or multicast. +type VxlanV6TunnelDestinationIPMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // unicast or multicast + // default = Choice.Enum.multicast + Choice *VxlanV6TunnelDestinationIPMode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.VxlanV6TunnelDestinationIPMode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` + Unicast *VxlanV6TunnelDestinationIPModeUnicast `protobuf:"bytes,2,opt,name=unicast,proto3" json:"unicast,omitempty"` // Description missing in models - PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` + Multicast *VxlanV6TunnelDestinationIPModeMulticast `protobuf:"bytes,3,opt,name=multicast,proto3" json:"multicast,omitempty"` } -func (x *FlowEthernet) Reset() { - *x = FlowEthernet{} +func (x *VxlanV6TunnelDestinationIPMode) Reset() { + *x = VxlanV6TunnelDestinationIPMode{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43863,13 +43921,13 @@ func (x *FlowEthernet) Reset() { } } -func (x *FlowEthernet) String() string { +func (x *VxlanV6TunnelDestinationIPMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernet) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode) ProtoMessage() {} -func (x *FlowEthernet) ProtoReflect() protoreflect.Message { +func (x *VxlanV6TunnelDestinationIPMode) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43881,57 +43939,44 @@ func (x *FlowEthernet) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. -func (*FlowEthernet) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV6TunnelDestinationIPMode.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{231} } -func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { - if x != nil { - return x.Src +func (x *VxlanV6TunnelDestinationIPMode) GetChoice() VxlanV6TunnelDestinationIPMode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return VxlanV6TunnelDestinationIPMode_Choice_unspecified } -func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { +func (x *VxlanV6TunnelDestinationIPMode) GetUnicast() *VxlanV6TunnelDestinationIPModeUnicast { if x != nil { - return x.EtherType + return x.Unicast } return nil } -func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { +func (x *VxlanV6TunnelDestinationIPMode) GetMulticast() *VxlanV6TunnelDestinationIPModeMulticast { if x != nil { - return x.PfcQueue + return x.Multicast } return nil } -// VLAN packet header -type FlowVlan struct { +// Description missing in models +type VxlanV4TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` - // Description missing in models - Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` - // Description missing in models - Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` - // Description missing in models - Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3" json:"tpid,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV4TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *FlowVlan) Reset() { - *x = FlowVlan{} +func (x *VxlanV4TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43939,13 +43984,13 @@ func (x *FlowVlan) Reset() { } } -func (x *FlowVlan) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowVlan) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *FlowVlan) ProtoReflect() protoreflect.Message { +func (x *VxlanV4TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -43957,57 +44002,30 @@ func (x *FlowVlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. -func (*FlowVlan) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{232} } -func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { - if x != nil { - return x.Priority - } - return nil -} - -func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { - if x != nil { - return x.Cfi - } - return nil -} - -func (x *FlowVlan) GetId() *PatternFlowVlanId { - if x != nil { - return x.Id - } - return nil -} - -func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { +func (x *VxlanV4TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV4TunnelDestinationIPModeUnicastVtep { if x != nil { - return x.Tpid + return x.Vteps } return nil } -// VXLAN packet header -type FlowVxlan struct { +// Description missing in models +type VxlanV6TunnelDestinationIPModeUnicast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` - // Description missing in models - Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` - // Description missing in models - Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3" json:"vni,omitempty"` - // Description missing in models - Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3" json:"reserved1,omitempty"` + // List of VTEPs for member VNI(VXLAN Network Identifier) + Vteps []*VxlanV6TunnelDestinationIPModeUnicastVtep `protobuf:"bytes,1,rep,name=vteps,proto3" json:"vteps,omitempty"` } -func (x *FlowVxlan) Reset() { - *x = FlowVxlan{} +func (x *VxlanV6TunnelDestinationIPModeUnicast) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicast{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44015,13 +44033,13 @@ func (x *FlowVxlan) Reset() { } } -func (x *FlowVxlan) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowVxlan) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicast) ProtoMessage() {} -func (x *FlowVxlan) ProtoReflect() protoreflect.Message { +func (x *VxlanV6TunnelDestinationIPModeUnicast) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44033,79 +44051,36 @@ func (x *FlowVxlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. -func (*FlowVxlan) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicast) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{233} } -func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { - if x != nil { - return x.Flags - } - return nil -} - -func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { - if x != nil { - return x.Reserved0 - } - return nil -} - -func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { - if x != nil { - return x.Vni - } - return nil -} - -func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { +func (x *VxlanV6TunnelDestinationIPModeUnicast) GetVteps() []*VxlanV6TunnelDestinationIPModeUnicastVtep { if x != nil { - return x.Reserved1 + return x.Vteps } return nil } -// IPv4 packet header -type FlowIpv4 struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` - // Description missing in models - Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` - // Description missing in models - TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` - // Description missing in models - Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` - // Description missing in models - Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` - // Description missing in models - DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` - // Description missing in models - MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` - // Description missing in models - FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` - // Description missing in models - TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` - // Description missing in models - Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` - // Description missing in models - HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` - // Description missing in models - Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` - // Description missing in models - Options []*FlowIpv4Options `protobuf:"bytes,15,rep,name=options,proto3" json:"options,omitempty"` + // Remote VM MAC address bound to Remote VM IPv4 address + RemoteVmMac *string `protobuf:"bytes,1,opt,name=remote_vm_mac,json=remoteVmMac,proto3,oneof" json:"remote_vm_mac,omitempty"` + // Remote VM IPv4 address + RemoteVmIpv4 *string `protobuf:"bytes,2,opt,name=remote_vm_ipv4,json=remoteVmIpv4,proto3,oneof" json:"remote_vm_ipv4,omitempty"` } -func (x *FlowIpv4) Reset() { - *x = FlowIpv4{} +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Reset() { + *x = VxlanTunnelDestinationIPModeUnicastArpSuppressionCache{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44113,13 +44088,13 @@ func (x *FlowIpv4) Reset() { } } -func (x *FlowIpv4) String() string { +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4) ProtoMessage() {} +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoMessage() {} -func (x *FlowIpv4) ProtoReflect() protoreflect.Message { +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44131,141 +44106,43 @@ func (x *FlowIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. -func (*FlowIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanTunnelDestinationIPModeUnicastArpSuppressionCache.ProtoReflect.Descriptor instead. +func (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{234} } -func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { - if x != nil { - return x.HeaderLength - } - return nil -} - -func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { - if x != nil { - return x.Priority - } - return nil -} - -func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { - if x != nil { - return x.TotalLength - } - return nil -} - -func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { - if x != nil { - return x.Identification - } - return nil -} - -func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { - if x != nil { - return x.Reserved - } - return nil -} - -func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { - if x != nil { - return x.DontFragment - } - return nil -} - -func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { - if x != nil { - return x.MoreFragments - } - return nil -} - -func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { - if x != nil { - return x.FragmentOffset - } - return nil -} - -func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { - if x != nil { - return x.TimeToLive - } - return nil -} - -func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { - if x != nil { - return x.Protocol - } - return nil -} - -func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { - if x != nil { - return x.HeaderChecksum - } - return nil -} - -func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { - if x != nil { - return x.Src - } - return nil -} - -func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { - if x != nil { - return x.Dst +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmMac() string { + if x != nil && x.RemoteVmMac != nil { + return *x.RemoteVmMac } - return nil + return "" } -func (x *FlowIpv4) GetOptions() []*FlowIpv4Options { - if x != nil { - return x.Options +func (x *VxlanTunnelDestinationIPModeUnicastArpSuppressionCache) GetRemoteVmIpv4() string { + if x != nil && x.RemoteVmIpv4 != nil { + return *x.RemoteVmIpv4 } - return nil + return "" } -// IPv4 options are optional extensions for the IPv4 header that can be utilised to -// provide additional information about the IPv4 datagram. It is encoded as a series -// of type, length and value attributes. The IP header length MUST be increased to -// accommodate the extra bytes needed to encode the IP options. The length of the all -// options included to a IPv4 header should not exceed 40 bytes since IPv4 Header length -// (4 bits) can at max specify 15 4-word octets for a total of 60 bytes which includes -// 20 bytes needed for mandatory attributes of the IPv4 header. If the user adds multiples -// IPv4 options that exceeds 40 bytes and specify header length as auto, implementation -// should throw error. Currently IP options supported are: 1. router_alert option allows -// devices to intercept packets not addressed to them directly as defined in RFC2113. -// 2. custom option is provided to configure user defined IP options as needed. -type FlowIpv4Options struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV4TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.router_alert - Choice *FlowIpv4Options_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Options_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Custom *FlowIpv4OptionsCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // 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. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowIpv4Options) Reset() { - *x = FlowIpv4Options{} +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV4TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44273,13 +44150,13 @@ func (x *FlowIpv4Options) Reset() { } } -func (x *FlowIpv4Options) String() string { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Options) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowIpv4Options) ProtoReflect() protoreflect.Message { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44291,45 +44168,43 @@ func (x *FlowIpv4Options) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Options.ProtoReflect.Descriptor instead. -func (*FlowIpv4Options) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV4TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{235} } -func (x *FlowIpv4Options) GetChoice() FlowIpv4Options_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } - return FlowIpv4Options_Choice_unspecified + return "" } -func (x *FlowIpv4Options) GetCustom() *FlowIpv4OptionsCustom { +func (x *VxlanV4TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.Custom + return x.ArpSuppressionCache } return nil } -// User defined IP options to be appended to the IPv4 header. -type FlowIpv4OptionsCustom struct { +// VTEP (VXLAN Tunnel End Point (VTEP)) parameters +type VxlanV6TunnelDestinationIPModeUnicastVtep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Type *FlowIpv4OptionsCustomType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Description missing in models - Length *FlowIpv4OptionsCustomLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` - // Value of the option field should not excced 38 bytes since maximum 40 bytes can be - // added as options in IPv4 header. For type and length requires 2 bytes, hence maximum - // of 38 bytes are expected. Maximum length of this attribute is 76 (38 * 2 hex character - // per byte). - // default = 0000 - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Remote VXLAN Tunnel End Point address + RemoteVtepAddress *string `protobuf:"bytes,1,opt,name=remote_vtep_address,json=remoteVtepAddress,proto3,oneof" json:"remote_vtep_address,omitempty"` + // 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. + ArpSuppressionCache []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache `protobuf:"bytes,2,rep,name=arp_suppression_cache,json=arpSuppressionCache,proto3" json:"arp_suppression_cache,omitempty"` } -func (x *FlowIpv4OptionsCustom) Reset() { - *x = FlowIpv4OptionsCustom{} +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) Reset() { + *x = VxlanV6TunnelDestinationIPModeUnicastVtep{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44337,13 +44212,13 @@ func (x *FlowIpv4OptionsCustom) Reset() { } } -func (x *FlowIpv4OptionsCustom) String() string { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4OptionsCustom) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoMessage() {} -func (x *FlowIpv4OptionsCustom) ProtoReflect() protoreflect.Message { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44355,48 +44230,37 @@ func (x *FlowIpv4OptionsCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4OptionsCustom.ProtoReflect.Descriptor instead. -func (*FlowIpv4OptionsCustom) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV6TunnelDestinationIPModeUnicastVtep.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeUnicastVtep) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{236} } -func (x *FlowIpv4OptionsCustom) GetType() *FlowIpv4OptionsCustomType { - if x != nil { - return x.Type +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetRemoteVtepAddress() string { + if x != nil && x.RemoteVtepAddress != nil { + return *x.RemoteVtepAddress } - return nil + return "" } -func (x *FlowIpv4OptionsCustom) GetLength() *FlowIpv4OptionsCustomLength { +func (x *VxlanV6TunnelDestinationIPModeUnicastVtep) GetArpSuppressionCache() []*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache { if x != nil { - return x.Length + return x.ArpSuppressionCache } return nil } -func (x *FlowIpv4OptionsCustom) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value - } - return "" -} - -// Type options for custom options. -type FlowIpv4OptionsCustomType struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV4TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - CopiedFlag *PatternFlowIpv4OptionsCustomTypeCopiedFlag `protobuf:"bytes,1,opt,name=copied_flag,json=copiedFlag,proto3" json:"copied_flag,omitempty"` - // Description missing in models - OptionClass *PatternFlowIpv4OptionsCustomTypeOptionClass `protobuf:"bytes,2,opt,name=option_class,json=optionClass,proto3" json:"option_class,omitempty"` - // Description missing in models - OptionNumber *PatternFlowIpv4OptionsCustomTypeOptionNumber `protobuf:"bytes,3,opt,name=option_number,json=optionNumber,proto3" json:"option_number,omitempty"` + // IPv4 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowIpv4OptionsCustomType) Reset() { - *x = FlowIpv4OptionsCustomType{} +func (x *VxlanV4TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV4TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44404,13 +44268,13 @@ func (x *FlowIpv4OptionsCustomType) Reset() { } } -func (x *FlowIpv4OptionsCustomType) String() string { +func (x *VxlanV4TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4OptionsCustomType) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowIpv4OptionsCustomType) ProtoReflect() protoreflect.Message { +func (x *VxlanV4TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44422,52 +44286,30 @@ func (x *FlowIpv4OptionsCustomType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4OptionsCustomType.ProtoReflect.Descriptor instead. -func (*FlowIpv4OptionsCustomType) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV4TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{237} } -func (x *FlowIpv4OptionsCustomType) GetCopiedFlag() *PatternFlowIpv4OptionsCustomTypeCopiedFlag { - if x != nil { - return x.CopiedFlag - } - return nil -} - -func (x *FlowIpv4OptionsCustomType) GetOptionClass() *PatternFlowIpv4OptionsCustomTypeOptionClass { - if x != nil { - return x.OptionClass - } - return nil -} - -func (x *FlowIpv4OptionsCustomType) GetOptionNumber() *PatternFlowIpv4OptionsCustomTypeOptionNumber { - if x != nil { - return x.OptionNumber +func (x *VxlanV4TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return nil + return "" } -// Length for custom options. -type FlowIpv4OptionsCustomLength struct { +// Multicast Group address for member VNI(VXLAN Network Identifier) +type VxlanV6TunnelDestinationIPModeMulticast struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowIpv4OptionsCustomLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4OptionsCustomLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation can provide a system generated value for this property. If - // the OTG is unable to generate a value the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // IPv6 Multicast address + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` } -func (x *FlowIpv4OptionsCustomLength) Reset() { - *x = FlowIpv4OptionsCustomLength{} +func (x *VxlanV6TunnelDestinationIPModeMulticast) Reset() { + *x = VxlanV6TunnelDestinationIPModeMulticast{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44475,13 +44317,13 @@ func (x *FlowIpv4OptionsCustomLength) Reset() { } } -func (x *FlowIpv4OptionsCustomLength) String() string { +func (x *VxlanV6TunnelDestinationIPModeMulticast) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4OptionsCustomLength) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPModeMulticast) ProtoMessage() {} -func (x *FlowIpv4OptionsCustomLength) ProtoReflect() protoreflect.Message { +func (x *VxlanV6TunnelDestinationIPModeMulticast) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44493,51 +44335,39 @@ func (x *FlowIpv4OptionsCustomLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4OptionsCustomLength.ProtoReflect.Descriptor instead. -func (*FlowIpv4OptionsCustomLength) Descriptor() ([]byte, []int) { +// Deprecated: Use VxlanV6TunnelDestinationIPModeMulticast.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPModeMulticast) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{238} } -func (x *FlowIpv4OptionsCustomLength) GetChoice() FlowIpv4OptionsCustomLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowIpv4OptionsCustomLength_Choice_unspecified -} - -func (x *FlowIpv4OptionsCustomLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *FlowIpv4OptionsCustomLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *VxlanV6TunnelDestinationIPModeMulticast) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return 0 + return "" } -// A container for ipv4 raw, tos, dscp ip priorities. -type FlowIpv4Priority struct { +// Configuration for one or more RSVP interfaces, ingress and egress LSPs. In this model, +// currently IPv4 RSVP and point-to-point LSPs are supported as per RFC3209 and related +// specifications. +type DeviceRsvp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.dscp - Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3" json:"raw,omitempty"` - // Description missing in models - Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3" json:"tos,omitempty"` - // Description missing in models - Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3" json:"dscp,omitempty"` + // List of IPv4 RSVP connected interfaces. At least one interface should be present + // for device connected to the DUT. For unconnected devices, this array must be empty. + Ipv4Interfaces []*RsvpIpv4Interface `protobuf:"bytes,1,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // List of IPv4 Loopback or IPv4 connected interfaces acting as RSVP ingress and egress + // endpoints. + LspIpv4Interfaces []*RsvpLspIpv4Interface `protobuf:"bytes,2,rep,name=lsp_ipv4_interfaces,json=lspIpv4Interfaces,proto3" json:"lsp_ipv4_interfaces,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + Name *string `protobuf:"bytes,3,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *FlowIpv4Priority) Reset() { - *x = FlowIpv4Priority{} +func (x *DeviceRsvp) Reset() { + *x = DeviceRsvp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44545,13 +44375,13 @@ func (x *FlowIpv4Priority) Reset() { } } -func (x *FlowIpv4Priority) String() string { +func (x *DeviceRsvp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority) ProtoMessage() {} +func (*DeviceRsvp) ProtoMessage() {} -func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { +func (x *DeviceRsvp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -44563,134 +44393,108 @@ func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. -func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceRsvp.ProtoReflect.Descriptor instead. +func (*DeviceRsvp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{239} } -func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowIpv4Priority_Choice_unspecified -} - -func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { +func (x *DeviceRsvp) GetIpv4Interfaces() []*RsvpIpv4Interface { if x != nil { - return x.Raw + return x.Ipv4Interfaces } return nil } -func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { +func (x *DeviceRsvp) GetLspIpv4Interfaces() []*RsvpLspIpv4Interface { if x != nil { - return x.Tos + return x.LspIpv4Interfaces } return nil } -func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { - if x != nil { - return x.Dscp +func (x *DeviceRsvp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// Differentiated services code point (DSCP) packet field. -type FlowIpv4Dscp struct { +// Configuration for RSVP Interface. +type RsvpIpv4Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3" json:"phb,omitempty"` - // Description missing in models - Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3" json:"ecn,omitempty"` -} - -func (x *FlowIpv4Dscp) Reset() { - *x = FlowIpv4Dscp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[240] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FlowIpv4Dscp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowIpv4Dscp) ProtoMessage() {} - -func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[240] - 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 FlowIpv4Dscp.ProtoReflect.Descriptor instead. -func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{240} -} - -func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { - if x != nil { - return x.Phb - } - return nil -} - -func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { - if x != nil { - return x.Ecn - } - return nil -} - -// Type of service (TOS) packet field. -type FlowIpv4Tos struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3" json:"precedence,omitempty"` - // Description missing in models - Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` - // Description missing in models - Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3" json:"throughput,omitempty"` - // Description missing in models - Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3" json:"reliability,omitempty"` - // Description missing in models - Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3" json:"monetary,omitempty"` - // Description missing in models - Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3" json:"unused,omitempty"` + // The globally unique name of the IPv4 interface connected to the DUT. This name must + // match the name field of the ipv4_addresses on top which this RSVP interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` + // IPv4 address of the RSVP neighbor on this interface. + // required = true + NeighborIp *string `protobuf:"bytes,2,opt,name=neighbor_ip,json=neighborIp,proto3,oneof" json:"neighbor_ip,omitempty"` + // The user-defined label space start value. The LSPs for which this router acts as + // a egress are assigned labels from this label pool.Thelabel_space_start and label_space_end + // together defines this label-pool. + // default = 1000 + LabelSpaceStart *uint32 `protobuf:"varint,3,opt,name=label_space_start,json=labelSpaceStart,proto3,oneof" json:"label_space_start,omitempty"` + // The user-defined label space end value.The last label value that can be assigned + // to the LSPs for which this router acts as egress. + // default = 100000 + LabelSpaceEnd *uint32 `protobuf:"varint,4,opt,name=label_space_end,json=labelSpaceEnd,proto3,oneof" json:"label_space_end,omitempty"` + // Enables sending of Refresh Reduction as described in RFC2961. + // default = False + EnableRefreshReduction *bool `protobuf:"varint,5,opt,name=enable_refresh_reduction,json=enableRefreshReduction,proto3,oneof" json:"enable_refresh_reduction,omitempty"` + // The number of seconds between transmissions of successive Summary Refreshes. There + // is no specification specified maximum value. For clarity, setting the maximum to + // 1 hour. + // default = 30 + SummaryRefreshInterval *uint32 `protobuf:"varint,6,opt,name=summary_refresh_interval,json=summaryRefreshInterval,proto3,oneof" json:"summary_refresh_interval,omitempty"` + // Enables aggregration of different RSVP messages within a single PDU. + // default = False + SendBundle *bool `protobuf:"varint,7,opt,name=send_bundle,json=sendBundle,proto3,oneof" json:"send_bundle,omitempty"` + // The number of milliseconds to wait after which RSVP will bundle different RSVP messages + // and transmit Bundle messages. + // default = 50 + BundleThreshold *uint32 `protobuf:"varint,8,opt,name=bundle_threshold,json=bundleThreshold,proto3,oneof" json:"bundle_threshold,omitempty"` + // Enables sending of Hello Messages as per RFC3209. + // default = False + EnableHello *bool `protobuf:"varint,9,opt,name=enable_hello,json=enableHello,proto3,oneof" json:"enable_hello,omitempty"` + // If enable_hello is set to 'true', this specifies the minimum hello interval in seconds + // at which successive Hello Messages are sent as per RFC3209. There is no specification + // specified maximum value. For clarity, setting the maximum to 1 hour. + // default = 9 + HelloInterval *uint32 `protobuf:"varint,10,opt,name=hello_interval,json=helloInterval,proto3,oneof" json:"hello_interval,omitempty"` + // The number of missed hellos after which the node should consider RSVP Neighbor to + // have timed out. There is no specification specified maximum value. Setting the maximum + // allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,11,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` } -func (x *FlowIpv4Tos) Reset() { - *x = FlowIpv4Tos{} +func (x *RsvpIpv4Interface) Reset() { + *x = RsvpIpv4Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[241] + mi := &file_otg_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Tos) String() string { +func (x *RsvpIpv4Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Tos) ProtoMessage() {} +func (*RsvpIpv4Interface) ProtoMessage() {} -func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[241] +func (x *RsvpIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44701,84 +44505,132 @@ func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. -func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{241} +// Deprecated: Use RsvpIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{240} } -func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { - if x != nil { - return x.Precedence +func (x *RsvpIpv4Interface) GetIpv4Name() string { + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } - return nil + return "" } -func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { - if x != nil { - return x.Delay +func (x *RsvpIpv4Interface) GetNeighborIp() string { + if x != nil && x.NeighborIp != nil { + return *x.NeighborIp } - return nil + return "" } -func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { - if x != nil { - return x.Throughput +func (x *RsvpIpv4Interface) GetLabelSpaceStart() uint32 { + if x != nil && x.LabelSpaceStart != nil { + return *x.LabelSpaceStart } - return nil + return 0 } -func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { - if x != nil { - return x.Reliability +func (x *RsvpIpv4Interface) GetLabelSpaceEnd() uint32 { + if x != nil && x.LabelSpaceEnd != nil { + return *x.LabelSpaceEnd } - return nil + return 0 } -func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { - if x != nil { - return x.Monetary +func (x *RsvpIpv4Interface) GetEnableRefreshReduction() bool { + if x != nil && x.EnableRefreshReduction != nil { + return *x.EnableRefreshReduction } - return nil + return false } -func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { - if x != nil { - return x.Unused +func (x *RsvpIpv4Interface) GetSummaryRefreshInterval() uint32 { + if x != nil && x.SummaryRefreshInterval != nil { + return *x.SummaryRefreshInterval } - return nil + return 0 } -// The OTG implementation can provide a system generated, value for this property. -type FlowIpv4Auto struct { +func (x *RsvpIpv4Interface) GetSendBundle() bool { + if x != nil && x.SendBundle != nil { + return *x.SendBundle + } + return false +} + +func (x *RsvpIpv4Interface) GetBundleThreshold() uint32 { + if x != nil && x.BundleThreshold != nil { + return *x.BundleThreshold + } + return 0 +} + +func (x *RsvpIpv4Interface) GetEnableHello() bool { + if x != nil && x.EnableHello != nil { + return *x.EnableHello + } + return false +} + +func (x *RsvpIpv4Interface) GetHelloInterval() uint32 { + if x != nil && x.HelloInterval != nil { + return *x.HelloInterval + } + return 0 +} + +func (x *RsvpIpv4Interface) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier + } + return 0 +} + +// Configuration for RSVP LSP IPv4 Interface. +type RsvpLspIpv4Interface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The method to be used to provide the system generated value. + // The globally unique name of the IPv4 or Loopback IPv4 interface acting as the RSVP + // ingress and egress endpoint for the LSPs configured on this interface. This must + // match the name field of either ipv4_addresses or ipv4_loopbacks on which this LSP + // interface is configured. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name // - // The dhcp option populates the field based on the dynamic IPv4 address that has been - // assigned to the DHCPv4 client by a DHCPv4 server. // required = true - Choice *FlowIpv4Auto_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Auto_Choice_Enum,oneof" json:"choice,omitempty"` + Ipv4Name *string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` + // Contains properties of Tail(Egress) LSPs. + P2PEgressIpv4Lsps *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp `protobuf:"bytes,2,opt,name=p2p_egress_ipv4_lsps,json=p2pEgressIpv4Lsps,proto3" json:"p2p_egress_ipv4_lsps,omitempty"` + // Array of point-to-point RSVP-TE P2P LSPs originating from this interface. + P2PIngressIpv4Lsps []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp `protobuf:"bytes,3,rep,name=p2p_ingress_ipv4_lsps,json=p2pIngressIpv4Lsps,proto3" json:"p2p_ingress_ipv4_lsps,omitempty"` } -func (x *FlowIpv4Auto) Reset() { - *x = FlowIpv4Auto{} +func (x *RsvpLspIpv4Interface) Reset() { + *x = RsvpLspIpv4Interface{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[242] + mi := &file_otg_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Auto) String() string { +func (x *RsvpLspIpv4Interface) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Auto) ProtoMessage() {} +func (*RsvpLspIpv4Interface) ProtoMessage() {} -func (x *FlowIpv4Auto) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[242] +func (x *RsvpLspIpv4Interface) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44789,59 +44641,88 @@ func (x *FlowIpv4Auto) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Auto.ProtoReflect.Descriptor instead. -func (*FlowIpv4Auto) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242} +// Deprecated: Use RsvpLspIpv4Interface.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Interface) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{241} } -func (x *FlowIpv4Auto) GetChoice() FlowIpv4Auto_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspIpv4Interface) GetIpv4Name() string { + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } - return FlowIpv4Auto_Choice_unspecified + return "" } -// IPv6 packet header -type FlowIpv6 struct { +func (x *RsvpLspIpv4Interface) GetP2PEgressIpv4Lsps() *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp { + if x != nil { + return x.P2PEgressIpv4Lsps + } + return nil +} + +func (x *RsvpLspIpv4Interface) GetP2PIngressIpv4Lsps() []*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp { + if x != nil { + return x.P2PIngressIpv4Lsps + } + return nil +} + +// Configuration for RSVP Egress Point-to-Point(P2P) IPv4 LSPs. +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` - // Description missing in models - FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` - // Description missing in models - PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` - // Description missing in models - NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` - // Description missing in models - HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` - // Description missing in models - Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The time in seconds between successive transmissions of RESV Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,2,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed PATH refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,3,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // It determines how RSVP-TE enabled network devices set up reservations along the path + // between an end-to-end QOS-enabled connection. If 'auto' is enabled, the style is + // chosen based on whether the incoming Path has 'SE Desired' flag set. Otherwise, the + // style is chosen based on the value selected for this attribute. + // default = ReservationStyle.Enum.shared_explicit + ReservationStyle *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum `protobuf:"varint,4,opt,name=reservation_style,json=reservationStyle,proto3,enum=otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum,oneof" json:"reservation_style,omitempty"` + // If enabled, a specific fixed label will be advertised by the egress or tail end for + // all Path messages received by this egress. This can be leveraged to advertise Explicit + // or Implicit null labels. + // default = False + EnableFixedLabel *bool `protobuf:"varint,5,opt,name=enable_fixed_label,json=enableFixedLabel,proto3,oneof" json:"enable_fixed_label,omitempty"` + // The fixed label value as advertised by egress in RESV message. Applicable only if + // 'fixed_label' is set to 'true'. Special values are '0 - IPv4 Explicit NULL', '2 - + // IPv6 Explicit NULL' and '3 - Implicit NULL'. Outside of this, labels are expected + // to have a minimum value of 16. + // default = 0 + FixedLabelValue *uint32 `protobuf:"varint,6,opt,name=fixed_label_value,json=fixedLabelValue,proto3,oneof" json:"fixed_label_value,omitempty"` } -func (x *FlowIpv6) Reset() { - *x = FlowIpv6{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[243] + mi := &file_otg_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv6) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv6) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoMessage() {} -func (x *FlowIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[243] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44852,118 +44733,134 @@ func (x *FlowIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. -func (*FlowIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{243} -} - -func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { - if x != nil { - return x.TrafficClass - } - return nil +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{242} } -func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { - if x != nil { - return x.FlowLabel +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { - if x != nil { - return x.PayloadLength +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } - return nil + return 0 } -func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { - if x != nil { - return x.NextHeader +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier } - return nil + return 0 } -func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { - if x != nil { - return x.HopLimit +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetReservationStyle() RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum { + if x != nil && x.ReservationStyle != nil { + return *x.ReservationStyle } - return nil + return RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_unspecified } -func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { - if x != nil { - return x.Src +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetEnableFixedLabel() bool { + if x != nil && x.EnableFixedLabel != nil { + return *x.EnableFixedLabel } - return nil + return false } -func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { - if x != nil { - return x.Dst +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp) GetFixedLabelValue() uint32 { + if x != nil && x.FixedLabelValue != nil { + return *x.FixedLabelValue } - return nil + return 0 } -// IEEE 802.1Qbb PFC Pause packet header. -type FlowPfcPause struct { +// Configuration for an RSVP Ingress point-to-point LSP. +type RsvpLspIpv4InterfaceP2PIngressIpv4Lsp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` - // Description missing in models - ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3" json:"class_enable_vector,omitempty"` - // Description missing in models - PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3" json:"pause_class_0,omitempty"` - // Description missing in models - PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3" json:"pause_class_1,omitempty"` - // Description missing in models - PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3" json:"pause_class_2,omitempty"` - // Description missing in models - PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3" json:"pause_class_3,omitempty"` - // Description missing in models - PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3" json:"pause_class_4,omitempty"` - // Description missing in models - PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3" json:"pause_class_5,omitempty"` - // Description missing in models - PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3" json:"pause_class_6,omitempty"` - // Description missing in models - PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3" json:"pause_class_7,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // IPv4 address of the remote endpoint of the LSP. + // required = true + RemoteAddress *string `protobuf:"bytes,2,opt,name=remote_address,json=remoteAddress,proto3,oneof" json:"remote_address,omitempty"` + // The Tunnel ID of the RSVP LSP. Carried in the SESSION object in Path Messages. + // default = 1 + TunnelId *uint32 `protobuf:"varint,3,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The LSP ID of the RSVP LSP. Carried in the SENDER_TEMPLATE object in Path Messages. + // default = 1 + LspId *uint32 `protobuf:"varint,4,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The time in seconds between successive transmissions of PATH Refreshes. The actual + // refresh interval is jittered by upto 50%. There is no specification specified maximum + // value. For clarity, setting the maximum to 1 hour. + // default = 30 + RefreshInterval *uint32 `protobuf:"varint,5,opt,name=refresh_interval,json=refreshInterval,proto3,oneof" json:"refresh_interval,omitempty"` + // The number of missed RESV refreshes after which a recieving node should consider + // the LSP state to have timed out. There is no specification specified maximum value. + // Setting the maximum allowed value to 10. + // default = 3 + TimeoutMultiplier *uint32 `protobuf:"varint,6,opt,name=timeout_multiplier,json=timeoutMultiplier,proto3,oneof" json:"timeout_multiplier,omitempty"` + // The LSP id that will be used when creating a Make-Before-Break LSP when the active + // LSP is using lsp_id. If the active LSP on which Make-Before-Break is being done is + // using the backup_lsp_id, the new LSP created will toggle to use the lsp_id instead. + // default = 2 + BackupLspId *uint32 `protobuf:"varint,7,opt,name=backup_lsp_id,json=backupLspId,proto3,oneof" json:"backup_lsp_id,omitempty"` + // The amount of delay in milliseconds that an implementation should wait for before + // switching traffic to the new LSP created after a Make-Before-Break is done on an + // LSP. The default value is 0 which means to switch immediately. An implementation + // should support a minimum delay value of at least 50ms . There is no specification + // specified maximum value. Setting maximum allowed value to 1 minute. If a delay value + // is supplied which is lesser than the minimum delay value supported, a warning should + // be provided indicating that the minimum value of LSP switchover delay is automatically + // increased to the supported minimum value. This warning should be included in the + // list of warnings in the 'Response.Warning' attribute sent in the SetConfig 'Success' + // Response. + // default = 0 + LspSwitchoverDelay *uint32 `protobuf:"varint,8,opt,name=lsp_switchover_delay,json=lspSwitchoverDelay,proto3,oneof" json:"lsp_switchover_delay,omitempty"` + // This contains the values of the fields to be included in the SESSION_ATTRIBUTE object + // in the Path Message sent for the LSP. + SessionAttribute *RsvpSessionAttribute `protobuf:"bytes,9,opt,name=session_attribute,json=sessionAttribute,proto3" json:"session_attribute,omitempty"` + // This contains the values of the fields to be included in the TSPEC object in the + // Path Message sent for the LSP. + Tspec *RsvpTspec `protobuf:"bytes,10,opt,name=tspec,proto3" json:"tspec,omitempty"` + // This contains the values of the fields to be included in the FAST_REROUTE object + // in the Path Message sent for the LSP. + // This is an optional object . If this attribute is not included , the FAST_REROUTE + // object will not be included. + FastReroute *RsvpFastReroute `protobuf:"bytes,11,opt,name=fast_reroute,json=fastReroute,proto3" json:"fast_reroute,omitempty"` + // This contains the values of the fields to be included in the ERO object in the Path + // Message sent for the LSP. + // This is an optional object . If this attribute is not included , the ERO object will + // not be included. + Ero *RsvpEro `protobuf:"bytes,12,opt,name=ero,proto3" json:"ero,omitempty"` } -func (x *FlowPfcPause) Reset() { - *x = FlowPfcPause{} +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Reset() { + *x = RsvpLspIpv4InterfaceP2PIngressIpv4Lsp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[244] + mi := &file_otg_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPfcPause) String() string { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPfcPause) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoMessage() {} -func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[244] +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -44974,137 +44871,177 @@ func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. -func (*FlowPfcPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{244} -} - -func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { - if x != nil { - return x.Dst - } - return nil +// Deprecated: Use RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{243} } -func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { - if x != nil { - return x.Src +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { - if x != nil { - return x.EtherType +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRemoteAddress() string { + if x != nil && x.RemoteAddress != nil { + return *x.RemoteAddress } - return nil + return "" } -func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { - if x != nil { - return x.ControlOpCode +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId } - return nil + return 0 } -func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { - if x != nil { - return x.ClassEnableVector +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId } - return nil + return 0 } -func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { - if x != nil { - return x.PauseClass_0 +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetRefreshInterval() uint32 { + if x != nil && x.RefreshInterval != nil { + return *x.RefreshInterval } - return nil + return 0 } -func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { - if x != nil { - return x.PauseClass_1 +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTimeoutMultiplier() uint32 { + if x != nil && x.TimeoutMultiplier != nil { + return *x.TimeoutMultiplier } - return nil + return 0 } -func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { - if x != nil { - return x.PauseClass_2 +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetBackupLspId() uint32 { + if x != nil && x.BackupLspId != nil { + return *x.BackupLspId } - return nil + return 0 } -func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { - if x != nil { - return x.PauseClass_3 +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetLspSwitchoverDelay() uint32 { + if x != nil && x.LspSwitchoverDelay != nil { + return *x.LspSwitchoverDelay } - return nil + return 0 } -func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetSessionAttribute() *RsvpSessionAttribute { if x != nil { - return x.PauseClass_4 + return x.SessionAttribute } return nil } -func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetTspec() *RsvpTspec { if x != nil { - return x.PauseClass_5 + return x.Tspec } return nil } -func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetFastReroute() *RsvpFastReroute { if x != nil { - return x.PauseClass_6 + return x.FastReroute } return nil } -func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { +func (x *RsvpLspIpv4InterfaceP2PIngressIpv4Lsp) GetEro() *RsvpEro { if x != nil { - return x.PauseClass_7 + return x.Ero } return nil } -// IEEE 802.3x global ethernet pause packet header -type FlowEthernetPause struct { +// Configuration for RSVP-TE SESSION_ATTRIBUTE object included in Path Messages as defined +// in RFC3209. The bandwidth_protection_desired and node_protection_desired flags are +// defined in RFC4090 (Fast Reroute). +type RsvpSessionAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` - // Description missing in models - Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` - // Description missing in models - EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` - // Description missing in models - ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` - // Description missing in models - Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"` + // If this is enabled, an auto-generated Session Name is included in the SESSION_ATTRIBUTE + // object in the Path Message for this LSP. + // default = True + AutoGenerateSessionName *bool `protobuf:"varint,1,opt,name=auto_generate_session_name,json=autoGenerateSessionName,proto3,oneof" json:"auto_generate_session_name,omitempty"` + // If auto_generate_session_name is set to 'false', then the value of this field is + // used to fill the Session Name field of the SESSION_ATTRIBUTE object in the Path Message + // for this LSP. It is suggested to include the Local IP, Remote IP, Tunnel ID and LSP + // ID in the auto-generated Session Name to ensure uniqueness of the name in the test. + // The maximum length of session name is 254 bytes. + SessionName *string `protobuf:"bytes,2,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the LSP should + // pre-empt existing LSP setup with certain Holding Priority if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + SetupPriority *uint32 `protobuf:"varint,3,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP if resource limitation + // is encountered when setting up the LSP. (e.g. bandwidth availability). The value + // 0 is the highest priority while 7 is the lowest. + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,4,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // This flag permits transit routers to use a local repair mechanism which may result + // in violation of the explicit route object. When a fault is detected on an adjacent + // downstream link or node, a transit router can reroute traffic for fast service restoration. + // default = False + LocalProtectionDesired *bool `protobuf:"varint,5,opt,name=local_protection_desired,json=localProtectionDesired,proto3,oneof" json:"local_protection_desired,omitempty"` + // This flag indicates that label information should be included when doing a route + // record. + // default = False + LabelRecordingDesired *bool `protobuf:"varint,6,opt,name=label_recording_desired,json=labelRecordingDesired,proto3,oneof" json:"label_recording_desired,omitempty"` + // This flag indicates that the tunnel ingress node may choose to reroute this tunnel + // without tearing it down. A tunnel egress node SHOULD use the Shared Explicit(SE) + // Style when responding with a Resv message. + // default = False + SeStyleDesired *bool `protobuf:"varint,7,opt,name=se_style_desired,json=seStyleDesired,proto3,oneof" json:"se_style_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along the protected LSP path that a backup path with a bandwidth guarantee is desired. + // This bandwidth has to be guaranteed for the protected LSP, if no FAST_REROUTE object + // is included in the PATH message. If a FAST_REROUTE object is present in the Path + // message, then the bandwidth specified therein is to be guaranteed. + // default = False + BandwidthProtectionDesired *bool `protobuf:"varint,8,opt,name=bandwidth_protection_desired,json=bandwidthProtectionDesired,proto3,oneof" json:"bandwidth_protection_desired,omitempty"` + // This flag in the SESSION_ATTRIBUTE object in the Path Message indicates to the PLRs + // along a protected LSP path that it is desired to have a backup path that bypasses + // at least the next node of the protected LSP. + // default = False + NodeProtectionDesired *bool `protobuf:"varint,9,opt,name=node_protection_desired,json=nodeProtectionDesired,proto3,oneof" json:"node_protection_desired,omitempty"` + // This is an optional object. If included the extended SESSION_ATTRIBUTE object is + // sent in the Path message containing + // the additional fields included in this object. This contains a set of three bitmaps + // using which further constraints can be + // set on the path calculated for the LSP based on the Admin Group settings in the IGP + // (e.g ISIS or OSPF interface). + ResourceAffinities *RsvpResourceAffinities `protobuf:"bytes,10,opt,name=resource_affinities,json=resourceAffinities,proto3" json:"resource_affinities,omitempty"` } -func (x *FlowEthernetPause) Reset() { - *x = FlowEthernetPause{} +func (x *RsvpSessionAttribute) Reset() { + *x = RsvpSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[245] + mi := &file_otg_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowEthernetPause) String() string { +func (x *RsvpSessionAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowEthernetPause) ProtoMessage() {} +func (*RsvpSessionAttribute) ProtoMessage() {} -func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[245] +func (x *RsvpSessionAttribute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45115,263 +45052,214 @@ func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. -func (*FlowEthernetPause) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{245} -} - -func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { - if x != nil { - return x.Dst - } - return nil -} - -func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { - if x != nil { - return x.Src - } - return nil -} - -func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { - if x != nil { - return x.EtherType - } - return nil +// Deprecated: Use RsvpSessionAttribute.ProtoReflect.Descriptor instead. +func (*RsvpSessionAttribute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{244} } -func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { - if x != nil { - return x.ControlOpCode +func (x *RsvpSessionAttribute) GetAutoGenerateSessionName() bool { + if x != nil && x.AutoGenerateSessionName != nil { + return *x.AutoGenerateSessionName } - return nil + return false } -func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { - if x != nil { - return x.Time +func (x *RsvpSessionAttribute) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } - return nil -} - -// TCP packet header -type FlowTcp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` - // Description missing in models - SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` - // Description missing in models - AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3" json:"ack_num,omitempty"` - // Description missing in models - DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3" json:"data_offset,omitempty"` - // Description missing in models - EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3" json:"ecn_ns,omitempty"` - // Description missing in models - EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3" json:"ecn_cwr,omitempty"` - // Description missing in models - EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3" json:"ecn_echo,omitempty"` - // Description missing in models - CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3" json:"ctl_urg,omitempty"` - // Description missing in models - CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3" json:"ctl_ack,omitempty"` - // Description missing in models - CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3" json:"ctl_psh,omitempty"` - // Description missing in models - CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3" json:"ctl_rst,omitempty"` - // Description missing in models - CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3" json:"ctl_syn,omitempty"` - // Description missing in models - CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3" json:"ctl_fin,omitempty"` - // Description missing in models - Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3" json:"window,omitempty"` - // Description missing in models - Checksum *PatternFlowTcpChecksum `protobuf:"bytes,16,opt,name=checksum,proto3" json:"checksum,omitempty"` + return "" } -func (x *FlowTcp) Reset() { - *x = FlowTcp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[246] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpSessionAttribute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } + return 0 } -func (x *FlowTcp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowTcp) ProtoMessage() {} - -func (x *FlowTcp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[246] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpSessionAttribute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. -func (*FlowTcp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{246} + return 0 } -func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { - if x != nil { - return x.SrcPort +func (x *RsvpSessionAttribute) GetLocalProtectionDesired() bool { + if x != nil && x.LocalProtectionDesired != nil { + return *x.LocalProtectionDesired } - return nil + return false } -func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { - if x != nil { - return x.DstPort +func (x *RsvpSessionAttribute) GetLabelRecordingDesired() bool { + if x != nil && x.LabelRecordingDesired != nil { + return *x.LabelRecordingDesired } - return nil + return false } -func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { - if x != nil { - return x.SeqNum +func (x *RsvpSessionAttribute) GetSeStyleDesired() bool { + if x != nil && x.SeStyleDesired != nil { + return *x.SeStyleDesired } - return nil + return false } -func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { - if x != nil { - return x.AckNum +func (x *RsvpSessionAttribute) GetBandwidthProtectionDesired() bool { + if x != nil && x.BandwidthProtectionDesired != nil { + return *x.BandwidthProtectionDesired } - return nil + return false } -func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { - if x != nil { - return x.DataOffset +func (x *RsvpSessionAttribute) GetNodeProtectionDesired() bool { + if x != nil && x.NodeProtectionDesired != nil { + return *x.NodeProtectionDesired } - return nil + return false } -func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { +func (x *RsvpSessionAttribute) GetResourceAffinities() *RsvpResourceAffinities { if x != nil { - return x.EcnNs + return x.ResourceAffinities } return nil } -func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { - if x != nil { - return x.EcnCwr - } - return nil -} +// This is an optional object. If included, the extended SESSION_ATTRIBUTE object is +// sent in the Path message containing +// the additional fields included in this object. This contains a set of three bitmaps +// using which further constraints can be +// set on the path calculated for the LSP based on the Admin Group settings in the IGP +// (e.g ISIS or OSPF interface). +type RsvpResourceAffinities struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { - if x != nil { - return x.EcnEcho - } - return nil + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` } -func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { - if x != nil { - return x.CtlUrg +func (x *RsvpResourceAffinities) Reset() { + *x = RsvpResourceAffinities{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[245] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { - if x != nil { - return x.CtlAck - } - return nil +func (x *RsvpResourceAffinities) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { - if x != nil { - return x.CtlPsh - } - return nil -} +func (*RsvpResourceAffinities) ProtoMessage() {} -func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { - if x != nil { - return x.CtlRst +func (x *RsvpResourceAffinities) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[245] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { - if x != nil { - return x.CtlSyn - } - return nil +// Deprecated: Use RsvpResourceAffinities.ProtoReflect.Descriptor instead. +func (*RsvpResourceAffinities) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{245} } -func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { - if x != nil { - return x.CtlFin +func (x *RsvpResourceAffinities) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } - return nil + return "" } -func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { - if x != nil { - return x.Window +func (x *RsvpResourceAffinities) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return nil + return "" } -func (x *FlowTcp) GetChecksum() *PatternFlowTcpChecksum { - if x != nil { - return x.Checksum +func (x *RsvpResourceAffinities) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll } - return nil + return "" } -// UDP packet header -type FlowUdp struct { +// Configuration for RSVP-TE TSPEC object included in Path Messages. The usage of these +// parameters is defined in RFC2215. +type RsvpTspec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` - // Description missing in models - DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` - // Description missing in models - Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3" json:"length,omitempty"` - // Description missing in models - Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` + // The rate of the traffic to be carried in this LSP in bytes per second. This is part + // of the Token Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketRate *float32 `protobuf:"fixed32,1,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` + // The depth of the token bucket in bytes used to specify the Token Bucket characteristics + // of the traffic to be carried in the LSP. This is part of the Token Bucket specification + // defined for a traffic flow defined in RFC2215. + // default = 0 + TokenBucketSize *float32 `protobuf:"fixed32,2,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` + // The peak data rate of the traffic in bytes per second used to specify the Token Bucket + // characteristics of the traffic to be carried in the LSP. This is part of the Token + // Bucket specification defined for a traffic flow defined in RFC2215. + // default = 0 + PeakDataRate *float32 `protobuf:"fixed32,3,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` + // Specifies the minium length of packet frames that will be policed. + // default = 0 + MinimumPolicedUnit *uint32 `protobuf:"varint,4,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3,oneof" json:"minimum_policed_unit,omitempty"` + // Specifies the maximum length of packet frames that will be policed. + // default = 0 + MaximumPolicedUnit *uint32 `protobuf:"varint,5,opt,name=maximum_policed_unit,json=maximumPolicedUnit,proto3,oneof" json:"maximum_policed_unit,omitempty"` } -func (x *FlowUdp) Reset() { - *x = FlowUdp{} +func (x *RsvpTspec) Reset() { + *x = RsvpTspec{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[247] + mi := &file_otg_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowUdp) String() string { +func (x *RsvpTspec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowUdp) ProtoMessage() {} +func (*RsvpTspec) ProtoMessage() {} -func (x *FlowUdp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[247] +func (x *RsvpTspec) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45382,76 +45270,119 @@ func (x *FlowUdp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. -func (*FlowUdp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{247} +// Deprecated: Use RsvpTspec.ProtoReflect.Descriptor instead. +func (*RsvpTspec) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{246} } -func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { - if x != nil { - return x.SrcPort +func (x *RsvpTspec) GetTokenBucketRate() float32 { + if x != nil && x.TokenBucketRate != nil { + return *x.TokenBucketRate } - return nil + return 0 } -func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { - if x != nil { - return x.DstPort +func (x *RsvpTspec) GetTokenBucketSize() float32 { + if x != nil && x.TokenBucketSize != nil { + return *x.TokenBucketSize } - return nil + return 0 } -func (x *FlowUdp) GetLength() *PatternFlowUdpLength { - if x != nil { - return x.Length +func (x *RsvpTspec) GetPeakDataRate() float32 { + if x != nil && x.PeakDataRate != nil { + return *x.PeakDataRate } - return nil + return 0 } -func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { - if x != nil { - return x.Checksum +func (x *RsvpTspec) GetMinimumPolicedUnit() uint32 { + if x != nil && x.MinimumPolicedUnit != nil { + return *x.MinimumPolicedUnit } - return nil + return 0 } -// Standard GRE packet header (RFC2784) -type FlowGre struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +func (x *RsvpTspec) GetMaximumPolicedUnit() uint32 { + if x != nil && x.MaximumPolicedUnit != nil { + return *x.MaximumPolicedUnit + } + return 0 +} + +// Configuration for the optional RSVP-TE FAST_REROUTE object included in Path Messages +// as defined in RFC4090. +type RsvpFastReroute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3" json:"checksum_present,omitempty"` - // Description missing in models - Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` - // Description missing in models - Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` - // Description missing in models - Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` - // Description missing in models - Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3" json:"reserved1,omitempty"` + // Specifies the value of the Setup Priority field. This controls whether the backup + // LSP should pre-empt existing LSP that is setup with certain Holding Priority. While + // setting up a backup LSP, preemption of existing LSP can happen if resource limitation + // is encountered (e.g bandwidth availability). + // default = 7 + SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // Specifies the value of the Holding Priority field. This controls whether a new LSP + // being created with certain Setup Priority should pre-empt this LSP set up with this + // Holding Priority. While setting up a new LSP, preemption of existing LSP can happen + // if resource limitation is encountered (e.g bandwidth availability). + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // Specifies the value of the Hop Limit field. This controls the maximum number of hops + // the LSP should traverse to reach the LSP end-point. + // default = 3 + HopLimit *uint32 `protobuf:"varint,3,opt,name=hop_limit,json=hopLimit,proto3,oneof" json:"hop_limit,omitempty"` + // Specifies the value of the Bandwidth field as a 32-bit IEEE floating point integer, + // in bytes per second, as desired for the LSP. + // default = 0 + Bandwidth *float32 `protobuf:"fixed32,4,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + ExcludeAny *string `protobuf:"bytes,5,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 0 + IncludeAny *string `protobuf:"bytes,6,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 0 + IncludeAll *string `protobuf:"bytes,7,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // Requests protection via the one-to-one backup method. + // default = False + OneToOneBackupDesired *bool `protobuf:"varint,8,opt,name=one_to_one_backup_desired,json=oneToOneBackupDesired,proto3,oneof" json:"one_to_one_backup_desired,omitempty"` + // Requests protection via the facility backup method. + // default = False + FacilityBackupDesired *bool `protobuf:"varint,9,opt,name=facility_backup_desired,json=facilityBackupDesired,proto3,oneof" json:"facility_backup_desired,omitempty"` } -func (x *FlowGre) Reset() { - *x = FlowGre{} +func (x *RsvpFastReroute) Reset() { + *x = RsvpFastReroute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[248] + mi := &file_otg_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGre) String() string { +func (x *RsvpFastReroute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGre) ProtoMessage() {} +func (*RsvpFastReroute) ProtoMessage() {} -func (x *FlowGre) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[248] +func (x *RsvpFastReroute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45462,104 +45393,115 @@ func (x *FlowGre) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. -func (*FlowGre) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{248} +// Deprecated: Use RsvpFastReroute.ProtoReflect.Descriptor instead. +func (*RsvpFastReroute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{247} } -func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { - if x != nil { - return x.ChecksumPresent +func (x *RsvpFastReroute) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return nil + return 0 } -func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { - if x != nil { - return x.Reserved0 +func (x *RsvpFastReroute) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority } - return nil + return 0 } -func (x *FlowGre) GetVersion() *PatternFlowGreVersion { - if x != nil { - return x.Version +func (x *RsvpFastReroute) GetHopLimit() uint32 { + if x != nil && x.HopLimit != nil { + return *x.HopLimit } - return nil + return 0 } -func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { - if x != nil { - return x.Protocol +func (x *RsvpFastReroute) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } - return nil + return 0 } -func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { - if x != nil { - return x.Checksum +func (x *RsvpFastReroute) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } - return nil + return "" } -func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { - if x != nil { - return x.Reserved1 +func (x *RsvpFastReroute) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } - return nil + return "" } -// GTPv1 packet header -type FlowGtpv1 struct { +func (x *RsvpFastReroute) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll + } + return "" +} + +func (x *RsvpFastReroute) GetOneToOneBackupDesired() bool { + if x != nil && x.OneToOneBackupDesired != nil { + return *x.OneToOneBackupDesired + } + return false +} + +func (x *RsvpFastReroute) GetFacilityBackupDesired() bool { + if x != nil && x.FacilityBackupDesired != nil { + return *x.FacilityBackupDesired + } + return false +} + +// Configuration for the optional RSVP-TE explicit route object(ERO) object included +// in Path Messages. +type RsvpEro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` - // Description missing in models - Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3" json:"reserved,omitempty"` - // Description missing in models - EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3" json:"e_flag,omitempty"` - // Description missing in models - SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"` - // Description missing in models - PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3" json:"pn_flag,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3" json:"teid,omitempty"` - // Description missing in models - SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3" json:"squence_number,omitempty"` - // Description missing in models - NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3" json:"n_pdu_number,omitempty"` - // Description missing in models - NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3" json:"next_extension_header_type,omitempty"` - // A list of optional extension headers. - ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` + // Determines whether the IP address of the RSVP neighbor should be added as an ERO + // sub-object. If it is to be included, it can be included as a Loose hop or as a Strict + // hop. + // default = PrependNeighborIp.Enum.prepend_loose + PrependNeighborIp *RsvpEro_PrependNeighborIp_Enum `protobuf:"varint,1,opt,name=prepend_neighbor_ip,json=prependNeighborIp,proto3,enum=otg.RsvpEro_PrependNeighborIp_Enum,oneof" json:"prepend_neighbor_ip,omitempty"` + // If prepend_egress_ip is set to one of 'prepend_loose' or 'prepend_strict', then set + // this value as the prefix length of the ERO sub-object containing egress IP address. + // + // default = 32 + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Array of sub-objects to be included in the ERO. These sub-objects contain the intermediate + // hops to be traversed by the LSP while being forwarded towards the egress endpoint. + // These sub-objects are included after the optional sub-object containing IP address + // of egress endpoint of the LSP (when present). + Subobjects []*RsvpEroSubobject `protobuf:"bytes,3,rep,name=subobjects,proto3" json:"subobjects,omitempty"` } -func (x *FlowGtpv1) Reset() { - *x = FlowGtpv1{} +func (x *RsvpEro) Reset() { + *x = RsvpEro{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[249] + mi := &file_otg_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowGtpv1) String() string { +func (x *RsvpEro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpv1) ProtoMessage() {} +func (*RsvpEro) ProtoMessage() {} -func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[249] +func (x *RsvpEro) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -45570,118 +45512,142 @@ func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. -func (*FlowGtpv1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{249} +// Deprecated: Use RsvpEro.ProtoReflect.Descriptor instead. +func (*RsvpEro) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{248} } -func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { - if x != nil { - return x.Version +func (x *RsvpEro) GetPrependNeighborIp() RsvpEro_PrependNeighborIp_Enum { + if x != nil && x.PrependNeighborIp != nil { + return *x.PrependNeighborIp } - return nil + return RsvpEro_PrependNeighborIp_unspecified } -func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { - if x != nil { - return x.ProtocolType +func (x *RsvpEro) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { +func (x *RsvpEro) GetSubobjects() []*RsvpEroSubobject { if x != nil { - return x.Reserved + return x.Subobjects } return nil } -func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { - if x != nil { - return x.EFlag - } - return nil +// Configuration for the ERO sub-object. +type RsvpEroSubobject struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of the ERO sub-object, one of IPv4 Address or AS Number. + // default = Type.Enum.ipv4 + Type *RsvpEroSubobject_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.RsvpEroSubobject_Type_Enum,oneof" json:"type,omitempty"` + // IPv4 address that this LSP should traverse through. This field is applicable only + // if the value of 'type' is set to 'ipv4'. + // default = 0.0.0.0 + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // Prefix length for the IPv4 address in the ERO sub-object. This field is applicable + // only if the value of 'type' is set to 'ipv4'. + // default = 32 + PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // Autonomous System number to be set in the ERO sub-object that this LSP should traverse + // through. This field is applicable only if the value of 'type' is set to 'as_number'. + // Note that as per RFC3209, 4-byte AS encoding is not supported. + // default = 0 + AsNumber *uint32 `protobuf:"varint,4,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // The hop type of the ERO sub-object, one of Strict or Loose. + // default = HopType.Enum.loose + HopType *RsvpEroSubobject_HopType_Enum `protobuf:"varint,5,opt,name=hop_type,json=hopType,proto3,enum=otg.RsvpEroSubobject_HopType_Enum,oneof" json:"hop_type,omitempty"` } -func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { - if x != nil { - return x.SFlag +func (x *RsvpEroSubobject) Reset() { + *x = RsvpEroSubobject{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[249] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { - if x != nil { - return x.PnFlag - } - return nil +func (x *RsvpEroSubobject) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { - if x != nil { - return x.MessageType +func (*RsvpEroSubobject) ProtoMessage() {} + +func (x *RsvpEroSubobject) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[249] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { - if x != nil { - return x.MessageLength - } - return nil +// Deprecated: Use RsvpEroSubobject.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249} } -func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { - if x != nil { - return x.Teid +func (x *RsvpEroSubobject) GetType() RsvpEroSubobject_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return nil + return RsvpEroSubobject_Type_unspecified } -func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { - if x != nil { - return x.SquenceNumber +func (x *RsvpEroSubobject) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return nil + return "" } -func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { - if x != nil { - return x.NPduNumber +func (x *RsvpEroSubobject) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { - if x != nil { - return x.NextExtensionHeaderType +func (x *RsvpEroSubobject) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } - return nil + return 0 } -func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { - if x != nil { - return x.ExtensionHeaders +func (x *RsvpEroSubobject) GetHopType() RsvpEroSubobject_HopType_Enum { + if x != nil && x.HopType != nil { + return *x.HopType } - return nil + return RsvpEroSubobject_HopType_unspecified } -// Description missing in models -type FlowGtpExtension struct { +// Configuration for one or more IPv4 or IPv6 DHCP servers. +type DeviceDhcpServer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3" json:"extension_length,omitempty"` - // Description missing in models - Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"` - // Description missing in models - NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3" json:"next_extension_header,omitempty"` + // This contains an array of references to IPv4 interfaces, each of which will contain + // one DHCPv4 server. + Ipv4Interfaces []*DhcpServerV4 `protobuf:"bytes,2,rep,name=ipv4_interfaces,json=ipv4Interfaces,proto3" json:"ipv4_interfaces,omitempty"` + // This contains an array of references to IPv6 interfaces, each of which will contain + // one DHCPv6 server. + Ipv6Interfaces []*DhcpServerV6 `protobuf:"bytes,3,rep,name=ipv6_interfaces,json=ipv6Interfaces,proto3" json:"ipv6_interfaces,omitempty"` } -func (x *FlowGtpExtension) Reset() { - *x = FlowGtpExtension{} +func (x *DeviceDhcpServer) Reset() { + *x = DeviceDhcpServer{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45689,13 +45655,13 @@ func (x *FlowGtpExtension) Reset() { } } -func (x *FlowGtpExtension) String() string { +func (x *DeviceDhcpServer) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpExtension) ProtoMessage() {} +func (*DeviceDhcpServer) ProtoMessage() {} -func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { +func (x *DeviceDhcpServer) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45707,60 +45673,51 @@ func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. -func (*FlowGtpExtension) Descriptor() ([]byte, []int) { +// Deprecated: Use DeviceDhcpServer.ProtoReflect.Descriptor instead. +func (*DeviceDhcpServer) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{250} } -func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { - if x != nil { - return x.ExtensionLength - } - return nil -} - -func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { +func (x *DeviceDhcpServer) GetIpv4Interfaces() []*DhcpServerV4 { if x != nil { - return x.Contents + return x.Ipv4Interfaces } return nil } -func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { +func (x *DeviceDhcpServer) GetIpv6Interfaces() []*DhcpServerV6 { if x != nil { - return x.NextExtensionHeader + return x.Ipv6Interfaces } return nil } -// GTPv2 packet header -type FlowGtpv2 struct { +// Configuration for emulated DHCPv4 Server. +type DhcpServerV4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3" json:"piggybacking_flag,omitempty"` - // Description missing in models - TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3" json:"teid_flag,omitempty"` - // Description missing in models - Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3" json:"spare1,omitempty"` - // Description missing in models - MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` - // Description missing in models - MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` - // Description missing in models - Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3" json:"teid,omitempty"` - // Description missing in models - SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - // Description missing in models - Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3" json:"spare2,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The unique name of the IPv4 on which DHCPv4 server will run. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + Ipv4Name *string `protobuf:"bytes,2,opt,name=ipv4_name,json=ipv4Name,proto3,oneof" json:"ipv4_name,omitempty"` + // List of DHCPv4 Server Lease parameters + AddressPools []*DhcpServerV4Pool `protobuf:"bytes,3,rep,name=address_pools,json=addressPools,proto3" json:"address_pools,omitempty"` } -func (x *FlowGtpv2) Reset() { - *x = FlowGtpv2{} +func (x *DhcpServerV4) Reset() { + *x = DhcpServerV4{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45768,13 +45725,13 @@ func (x *FlowGtpv2) Reset() { } } -func (x *FlowGtpv2) String() string { +func (x *DhcpServerV4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowGtpv2) ProtoMessage() {} +func (*DhcpServerV4) ProtoMessage() {} -func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { +func (x *DhcpServerV4) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45786,102 +45743,63 @@ func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. -func (*FlowGtpv2) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpServerV4.ProtoReflect.Descriptor instead. +func (*DhcpServerV4) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{251} } -func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { - if x != nil { - return x.PiggybackingFlag - } - return nil -} - -func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { - if x != nil { - return x.TeidFlag - } - return nil -} - -func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { - if x != nil { - return x.Spare1 - } - return nil -} - -func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { - if x != nil { - return x.MessageType - } - return nil -} - -func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { - if x != nil { - return x.MessageLength - } - return nil -} - -func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { - if x != nil { - return x.Teid +func (x *DhcpServerV4) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { - if x != nil { - return x.SequenceNumber +func (x *DhcpServerV4) GetIpv4Name() string { + if x != nil && x.Ipv4Name != nil { + return *x.Ipv4Name } - return nil + return "" } -func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { +func (x *DhcpServerV4) GetAddressPools() []*DhcpServerV4Pool { if x != nil { - return x.Spare2 + return x.AddressPools } return nil } -// ARP packet header -type FlowArp struct { +// Configuration for DHCPv4 address pool for a lease. +type DhcpServerV4Pool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3" json:"hardware_type,omitempty"` - // Description missing in models - ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` - // Description missing in models - HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3" json:"hardware_length,omitempty"` - // Description missing in models - ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3" json:"protocol_length,omitempty"` - // Description missing in models - Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3" json:"operation,omitempty"` - // Description missing in models - SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3" json:"sender_hardware_addr,omitempty"` - // Description missing in models - SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3" json:"sender_protocol_addr,omitempty"` - // Description missing in models - TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3" json:"target_hardware_addr,omitempty"` - // Description missing in models - TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3" json:"target_protocol_addr,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The duration of time in seconds that is assigned to a lease. + // default = 86400 + LeaseTime *uint32 `protobuf:"varint,2,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` + // The IPv4 address of the first lease pool. + // required = true + StartAddress *string `protobuf:"bytes,3,opt,name=start_address,json=startAddress,proto3,oneof" json:"start_address,omitempty"` + // The IPv4 network prefix length to be applied to the address. + // default = 24 + PrefixLength *uint32 `protobuf:"varint,4,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The total number of addresses in the pool. + // default = 1 + Count *uint32 `protobuf:"varint,5,opt,name=count,proto3,oneof" json:"count,omitempty"` + // The increment value for the lease address within the lease pool. The value is incremented + // according to the prefix_length and step. + // default = 1 + Step *uint32 `protobuf:"varint,6,opt,name=step,proto3,oneof" json:"step,omitempty"` + // Optional configuration for DHCPv4 address pool for the lease. + Options *DhcpServerV4PoolOption `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"` } -func (x *FlowArp) Reset() { - *x = FlowArp{} +func (x *DhcpServerV4Pool) Reset() { + *x = DhcpServerV4Pool{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45889,13 +45807,13 @@ func (x *FlowArp) Reset() { } } -func (x *FlowArp) String() string { +func (x *DhcpServerV4Pool) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowArp) ProtoMessage() {} +func (*DhcpServerV4Pool) ProtoMessage() {} -func (x *FlowArp) ProtoReflect() protoreflect.Message { +func (x *DhcpServerV4Pool) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45907,89 +45825,86 @@ func (x *FlowArp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. -func (*FlowArp) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpServerV4Pool.ProtoReflect.Descriptor instead. +func (*DhcpServerV4Pool) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{252} } -func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { - if x != nil { - return x.HardwareType - } - return nil -} - -func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { - if x != nil { - return x.ProtocolType - } - return nil -} - -func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { - if x != nil { - return x.HardwareLength +func (x *DhcpServerV4Pool) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { - if x != nil { - return x.ProtocolLength +func (x *DhcpServerV4Pool) GetLeaseTime() uint32 { + if x != nil && x.LeaseTime != nil { + return *x.LeaseTime } - return nil + return 0 } -func (x *FlowArp) GetOperation() *PatternFlowArpOperation { - if x != nil { - return x.Operation +func (x *DhcpServerV4Pool) GetStartAddress() string { + if x != nil && x.StartAddress != nil { + return *x.StartAddress } - return nil + return "" } -func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { - if x != nil { - return x.SenderHardwareAddr +func (x *DhcpServerV4Pool) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return nil + return 0 } -func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { - if x != nil { - return x.SenderProtocolAddr +func (x *DhcpServerV4Pool) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { - if x != nil { - return x.TargetHardwareAddr +func (x *DhcpServerV4Pool) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return 0 } -func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { +func (x *DhcpServerV4Pool) GetOptions() *DhcpServerV4PoolOption { if x != nil { - return x.TargetProtocolAddr + return x.Options } return nil } -// ICMP packet header -type FlowIcmp struct { +// Optional configuration for DHCPv4 address pool for the lease. +type DhcpServerV4PoolOption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` + // The Router address advertised by the DHCPv4 server in Offer and Ack messages. + // default = 0.0.0.0 + RouterAddress *string `protobuf:"bytes,1,opt,name=router_address,json=routerAddress,proto3,oneof" json:"router_address,omitempty"` + // The primary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + // default = 0.0.0.0 + PrimaryDnsServer *string `protobuf:"bytes,2,opt,name=primary_dns_server,json=primaryDnsServer,proto3,oneof" json:"primary_dns_server,omitempty"` + // The primary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + // default = 0.0.0.0 + SecondaryDnsServer *string `protobuf:"bytes,3,opt,name=secondary_dns_server,json=secondaryDnsServer,proto3,oneof" json:"secondary_dns_server,omitempty"` + // If selected, the DHCP server includes in its replies the TLV information for the + // DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from + // a DHCP relay agent, otherwise it replies without including this TLV. + // default = True + EchoRelayWithTlv_82 *bool `protobuf:"varint,4,opt,name=echo_relay_with_tlv_82,json=echoRelayWithTlv82,proto3,oneof" json:"echo_relay_with_tlv_82,omitempty"` } -func (x *FlowIcmp) Reset() { - *x = FlowIcmp{} +func (x *DhcpServerV4PoolOption) Reset() { + *x = DhcpServerV4PoolOption{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -45997,13 +45912,13 @@ func (x *FlowIcmp) Reset() { } } -func (x *FlowIcmp) String() string { +func (x *DhcpServerV4PoolOption) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp) ProtoMessage() {} +func (*DhcpServerV4PoolOption) ProtoMessage() {} -func (x *FlowIcmp) ProtoReflect() protoreflect.Message { +func (x *DhcpServerV4PoolOption) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46015,45 +45930,76 @@ func (x *FlowIcmp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. -func (*FlowIcmp) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpServerV4PoolOption.ProtoReflect.Descriptor instead. +func (*DhcpServerV4PoolOption) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{253} } -func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *DhcpServerV4PoolOption) GetRouterAddress() string { + if x != nil && x.RouterAddress != nil { + return *x.RouterAddress } - return FlowIcmp_Choice_unspecified + return "" } -func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { - if x != nil { - return x.Echo +func (x *DhcpServerV4PoolOption) GetPrimaryDnsServer() string { + if x != nil && x.PrimaryDnsServer != nil { + return *x.PrimaryDnsServer } - return nil + return "" } -// Packet Header for ICMP echo request -type FlowIcmpEcho struct { +func (x *DhcpServerV4PoolOption) GetSecondaryDnsServer() string { + if x != nil && x.SecondaryDnsServer != nil { + return *x.SecondaryDnsServer + } + return "" +} + +func (x *DhcpServerV4PoolOption) GetEchoRelayWithTlv_82() bool { + if x != nil && x.EchoRelayWithTlv_82 != nil { + return *x.EchoRelayWithTlv_82 + } + return false +} + +// Configuration for emulated DHCPv6 Server. +type DhcpServerV6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Description missing in models - Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` - // Description missing in models - Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3" json:"checksum,omitempty"` - // Description missing in models - Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3" json:"identifier,omitempty"` - // Description missing in models - SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The unique name of the IPv6 on which DHCPv6 server will run. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // required = true + Ipv6Name *string `protobuf:"bytes,2,opt,name=ipv6_name,json=ipv6Name,proto3,oneof" json:"ipv6_name,omitempty"` + // If Rapid Commit is set, server responds to client initiated Rapid Commit two-message + // exchanges. + // default = False + RapidCommit *bool `protobuf:"varint,3,opt,name=rapid_commit,json=rapidCommit,proto3,oneof" json:"rapid_commit,omitempty"` + // If the server does not have an address to which it can send the Reconfigure message + // directly to the client, the server uses a Relay-reply message to send the Reconfigure + // message to a relay agent that will relay the message to the client. + // default = False + ReconfigureViaRelayAgent *bool `protobuf:"varint,4,opt,name=reconfigure_via_relay_agent,json=reconfigureViaRelayAgent,proto3,oneof" json:"reconfigure_via_relay_agent,omitempty"` + // Array of DHCP pools configured on a server. + Leases []*DhcpV6ServerLease `protobuf:"bytes,5,rep,name=leases,proto3" json:"leases,omitempty"` + // Optional DHCPv4 Server options that are sent in Dhcp server messages. + Options *Dhcpv6ServerOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"` } -func (x *FlowIcmpEcho) Reset() { - *x = FlowIcmpEcho{} +func (x *DhcpServerV6) Reset() { + *x = DhcpServerV6{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46061,13 +46007,13 @@ func (x *FlowIcmpEcho) Reset() { } } -func (x *FlowIcmpEcho) String() string { +func (x *DhcpServerV6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpEcho) ProtoMessage() {} +func (*DhcpServerV6) ProtoMessage() {} -func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { +func (x *DhcpServerV6) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46079,61 +46025,71 @@ func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. -func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpServerV6.ProtoReflect.Descriptor instead. +func (*DhcpServerV6) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{254} } -func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { - if x != nil { - return x.Type +func (x *DhcpServerV6) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { - if x != nil { - return x.Code +func (x *DhcpServerV6) GetIpv6Name() string { + if x != nil && x.Ipv6Name != nil { + return *x.Ipv6Name } - return nil + return "" } -func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { - if x != nil { - return x.Checksum +func (x *DhcpServerV6) GetRapidCommit() bool { + if x != nil && x.RapidCommit != nil { + return *x.RapidCommit } - return nil + return false } -func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { +func (x *DhcpServerV6) GetReconfigureViaRelayAgent() bool { + if x != nil && x.ReconfigureViaRelayAgent != nil { + return *x.ReconfigureViaRelayAgent + } + return false +} + +func (x *DhcpServerV6) GetLeases() []*DhcpV6ServerLease { if x != nil { - return x.Identifier + return x.Leases } return nil } -func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { +func (x *DhcpServerV6) GetOptions() *Dhcpv6ServerOptions { if x != nil { - return x.SequenceNumber + return x.Options } return nil } -// ICMPv6 packet header -type FlowIcmpv6 struct { +// DHCP server options, these configured options are sent in Dhcp server messages. +type Dhcpv6ServerOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.echo - Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` + // Additional DHCP server primary dns and other configuration options. + Dns *DhcpV6ServerDns `protobuf:"bytes,1,opt,name=dns,proto3" json:"dns,omitempty"` + // This option is used by servers to exchange vendor-specific information with clients. + VendorInfo *Dhcpv6ServerOptionsVendorInfo `protobuf:"bytes,2,opt,name=vendor_info,json=vendorInfo,proto3" json:"vendor_info,omitempty"` + // The server sends this option to inform the client about a URL to a boot file which + // client will use for + // network boots. + BootfileUrl *Dhcpv6ServerOptionsBootfileUrl `protobuf:"bytes,3,opt,name=bootfile_url,json=bootfileUrl,proto3" json:"bootfile_url,omitempty"` } -func (x *FlowIcmpv6) Reset() { - *x = FlowIcmpv6{} +func (x *Dhcpv6ServerOptions) Reset() { + *x = Dhcpv6ServerOptions{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46141,13 +46097,13 @@ func (x *FlowIcmpv6) Reset() { } } -func (x *FlowIcmpv6) String() string { +func (x *Dhcpv6ServerOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6) ProtoMessage() {} +func (*Dhcpv6ServerOptions) ProtoMessage() {} -func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ServerOptions) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46159,45 +46115,49 @@ func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ServerOptions.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptions) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{255} } -func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Dhcpv6ServerOptions) GetDns() *DhcpV6ServerDns { + if x != nil { + return x.Dns } - return FlowIcmpv6_Choice_unspecified + return nil } -func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { +func (x *Dhcpv6ServerOptions) GetVendorInfo() *Dhcpv6ServerOptionsVendorInfo { if x != nil { - return x.Echo + return x.VendorInfo } return nil } -// Packet Header for ICMPv6 Echo -type FlowIcmpv6Echo struct { +func (x *Dhcpv6ServerOptions) GetBootfileUrl() *Dhcpv6ServerOptionsBootfileUrl { + if x != nil { + return x.BootfileUrl + } + return nil +} + +// One DHCP pool configuration on a server. +type DhcpV6ServerLease struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The Life Time length in seconds that is assigned to a lease if the requesting DHCP + // client does not specify a specific expiration time. + // default = 86400 + LeaseTime *uint32 `protobuf:"varint,1,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` // Description missing in models - Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Description missing in models - Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` - // Description missing in models - Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3" json:"identifier,omitempty"` - // Description missing in models - SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` - // Description missing in models - Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` + // required = true + IaType *Dhcpv6ServerIaType `protobuf:"bytes,5,opt,name=ia_type,json=iaType,proto3" json:"ia_type,omitempty"` } -func (x *FlowIcmpv6Echo) Reset() { - *x = FlowIcmpv6Echo{} +func (x *DhcpV6ServerLease) Reset() { + *x = DhcpV6ServerLease{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46205,13 +46165,13 @@ func (x *FlowIcmpv6Echo) Reset() { } } -func (x *FlowIcmpv6Echo) String() string { +func (x *DhcpV6ServerLease) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6Echo) ProtoMessage() {} +func (*DhcpV6ServerLease) ProtoMessage() {} -func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { +func (x *DhcpV6ServerLease) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46223,62 +46183,49 @@ func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. -func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpV6ServerLease.ProtoReflect.Descriptor instead. +func (*DhcpV6ServerLease) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{256} } -func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { - if x != nil { - return x.Type - } - return nil -} - -func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { - if x != nil { - return x.Code - } - return nil -} - -func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { - if x != nil { - return x.Identifier - } - return nil -} - -func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { - if x != nil { - return x.SequenceNumber +func (x *DhcpV6ServerLease) GetLeaseTime() uint32 { + if x != nil && x.LeaseTime != nil { + return *x.LeaseTime } - return nil + return 0 } -func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { +func (x *DhcpV6ServerLease) GetIaType() *Dhcpv6ServerIaType { if x != nil { - return x.Checksum + return x.IaType } return nil } -// PPP packet header -type FlowPpp struct { +// Description missing in models +type Dhcpv6ServerIaType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Identity Association: a collection of leases assigned to a client. Each IA has an + // associated IAID. Each IA holds one type of lease, like an identity association for + // temporary addresses (IA_TA) holds temporary addresses, and an identity association + // for prefix delegation (IA_PD). + // default = Choice.Enum.iana + Choice *Dhcpv6ServerIaType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.Dhcpv6ServerIaType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Iana *Dhcpv6ServerPoolInfo `protobuf:"bytes,2,opt,name=iana,proto3" json:"iana,omitempty"` // Description missing in models - Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3" json:"control,omitempty"` + Iata *Dhcpv6ServerPoolInfo `protobuf:"bytes,3,opt,name=iata,proto3" json:"iata,omitempty"` // Description missing in models - ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` + Iapd *Dhcpv6ServerIapdPoolInfo `protobuf:"bytes,4,opt,name=iapd,proto3" json:"iapd,omitempty"` + // Description missing in models + Ianapd *Dhcpv6ServerIanapdPoolInfo `protobuf:"bytes,5,opt,name=ianapd,proto3" json:"ianapd,omitempty"` } -func (x *FlowPpp) Reset() { - *x = FlowPpp{} +func (x *Dhcpv6ServerIaType) Reset() { + *x = Dhcpv6ServerIaType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46286,13 +46233,13 @@ func (x *FlowPpp) Reset() { } } -func (x *FlowPpp) String() string { +func (x *Dhcpv6ServerIaType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPpp) ProtoMessage() {} +func (*Dhcpv6ServerIaType) ProtoMessage() {} -func (x *FlowPpp) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ServerIaType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46304,52 +46251,71 @@ func (x *FlowPpp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. -func (*FlowPpp) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ServerIaType.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerIaType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{257} } -func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { +func (x *Dhcpv6ServerIaType) GetChoice() Dhcpv6ServerIaType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return Dhcpv6ServerIaType_Choice_unspecified +} + +func (x *Dhcpv6ServerIaType) GetIana() *Dhcpv6ServerPoolInfo { if x != nil { - return x.Address + return x.Iana } return nil } -func (x *FlowPpp) GetControl() *PatternFlowPppControl { +func (x *Dhcpv6ServerIaType) GetIata() *Dhcpv6ServerPoolInfo { if x != nil { - return x.Control + return x.Iata } return nil } -func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { +func (x *Dhcpv6ServerIaType) GetIapd() *Dhcpv6ServerIapdPoolInfo { if x != nil { - return x.ProtocolType + return x.Iapd } return nil } -// IGMPv1 packet header -type FlowIgmpv1 struct { +func (x *Dhcpv6ServerIaType) GetIanapd() *Dhcpv6ServerIanapdPoolInfo { + if x != nil { + return x.Ianapd + } + return nil +} + +// The container for pool configurations for IA types iana and iata. +type Dhcpv6ServerPoolInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` - // Description missing in models - Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3" json:"unused,omitempty"` - // Description missing in models - Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` - // Description missing in models - GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3" json:"group_address,omitempty"` + // The first IP address of the lease pool. + StartAddress *string `protobuf:"bytes,1,opt,name=start_address,json=startAddress,proto3,oneof" json:"start_address,omitempty"` + // The IPv6 network prefix length is used for incrementing the lease address within + // the lease pool where multiple addresses are configured by using the size field. The + // address is incremented using the configured Prefix Length and Step. + // default = 64 + PrefixLen *uint32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3,oneof" json:"prefix_len,omitempty"` + // The total number of addresses in the pool. + // default = 1 + Size *uint32 `protobuf:"varint,3,opt,name=size,proto3,oneof" json:"size,omitempty"` + // The increment value for the lease address within the lease pool where multiple addresses + // are present. The value is incremented according to the configured Prefix Length and + // Step. + // default = 1 + Step *uint32 `protobuf:"varint,4,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *FlowIgmpv1) Reset() { - *x = FlowIgmpv1{} +func (x *Dhcpv6ServerPoolInfo) Reset() { + *x = Dhcpv6ServerPoolInfo{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46357,13 +46323,13 @@ func (x *FlowIgmpv1) Reset() { } } -func (x *FlowIgmpv1) String() string { +func (x *Dhcpv6ServerPoolInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIgmpv1) ProtoMessage() {} +func (*Dhcpv6ServerPoolInfo) ProtoMessage() {} -func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ServerPoolInfo) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46375,65 +46341,67 @@ func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. -func (*FlowIgmpv1) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ServerPoolInfo.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerPoolInfo) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{258} } -func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { - if x != nil { - return x.Version - } - return nil -} - -func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { - if x != nil { - return x.Type +func (x *Dhcpv6ServerPoolInfo) GetStartAddress() string { + if x != nil && x.StartAddress != nil { + return *x.StartAddress } - return nil + return "" } -func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { - if x != nil { - return x.Unused +func (x *Dhcpv6ServerPoolInfo) GetPrefixLen() uint32 { + if x != nil && x.PrefixLen != nil { + return *x.PrefixLen } - return nil + return 0 } -func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { - if x != nil { - return x.Checksum +func (x *Dhcpv6ServerPoolInfo) GetSize() uint32 { + if x != nil && x.Size != nil { + return *x.Size } - return nil + return 0 } -func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { - if x != nil { - return x.GroupAddress +func (x *Dhcpv6ServerPoolInfo) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return 0 } -// MPLS packet header; When configuring multiple such headers, the count shall not exceed -// 20. -type FlowMpls struct { +// The container for prefix pool configurations for IA type iapd. +type Dhcpv6ServerIapdPoolInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` - // Description missing in models - TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` - // Description missing in models - BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3" json:"bottom_of_stack,omitempty"` - // Description missing in models - TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` + // The first IP address of the prefix pool. + StartPrefixAddress *string `protobuf:"bytes,1,opt,name=start_prefix_address,json=startPrefixAddress,proto3,oneof" json:"start_prefix_address,omitempty"` + // The IPv6 network prefix length is used for incrementing the lease address within + // the lease pool where multiple addresses are configured by using the size field. The + // address is incremented using the configured Prefix Length and Step. + // default = 64 + ConfiguredPrefixLen *uint32 `protobuf:"varint,2,opt,name=configured_prefix_len,json=configuredPrefixLen,proto3,oneof" json:"configured_prefix_len,omitempty"` + // The total number of addresses in the pool. + // default = 10 + PrefixSize *uint32 `protobuf:"varint,3,opt,name=prefix_size,json=prefixSize,proto3,oneof" json:"prefix_size,omitempty"` + // The increment value for the lease address within the lease pool where multiple addresses + // are present. The value is incremented according to the Prefix Length and Step. + // default = 1 + PrefixStep *uint32 `protobuf:"varint,4,opt,name=prefix_step,json=prefixStep,proto3,oneof" json:"prefix_step,omitempty"` + // The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 + // client. + // default = 64 + AdvertisedPrefixLen *uint32 `protobuf:"varint,5,opt,name=advertised_prefix_len,json=advertisedPrefixLen,proto3,oneof" json:"advertised_prefix_len,omitempty"` } -func (x *FlowMpls) Reset() { - *x = FlowMpls{} +func (x *Dhcpv6ServerIapdPoolInfo) Reset() { + *x = Dhcpv6ServerIapdPoolInfo{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46441,13 +46409,13 @@ func (x *FlowMpls) Reset() { } } -func (x *FlowMpls) String() string { +func (x *Dhcpv6ServerIapdPoolInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMpls) ProtoMessage() {} +func (*Dhcpv6ServerIapdPoolInfo) ProtoMessage() {} -func (x *FlowMpls) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ServerIapdPoolInfo) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46459,59 +46427,60 @@ func (x *FlowMpls) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. -func (*FlowMpls) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ServerIapdPoolInfo.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerIapdPoolInfo) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{259} } -func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { - if x != nil { - return x.Label +func (x *Dhcpv6ServerIapdPoolInfo) GetStartPrefixAddress() string { + if x != nil && x.StartPrefixAddress != nil { + return *x.StartPrefixAddress } - return nil + return "" } -func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { - if x != nil { - return x.TrafficClass +func (x *Dhcpv6ServerIapdPoolInfo) GetConfiguredPrefixLen() uint32 { + if x != nil && x.ConfiguredPrefixLen != nil { + return *x.ConfiguredPrefixLen } - return nil + return 0 } -func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { - if x != nil { - return x.BottomOfStack +func (x *Dhcpv6ServerIapdPoolInfo) GetPrefixSize() uint32 { + if x != nil && x.PrefixSize != nil { + return *x.PrefixSize } - return nil + return 0 } -func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { - if x != nil { - return x.TimeToLive +func (x *Dhcpv6ServerIapdPoolInfo) GetPrefixStep() uint32 { + if x != nil && x.PrefixStep != nil { + return *x.PrefixStep } - return nil + return 0 } -// SNMPv2C packet header as defined in RFC1901 and RFC3416. -type FlowSnmpv2C struct { +func (x *Dhcpv6ServerIapdPoolInfo) GetAdvertisedPrefixLen() uint32 { + if x != nil && x.AdvertisedPrefixLen != nil { + return *x.AdvertisedPrefixLen + } + return 0 +} + +// The container for pool configurations for IA type ianapd. +type Dhcpv6ServerIanapdPoolInfo 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"` + // The pool configurations for IA types iana in ianapd. + Iana *Dhcpv6ServerPoolInfo `protobuf:"bytes,1,opt,name=iana,proto3" json:"iana,omitempty"` + // The pool configurations for IA types iapd in ianapd. + Iapd *Dhcpv6ServerIapdPoolInfo `protobuf:"bytes,2,opt,name=iapd,proto3" json:"iapd,omitempty"` } -func (x *FlowSnmpv2C) Reset() { - *x = FlowSnmpv2C{} +func (x *Dhcpv6ServerIanapdPoolInfo) Reset() { + *x = Dhcpv6ServerIanapdPoolInfo{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46519,13 +46488,13 @@ func (x *FlowSnmpv2C) Reset() { } } -func (x *FlowSnmpv2C) String() string { +func (x *Dhcpv6ServerIanapdPoolInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2C) ProtoMessage() {} +func (*Dhcpv6ServerIanapdPoolInfo) ProtoMessage() {} -func (x *FlowSnmpv2C) ProtoReflect() protoreflect.Message { +func (x *Dhcpv6ServerIanapdPoolInfo) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46537,64 +46506,43 @@ func (x *FlowSnmpv2C) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2C.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2C) Descriptor() ([]byte, []int) { +// Deprecated: Use Dhcpv6ServerIanapdPoolInfo.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerIanapdPoolInfo) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{260} } -func (x *FlowSnmpv2C) GetVersion() *PatternFlowSnmpv2CVersion { +func (x *Dhcpv6ServerIanapdPoolInfo) GetIana() *Dhcpv6ServerPoolInfo { if x != nil { - return x.Version + return x.Iana } return nil } -func (x *FlowSnmpv2C) GetCommunity() string { - if x != nil && x.Community != nil { - return *x.Community - } - return "" -} - -func (x *FlowSnmpv2C) GetData() *FlowSnmpv2CData { +func (x *Dhcpv6ServerIanapdPoolInfo) GetIapd() *Dhcpv6ServerIapdPoolInfo { if x != nil { - return x.Data + return x.Iapd } 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 { +// Optional Dns configuration for DHCPv6 server. +type DhcpV6ServerDns struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // The primary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. // 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"` + Primary *string `protobuf:"bytes,1,opt,name=primary,proto3,oneof" json:"primary,omitempty"` + // DHCP server secondary dns configuration options. If included secondary DNS server + // address will be offered to + // DHCP clients that request this information through a TLV option. + SecondaryDns []*DhcpV6ServerSecondaryDns `protobuf:"bytes,2,rep,name=secondary_dns,json=secondaryDns,proto3" json:"secondary_dns,omitempty"` } -func (x *FlowSnmpv2CData) Reset() { - *x = FlowSnmpv2CData{} +func (x *DhcpV6ServerDns) Reset() { + *x = DhcpV6ServerDns{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46602,13 +46550,13 @@ func (x *FlowSnmpv2CData) Reset() { } } -func (x *FlowSnmpv2CData) String() string { +func (x *DhcpV6ServerDns) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CData) ProtoMessage() {} +func (*DhcpV6ServerDns) ProtoMessage() {} -func (x *FlowSnmpv2CData) ProtoReflect() protoreflect.Message { +func (x *DhcpV6ServerDns) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -46620,109 +46568,248 @@ func (x *FlowSnmpv2CData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CData.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CData) Descriptor() ([]byte, []int) { +// Deprecated: Use DhcpV6ServerDns.ProtoReflect.Descriptor instead. +func (*DhcpV6ServerDns) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{261} } -func (x *FlowSnmpv2CData) GetChoice() FlowSnmpv2CData_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *DhcpV6ServerDns) GetPrimary() string { + if x != nil && x.Primary != nil { + return *x.Primary } - return FlowSnmpv2CData_Choice_unspecified + return "" } -func (x *FlowSnmpv2CData) GetGetRequest() *FlowSnmpv2CPDU { +func (x *DhcpV6ServerDns) GetSecondaryDns() []*DhcpV6ServerSecondaryDns { if x != nil { - return x.GetRequest + return x.SecondaryDns } return nil } -func (x *FlowSnmpv2CData) GetGetNextRequest() *FlowSnmpv2CPDU { +// Advanced Dns configuration for DHCPv6 server. +type DhcpV6ServerSecondaryDns struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The secondary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + Ip *string `protobuf:"bytes,1,opt,name=ip,proto3,oneof" json:"ip,omitempty"` +} + +func (x *DhcpV6ServerSecondaryDns) Reset() { + *x = DhcpV6ServerSecondaryDns{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[262] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DhcpV6ServerSecondaryDns) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DhcpV6ServerSecondaryDns) ProtoMessage() {} + +func (x *DhcpV6ServerSecondaryDns) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[262] + 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 DhcpV6ServerSecondaryDns.ProtoReflect.Descriptor instead. +func (*DhcpV6ServerSecondaryDns) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{262} +} + +func (x *DhcpV6ServerSecondaryDns) GetIp() string { + if x != nil && x.Ip != nil { + return *x.Ip + } + return "" +} + +// A high level data plane traffic flow. +type Flow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The transmit and receive endpoints. + // required = true + TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is transmitted + // by traffic-generator port. + // + // The order of protocol headers assigned to the list is the + // order they will appear on the wire. + // + // In the case of an empty list the keyword/value of minItems: 1 + // indicates that an implementation MUST provide at least one + // Flow.Header object. + // + // The default value for the Flow.Header choice property is ethernet + // which will result in an implementation by default providing at least + // one ethernet packet header. + Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is received + // by traffic-generator port. + // + // For all protocol headers, only the `metric_tags` property is configurable. + EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` + // The size of the packets. + Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3" json:"size,omitempty"` + // The transmit rate of the packets. + Rate *FlowRate `protobuf:"bytes,4,opt,name=rate,proto3" json:"rate,omitempty"` + // The transmit duration of the packets. + Duration *FlowDuration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` + // Flow metrics. + Metrics *FlowMetrics `protobuf:"bytes,6,opt,name=metrics,proto3" json:"metrics,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` +} + +func (x *Flow) Reset() { + *x = Flow{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[263] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Flow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Flow) ProtoMessage() {} + +func (x *Flow) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[263] + 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 Flow.ProtoReflect.Descriptor instead. +func (*Flow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{263} +} + +func (x *Flow) GetTxRx() *FlowTxRx { if x != nil { - return x.GetNextRequest + return x.TxRx } return nil } -func (x *FlowSnmpv2CData) GetResponse() *FlowSnmpv2CPDU { +func (x *Flow) GetPacket() []*FlowHeader { if x != nil { - return x.Response + return x.Packet } return nil } -func (x *FlowSnmpv2CData) GetSetRequest() *FlowSnmpv2CPDU { +func (x *Flow) GetEgressPacket() []*FlowHeader { if x != nil { - return x.SetRequest + return x.EgressPacket } return nil } -func (x *FlowSnmpv2CData) GetGetBulkRequest() *FlowSnmpv2CBulkPDU { +func (x *Flow) GetSize() *FlowSize { if x != nil { - return x.GetBulkRequest + return x.Size } return nil } -func (x *FlowSnmpv2CData) GetInformRequest() *FlowSnmpv2CPDU { +func (x *Flow) GetRate() *FlowRate { if x != nil { - return x.InformRequest + return x.Rate } return nil } -func (x *FlowSnmpv2CData) GetSnmpv2Trap() *FlowSnmpv2CPDU { +func (x *Flow) GetDuration() *FlowDuration { if x != nil { - return x.Snmpv2Trap + return x.Duration } return nil } -func (x *FlowSnmpv2CData) GetReport() *FlowSnmpv2CPDU { +func (x *Flow) GetMetrics() *FlowMetrics { if x != nil { - return x.Report + return x.Metrics } return nil } -// This contains the body of the SNMPv2C PDU. -type FlowSnmpv2CPDU struct { +func (x *Flow) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// A container for different types of transmit and receive +// endpoint containers. +type FlowTxRx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The type of transmit and receive container used by the flow. + // default = Choice.Enum.port + Choice *FlowTxRx_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowTxRx_Choice_Enum,oneof" json:"choice,omitempty"` // 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"` + Port *FlowPort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,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"` + Device *FlowRouter `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` } -func (x *FlowSnmpv2CPDU) Reset() { - *x = FlowSnmpv2CPDU{} +func (x *FlowTxRx) Reset() { + *x = FlowTxRx{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[262] + mi := &file_otg_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CPDU) String() string { +func (x *FlowTxRx) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CPDU) ProtoMessage() {} +func (*FlowTxRx) ProtoMessage() {} -func (x *FlowSnmpv2CPDU) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[262] +func (x *FlowTxRx) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46733,74 +46820,99 @@ func (x *FlowSnmpv2CPDU) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CPDU.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CPDU) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262} -} - -func (x *FlowSnmpv2CPDU) GetRequestId() *PatternFlowSnmpv2CPDURequestId { - if x != nil { - return x.RequestId - } - return nil +// Deprecated: Use FlowTxRx.ProtoReflect.Descriptor instead. +func (*FlowTxRx) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{264} } -func (x *FlowSnmpv2CPDU) GetErrorStatus() FlowSnmpv2CPDU_ErrorStatus_Enum { - if x != nil && x.ErrorStatus != nil { - return *x.ErrorStatus +func (x *FlowTxRx) GetChoice() FlowTxRx_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return FlowSnmpv2CPDU_ErrorStatus_unspecified + return FlowTxRx_Choice_unspecified } -func (x *FlowSnmpv2CPDU) GetErrorIndex() *PatternFlowSnmpv2CPDUErrorIndex { +func (x *FlowTxRx) GetPort() *FlowPort { if x != nil { - return x.ErrorIndex + return x.Port } return nil } -func (x *FlowSnmpv2CPDU) GetVariableBindings() []*FlowSnmpv2CVariableBinding { +func (x *FlowTxRx) GetDevice() *FlowRouter { if x != nil { - return x.VariableBindings + return x.Device } 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 { +// A container for a transmit port and 0..n intended receive ports. +// When assigning this container to a flow the flows's +// packet headers will not be populated with any address resolution +// information such as source and/or destination addresses. +// For example Flow.Ethernet dst mac address values will be defaulted to 0. +// For full control over the Flow.properties.packet header contents use this +// container. +type FlowPort 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"` + // The unique name of a port that is the transmit port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // required = true + TxName *string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3,oneof" json:"tx_name,omitempty"` + // Deprecated: This property is deprecated in favor of property rx_names + // + // Deprecated: This property is deprecated in favor of property rx_names + // + // The unique name of a port that is the intended receive port. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Unique name of ports or lags that are intended receive endpoints. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowSnmpv2CBulkPDU) Reset() { - *x = FlowSnmpv2CBulkPDU{} +func (x *FlowPort) Reset() { + *x = FlowPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[263] + mi := &file_otg_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CBulkPDU) String() string { +func (x *FlowPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CBulkPDU) ProtoMessage() {} +func (*FlowPort) ProtoMessage() {} -func (x *FlowSnmpv2CBulkPDU) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[263] +func (x *FlowPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46811,94 +46923,157 @@ func (x *FlowSnmpv2CBulkPDU) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CBulkPDU.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CBulkPDU) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{263} -} - -func (x *FlowSnmpv2CBulkPDU) GetRequestId() *PatternFlowSnmpv2CBulkPDURequestId { - if x != nil { - return x.RequestId - } - return nil +// Deprecated: Use FlowPort.ProtoReflect.Descriptor instead. +func (*FlowPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{265} } -func (x *FlowSnmpv2CBulkPDU) GetNonRepeaters() *PatternFlowSnmpv2CBulkPDUNonRepeaters { - if x != nil { - return x.NonRepeaters +func (x *FlowPort) GetTxName() string { + if x != nil && x.TxName != nil { + return *x.TxName } - return nil + return "" } -func (x *FlowSnmpv2CBulkPDU) GetMaxRepetitions() *PatternFlowSnmpv2CBulkPDUMaxRepetitions { - if x != nil { - return x.MaxRepetitions +func (x *FlowPort) GetRxName() string { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return "" } -func (x *FlowSnmpv2CBulkPDU) GetVariableBindings() []*FlowSnmpv2CVariableBinding { +func (x *FlowPort) GetRxNames() []string { if x != nil { - return x.VariableBindings + return x.RxNames } return nil } -// A Sequence of two fields, an object_identifier and the value for/from that object_identifier. -type FlowSnmpv2CVariableBinding struct { +// A container for declaring a map of 1..n transmit devices to 1..n receive devices. +// This allows for a single flow to have different tx to rx device flows such as a +// single one to one map or a many to many map. +type FlowRouter 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"` + // Determines the intent of creating traffic sub-flow(s) between the device + // endpoints, from the entities of tx_names to the entities of rx_names + // + // to derive how auto packet fields can be populated with + // the actual value(s) by the implementation. + // + // The one_to_one mode creates traffic sub-flow(s) between each device endpoint + // pair in + // tx_names to rx_names by index. + // The length of tx_names and rx_names MUST be the same. + // The same device name can be repeated multiple times in tx_names or rx_names, in any + // order to create desired meshing between device(s). + // For 2 values in tx_names and 2 values in rx_names, 2 device endpoint pairs would + // be generated (each pair representing a traffic sub-flow). + // + // The mesh mode creates traffic sub-flow(s) between each value in tx_names to + // every value in rx_names, forming the device endpoint pair(s). + // For 2 values in tx_names and 3 values in rx_names, generated device endpoint pairs + // would be 2x3=6. + // + // A generated device endpoint pair with same device endpoint name for both transmit + // & receive device endpoint MUST raise an error. + // + // Packet fields of type auto would be populated with one value for each device + // endpoint pair (representing the traffic sub-flow). + // The value would be determined considering transmit & receive device of the sub-flow. + // And the sequence of the populated value(s) + // would be in the order of generated device endpoint pair(s). + // If 2 device endpoint pairs are generated (based on mode, tx_names and rx_names), + // say (d1 to d3) and (d2 to d3), and ethernet.dst is set as auto, then + // the auto field would be replaced by the implementation with a sequence of + // 2 values, [v1,v2] where + // v1 is determined using context (d1,d3) and v2 using context (d2,d3). + // The final outcome is that packets generated on the wire will contain the values v1,v2,v1,... + // for ethernet.dst field. Any non-auto packet fields + // should be configured accordingly. For example, non-auto packet field ethernet.src + // can be configured with values [u1, u2], where + // u1 & u2 are source MAC of the connected interface of device d1 and d2 respectively. + // Then packets on the wire will contain correct value pairs + // (u1,v1),(u2,v2),(u1,v1),... for (ethernet.src,ethernet.dst) fields. + // default = Mode.Enum.mesh + Mode *FlowRouter_Mode_Enum `protobuf:"varint,1,opt,name=mode,proto3,enum=otg.FlowRouter_Mode_Enum,oneof" json:"mode,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` + // TBD + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name + RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } -func (x *FlowSnmpv2CVariableBinding) Reset() { - *x = FlowSnmpv2CVariableBinding{} +func (x *FlowRouter) Reset() { + *x = FlowRouter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[264] + mi := &file_otg_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CVariableBinding) String() string { +func (x *FlowRouter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CVariableBinding) ProtoMessage() {} +func (*FlowRouter) ProtoMessage() {} -func (x *FlowSnmpv2CVariableBinding) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[264] +func (x *FlowRouter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -46909,99 +47084,103 @@ func (x *FlowSnmpv2CVariableBinding) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CVariableBinding.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CVariableBinding) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{264} +// Deprecated: Use FlowRouter.ProtoReflect.Descriptor instead. +func (*FlowRouter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{266} } -func (x *FlowSnmpv2CVariableBinding) GetObjectIdentifier() string { - if x != nil && x.ObjectIdentifier != nil { - return *x.ObjectIdentifier +func (x *FlowRouter) GetMode() FlowRouter_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode } - return "" + return FlowRouter_Mode_unspecified } -func (x *FlowSnmpv2CVariableBinding) GetValue() *FlowSnmpv2CVariableBindingValue { +func (x *FlowRouter) GetTxNames() []string { if x != nil { - return x.Value + return x.TxNames } return nil } -// The value for the object_identifier as per RFC2578. -type FlowSnmpv2CVariableBindingValue struct { +func (x *FlowRouter) GetRxNames() []string { + if x != nil { + return x.RxNames + } + return nil +} + +// Configuration for all traffic packet headers +type FlowHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The available types of flow headers. If one is not provided the + // default ethernet packet header MUST be provided. + // default = Choice.Enum.ethernet + Choice *FlowHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowHeader_Choice_Enum,oneof" json:"choice,omitempty"` // 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"` + Custom *FlowCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` // Description missing in models - IntegerValue *PatternFlowSnmpv2CVariableBindingValueIntegerValue `protobuf:"bytes,2,opt,name=integer_value,json=integerValue,proto3" json:"integer_value,omitempty"` + Ethernet *FlowEthernet `protobuf:"bytes,3,opt,name=ethernet,proto3" json:"ethernet,omitempty"` // Description missing in models - StringValue *FlowSnmpv2CVariableBindingStringValue `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3" 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"` + Vlan *FlowVlan `protobuf:"bytes,4,opt,name=vlan,proto3" json:"vlan,omitempty"` // Description missing in models - IpAddressValue *PatternFlowSnmpv2CVariableBindingValueIpAddressValue `protobuf:"bytes,5,opt,name=ip_address_value,json=ipAddressValue,proto3" json:"ip_address_value,omitempty"` + Vxlan *FlowVxlan `protobuf:"bytes,5,opt,name=vxlan,proto3" json:"vxlan,omitempty"` // Description missing in models - CounterValue *PatternFlowSnmpv2CVariableBindingValueCounterValue `protobuf:"bytes,6,opt,name=counter_value,json=counterValue,proto3" json:"counter_value,omitempty"` + Ipv4 *FlowIpv4 `protobuf:"bytes,6,opt,name=ipv4,proto3" json:"ipv4,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 - // 10000 bytes. - // default = 00 - ArbitraryValue *string `protobuf:"bytes,8,opt,name=arbitrary_value,json=arbitraryValue,proto3,oneof" json:"arbitrary_value,omitempty"` + Ipv6 *FlowIpv6 `protobuf:"bytes,7,opt,name=ipv6,proto3" json:"ipv6,omitempty"` // Description missing in models - BigCounterValue *PatternFlowSnmpv2CVariableBindingValueBigCounterValue `protobuf:"bytes,9,opt,name=big_counter_value,json=bigCounterValue,proto3" json:"big_counter_value,omitempty"` + Pfcpause *FlowPfcPause `protobuf:"bytes,8,opt,name=pfcpause,proto3" json:"pfcpause,omitempty"` // Description missing in models - UnsignedIntegerValue *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue `protobuf:"bytes,10,opt,name=unsigned_integer_value,json=unsignedIntegerValue,proto3" json:"unsigned_integer_value,omitempty"` + Ethernetpause *FlowEthernetPause `protobuf:"bytes,9,opt,name=ethernetpause,proto3" json:"ethernetpause,omitempty"` + // Description missing in models + Tcp *FlowTcp `protobuf:"bytes,10,opt,name=tcp,proto3" json:"tcp,omitempty"` + // Description missing in models + Udp *FlowUdp `protobuf:"bytes,11,opt,name=udp,proto3" json:"udp,omitempty"` + // Description missing in models + Gre *FlowGre `protobuf:"bytes,12,opt,name=gre,proto3" json:"gre,omitempty"` + // Description missing in models + Gtpv1 *FlowGtpv1 `protobuf:"bytes,13,opt,name=gtpv1,proto3" json:"gtpv1,omitempty"` + // Description missing in models + Gtpv2 *FlowGtpv2 `protobuf:"bytes,14,opt,name=gtpv2,proto3" json:"gtpv2,omitempty"` + // Description missing in models + Arp *FlowArp `protobuf:"bytes,15,opt,name=arp,proto3" json:"arp,omitempty"` + // Description missing in models + Icmp *FlowIcmp `protobuf:"bytes,16,opt,name=icmp,proto3" json:"icmp,omitempty"` + // Description missing in models + Icmpv6 *FlowIcmpv6 `protobuf:"bytes,17,opt,name=icmpv6,proto3" json:"icmpv6,omitempty"` + // Description missing in models + Ppp *FlowPpp `protobuf:"bytes,18,opt,name=ppp,proto3" json:"ppp,omitempty"` + // Description missing in models + 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"` + // Description missing in models + Rsvp *FlowRsvp `protobuf:"bytes,22,opt,name=rsvp,proto3" json:"rsvp,omitempty"` } -func (x *FlowSnmpv2CVariableBindingValue) Reset() { - *x = FlowSnmpv2CVariableBindingValue{} +func (x *FlowHeader) Reset() { + *x = FlowHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[265] + mi := &file_otg_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CVariableBindingValue) String() string { +func (x *FlowHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CVariableBindingValue) ProtoMessage() {} +func (*FlowHeader) ProtoMessage() {} -func (x *FlowSnmpv2CVariableBindingValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[265] +func (x *FlowHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47012,280 +47191,184 @@ func (x *FlowSnmpv2CVariableBindingValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CVariableBindingValue.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CVariableBindingValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265} +// Deprecated: Use FlowHeader.ProtoReflect.Descriptor instead. +func (*FlowHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{267} } -func (x *FlowSnmpv2CVariableBindingValue) GetChoice() FlowSnmpv2CVariableBindingValue_Choice_Enum { +func (x *FlowHeader) GetChoice() FlowHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowSnmpv2CVariableBindingValue_Choice_unspecified + return FlowHeader_Choice_unspecified } -func (x *FlowSnmpv2CVariableBindingValue) GetIntegerValue() *PatternFlowSnmpv2CVariableBindingValueIntegerValue { +func (x *FlowHeader) GetCustom() *FlowCustom { if x != nil { - return x.IntegerValue + return x.Custom } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetStringValue() *FlowSnmpv2CVariableBindingStringValue { +func (x *FlowHeader) GetEthernet() *FlowEthernet { if x != nil { - return x.StringValue + return x.Ethernet } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetObjectIdentifierValue() string { - if x != nil && x.ObjectIdentifierValue != nil { - return *x.ObjectIdentifierValue - } - return "" -} - -func (x *FlowSnmpv2CVariableBindingValue) GetIpAddressValue() *PatternFlowSnmpv2CVariableBindingValueIpAddressValue { +func (x *FlowHeader) GetVlan() *FlowVlan { if x != nil { - return x.IpAddressValue + return x.Vlan } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetCounterValue() *PatternFlowSnmpv2CVariableBindingValueCounterValue { +func (x *FlowHeader) GetVxlan() *FlowVxlan { if x != nil { - return x.CounterValue + return x.Vxlan } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetTimeticksValue() *PatternFlowSnmpv2CVariableBindingValueTimeticksValue { +func (x *FlowHeader) GetIpv4() *FlowIpv4 { if x != nil { - return x.TimeticksValue + return x.Ipv4 } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetArbitraryValue() string { - if x != nil && x.ArbitraryValue != nil { - return *x.ArbitraryValue - } - return "" -} - -func (x *FlowSnmpv2CVariableBindingValue) GetBigCounterValue() *PatternFlowSnmpv2CVariableBindingValueBigCounterValue { +func (x *FlowHeader) GetIpv6() *FlowIpv6 { if x != nil { - return x.BigCounterValue + return x.Ipv6 } return nil } -func (x *FlowSnmpv2CVariableBindingValue) GetUnsignedIntegerValue() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { +func (x *FlowHeader) GetPfcpause() *FlowPfcPause { if x != nil { - return x.UnsignedIntegerValue + return x.Pfcpause } return nil } -// It contains the raw/ascii string value to be sent. -type FlowSnmpv2CVariableBindingStringValue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.ascii - Choice *FlowSnmpv2CVariableBindingStringValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSnmpv2CVariableBindingStringValue_Choice_Enum,oneof" json:"choice,omitempty"` - // It contains the ASCII string to be sent. As of now it is restricted to 10000 bytes. - // default = ascii - Ascii *string `protobuf:"bytes,2,opt,name=ascii,proto3,oneof" json:"ascii,omitempty"` - // It contains the hex string to be sent. As of now it is restricted to 10000 bytes. - // default = 00 - Raw *string `protobuf:"bytes,3,opt,name=raw,proto3,oneof" json:"raw,omitempty"` -} - -func (x *FlowSnmpv2CVariableBindingStringValue) Reset() { - *x = FlowSnmpv2CVariableBindingStringValue{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[266] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowHeader) GetEthernetpause() *FlowEthernetPause { + if x != nil { + return x.Ethernetpause } + return nil } -func (x *FlowSnmpv2CVariableBindingStringValue) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowSnmpv2CVariableBindingStringValue) ProtoMessage() {} - -func (x *FlowSnmpv2CVariableBindingStringValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[266] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowHeader) GetTcp() *FlowTcp { + if x != nil { + return x.Tcp } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowSnmpv2CVariableBindingStringValue.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CVariableBindingStringValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266} + return nil } -func (x *FlowSnmpv2CVariableBindingStringValue) GetChoice() FlowSnmpv2CVariableBindingStringValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowHeader) GetUdp() *FlowUdp { + if x != nil { + return x.Udp } - return FlowSnmpv2CVariableBindingStringValue_Choice_unspecified + return nil } -func (x *FlowSnmpv2CVariableBindingStringValue) GetAscii() string { - if x != nil && x.Ascii != nil { - return *x.Ascii +func (x *FlowHeader) GetGre() *FlowGre { + if x != nil { + return x.Gre } - return "" + return nil } -func (x *FlowSnmpv2CVariableBindingStringValue) GetRaw() string { - if x != nil && x.Raw != nil { - return *x.Raw +func (x *FlowHeader) GetGtpv1() *FlowGtpv1 { + if x != nil { + return x.Gtpv1 } - return "" -} - -// RSVP packet header as defined in RFC2205 and RFC3209. Currently only supported message -// type is Path with mandatory objects and sub-objects. -type FlowRsvp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // RSVP Protocol Version. - // default = 1 - Version *uint32 `protobuf:"varint,1,opt,name=version,proto3,oneof" json:"version,omitempty"` - // Flag, 0x01-0x08: Reserved. - // default = Flag.Enum.not_refresh_reduction_capable - Flag *FlowRsvp_Flag_Enum `protobuf:"varint,2,opt,name=flag,proto3,enum=otg.FlowRsvp_Flag_Enum,oneof" json:"flag,omitempty"` - // Description missing in models - RsvpChecksum *PatternFlowRsvpRsvpChecksum `protobuf:"bytes,3,opt,name=rsvp_checksum,json=rsvpChecksum,proto3" json:"rsvp_checksum,omitempty"` - // Description missing in models - TimeToLive *PatternFlowRsvpTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` - // Description missing in models - Reserved *PatternFlowRsvpReserved `protobuf:"bytes,5,opt,name=reserved,proto3" json:"reserved,omitempty"` - // The sum of the lengths of the common header and all objects included in the message. - RsvpLength *FlowRSVPLength `protobuf:"bytes,6,opt,name=rsvp_length,json=rsvpLength,proto3" json:"rsvp_length,omitempty"` - // An 8-bit number that identifies the function of the RSVP message. There are aound - // 20 message types defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-2 - // . Among these presently supported is Path(value: 1) message type. - MessageType *FlowRSVPMessage `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + return nil } -func (x *FlowRsvp) Reset() { - *x = FlowRsvp{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[267] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowHeader) GetGtpv2() *FlowGtpv2 { + if x != nil { + return x.Gtpv2 } + return nil } -func (x *FlowRsvp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowRsvp) ProtoMessage() {} - -func (x *FlowRsvp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[267] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowHeader) GetArp() *FlowArp { + if x != nil { + return x.Arp } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowRsvp.ProtoReflect.Descriptor instead. -func (*FlowRsvp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267} + return nil } -func (x *FlowRsvp) GetVersion() uint32 { - if x != nil && x.Version != nil { - return *x.Version +func (x *FlowHeader) GetIcmp() *FlowIcmp { + if x != nil { + return x.Icmp } - return 0 + return nil } -func (x *FlowRsvp) GetFlag() FlowRsvp_Flag_Enum { - if x != nil && x.Flag != nil { - return *x.Flag +func (x *FlowHeader) GetIcmpv6() *FlowIcmpv6 { + if x != nil { + return x.Icmpv6 } - return FlowRsvp_Flag_unspecified + return nil } -func (x *FlowRsvp) GetRsvpChecksum() *PatternFlowRsvpRsvpChecksum { +func (x *FlowHeader) GetPpp() *FlowPpp { if x != nil { - return x.RsvpChecksum + return x.Ppp } return nil } -func (x *FlowRsvp) GetTimeToLive() *PatternFlowRsvpTimeToLive { +func (x *FlowHeader) GetIgmpv1() *FlowIgmpv1 { if x != nil { - return x.TimeToLive + return x.Igmpv1 } return nil } -func (x *FlowRsvp) GetReserved() *PatternFlowRsvpReserved { +func (x *FlowHeader) GetMpls() *FlowMpls { if x != nil { - return x.Reserved + return x.Mpls } return nil } -func (x *FlowRsvp) GetRsvpLength() *FlowRSVPLength { +func (x *FlowHeader) GetSnmpv2C() *FlowSnmpv2C { if x != nil { - return x.RsvpLength + return x.Snmpv2C } return nil } -func (x *FlowRsvp) GetMessageType() *FlowRSVPMessage { +func (x *FlowHeader) GetRsvp() *FlowRsvp { if x != nil { - return x.MessageType + return x.Rsvp } return nil } -// Description missing in models -type FlowRSVPLength struct { +// Custom packet header +type FlowCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 0 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // A custom packet header defined as a string of hex bytes. The string MUST contain + // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be + // discarded. This packet header can be used in multiple places in the packet. + // required = true + Bytes *string `protobuf:"bytes,1,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // One or more metric tags 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. + MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *FlowRSVPLength) Reset() { - *x = FlowRSVPLength{} +func (x *FlowCustom) Reset() { + *x = FlowCustom{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47293,13 +47376,13 @@ func (x *FlowRSVPLength) Reset() { } } -func (x *FlowRSVPLength) String() string { +func (x *FlowCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPLength) ProtoMessage() {} +func (*FlowCustom) ProtoMessage() {} -func (x *FlowRSVPLength) ProtoReflect() protoreflect.Message { +func (x *FlowCustom) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47311,47 +47394,48 @@ func (x *FlowRSVPLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPLength) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowCustom.ProtoReflect.Descriptor instead. +func (*FlowCustom) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{268} } -func (x *FlowRSVPLength) GetChoice() FlowRSVPLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowRSVPLength_Choice_unspecified -} - -func (x *FlowRSVPLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowCustom) GetBytes() string { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return 0 + return "" } -func (x *FlowRSVPLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { + if x != nil { + return x.MetricTags } - return 0 + return nil } -// Description missing in models -type FlowRSVPMessage struct { +// 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 FlowCustomMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.path - Choice *FlowRSVPMessage_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPMessage_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Path *FlowRSVPPathMessage `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` + // Name used to identify the metrics associated with the values applicable + // for configured offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset + // of corresponding header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *FlowRSVPMessage) Reset() { - *x = FlowRSVPMessage{} +func (x *FlowCustomMetricTag) Reset() { + *x = FlowCustomMetricTag{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47359,13 +47443,13 @@ func (x *FlowRSVPMessage) Reset() { } } -func (x *FlowRSVPMessage) String() string { +func (x *FlowCustomMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPMessage) ProtoMessage() {} +func (*FlowCustomMetricTag) ProtoMessage() {} -func (x *FlowRSVPMessage) ProtoReflect() protoreflect.Message { +func (x *FlowCustomMetricTag) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47377,41 +47461,50 @@ func (x *FlowRSVPMessage) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPMessage.ProtoReflect.Descriptor instead. -func (*FlowRSVPMessage) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowCustomMetricTag.ProtoReflect.Descriptor instead. +func (*FlowCustomMetricTag) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{269} } -func (x *FlowRSVPMessage) GetChoice() FlowRSVPMessage_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowCustomMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return FlowRSVPMessage_Choice_unspecified + return "" } -func (x *FlowRSVPMessage) GetPath() *FlowRSVPPathMessage { - if x != nil { - return x.Path +func (x *FlowCustomMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return nil + return 0 } -// Path message requires the following list of objects in order as defined in https://www.rfc-editor.org/rfc/rfc3209.html#page-15: -// 1. SESSION 2. RSVP_HOP 3. TIME_VALUES 4. EXPLICIT_ROUTE [optional] 5. LABEL_REQUEST -// 6. SESSION_ATTRIBUTE [optional] 7. SENDER_TEMPLATE 8. SENDER_TSPEC 9. RECORD_ROUTE -// [optional] -type FlowRSVPPathMessage struct { +func (x *FlowCustomMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Ethernet packet header +type FlowEthernet struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Path message requires atleast SESSION, RSVP_HOP, TIME_VALUES, LABEL_REQUEST, SENDER_TEMPLATE - // and SENDER_TSPEC objects in order. - Objects []*FlowRSVPPathObjects `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` + // Description missing in models + Dst *PatternFlowEthernetDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` + // Description missing in models + Src *PatternFlowEthernetSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowEthernetEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` + // Description missing in models + PfcQueue *PatternFlowEthernetPfcQueue `protobuf:"bytes,4,opt,name=pfc_queue,json=pfcQueue,proto3" json:"pfc_queue,omitempty"` } -func (x *FlowRSVPPathMessage) Reset() { - *x = FlowRSVPPathMessage{} +func (x *FlowEthernet) Reset() { + *x = FlowEthernet{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47419,13 +47512,13 @@ func (x *FlowRSVPPathMessage) Reset() { } } -func (x *FlowRSVPPathMessage) String() string { +func (x *FlowEthernet) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathMessage) ProtoMessage() {} +func (*FlowEthernet) ProtoMessage() {} -func (x *FlowRSVPPathMessage) ProtoReflect() protoreflect.Message { +func (x *FlowEthernet) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47437,46 +47530,72 @@ func (x *FlowRSVPPathMessage) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathMessage.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathMessage) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowEthernet.ProtoReflect.Descriptor instead. +func (*FlowEthernet) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{270} } -func (x *FlowRSVPPathMessage) GetObjects() []*FlowRSVPPathObjects { +func (x *FlowEthernet) GetDst() *PatternFlowEthernetDst { if x != nil { - return x.Objects + return x.Dst } return nil } -// Every RSVP object encapsulated in an RSVP message consists of a 32-bit word header -// and the object's contents. -type FlowRSVPPathObjects struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - ClassNum *FlowRSVPPathObjectsClass `protobuf:"bytes,1,opt,name=class_num,json=classNum,proto3" json:"class_num,omitempty"` +func (x *FlowEthernet) GetSrc() *PatternFlowEthernetSrc { + if x != nil { + return x.Src + } + return nil } -func (x *FlowRSVPPathObjects) Reset() { - *x = FlowRSVPPathObjects{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[271] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowEthernet) GetEtherType() *PatternFlowEthernetEtherType { + if x != nil { + return x.EtherType } + return nil } -func (x *FlowRSVPPathObjects) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowEthernet) GetPfcQueue() *PatternFlowEthernetPfcQueue { + if x != nil { + return x.PfcQueue + } + return nil } -func (*FlowRSVPPathObjects) ProtoMessage() {} - -func (x *FlowRSVPPathObjects) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[271] +// VLAN packet header +type FlowVlan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Priority *PatternFlowVlanPriority `protobuf:"bytes,1,opt,name=priority,proto3" json:"priority,omitempty"` + // Description missing in models + Cfi *PatternFlowVlanCfi `protobuf:"bytes,2,opt,name=cfi,proto3" json:"cfi,omitempty"` + // Description missing in models + Id *PatternFlowVlanId `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"` + // Description missing in models + Tpid *PatternFlowVlanTpid `protobuf:"bytes,4,opt,name=tpid,proto3" json:"tpid,omitempty"` +} + +func (x *FlowVlan) Reset() { + *x = FlowVlan{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[271] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FlowVlan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowVlan) ProtoMessage() {} + +func (x *FlowVlan) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -47487,39 +47606,57 @@ func (x *FlowRSVPPathObjects) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjects.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjects) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowVlan.ProtoReflect.Descriptor instead. +func (*FlowVlan) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{271} } -func (x *FlowRSVPPathObjects) GetClassNum() *FlowRSVPPathObjectsClass { +func (x *FlowVlan) GetPriority() *PatternFlowVlanPriority { if x != nil { - return x.ClassNum + return x.Priority } return nil } -// Description missing in models -type FlowRSVPObjectLength struct { +func (x *FlowVlan) GetCfi() *PatternFlowVlanCfi { + if x != nil { + return x.Cfi + } + return nil +} + +func (x *FlowVlan) GetId() *PatternFlowVlanId { + if x != nil { + return x.Id + } + return nil +} + +func (x *FlowVlan) GetTpid() *PatternFlowVlanTpid { + if x != nil { + return x.Tpid + } + return nil +} + +// VXLAN packet header +type FlowVxlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPObjectLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPObjectLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 4 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // default = 4 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + Flags *PatternFlowVxlanFlags `protobuf:"bytes,1,opt,name=flags,proto3" json:"flags,omitempty"` + // Description missing in models + Reserved0 *PatternFlowVxlanReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` + // Description missing in models + Vni *PatternFlowVxlanVni `protobuf:"bytes,3,opt,name=vni,proto3" json:"vni,omitempty"` + // Description missing in models + Reserved1 *PatternFlowVxlanReserved1 `protobuf:"bytes,4,opt,name=reserved1,proto3" json:"reserved1,omitempty"` } -func (x *FlowRSVPObjectLength) Reset() { - *x = FlowRSVPObjectLength{} +func (x *FlowVxlan) Reset() { + *x = FlowVxlan{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47527,13 +47664,13 @@ func (x *FlowRSVPObjectLength) Reset() { } } -func (x *FlowRSVPObjectLength) String() string { +func (x *FlowVxlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPObjectLength) ProtoMessage() {} +func (*FlowVxlan) ProtoMessage() {} -func (x *FlowRSVPObjectLength) ProtoReflect() protoreflect.Message { +func (x *FlowVxlan) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47545,70 +47682,79 @@ func (x *FlowRSVPObjectLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPObjectLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPObjectLength) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowVxlan.ProtoReflect.Descriptor instead. +func (*FlowVxlan) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{272} } -func (x *FlowRSVPObjectLength) GetChoice() FlowRSVPObjectLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowVxlan) GetFlags() *PatternFlowVxlanFlags { + if x != nil { + return x.Flags } - return FlowRSVPObjectLength_Choice_unspecified + return nil } -func (x *FlowRSVPObjectLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowVxlan) GetReserved0() *PatternFlowVxlanReserved0 { + if x != nil { + return x.Reserved0 } - return 0 + return nil } -func (x *FlowRSVPObjectLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowVxlan) GetVni() *PatternFlowVxlanVni { + if x != nil { + return x.Vni } - return 0 + return nil } -// The class number is used to identify the class of an object. Defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-4 -// . Curently supported class numbers are for Path message type. Path message: Supported -// Class numbers and it's value: SESSION: 1, RSVP_HOP: 3, TIME_VALUES: 5, EXPLICIT_ROUTE: -// 20, LABEL_REQUEST: 19, SESSION_ATTRIBUTE: 207, SENDER_TEMPLATE: 11, SENDER_TSPEC: -// 12, RECORD_ROUTE: 21, Custom: User defined bytes based on class and c-types not supported -// in above options. -type FlowRSVPPathObjectsClass struct { +func (x *FlowVxlan) GetReserved1() *PatternFlowVxlanReserved1 { + if x != nil { + return x.Reserved1 + } + return nil +} + +// IPv4 packet header +type FlowIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *FlowRSVPPathObjectsClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsClass_Choice_Enum,oneof" json:"choice,omitempty"` + Version *PatternFlowIpv4Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - Session *FlowRSVPPathObjectsClassSession `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"` + HeaderLength *PatternFlowIpv4HeaderLength `protobuf:"bytes,2,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"` // Description missing in models - RsvpHop *FlowRSVPPathObjectsClassRsvpHop `protobuf:"bytes,3,opt,name=rsvp_hop,json=rsvpHop,proto3" json:"rsvp_hop,omitempty"` + Priority *FlowIpv4Priority `protobuf:"bytes,3,opt,name=priority,proto3" json:"priority,omitempty"` // Description missing in models - TimeValues *FlowRSVPPathObjectsClassTimeValues `protobuf:"bytes,4,opt,name=time_values,json=timeValues,proto3" json:"time_values,omitempty"` + TotalLength *PatternFlowIpv4TotalLength `protobuf:"bytes,4,opt,name=total_length,json=totalLength,proto3" json:"total_length,omitempty"` // Description missing in models - ExplicitRoute *FlowRSVPPathObjectsClassExplicitRoute `protobuf:"bytes,5,opt,name=explicit_route,json=explicitRoute,proto3" json:"explicit_route,omitempty"` + Identification *PatternFlowIpv4Identification `protobuf:"bytes,5,opt,name=identification,proto3" json:"identification,omitempty"` // Description missing in models - LabelRequest *FlowRSVPPathObjectsClassLabelRequest `protobuf:"bytes,6,opt,name=label_request,json=labelRequest,proto3" json:"label_request,omitempty"` + Reserved *PatternFlowIpv4Reserved `protobuf:"bytes,6,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - SessionAttribute *FlowRSVPPathObjectsClassSessionAttribute `protobuf:"bytes,7,opt,name=session_attribute,json=sessionAttribute,proto3" json:"session_attribute,omitempty"` + DontFragment *PatternFlowIpv4DontFragment `protobuf:"bytes,7,opt,name=dont_fragment,json=dontFragment,proto3" json:"dont_fragment,omitempty"` // Description missing in models - SenderTemplate *FlowRSVPPathObjectsClassSenderTemplate `protobuf:"bytes,8,opt,name=sender_template,json=senderTemplate,proto3" json:"sender_template,omitempty"` + MoreFragments *PatternFlowIpv4MoreFragments `protobuf:"bytes,8,opt,name=more_fragments,json=moreFragments,proto3" json:"more_fragments,omitempty"` // Description missing in models - SenderTspec *FlowRSVPPathObjectsClassSenderTspec `protobuf:"bytes,9,opt,name=sender_tspec,json=senderTspec,proto3" json:"sender_tspec,omitempty"` + FragmentOffset *PatternFlowIpv4FragmentOffset `protobuf:"bytes,9,opt,name=fragment_offset,json=fragmentOffset,proto3" json:"fragment_offset,omitempty"` // Description missing in models - RecordRoute *FlowRSVPPathObjectsClassRecordRoute `protobuf:"bytes,10,opt,name=record_route,json=recordRoute,proto3" json:"record_route,omitempty"` + TimeToLive *PatternFlowIpv4TimeToLive `protobuf:"bytes,10,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` // Description missing in models - Custom *FlowRSVPPathObjectsCustom `protobuf:"bytes,11,opt,name=custom,proto3" json:"custom,omitempty"` + Protocol *PatternFlowIpv4Protocol `protobuf:"bytes,11,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Description missing in models + HeaderChecksum *PatternFlowIpv4HeaderChecksum `protobuf:"bytes,12,opt,name=header_checksum,json=headerChecksum,proto3" json:"header_checksum,omitempty"` + // Description missing in models + Src *PatternFlowIpv4Src `protobuf:"bytes,13,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv4Dst `protobuf:"bytes,14,opt,name=dst,proto3" json:"dst,omitempty"` + // Description missing in models + Options []*FlowIpv4Options `protobuf:"bytes,15,rep,name=options,proto3" json:"options,omitempty"` } -func (x *FlowRSVPPathObjectsClass) Reset() { - *x = FlowRSVPPathObjectsClass{} +func (x *FlowIpv4) Reset() { + *x = FlowIpv4{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47616,13 +47762,13 @@ func (x *FlowRSVPPathObjectsClass) Reset() { } } -func (x *FlowRSVPPathObjectsClass) String() string { +func (x *FlowIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClass) ProtoMessage() {} +func (*FlowIpv4) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClass) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47634,103 +47780,141 @@ func (x *FlowRSVPPathObjectsClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClass.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClass) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4.ProtoReflect.Descriptor instead. +func (*FlowIpv4) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{273} } -func (x *FlowRSVPPathObjectsClass) GetChoice() FlowRSVPPathObjectsClass_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv4) GetVersion() *PatternFlowIpv4Version { + if x != nil { + return x.Version } - return FlowRSVPPathObjectsClass_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsClass) GetSession() *FlowRSVPPathObjectsClassSession { +func (x *FlowIpv4) GetHeaderLength() *PatternFlowIpv4HeaderLength { if x != nil { - return x.Session + return x.HeaderLength } return nil } -func (x *FlowRSVPPathObjectsClass) GetRsvpHop() *FlowRSVPPathObjectsClassRsvpHop { +func (x *FlowIpv4) GetPriority() *FlowIpv4Priority { if x != nil { - return x.RsvpHop + return x.Priority } return nil } -func (x *FlowRSVPPathObjectsClass) GetTimeValues() *FlowRSVPPathObjectsClassTimeValues { +func (x *FlowIpv4) GetTotalLength() *PatternFlowIpv4TotalLength { if x != nil { - return x.TimeValues + return x.TotalLength } return nil } -func (x *FlowRSVPPathObjectsClass) GetExplicitRoute() *FlowRSVPPathObjectsClassExplicitRoute { +func (x *FlowIpv4) GetIdentification() *PatternFlowIpv4Identification { if x != nil { - return x.ExplicitRoute + return x.Identification } return nil } -func (x *FlowRSVPPathObjectsClass) GetLabelRequest() *FlowRSVPPathObjectsClassLabelRequest { +func (x *FlowIpv4) GetReserved() *PatternFlowIpv4Reserved { if x != nil { - return x.LabelRequest + return x.Reserved } return nil } -func (x *FlowRSVPPathObjectsClass) GetSessionAttribute() *FlowRSVPPathObjectsClassSessionAttribute { +func (x *FlowIpv4) GetDontFragment() *PatternFlowIpv4DontFragment { if x != nil { - return x.SessionAttribute + return x.DontFragment } return nil } -func (x *FlowRSVPPathObjectsClass) GetSenderTemplate() *FlowRSVPPathObjectsClassSenderTemplate { +func (x *FlowIpv4) GetMoreFragments() *PatternFlowIpv4MoreFragments { if x != nil { - return x.SenderTemplate + return x.MoreFragments } return nil } -func (x *FlowRSVPPathObjectsClass) GetSenderTspec() *FlowRSVPPathObjectsClassSenderTspec { +func (x *FlowIpv4) GetFragmentOffset() *PatternFlowIpv4FragmentOffset { if x != nil { - return x.SenderTspec + return x.FragmentOffset } return nil } -func (x *FlowRSVPPathObjectsClass) GetRecordRoute() *FlowRSVPPathObjectsClassRecordRoute { +func (x *FlowIpv4) GetTimeToLive() *PatternFlowIpv4TimeToLive { if x != nil { - return x.RecordRoute + return x.TimeToLive } return nil } -func (x *FlowRSVPPathObjectsClass) GetCustom() *FlowRSVPPathObjectsCustom { +func (x *FlowIpv4) GetProtocol() *PatternFlowIpv4Protocol { if x != nil { - return x.Custom + return x.Protocol } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassSession struct { +func (x *FlowIpv4) GetHeaderChecksum() *PatternFlowIpv4HeaderChecksum { + if x != nil { + return x.HeaderChecksum + } + return nil +} + +func (x *FlowIpv4) GetSrc() *PatternFlowIpv4Src { + if x != nil { + return x.Src + } + return nil +} + +func (x *FlowIpv4) GetDst() *PatternFlowIpv4Dst { + if x != nil { + return x.Dst + } + return nil +} + +func (x *FlowIpv4) GetOptions() []*FlowIpv4Options { + if x != nil { + return x.Options + } + return nil +} + +// IPv4 options are optional extensions for the IPv4 header that can be utilised to +// provide additional information about the IPv4 datagram. It is encoded as a series +// of type, length and value attributes. The IP header length MUST be increased to +// accommodate the extra bytes needed to encode the IP options. The length of the all +// options included to a IPv4 header should not exceed 40 bytes since IPv4 Header length +// (4 bits) can at max specify 15 4-word octets for a total of 60 bytes which includes +// 20 bytes needed for mandatory attributes of the IPv4 header. If the user adds multiples +// IPv4 options that exceeds 40 bytes and specify header length as auto, implementation +// should throw error. Currently IP options supported are: 1. router_alert option allows +// devices to intercept packets not addressed to them directly as defined in RFC2113. +// 2. custom option is provided to configure user defined IP options as needed. +type FlowIpv4Options struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsSessionCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // default = Choice.Enum.router_alert + Choice *FlowIpv4Options_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Options_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Custom *FlowIpv4OptionsCustom `protobuf:"bytes,2,opt,name=custom,proto3" json:"custom,omitempty"` } -func (x *FlowRSVPPathObjectsClassSession) Reset() { - *x = FlowRSVPPathObjectsClassSession{} +func (x *FlowIpv4Options) Reset() { + *x = FlowIpv4Options{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47738,13 +47922,13 @@ func (x *FlowRSVPPathObjectsClassSession) Reset() { } } -func (x *FlowRSVPPathObjectsClassSession) String() string { +func (x *FlowIpv4Options) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassSession) ProtoMessage() {} +func (*FlowIpv4Options) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassSession) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Options) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47756,41 +47940,45 @@ func (x *FlowRSVPPathObjectsClassSession) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassSession.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassSession) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4Options.ProtoReflect.Descriptor instead. +func (*FlowIpv4Options) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{274} } -func (x *FlowRSVPPathObjectsClassSession) GetLength() *FlowRSVPObjectLength { - if x != nil { - return x.Length +func (x *FlowIpv4Options) GetChoice() FlowIpv4Options_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIpv4Options_Choice_unspecified } -func (x *FlowRSVPPathObjectsClassSession) GetCType() *FlowRSVPPathObjectsSessionCType { +func (x *FlowIpv4Options) GetCustom() *FlowIpv4OptionsCustom { if x != nil { - return x.CType + return x.Custom } return nil } -// The body of an object corresponding to the class number and c-type. Currently supported -// c-type for SESSION object is LSP Tunnel IPv4 (7). -type FlowRSVPPathObjectsSessionCType struct { +// User defined IP options to be appended to the IPv4 header. +type FlowIpv4OptionsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.lsp_tunnel_ipv4 - Choice *FlowRSVPPathObjectsSessionCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSessionCType_Choice_Enum,oneof" json:"choice,omitempty"` + Type *FlowIpv4OptionsCustomType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Description missing in models - LspTunnelIpv4 *FlowRSVPPathSessionLspTunnelIpv4 `protobuf:"bytes,2,opt,name=lsp_tunnel_ipv4,json=lspTunnelIpv4,proto3" json:"lsp_tunnel_ipv4,omitempty"` + Length *FlowIpv4OptionsCustomLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` + // Value of the option field should not excced 38 bytes since maximum 40 bytes can be + // added as options in IPv4 header. For type and length requires 2 bytes, hence maximum + // of 38 bytes are expected. Maximum length of this attribute is 76 (38 * 2 hex character + // per byte). + // default = 0000 + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowRSVPPathObjectsSessionCType) Reset() { - *x = FlowRSVPPathObjectsSessionCType{} +func (x *FlowIpv4OptionsCustom) Reset() { + *x = FlowIpv4OptionsCustom{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47798,13 +47986,13 @@ func (x *FlowRSVPPathObjectsSessionCType) Reset() { } } -func (x *FlowRSVPPathObjectsSessionCType) String() string { +func (x *FlowIpv4OptionsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSessionCType) ProtoMessage() {} +func (*FlowIpv4OptionsCustom) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSessionCType) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4OptionsCustom) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47816,46 +48004,48 @@ func (x *FlowRSVPPathObjectsSessionCType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSessionCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSessionCType) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4OptionsCustom.ProtoReflect.Descriptor instead. +func (*FlowIpv4OptionsCustom) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{275} } -func (x *FlowRSVPPathObjectsSessionCType) GetChoice() FlowRSVPPathObjectsSessionCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv4OptionsCustom) GetType() *FlowIpv4OptionsCustomType { + if x != nil { + return x.Type } - return FlowRSVPPathObjectsSessionCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsSessionCType) GetLspTunnelIpv4() *FlowRSVPPathSessionLspTunnelIpv4 { +func (x *FlowIpv4OptionsCustom) GetLength() *FlowIpv4OptionsCustomLength { if x != nil { - return x.LspTunnelIpv4 + return x.Length } return nil } -// Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7. -type FlowRSVPPathSessionLspTunnelIpv4 struct { +func (x *FlowIpv4OptionsCustom) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +// Type options for custom options. +type FlowIpv4OptionsCustomType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Ipv4TunnelEndPointAddress *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress `protobuf:"bytes,1,opt,name=ipv4_tunnel_end_point_address,json=ipv4TunnelEndPointAddress,proto3" json:"ipv4_tunnel_end_point_address,omitempty"` + CopiedFlag *PatternFlowIpv4OptionsCustomTypeCopiedFlag `protobuf:"bytes,1,opt,name=copied_flag,json=copiedFlag,proto3" json:"copied_flag,omitempty"` // Description missing in models - Reserved *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved `protobuf:"bytes,2,opt,name=reserved,proto3" json:"reserved,omitempty"` + OptionClass *PatternFlowIpv4OptionsCustomTypeOptionClass `protobuf:"bytes,2,opt,name=option_class,json=optionClass,proto3" json:"option_class,omitempty"` // Description missing in models - TunnelId *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId `protobuf:"bytes,3,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` - // A 32-bit identifier used in the SESSION that remains constant over the life of the - // tunnel. Normally set to all zeros. Ingress nodes that wish to narrow the scope of - // a SESSION to the ingress-egress pair may place their IPv4 address here as a globally - // unique identifier. - ExtendedTunnelId *FlowRSVPPathSessionExtTunnelId `protobuf:"bytes,4,opt,name=extended_tunnel_id,json=extendedTunnelId,proto3" json:"extended_tunnel_id,omitempty"` + OptionNumber *PatternFlowIpv4OptionsCustomTypeOptionNumber `protobuf:"bytes,3,opt,name=option_number,json=optionNumber,proto3" json:"option_number,omitempty"` } -func (x *FlowRSVPPathSessionLspTunnelIpv4) Reset() { - *x = FlowRSVPPathSessionLspTunnelIpv4{} +func (x *FlowIpv4OptionsCustomType) Reset() { + *x = FlowIpv4OptionsCustomType{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47863,13 +48053,13 @@ func (x *FlowRSVPPathSessionLspTunnelIpv4) Reset() { } } -func (x *FlowRSVPPathSessionLspTunnelIpv4) String() string { +func (x *FlowIpv4OptionsCustomType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSessionLspTunnelIpv4) ProtoMessage() {} +func (*FlowIpv4OptionsCustomType) ProtoMessage() {} -func (x *FlowRSVPPathSessionLspTunnelIpv4) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4OptionsCustomType) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47881,56 +48071,52 @@ func (x *FlowRSVPPathSessionLspTunnelIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSessionLspTunnelIpv4.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSessionLspTunnelIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4OptionsCustomType.ProtoReflect.Descriptor instead. +func (*FlowIpv4OptionsCustomType) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{276} } -func (x *FlowRSVPPathSessionLspTunnelIpv4) GetIpv4TunnelEndPointAddress() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress { - if x != nil { - return x.Ipv4TunnelEndPointAddress - } - return nil -} - -func (x *FlowRSVPPathSessionLspTunnelIpv4) GetReserved() *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved { +func (x *FlowIpv4OptionsCustomType) GetCopiedFlag() *PatternFlowIpv4OptionsCustomTypeCopiedFlag { if x != nil { - return x.Reserved + return x.CopiedFlag } return nil } -func (x *FlowRSVPPathSessionLspTunnelIpv4) GetTunnelId() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId { +func (x *FlowIpv4OptionsCustomType) GetOptionClass() *PatternFlowIpv4OptionsCustomTypeOptionClass { if x != nil { - return x.TunnelId + return x.OptionClass } return nil } -func (x *FlowRSVPPathSessionLspTunnelIpv4) GetExtendedTunnelId() *FlowRSVPPathSessionExtTunnelId { +func (x *FlowIpv4OptionsCustomType) GetOptionNumber() *PatternFlowIpv4OptionsCustomTypeOptionNumber { if x != nil { - return x.ExtendedTunnelId + return x.OptionNumber } return nil } -// Description missing in models -type FlowRSVPPathSessionExtTunnelId struct { +// Length for custom options. +type FlowIpv4OptionsCustomLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 32 bit integer or IPv4 address. - // default = Choice.Enum.as_integer - Choice *FlowRSVPPathSessionExtTunnelId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathSessionExtTunnelId_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - AsInteger *PatternFlowRSVPPathSessionExtTunnelIdAsInteger `protobuf:"bytes,2,opt,name=as_integer,json=asInteger,proto3" json:"as_integer,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowIpv4OptionsCustomLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4OptionsCustomLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation can provide a system generated value for this property. If + // the OTG is unable to generate a value the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - AsIpv4 *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 `protobuf:"bytes,3,opt,name=as_ipv4,json=asIpv4,proto3" json:"as_ipv4,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowRSVPPathSessionExtTunnelId) Reset() { - *x = FlowRSVPPathSessionExtTunnelId{} +func (x *FlowIpv4OptionsCustomLength) Reset() { + *x = FlowIpv4OptionsCustomLength{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47938,13 +48124,13 @@ func (x *FlowRSVPPathSessionExtTunnelId) Reset() { } } -func (x *FlowRSVPPathSessionExtTunnelId) String() string { +func (x *FlowIpv4OptionsCustomLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSessionExtTunnelId) ProtoMessage() {} +func (*FlowIpv4OptionsCustomLength) ProtoMessage() {} -func (x *FlowRSVPPathSessionExtTunnelId) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4OptionsCustomLength) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -47956,47 +48142,51 @@ func (x *FlowRSVPPathSessionExtTunnelId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSessionExtTunnelId.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSessionExtTunnelId) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4OptionsCustomLength.ProtoReflect.Descriptor instead. +func (*FlowIpv4OptionsCustomLength) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{277} } -func (x *FlowRSVPPathSessionExtTunnelId) GetChoice() FlowRSVPPathSessionExtTunnelId_Choice_Enum { +func (x *FlowIpv4OptionsCustomLength) GetChoice() FlowIpv4OptionsCustomLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPPathSessionExtTunnelId_Choice_unspecified + return FlowIpv4OptionsCustomLength_Choice_unspecified } -func (x *FlowRSVPPathSessionExtTunnelId) GetAsInteger() *PatternFlowRSVPPathSessionExtTunnelIdAsInteger { - if x != nil { - return x.AsInteger +func (x *FlowIpv4OptionsCustomLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return 0 } -func (x *FlowRSVPPathSessionExtTunnelId) GetAsIpv4() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 { - if x != nil { - return x.AsIpv4 +func (x *FlowIpv4OptionsCustomLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return 0 } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassRsvpHop struct { +// A container for ipv4 raw, tos, dscp ip priorities. +type FlowIpv4Priority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsRsvpHopCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // default = Choice.Enum.dscp + Choice *FlowIpv4Priority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Priority_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Raw *PatternFlowIpv4PriorityRaw `protobuf:"bytes,2,opt,name=raw,proto3" json:"raw,omitempty"` + // Description missing in models + Tos *FlowIpv4Tos `protobuf:"bytes,3,opt,name=tos,proto3" json:"tos,omitempty"` + // Description missing in models + Dscp *FlowIpv4Dscp `protobuf:"bytes,4,opt,name=dscp,proto3" json:"dscp,omitempty"` } -func (x *FlowRSVPPathObjectsClassRsvpHop) Reset() { - *x = FlowRSVPPathObjectsClassRsvpHop{} +func (x *FlowIpv4Priority) Reset() { + *x = FlowIpv4Priority{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48004,13 +48194,13 @@ func (x *FlowRSVPPathObjectsClassRsvpHop) Reset() { } } -func (x *FlowRSVPPathObjectsClassRsvpHop) String() string { +func (x *FlowIpv4Priority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassRsvpHop) ProtoMessage() {} +func (*FlowIpv4Priority) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassRsvpHop) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Priority) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48022,40 +48212,53 @@ func (x *FlowRSVPPathObjectsClassRsvpHop) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassRsvpHop.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassRsvpHop) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4Priority.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{278} } -func (x *FlowRSVPPathObjectsClassRsvpHop) GetLength() *FlowRSVPObjectLength { +func (x *FlowIpv4Priority) GetChoice() FlowIpv4Priority_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return FlowIpv4Priority_Choice_unspecified +} + +func (x *FlowIpv4Priority) GetRaw() *PatternFlowIpv4PriorityRaw { if x != nil { - return x.Length + return x.Raw } return nil } -func (x *FlowRSVPPathObjectsClassRsvpHop) GetCType() *FlowRSVPPathObjectsRsvpHopCType { +func (x *FlowIpv4Priority) GetTos() *FlowIpv4Tos { if x != nil { - return x.CType + return x.Tos } return nil } -// Object for RSVP_HOP class. Currently supported c-type is IPv4 (1). -type FlowRSVPPathObjectsRsvpHopCType struct { +func (x *FlowIpv4Priority) GetDscp() *FlowIpv4Dscp { + if x != nil { + return x.Dscp + } + return nil +} + +// Differentiated services code point (DSCP) packet field. +type FlowIpv4Dscp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.ipv4 - Choice *FlowRSVPPathObjectsRsvpHopCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRsvpHopCType_Choice_Enum,oneof" json:"choice,omitempty"` + Phb *PatternFlowIpv4DscpPhb `protobuf:"bytes,1,opt,name=phb,proto3" json:"phb,omitempty"` // Description missing in models - Ipv4 *FlowRSVPPathRsvpHopIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + Ecn *PatternFlowIpv4DscpEcn `protobuf:"bytes,2,opt,name=ecn,proto3" json:"ecn,omitempty"` } -func (x *FlowRSVPPathObjectsRsvpHopCType) Reset() { - *x = FlowRSVPPathObjectsRsvpHopCType{} +func (x *FlowIpv4Dscp) Reset() { + *x = FlowIpv4Dscp{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48063,13 +48266,13 @@ func (x *FlowRSVPPathObjectsRsvpHopCType) Reset() { } } -func (x *FlowRSVPPathObjectsRsvpHopCType) String() string { +func (x *FlowIpv4Dscp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRsvpHopCType) ProtoMessage() {} +func (*FlowIpv4Dscp) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRsvpHopCType) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Dscp) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48081,39 +48284,47 @@ func (x *FlowRSVPPathObjectsRsvpHopCType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRsvpHopCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRsvpHopCType) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4Dscp.ProtoReflect.Descriptor instead. +func (*FlowIpv4Dscp) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{279} } -func (x *FlowRSVPPathObjectsRsvpHopCType) GetChoice() FlowRSVPPathObjectsRsvpHopCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv4Dscp) GetPhb() *PatternFlowIpv4DscpPhb { + if x != nil { + return x.Phb } - return FlowRSVPPathObjectsRsvpHopCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsRsvpHopCType) GetIpv4() *FlowRSVPPathRsvpHopIpv4 { +func (x *FlowIpv4Dscp) GetEcn() *PatternFlowIpv4DscpEcn { if x != nil { - return x.Ipv4 + return x.Ecn } return nil } -// IPv4 RSVP_HOP object: Class = 3, C-Type = 1 -type FlowRSVPPathRsvpHopIpv4 struct { +// Type of service (TOS) packet field. +type FlowIpv4Tos struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Ipv4Address *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + Precedence *PatternFlowIpv4TosPrecedence `protobuf:"bytes,1,opt,name=precedence,proto3" json:"precedence,omitempty"` // Description missing in models - LogicalInterfaceHandle *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle `protobuf:"bytes,2,opt,name=logical_interface_handle,json=logicalInterfaceHandle,proto3" json:"logical_interface_handle,omitempty"` + Delay *PatternFlowIpv4TosDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` + // Description missing in models + Throughput *PatternFlowIpv4TosThroughput `protobuf:"bytes,3,opt,name=throughput,proto3" json:"throughput,omitempty"` + // Description missing in models + Reliability *PatternFlowIpv4TosReliability `protobuf:"bytes,4,opt,name=reliability,proto3" json:"reliability,omitempty"` + // Description missing in models + Monetary *PatternFlowIpv4TosMonetary `protobuf:"bytes,5,opt,name=monetary,proto3" json:"monetary,omitempty"` + // Description missing in models + Unused *PatternFlowIpv4TosUnused `protobuf:"bytes,6,opt,name=unused,proto3" json:"unused,omitempty"` } -func (x *FlowRSVPPathRsvpHopIpv4) Reset() { - *x = FlowRSVPPathRsvpHopIpv4{} +func (x *FlowIpv4Tos) Reset() { + *x = FlowIpv4Tos{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48121,13 +48332,13 @@ func (x *FlowRSVPPathRsvpHopIpv4) Reset() { } } -func (x *FlowRSVPPathRsvpHopIpv4) String() string { +func (x *FlowIpv4Tos) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathRsvpHopIpv4) ProtoMessage() {} +func (*FlowIpv4Tos) ProtoMessage() {} -func (x *FlowRSVPPathRsvpHopIpv4) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Tos) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48139,40 +48350,69 @@ func (x *FlowRSVPPathRsvpHopIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathRsvpHopIpv4.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRsvpHopIpv4) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4Tos.ProtoReflect.Descriptor instead. +func (*FlowIpv4Tos) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{280} } -func (x *FlowRSVPPathRsvpHopIpv4) GetIpv4Address() *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address { +func (x *FlowIpv4Tos) GetPrecedence() *PatternFlowIpv4TosPrecedence { if x != nil { - return x.Ipv4Address + return x.Precedence } return nil } -func (x *FlowRSVPPathRsvpHopIpv4) GetLogicalInterfaceHandle() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle { +func (x *FlowIpv4Tos) GetDelay() *PatternFlowIpv4TosDelay { if x != nil { - return x.LogicalInterfaceHandle + return x.Delay } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassTimeValues struct { +func (x *FlowIpv4Tos) GetThroughput() *PatternFlowIpv4TosThroughput { + if x != nil { + return x.Throughput + } + return nil +} + +func (x *FlowIpv4Tos) GetReliability() *PatternFlowIpv4TosReliability { + if x != nil { + return x.Reliability + } + return nil +} + +func (x *FlowIpv4Tos) GetMonetary() *PatternFlowIpv4TosMonetary { + if x != nil { + return x.Monetary + } + return nil +} + +func (x *FlowIpv4Tos) GetUnused() *PatternFlowIpv4TosUnused { + if x != nil { + return x.Unused + } + return nil +} + +// The OTG implementation can provide a system generated, value for this property. +type FlowIpv4Auto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` - // Description missing in models - CType *FlowRSVPPathObjectsTimeValuesCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // The method to be used to provide the system generated value. + // + // The dhcp option populates the field based on the dynamic IPv4 address that has been + // assigned to the DHCPv4 client by a DHCPv4 server. + // required = true + Choice *FlowIpv4Auto_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv4Auto_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *FlowRSVPPathObjectsClassTimeValues) Reset() { - *x = FlowRSVPPathObjectsClassTimeValues{} +func (x *FlowIpv4Auto) Reset() { + *x = FlowIpv4Auto{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48180,13 +48420,13 @@ func (x *FlowRSVPPathObjectsClassTimeValues) Reset() { } } -func (x *FlowRSVPPathObjectsClassTimeValues) String() string { +func (x *FlowIpv4Auto) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassTimeValues) ProtoMessage() {} +func (*FlowIpv4Auto) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassTimeValues) ProtoReflect() protoreflect.Message { +func (x *FlowIpv4Auto) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48198,40 +48438,44 @@ func (x *FlowRSVPPathObjectsClassTimeValues) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassTimeValues.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassTimeValues) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv4Auto.ProtoReflect.Descriptor instead. +func (*FlowIpv4Auto) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{281} } -func (x *FlowRSVPPathObjectsClassTimeValues) GetLength() *FlowRSVPObjectLength { - if x != nil { - return x.Length - } - return nil -} - -func (x *FlowRSVPPathObjectsClassTimeValues) GetCType() *FlowRSVPPathObjectsTimeValuesCType { - if x != nil { - return x.CType +func (x *FlowIpv4Auto) GetChoice() FlowIpv4Auto_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIpv4Auto_Choice_unspecified } -// Object for TIME_VALUES class. Currently supported c-type is Type 1 Time Value (1). -type FlowRSVPPathObjectsTimeValuesCType struct { +// IPv6 packet header +type FlowIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.type_1 - Choice *FlowRSVPPathObjectsTimeValuesCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsTimeValuesCType_Choice_Enum,oneof" json:"choice,omitempty"` + Version *PatternFlowIpv6Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - Type_1 *FlowRSVPPathTimeValuesType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` + TrafficClass *PatternFlowIpv6TrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` + // Description missing in models + FlowLabel *PatternFlowIpv6FlowLabel `protobuf:"bytes,3,opt,name=flow_label,json=flowLabel,proto3" json:"flow_label,omitempty"` + // Description missing in models + PayloadLength *PatternFlowIpv6PayloadLength `protobuf:"bytes,4,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"` + // Description missing in models + NextHeader *PatternFlowIpv6NextHeader `protobuf:"bytes,5,opt,name=next_header,json=nextHeader,proto3" json:"next_header,omitempty"` + // Description missing in models + HopLimit *PatternFlowIpv6HopLimit `protobuf:"bytes,6,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"` + // Description missing in models + Src *PatternFlowIpv6Src `protobuf:"bytes,7,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + Dst *PatternFlowIpv6Dst `protobuf:"bytes,8,opt,name=dst,proto3" json:"dst,omitempty"` } -func (x *FlowRSVPPathObjectsTimeValuesCType) Reset() { - *x = FlowRSVPPathObjectsTimeValuesCType{} +func (x *FlowIpv6) Reset() { + *x = FlowIpv6{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48239,13 +48483,13 @@ func (x *FlowRSVPPathObjectsTimeValuesCType) Reset() { } } -func (x *FlowRSVPPathObjectsTimeValuesCType) String() string { +func (x *FlowIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsTimeValuesCType) ProtoMessage() {} +func (*FlowIpv6) ProtoMessage() {} -func (x *FlowRSVPPathObjectsTimeValuesCType) ProtoReflect() protoreflect.Message { +func (x *FlowIpv6) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -48257,104 +48501,98 @@ func (x *FlowRSVPPathObjectsTimeValuesCType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsTimeValuesCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsTimeValuesCType) Descriptor() ([]byte, []int) { +// Deprecated: Use FlowIpv6.ProtoReflect.Descriptor instead. +func (*FlowIpv6) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{282} } -func (x *FlowRSVPPathObjectsTimeValuesCType) GetChoice() FlowRSVPPathObjectsTimeValuesCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIpv6) GetVersion() *PatternFlowIpv6Version { + if x != nil { + return x.Version } - return FlowRSVPPathObjectsTimeValuesCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsTimeValuesCType) GetType_1() *FlowRSVPPathTimeValuesType1 { +func (x *FlowIpv6) GetTrafficClass() *PatternFlowIpv6TrafficClass { if x != nil { - return x.Type_1 + return x.TrafficClass } return nil } -// TIME_VALUES Object: Class = 5, C-Type = 1 -type FlowRSVPPathTimeValuesType1 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - RefreshPeriodR *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR `protobuf:"bytes,1,opt,name=refresh_period_r,json=refreshPeriodR,proto3" json:"refresh_period_r,omitempty"` +func (x *FlowIpv6) GetFlowLabel() *PatternFlowIpv6FlowLabel { + if x != nil { + return x.FlowLabel + } + return nil } -func (x *FlowRSVPPathTimeValuesType1) Reset() { - *x = FlowRSVPPathTimeValuesType1{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[283] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowIpv6) GetPayloadLength() *PatternFlowIpv6PayloadLength { + if x != nil { + return x.PayloadLength } + return nil } -func (x *FlowRSVPPathTimeValuesType1) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowIpv6) GetNextHeader() *PatternFlowIpv6NextHeader { + if x != nil { + return x.NextHeader + } + return nil } -func (*FlowRSVPPathTimeValuesType1) ProtoMessage() {} - -func (x *FlowRSVPPathTimeValuesType1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[283] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowIpv6) GetHopLimit() *PatternFlowIpv6HopLimit { + if x != nil { + return x.HopLimit } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowRSVPPathTimeValuesType1.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathTimeValuesType1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{283} +func (x *FlowIpv6) GetSrc() *PatternFlowIpv6Src { + if x != nil { + return x.Src + } + return nil } -func (x *FlowRSVPPathTimeValuesType1) GetRefreshPeriodR() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR { +func (x *FlowIpv6) GetDst() *PatternFlowIpv6Dst { if x != nil { - return x.RefreshPeriodR + return x.Dst } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassExplicitRoute struct { +// The OTG implementation can provide a system generated, value for this property. +type FlowIpv6Auto struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` - // Description missing in models - CType *FlowRSVPPathObjectsClassExplicitRouteCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // The method to be used to provide the system generated value. + // The dhcp option populates the field based on the dynamic IPv6 address that has been + // assigned to the DHCPv6 client + // by a DHCPv6 server. + // required = true + Choice *FlowIpv6Auto_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIpv6Auto_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *FlowRSVPPathObjectsClassExplicitRoute) Reset() { - *x = FlowRSVPPathObjectsClassExplicitRoute{} +func (x *FlowIpv6Auto) Reset() { + *x = FlowIpv6Auto{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[284] + mi := &file_otg_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassExplicitRoute) String() string { +func (x *FlowIpv6Auto) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassExplicitRoute) ProtoMessage() {} +func (*FlowIpv6Auto) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassExplicitRoute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[284] +func (x *FlowIpv6Auto) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48365,55 +48603,69 @@ func (x *FlowRSVPPathObjectsClassExplicitRoute) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassExplicitRoute.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassExplicitRoute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{284} -} - -func (x *FlowRSVPPathObjectsClassExplicitRoute) GetLength() *FlowRSVPObjectLength { - if x != nil { - return x.Length - } - return nil +// Deprecated: Use FlowIpv6Auto.ProtoReflect.Descriptor instead. +func (*FlowIpv6Auto) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283} } -func (x *FlowRSVPPathObjectsClassExplicitRoute) GetCType() *FlowRSVPPathObjectsClassExplicitRouteCType { - if x != nil { - return x.CType +func (x *FlowIpv6Auto) GetChoice() FlowIpv6Auto_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIpv6Auto_Choice_unspecified } -// Object for EXPLICIT_ROUTE class and c-type is Type 1 Explicit Route (1). -type FlowRSVPPathObjectsClassExplicitRouteCType struct { +// IEEE 802.1Qbb PFC Pause packet header. +type FlowPfcPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.type_1 - Choice *FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum,oneof" json:"choice,omitempty"` + Dst *PatternFlowPfcPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - Type_1 *FlowRSVPPathExplicitRouteType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` + Src *PatternFlowPfcPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` + // Description missing in models + EtherType *PatternFlowPfcPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` + // Description missing in models + ControlOpCode *PatternFlowPfcPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` + // Description missing in models + ClassEnableVector *PatternFlowPfcPauseClassEnableVector `protobuf:"bytes,5,opt,name=class_enable_vector,json=classEnableVector,proto3" json:"class_enable_vector,omitempty"` + // Description missing in models + PauseClass_0 *PatternFlowPfcPausePauseClass0 `protobuf:"bytes,6,opt,name=pause_class_0,json=pauseClass0,proto3" json:"pause_class_0,omitempty"` + // Description missing in models + PauseClass_1 *PatternFlowPfcPausePauseClass1 `protobuf:"bytes,7,opt,name=pause_class_1,json=pauseClass1,proto3" json:"pause_class_1,omitempty"` + // Description missing in models + PauseClass_2 *PatternFlowPfcPausePauseClass2 `protobuf:"bytes,8,opt,name=pause_class_2,json=pauseClass2,proto3" json:"pause_class_2,omitempty"` + // Description missing in models + PauseClass_3 *PatternFlowPfcPausePauseClass3 `protobuf:"bytes,9,opt,name=pause_class_3,json=pauseClass3,proto3" json:"pause_class_3,omitempty"` + // Description missing in models + PauseClass_4 *PatternFlowPfcPausePauseClass4 `protobuf:"bytes,10,opt,name=pause_class_4,json=pauseClass4,proto3" json:"pause_class_4,omitempty"` + // Description missing in models + PauseClass_5 *PatternFlowPfcPausePauseClass5 `protobuf:"bytes,11,opt,name=pause_class_5,json=pauseClass5,proto3" json:"pause_class_5,omitempty"` + // Description missing in models + PauseClass_6 *PatternFlowPfcPausePauseClass6 `protobuf:"bytes,12,opt,name=pause_class_6,json=pauseClass6,proto3" json:"pause_class_6,omitempty"` + // Description missing in models + PauseClass_7 *PatternFlowPfcPausePauseClass7 `protobuf:"bytes,13,opt,name=pause_class_7,json=pauseClass7,proto3" json:"pause_class_7,omitempty"` } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType) Reset() { - *x = FlowRSVPPathObjectsClassExplicitRouteCType{} +func (x *FlowPfcPause) Reset() { + *x = FlowPfcPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[285] + mi := &file_otg_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType) String() string { +func (x *FlowPfcPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassExplicitRouteCType) ProtoMessage() {} +func (*FlowPfcPause) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassExplicitRouteCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[285] +func (x *FlowPfcPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48424,156 +48676,137 @@ func (x *FlowRSVPPathObjectsClassExplicitRouteCType) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassExplicitRouteCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassExplicitRouteCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285} +// Deprecated: Use FlowPfcPause.ProtoReflect.Descriptor instead. +func (*FlowPfcPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{284} } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType) GetChoice() FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowPfcPause) GetDst() *PatternFlowPfcPauseDst { + if x != nil { + return x.Dst } - return FlowRSVPPathObjectsClassExplicitRouteCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType) GetType_1() *FlowRSVPPathExplicitRouteType1 { +func (x *FlowPfcPause) GetSrc() *PatternFlowPfcPauseSrc { if x != nil { - return x.Type_1 + return x.Src } return nil } -// Type1 Explicit Route has subobjects. Currently supported subobjects are IPv4 prefix -// and Autonomous system number. -type FlowRSVPPathExplicitRouteType1 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Subobjects []*FlowRSVPType1ExplicitRouteSubobjects `protobuf:"bytes,1,rep,name=subobjects,proto3" json:"subobjects,omitempty"` -} - -func (x *FlowRSVPPathExplicitRouteType1) Reset() { - *x = FlowRSVPPathExplicitRouteType1{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[286] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowPfcPause) GetEtherType() *PatternFlowPfcPauseEtherType { + if x != nil { + return x.EtherType } + return nil } -func (x *FlowRSVPPathExplicitRouteType1) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowPfcPause) GetControlOpCode() *PatternFlowPfcPauseControlOpCode { + if x != nil { + return x.ControlOpCode + } + return nil } -func (*FlowRSVPPathExplicitRouteType1) ProtoMessage() {} - -func (x *FlowRSVPPathExplicitRouteType1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[286] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowPfcPause) GetClassEnableVector() *PatternFlowPfcPauseClassEnableVector { + if x != nil { + return x.ClassEnableVector } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowRSVPPathExplicitRouteType1.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathExplicitRouteType1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{286} +func (x *FlowPfcPause) GetPauseClass_0() *PatternFlowPfcPausePauseClass0 { + if x != nil { + return x.PauseClass_0 + } + return nil } -func (x *FlowRSVPPathExplicitRouteType1) GetSubobjects() []*FlowRSVPType1ExplicitRouteSubobjects { +func (x *FlowPfcPause) GetPauseClass_1() *PatternFlowPfcPausePauseClass1 { if x != nil { - return x.Subobjects + return x.PauseClass_1 } return nil } -// Type is specific to a subobject. -type FlowRSVPType1ExplicitRouteSubobjects struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Type *FlowRSVPType1ExplicitRouteSubobjectsType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` +func (x *FlowPfcPause) GetPauseClass_2() *PatternFlowPfcPausePauseClass2 { + if x != nil { + return x.PauseClass_2 + } + return nil } -func (x *FlowRSVPType1ExplicitRouteSubobjects) Reset() { - *x = FlowRSVPType1ExplicitRouteSubobjects{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[287] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowPfcPause) GetPauseClass_3() *PatternFlowPfcPausePauseClass3 { + if x != nil { + return x.PauseClass_3 } + return nil } -func (x *FlowRSVPType1ExplicitRouteSubobjects) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowPfcPause) GetPauseClass_4() *PatternFlowPfcPausePauseClass4 { + if x != nil { + return x.PauseClass_4 + } + return nil } -func (*FlowRSVPType1ExplicitRouteSubobjects) ProtoMessage() {} - -func (x *FlowRSVPType1ExplicitRouteSubobjects) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[287] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowPfcPause) GetPauseClass_5() *PatternFlowPfcPausePauseClass5 { + if x != nil { + return x.PauseClass_5 } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjects.ProtoReflect.Descriptor instead. -func (*FlowRSVPType1ExplicitRouteSubobjects) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{287} +func (x *FlowPfcPause) GetPauseClass_6() *PatternFlowPfcPausePauseClass6 { + if x != nil { + return x.PauseClass_6 + } + return nil } -func (x *FlowRSVPType1ExplicitRouteSubobjects) GetType() *FlowRSVPType1ExplicitRouteSubobjectsType { +func (x *FlowPfcPause) GetPauseClass_7() *PatternFlowPfcPausePauseClass7 { if x != nil { - return x.Type + return x.PauseClass_7 } return nil } -// Currently supported subobjects are IPv4 address(1) and Autonomous system number(32). -type FlowRSVPType1ExplicitRouteSubobjectsType struct { +// IEEE 802.3x global ethernet pause packet header +type FlowEthernetPause struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.ipv4_prefix - Choice *FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum,oneof" json:"choice,omitempty"` + Dst *PatternFlowEthernetPauseDst `protobuf:"bytes,1,opt,name=dst,proto3" json:"dst,omitempty"` // Description missing in models - Ipv4Prefix *FlowRSVPPathExplicitRouteType1Ipv4Prefix `protobuf:"bytes,2,opt,name=ipv4_prefix,json=ipv4Prefix,proto3" json:"ipv4_prefix,omitempty"` + Src *PatternFlowEthernetPauseSrc `protobuf:"bytes,2,opt,name=src,proto3" json:"src,omitempty"` // Description missing in models - AsNumber *FlowRSVPPathExplicitRouteType1ASNumber `protobuf:"bytes,3,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` + EtherType *PatternFlowEthernetPauseEtherType `protobuf:"bytes,3,opt,name=ether_type,json=etherType,proto3" json:"ether_type,omitempty"` + // Description missing in models + ControlOpCode *PatternFlowEthernetPauseControlOpCode `protobuf:"bytes,4,opt,name=control_op_code,json=controlOpCode,proto3" json:"control_op_code,omitempty"` + // Description missing in models + Time *PatternFlowEthernetPauseTime `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"` } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) Reset() { - *x = FlowRSVPType1ExplicitRouteSubobjectsType{} +func (x *FlowEthernetPause) Reset() { + *x = FlowEthernetPause{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[288] + mi := &file_otg_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) String() string { +func (x *FlowEthernetPause) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPType1ExplicitRouteSubobjectsType) ProtoMessage() {} +func (*FlowEthernetPause) ProtoMessage() {} -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[288] +func (x *FlowEthernetPause) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48584,68 +48817,103 @@ func (x *FlowRSVPType1ExplicitRouteSubobjectsType) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjectsType.ProtoReflect.Descriptor instead. -func (*FlowRSVPType1ExplicitRouteSubobjectsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{288} +// Deprecated: Use FlowEthernetPause.ProtoReflect.Descriptor instead. +func (*FlowEthernetPause) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{285} } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetChoice() FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowEthernetPause) GetDst() *PatternFlowEthernetPauseDst { + if x != nil { + return x.Dst } - return FlowRSVPType1ExplicitRouteSubobjectsType_Choice_unspecified + return nil } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetIpv4Prefix() *FlowRSVPPathExplicitRouteType1Ipv4Prefix { +func (x *FlowEthernetPause) GetSrc() *PatternFlowEthernetPauseSrc { if x != nil { - return x.Ipv4Prefix + return x.Src } return nil } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetAsNumber() *FlowRSVPPathExplicitRouteType1ASNumber { +func (x *FlowEthernetPause) GetEtherType() *PatternFlowEthernetPauseEtherType { if x != nil { - return x.AsNumber + return x.EtherType } return nil } -// Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Prefix, C-Type: -// 1 -type FlowRSVPPathExplicitRouteType1Ipv4Prefix struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache +func (x *FlowEthernetPause) GetControlOpCode() *PatternFlowEthernetPauseControlOpCode { + if x != nil { + return x.ControlOpCode + } + return nil +} + +func (x *FlowEthernetPause) GetTime() *PatternFlowEthernetPauseTime { + if x != nil { + return x.Time + } + return nil +} + +// TCP packet header +type FlowTcp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - LBit *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit `protobuf:"bytes,1,opt,name=l_bit,json=lBit,proto3" json:"l_bit,omitempty"` - // The Length contains the total length of the subobject in bytes,including L,Type and - // Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. - Length *FlowRSVPExplicitRouteLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` + SrcPort *PatternFlowTcpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` // Description missing in models - Ipv4Address *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` - // The prefix length of the IPv4 address. - // default = 32 - Prefix *uint32 `protobuf:"varint,4,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + DstPort *PatternFlowTcpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` + // Description missing in models + SeqNum *PatternFlowTcpSeqNum `protobuf:"bytes,3,opt,name=seq_num,json=seqNum,proto3" json:"seq_num,omitempty"` + // Description missing in models + AckNum *PatternFlowTcpAckNum `protobuf:"bytes,4,opt,name=ack_num,json=ackNum,proto3" json:"ack_num,omitempty"` + // Description missing in models + DataOffset *PatternFlowTcpDataOffset `protobuf:"bytes,5,opt,name=data_offset,json=dataOffset,proto3" json:"data_offset,omitempty"` + // Description missing in models + EcnNs *PatternFlowTcpEcnNs `protobuf:"bytes,6,opt,name=ecn_ns,json=ecnNs,proto3" json:"ecn_ns,omitempty"` + // Description missing in models + EcnCwr *PatternFlowTcpEcnCwr `protobuf:"bytes,7,opt,name=ecn_cwr,json=ecnCwr,proto3" json:"ecn_cwr,omitempty"` + // Description missing in models + EcnEcho *PatternFlowTcpEcnEcho `protobuf:"bytes,8,opt,name=ecn_echo,json=ecnEcho,proto3" json:"ecn_echo,omitempty"` + // Description missing in models + CtlUrg *PatternFlowTcpCtlUrg `protobuf:"bytes,9,opt,name=ctl_urg,json=ctlUrg,proto3" json:"ctl_urg,omitempty"` + // Description missing in models + CtlAck *PatternFlowTcpCtlAck `protobuf:"bytes,10,opt,name=ctl_ack,json=ctlAck,proto3" json:"ctl_ack,omitempty"` + // Description missing in models + CtlPsh *PatternFlowTcpCtlPsh `protobuf:"bytes,11,opt,name=ctl_psh,json=ctlPsh,proto3" json:"ctl_psh,omitempty"` + // Description missing in models + CtlRst *PatternFlowTcpCtlRst `protobuf:"bytes,12,opt,name=ctl_rst,json=ctlRst,proto3" json:"ctl_rst,omitempty"` + // Description missing in models + CtlSyn *PatternFlowTcpCtlSyn `protobuf:"bytes,13,opt,name=ctl_syn,json=ctlSyn,proto3" json:"ctl_syn,omitempty"` + // Description missing in models + CtlFin *PatternFlowTcpCtlFin `protobuf:"bytes,14,opt,name=ctl_fin,json=ctlFin,proto3" json:"ctl_fin,omitempty"` + // Description missing in models + Window *PatternFlowTcpWindow `protobuf:"bytes,15,opt,name=window,proto3" json:"window,omitempty"` + // Description missing in models + Checksum *PatternFlowTcpChecksum `protobuf:"bytes,16,opt,name=checksum,proto3" json:"checksum,omitempty"` } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) Reset() { - *x = FlowRSVPPathExplicitRouteType1Ipv4Prefix{} +func (x *FlowTcp) Reset() { + *x = FlowTcp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[289] + mi := &file_otg_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) String() string { +func (x *FlowTcp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathExplicitRouteType1Ipv4Prefix) ProtoMessage() {} +func (*FlowTcp) ProtoMessage() {} -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[289] +func (x *FlowTcp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48656,218 +48924,156 @@ func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathExplicitRouteType1Ipv4Prefix.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathExplicitRouteType1Ipv4Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{289} +// Deprecated: Use FlowTcp.ProtoReflect.Descriptor instead. +func (*FlowTcp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{286} } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetLBit() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit { +func (x *FlowTcp) GetSrcPort() *PatternFlowTcpSrcPort { if x != nil { - return x.LBit + return x.SrcPort } return nil } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetLength() *FlowRSVPExplicitRouteLength { +func (x *FlowTcp) GetDstPort() *PatternFlowTcpDstPort { if x != nil { - return x.Length + return x.DstPort } return nil } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetIpv4Address() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address { +func (x *FlowTcp) GetSeqNum() *PatternFlowTcpSeqNum { if x != nil { - return x.Ipv4Address + return x.SeqNum } return nil } -func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetPrefix() uint32 { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *FlowTcp) GetAckNum() *PatternFlowTcpAckNum { + if x != nil { + return x.AckNum } - return 0 -} - -// Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Autonomous system -// number, C-Type: 32 -type FlowRSVPPathExplicitRouteType1ASNumber struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - LBit *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit `protobuf:"bytes,1,opt,name=l_bit,json=lBit,proto3" json:"l_bit,omitempty"` - // The Length contains the total length of the subobject in bytes,including L, Type - // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. - Length *FlowRSVPExplicitRouteASNumberLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` - // Autonomous System number to be set in the ERO sub-object that this LSP should traverse - // through. This field is applicable only if the value of 'type' is set to 'as_number'. - // default = 0 - AsNumber *uint32 `protobuf:"varint,3,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + return nil } -func (x *FlowRSVPPathExplicitRouteType1ASNumber) Reset() { - *x = FlowRSVPPathExplicitRouteType1ASNumber{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[290] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowTcp) GetDataOffset() *PatternFlowTcpDataOffset { + if x != nil { + return x.DataOffset } + return nil } -func (x *FlowRSVPPathExplicitRouteType1ASNumber) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowRSVPPathExplicitRouteType1ASNumber) ProtoMessage() {} - -func (x *FlowRSVPPathExplicitRouteType1ASNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[290] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowTcp) GetEcnNs() *PatternFlowTcpEcnNs { + if x != nil { + return x.EcnNs } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowRSVPPathExplicitRouteType1ASNumber.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathExplicitRouteType1ASNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{290} + return nil } -func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetLBit() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit { +func (x *FlowTcp) GetEcnCwr() *PatternFlowTcpEcnCwr { if x != nil { - return x.LBit + return x.EcnCwr } return nil } -func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetLength() *FlowRSVPExplicitRouteASNumberLength { +func (x *FlowTcp) GetEcnEcho() *PatternFlowTcpEcnEcho { if x != nil { - return x.Length + return x.EcnEcho } return nil } -func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *FlowTcp) GetCtlUrg() *PatternFlowTcpCtlUrg { + if x != nil { + return x.CtlUrg } - return 0 -} - -// Description missing in models -type FlowRSVPExplicitRouteLength struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPExplicitRouteLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPExplicitRouteLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 8 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - // default = 8 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + return nil } -func (x *FlowRSVPExplicitRouteLength) Reset() { - *x = FlowRSVPExplicitRouteLength{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[291] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowTcp) GetCtlAck() *PatternFlowTcpCtlAck { + if x != nil { + return x.CtlAck } + return nil } -func (x *FlowRSVPExplicitRouteLength) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowTcp) GetCtlPsh() *PatternFlowTcpCtlPsh { + if x != nil { + return x.CtlPsh + } + return nil } -func (*FlowRSVPExplicitRouteLength) ProtoMessage() {} - -func (x *FlowRSVPExplicitRouteLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[291] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowTcp) GetCtlRst() *PatternFlowTcpCtlRst { + if x != nil { + return x.CtlRst } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowRSVPExplicitRouteLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPExplicitRouteLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291} +func (x *FlowTcp) GetCtlSyn() *PatternFlowTcpCtlSyn { + if x != nil { + return x.CtlSyn + } + return nil } -func (x *FlowRSVPExplicitRouteLength) GetChoice() FlowRSVPExplicitRouteLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowTcp) GetCtlFin() *PatternFlowTcpCtlFin { + if x != nil { + return x.CtlFin } - return FlowRSVPExplicitRouteLength_Choice_unspecified + return nil } -func (x *FlowRSVPExplicitRouteLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowTcp) GetWindow() *PatternFlowTcpWindow { + if x != nil { + return x.Window } - return 0 + return nil } -func (x *FlowRSVPExplicitRouteLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowTcp) GetChecksum() *PatternFlowTcpChecksum { + if x != nil { + return x.Checksum } - return 0 + return nil } -// Description missing in models -type FlowRSVPExplicitRouteASNumberLength struct { +// UDP packet header +type FlowUdp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPExplicitRouteASNumberLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPExplicitRouteASNumberLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 4 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // default = 4 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + SrcPort *PatternFlowUdpSrcPort `protobuf:"bytes,1,opt,name=src_port,json=srcPort,proto3" json:"src_port,omitempty"` + // Description missing in models + DstPort *PatternFlowUdpDstPort `protobuf:"bytes,2,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` + // Description missing in models + Length *PatternFlowUdpLength `protobuf:"bytes,3,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + Checksum *PatternFlowUdpChecksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` } -func (x *FlowRSVPExplicitRouteASNumberLength) Reset() { - *x = FlowRSVPExplicitRouteASNumberLength{} +func (x *FlowUdp) Reset() { + *x = FlowUdp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[292] + mi := &file_otg_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPExplicitRouteASNumberLength) String() string { +func (x *FlowUdp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPExplicitRouteASNumberLength) ProtoMessage() {} +func (*FlowUdp) ProtoMessage() {} -func (x *FlowRSVPExplicitRouteASNumberLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[292] +func (x *FlowUdp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48878,62 +49084,76 @@ func (x *FlowRSVPExplicitRouteASNumberLength) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPExplicitRouteASNumberLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPExplicitRouteASNumberLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292} +// Deprecated: Use FlowUdp.ProtoReflect.Descriptor instead. +func (*FlowUdp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{287} } -func (x *FlowRSVPExplicitRouteASNumberLength) GetChoice() FlowRSVPExplicitRouteASNumberLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowUdp) GetSrcPort() *PatternFlowUdpSrcPort { + if x != nil { + return x.SrcPort } - return FlowRSVPExplicitRouteASNumberLength_Choice_unspecified + return nil } -func (x *FlowRSVPExplicitRouteASNumberLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowUdp) GetDstPort() *PatternFlowUdpDstPort { + if x != nil { + return x.DstPort } - return 0 + return nil } -func (x *FlowRSVPExplicitRouteASNumberLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowUdp) GetLength() *PatternFlowUdpLength { + if x != nil { + return x.Length } - return 0 + return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassLabelRequest struct { +func (x *FlowUdp) GetChecksum() *PatternFlowUdpChecksum { + if x != nil { + return x.Checksum + } + return nil +} + +// Standard GRE packet header (RFC2784) +type FlowGre struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsLabelRequestCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + ChecksumPresent *PatternFlowGreChecksumPresent `protobuf:"bytes,1,opt,name=checksum_present,json=checksumPresent,proto3" json:"checksum_present,omitempty"` + // Description missing in models + Reserved0 *PatternFlowGreReserved0 `protobuf:"bytes,2,opt,name=reserved0,proto3" json:"reserved0,omitempty"` + // Description missing in models + Version *PatternFlowGreVersion `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + Protocol *PatternFlowGreProtocol `protobuf:"bytes,4,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Description missing in models + Checksum *PatternFlowGreChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` + // Description missing in models + Reserved1 *PatternFlowGreReserved1 `protobuf:"bytes,6,opt,name=reserved1,proto3" json:"reserved1,omitempty"` } -func (x *FlowRSVPPathObjectsClassLabelRequest) Reset() { - *x = FlowRSVPPathObjectsClassLabelRequest{} +func (x *FlowGre) Reset() { + *x = FlowGre{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[293] + mi := &file_otg_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassLabelRequest) String() string { +func (x *FlowGre) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassLabelRequest) ProtoMessage() {} +func (*FlowGre) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassLabelRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[293] +func (x *FlowGre) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -48944,114 +49164,104 @@ func (x *FlowRSVPPathObjectsClassLabelRequest) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassLabelRequest.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassLabelRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{293} +// Deprecated: Use FlowGre.ProtoReflect.Descriptor instead. +func (*FlowGre) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{288} } -func (x *FlowRSVPPathObjectsClassLabelRequest) GetLength() *FlowRSVPObjectLength { +func (x *FlowGre) GetChecksumPresent() *PatternFlowGreChecksumPresent { if x != nil { - return x.Length + return x.ChecksumPresent } return nil } -func (x *FlowRSVPPathObjectsClassLabelRequest) GetCType() *FlowRSVPPathObjectsLabelRequestCType { +func (x *FlowGre) GetReserved0() *PatternFlowGreReserved0 { if x != nil { - return x.CType + return x.Reserved0 } return nil } -// Object for LABEL_REQUEST class. Currently supported c-type is Without Label Range -// (1). -type FlowRSVPPathObjectsLabelRequestCType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.without_label_range - Choice *FlowRSVPPathObjectsLabelRequestCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsLabelRequestCType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - WithoutLabelRange *FlowRSVPPathLabelRequestWithoutLabelRange `protobuf:"bytes,2,opt,name=without_label_range,json=withoutLabelRange,proto3" json:"without_label_range,omitempty"` -} - -func (x *FlowRSVPPathObjectsLabelRequestCType) Reset() { - *x = FlowRSVPPathObjectsLabelRequestCType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[294] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowGre) GetVersion() *PatternFlowGreVersion { + if x != nil { + return x.Version } + return nil } -func (x *FlowRSVPPathObjectsLabelRequestCType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowRSVPPathObjectsLabelRequestCType) ProtoMessage() {} - -func (x *FlowRSVPPathObjectsLabelRequestCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[294] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowGre) GetProtocol() *PatternFlowGreProtocol { + if x != nil { + return x.Protocol } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowRSVPPathObjectsLabelRequestCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsLabelRequestCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294} + return nil } -func (x *FlowRSVPPathObjectsLabelRequestCType) GetChoice() FlowRSVPPathObjectsLabelRequestCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGre) GetChecksum() *PatternFlowGreChecksum { + if x != nil { + return x.Checksum } - return FlowRSVPPathObjectsLabelRequestCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsLabelRequestCType) GetWithoutLabelRange() *FlowRSVPPathLabelRequestWithoutLabelRange { +func (x *FlowGre) GetReserved1() *PatternFlowGreReserved1 { if x != nil { - return x.WithoutLabelRange + return x.Reserved1 } return nil } -// Class = LABEL_REQUEST, Without Label Range C-Type = 1 -type FlowRSVPPathLabelRequestWithoutLabelRange struct { +// GTPv1 packet header +type FlowGtpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Reserved *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved `protobuf:"bytes,1,opt,name=reserved,proto3" json:"reserved,omitempty"` + Version *PatternFlowGtpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - L3Pid *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid `protobuf:"bytes,2,opt,name=l3pid,proto3" json:"l3pid,omitempty"` + ProtocolType *PatternFlowGtpv1ProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` + // Description missing in models + Reserved *PatternFlowGtpv1Reserved `protobuf:"bytes,3,opt,name=reserved,proto3" json:"reserved,omitempty"` + // Description missing in models + EFlag *PatternFlowGtpv1EFlag `protobuf:"bytes,4,opt,name=e_flag,json=eFlag,proto3" json:"e_flag,omitempty"` + // Description missing in models + SFlag *PatternFlowGtpv1SFlag `protobuf:"bytes,5,opt,name=s_flag,json=sFlag,proto3" json:"s_flag,omitempty"` + // Description missing in models + PnFlag *PatternFlowGtpv1PnFlag `protobuf:"bytes,6,opt,name=pn_flag,json=pnFlag,proto3" json:"pn_flag,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv1MessageType `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv1MessageLength `protobuf:"bytes,8,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv1Teid `protobuf:"bytes,9,opt,name=teid,proto3" json:"teid,omitempty"` + // Description missing in models + SquenceNumber *PatternFlowGtpv1SquenceNumber `protobuf:"bytes,10,opt,name=squence_number,json=squenceNumber,proto3" json:"squence_number,omitempty"` + // Description missing in models + NPduNumber *PatternFlowGtpv1NPduNumber `protobuf:"bytes,11,opt,name=n_pdu_number,json=nPduNumber,proto3" json:"n_pdu_number,omitempty"` + // Description missing in models + NextExtensionHeaderType *PatternFlowGtpv1NextExtensionHeaderType `protobuf:"bytes,12,opt,name=next_extension_header_type,json=nextExtensionHeaderType,proto3" json:"next_extension_header_type,omitempty"` + // A list of optional extension headers. + ExtensionHeaders []*FlowGtpExtension `protobuf:"bytes,13,rep,name=extension_headers,json=extensionHeaders,proto3" json:"extension_headers,omitempty"` } -func (x *FlowRSVPPathLabelRequestWithoutLabelRange) Reset() { - *x = FlowRSVPPathLabelRequestWithoutLabelRange{} +func (x *FlowGtpv1) Reset() { + *x = FlowGtpv1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[295] + mi := &file_otg_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathLabelRequestWithoutLabelRange) String() string { +func (x *FlowGtpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathLabelRequestWithoutLabelRange) ProtoMessage() {} +func (*FlowGtpv1) ProtoMessage() {} -func (x *FlowRSVPPathLabelRequestWithoutLabelRange) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[295] +func (x *FlowGtpv1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49062,117 +49272,133 @@ func (x *FlowRSVPPathLabelRequestWithoutLabelRange) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathLabelRequestWithoutLabelRange.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathLabelRequestWithoutLabelRange) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{295} +// Deprecated: Use FlowGtpv1.ProtoReflect.Descriptor instead. +func (*FlowGtpv1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{289} } -func (x *FlowRSVPPathLabelRequestWithoutLabelRange) GetReserved() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved { +func (x *FlowGtpv1) GetVersion() *PatternFlowGtpv1Version { + if x != nil { + return x.Version + } + return nil +} + +func (x *FlowGtpv1) GetProtocolType() *PatternFlowGtpv1ProtocolType { + if x != nil { + return x.ProtocolType + } + return nil +} + +func (x *FlowGtpv1) GetReserved() *PatternFlowGtpv1Reserved { if x != nil { return x.Reserved } return nil } -func (x *FlowRSVPPathLabelRequestWithoutLabelRange) GetL3Pid() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid { +func (x *FlowGtpv1) GetEFlag() *PatternFlowGtpv1EFlag { if x != nil { - return x.L3Pid + return x.EFlag } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassSessionAttribute struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowGtpv1) GetSFlag() *PatternFlowGtpv1SFlag { + if x != nil { + return x.SFlag + } + return nil +} - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` - // Description missing in models - CType *FlowRSVPPathObjectsSessionAttributeCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` +func (x *FlowGtpv1) GetPnFlag() *PatternFlowGtpv1PnFlag { + if x != nil { + return x.PnFlag + } + return nil } -func (x *FlowRSVPPathObjectsClassSessionAttribute) Reset() { - *x = FlowRSVPPathObjectsClassSessionAttribute{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[296] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowGtpv1) GetMessageType() *PatternFlowGtpv1MessageType { + if x != nil { + return x.MessageType } + return nil } -func (x *FlowRSVPPathObjectsClassSessionAttribute) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowGtpv1) GetMessageLength() *PatternFlowGtpv1MessageLength { + if x != nil { + return x.MessageLength + } + return nil } -func (*FlowRSVPPathObjectsClassSessionAttribute) ProtoMessage() {} +func (x *FlowGtpv1) GetTeid() *PatternFlowGtpv1Teid { + if x != nil { + return x.Teid + } + return nil +} -func (x *FlowRSVPPathObjectsClassSessionAttribute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[296] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowGtpv1) GetSquenceNumber() *PatternFlowGtpv1SquenceNumber { + if x != nil { + return x.SquenceNumber } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowRSVPPathObjectsClassSessionAttribute.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassSessionAttribute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{296} +func (x *FlowGtpv1) GetNPduNumber() *PatternFlowGtpv1NPduNumber { + if x != nil { + return x.NPduNumber + } + return nil } -func (x *FlowRSVPPathObjectsClassSessionAttribute) GetLength() *FlowRSVPObjectLength { +func (x *FlowGtpv1) GetNextExtensionHeaderType() *PatternFlowGtpv1NextExtensionHeaderType { if x != nil { - return x.Length + return x.NextExtensionHeaderType } return nil } -func (x *FlowRSVPPathObjectsClassSessionAttribute) GetCType() *FlowRSVPPathObjectsSessionAttributeCType { +func (x *FlowGtpv1) GetExtensionHeaders() []*FlowGtpExtension { if x != nil { - return x.CType + return x.ExtensionHeaders } return nil } -// Object for SESSION_ATTRIBUTE class. Currently supported c-type is LSP_Tunnel_RA (1) -// and LSP_Tunnel (7). -type FlowRSVPPathObjectsSessionAttributeCType struct { +// Description missing in models +type FlowGtpExtension struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.lsp_tunnel - Choice *FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum,oneof" json:"choice,omitempty"` + ExtensionLength *PatternFlowGtpExtensionExtensionLength `protobuf:"bytes,1,opt,name=extension_length,json=extensionLength,proto3" json:"extension_length,omitempty"` // Description missing in models - LspTunnel *FlowRSVPPathSessionAttributeLspTunnel `protobuf:"bytes,2,opt,name=lsp_tunnel,json=lspTunnel,proto3" json:"lsp_tunnel,omitempty"` + Contents *PatternFlowGtpExtensionContents `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"` // Description missing in models - LspTunnelRa *FlowRSVPPathSessionAttributeLspTunnelRa `protobuf:"bytes,3,opt,name=lsp_tunnel_ra,json=lspTunnelRa,proto3" json:"lsp_tunnel_ra,omitempty"` + NextExtensionHeader *PatternFlowGtpExtensionNextExtensionHeader `protobuf:"bytes,3,opt,name=next_extension_header,json=nextExtensionHeader,proto3" json:"next_extension_header,omitempty"` } -func (x *FlowRSVPPathObjectsSessionAttributeCType) Reset() { - *x = FlowRSVPPathObjectsSessionAttributeCType{} +func (x *FlowGtpExtension) Reset() { + *x = FlowGtpExtension{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[297] + mi := &file_otg_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSessionAttributeCType) String() string { +func (x *FlowGtpExtension) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSessionAttributeCType) ProtoMessage() {} +func (*FlowGtpExtension) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSessionAttributeCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[297] +func (x *FlowGtpExtension) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49183,74 +49409,75 @@ func (x *FlowRSVPPathObjectsSessionAttributeCType) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSessionAttributeCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSessionAttributeCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297} +// Deprecated: Use FlowGtpExtension.ProtoReflect.Descriptor instead. +func (*FlowGtpExtension) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{290} } -func (x *FlowRSVPPathObjectsSessionAttributeCType) GetChoice() FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowGtpExtension) GetExtensionLength() *PatternFlowGtpExtensionExtensionLength { + if x != nil { + return x.ExtensionLength } - return FlowRSVPPathObjectsSessionAttributeCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsSessionAttributeCType) GetLspTunnel() *FlowRSVPPathSessionAttributeLspTunnel { +func (x *FlowGtpExtension) GetContents() *PatternFlowGtpExtensionContents { if x != nil { - return x.LspTunnel + return x.Contents } return nil } -func (x *FlowRSVPPathObjectsSessionAttributeCType) GetLspTunnelRa() *FlowRSVPPathSessionAttributeLspTunnelRa { +func (x *FlowGtpExtension) GetNextExtensionHeader() *PatternFlowGtpExtensionNextExtensionHeader { if x != nil { - return x.LspTunnelRa + return x.NextExtensionHeader } return nil } -// SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 7, resource affinity information. -type FlowRSVPPathSessionAttributeLspTunnel struct { +// GTPv2 packet header +type FlowGtpv2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The priority of the session with respect to taking resources,in the range of 0 to - // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether - // this session can preempt another session. - // default = 7 - SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // The priority of the session with respect to holding resources,in the range of 0 to - // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether - // this session can preempt another session. - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // 0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired - Flags *FlowRSVPLspTunnelFlag `protobuf:"bytes,3,opt,name=flags,proto3" json:"flags,omitempty"` - // The length of the display string before padding, in bytes. - NameLength *FlowRSVPSessionAttributeNameLength `protobuf:"bytes,4,opt,name=name_length,json=nameLength,proto3" json:"name_length,omitempty"` - // A null padded string of characters. - // default = - SessionName *string `protobuf:"bytes,5,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // Description missing in models + Version *PatternFlowGtpv2Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + PiggybackingFlag *PatternFlowGtpv2PiggybackingFlag `protobuf:"bytes,2,opt,name=piggybacking_flag,json=piggybackingFlag,proto3" json:"piggybacking_flag,omitempty"` + // Description missing in models + TeidFlag *PatternFlowGtpv2TeidFlag `protobuf:"bytes,3,opt,name=teid_flag,json=teidFlag,proto3" json:"teid_flag,omitempty"` + // Description missing in models + Spare1 *PatternFlowGtpv2Spare1 `protobuf:"bytes,4,opt,name=spare1,proto3" json:"spare1,omitempty"` + // Description missing in models + MessageType *PatternFlowGtpv2MessageType `protobuf:"bytes,5,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` + // Description missing in models + MessageLength *PatternFlowGtpv2MessageLength `protobuf:"bytes,6,opt,name=message_length,json=messageLength,proto3" json:"message_length,omitempty"` + // Description missing in models + Teid *PatternFlowGtpv2Teid `protobuf:"bytes,7,opt,name=teid,proto3" json:"teid,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowGtpv2SequenceNumber `protobuf:"bytes,8,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // Description missing in models + Spare2 *PatternFlowGtpv2Spare2 `protobuf:"bytes,9,opt,name=spare2,proto3" json:"spare2,omitempty"` } -func (x *FlowRSVPPathSessionAttributeLspTunnel) Reset() { - *x = FlowRSVPPathSessionAttributeLspTunnel{} +func (x *FlowGtpv2) Reset() { + *x = FlowGtpv2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[298] + mi := &file_otg_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathSessionAttributeLspTunnel) String() string { +func (x *FlowGtpv2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSessionAttributeLspTunnel) ProtoMessage() {} +func (*FlowGtpv2) ProtoMessage() {} -func (x *FlowRSVPPathSessionAttributeLspTunnel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[298] +func (x *FlowGtpv2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49261,110 +49488,117 @@ func (x *FlowRSVPPathSessionAttributeLspTunnel) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSessionAttributeLspTunnel.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSessionAttributeLspTunnel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{298} +// Deprecated: Use FlowGtpv2.ProtoReflect.Descriptor instead. +func (*FlowGtpv2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{291} } -func (x *FlowRSVPPathSessionAttributeLspTunnel) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority +func (x *FlowGtpv2) GetVersion() *PatternFlowGtpv2Version { + if x != nil { + return x.Version } - return 0 + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnel) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority +func (x *FlowGtpv2) GetPiggybackingFlag() *PatternFlowGtpv2PiggybackingFlag { + if x != nil { + return x.PiggybackingFlag } - return 0 + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnel) GetFlags() *FlowRSVPLspTunnelFlag { +func (x *FlowGtpv2) GetTeidFlag() *PatternFlowGtpv2TeidFlag { if x != nil { - return x.Flags + return x.TeidFlag } return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnel) GetNameLength() *FlowRSVPSessionAttributeNameLength { +func (x *FlowGtpv2) GetSpare1() *PatternFlowGtpv2Spare1 { if x != nil { - return x.NameLength + return x.Spare1 } return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnel) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName +func (x *FlowGtpv2) GetMessageType() *PatternFlowGtpv2MessageType { + if x != nil { + return x.MessageType } - return "" + return nil } -// SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1, it carries resource affinity -// information. -type FlowRSVPPathSessionAttributeLspTunnelRa struct { +func (x *FlowGtpv2) GetMessageLength() *PatternFlowGtpv2MessageLength { + if x != nil { + return x.MessageLength + } + return nil +} + +func (x *FlowGtpv2) GetTeid() *PatternFlowGtpv2Teid { + if x != nil { + return x.Teid + } + return nil +} + +func (x *FlowGtpv2) GetSequenceNumber() *PatternFlowGtpv2SequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowGtpv2) GetSpare2() *PatternFlowGtpv2Spare2 { + if x != nil { + return x.Spare2 + } + return nil +} + +// ARP packet header +type FlowArp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't - // render the link unacceptable. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 00 - ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // any of which renders a link acceptable. A null set (all bits set to zero) automatically - // passes. The most significant byte in the hex-string is the farthest to the left - // in the byte sequence. Leading zero bytes in the configured value may be omitted - // for brevity. - // default = 00 - IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` - // A 32-bit vector representing a set of attribute filters associated with a tunnel - // all of which must be present for a link to be acceptable. A null set (all bits set - // to zero) automatically passes. The most significant byte in the hex-string is the - // farthest to the left in the byte sequence. Leading zero bytes in the configured - // value may be omitted for brevity. - // default = 00 - IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` - // The priority of the session with respect to taking resources,in the range of 0 to - // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether - // this session can preempt another session. - // default = 7 - SetupPriority *uint32 `protobuf:"varint,4,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` - // The priority of the session with respect to holding resources,in the range of 0 to - // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether - // this session can preempt another session. - // default = 7 - HoldingPriority *uint32 `protobuf:"varint,5,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` - // 0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired - Flags *FlowRSVPLspTunnelFlag `protobuf:"bytes,6,opt,name=flags,proto3" json:"flags,omitempty"` - // The length of the display string before padding, in bytes. - NameLength *FlowRSVPSessionAttributeNameLength `protobuf:"bytes,7,opt,name=name_length,json=nameLength,proto3" json:"name_length,omitempty"` - // A null padded string of characters. - // default = - SessionName *string `protobuf:"bytes,8,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // Description missing in models + HardwareType *PatternFlowArpHardwareType `protobuf:"bytes,1,opt,name=hardware_type,json=hardwareType,proto3" json:"hardware_type,omitempty"` + // Description missing in models + ProtocolType *PatternFlowArpProtocolType `protobuf:"bytes,2,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` + // Description missing in models + HardwareLength *PatternFlowArpHardwareLength `protobuf:"bytes,3,opt,name=hardware_length,json=hardwareLength,proto3" json:"hardware_length,omitempty"` + // Description missing in models + ProtocolLength *PatternFlowArpProtocolLength `protobuf:"bytes,4,opt,name=protocol_length,json=protocolLength,proto3" json:"protocol_length,omitempty"` + // Description missing in models + Operation *PatternFlowArpOperation `protobuf:"bytes,5,opt,name=operation,proto3" json:"operation,omitempty"` + // Description missing in models + SenderHardwareAddr *PatternFlowArpSenderHardwareAddr `protobuf:"bytes,6,opt,name=sender_hardware_addr,json=senderHardwareAddr,proto3" json:"sender_hardware_addr,omitempty"` + // Description missing in models + SenderProtocolAddr *PatternFlowArpSenderProtocolAddr `protobuf:"bytes,7,opt,name=sender_protocol_addr,json=senderProtocolAddr,proto3" json:"sender_protocol_addr,omitempty"` + // Description missing in models + TargetHardwareAddr *PatternFlowArpTargetHardwareAddr `protobuf:"bytes,8,opt,name=target_hardware_addr,json=targetHardwareAddr,proto3" json:"target_hardware_addr,omitempty"` + // Description missing in models + TargetProtocolAddr *PatternFlowArpTargetProtocolAddr `protobuf:"bytes,9,opt,name=target_protocol_addr,json=targetProtocolAddr,proto3" json:"target_protocol_addr,omitempty"` } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) Reset() { - *x = FlowRSVPPathSessionAttributeLspTunnelRa{} +func (x *FlowArp) Reset() { + *x = FlowArp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[299] + mi := &file_otg_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) String() string { +func (x *FlowArp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSessionAttributeLspTunnelRa) ProtoMessage() {} +func (*FlowArp) ProtoMessage() {} -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[299] +func (x *FlowArp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49375,95 +49609,104 @@ func (x *FlowRSVPPathSessionAttributeLspTunnelRa) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSessionAttributeLspTunnelRa.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSessionAttributeLspTunnelRa) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{299} +// Deprecated: Use FlowArp.ProtoReflect.Descriptor instead. +func (*FlowArp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{292} } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetExcludeAny() string { - if x != nil && x.ExcludeAny != nil { - return *x.ExcludeAny +func (x *FlowArp) GetHardwareType() *PatternFlowArpHardwareType { + if x != nil { + return x.HardwareType } - return "" + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetIncludeAny() string { - if x != nil && x.IncludeAny != nil { - return *x.IncludeAny +func (x *FlowArp) GetProtocolType() *PatternFlowArpProtocolType { + if x != nil { + return x.ProtocolType } - return "" + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetIncludeAll() string { - if x != nil && x.IncludeAll != nil { - return *x.IncludeAll +func (x *FlowArp) GetHardwareLength() *PatternFlowArpHardwareLength { + if x != nil { + return x.HardwareLength } - return "" + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetSetupPriority() uint32 { - if x != nil && x.SetupPriority != nil { - return *x.SetupPriority +func (x *FlowArp) GetProtocolLength() *PatternFlowArpProtocolLength { + if x != nil { + return x.ProtocolLength } - return 0 + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetHoldingPriority() uint32 { - if x != nil && x.HoldingPriority != nil { - return *x.HoldingPriority +func (x *FlowArp) GetOperation() *PatternFlowArpOperation { + if x != nil { + return x.Operation } - return 0 + return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetFlags() *FlowRSVPLspTunnelFlag { +func (x *FlowArp) GetSenderHardwareAddr() *PatternFlowArpSenderHardwareAddr { if x != nil { - return x.Flags + return x.SenderHardwareAddr } return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetNameLength() *FlowRSVPSessionAttributeNameLength { +func (x *FlowArp) GetSenderProtocolAddr() *PatternFlowArpSenderProtocolAddr { if x != nil { - return x.NameLength + return x.SenderProtocolAddr } return nil } -func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName +func (x *FlowArp) GetTargetHardwareAddr() *PatternFlowArpTargetHardwareAddr { + if x != nil { + return x.TargetHardwareAddr } - return "" + return nil } -// Description missing in models -type FlowRSVPLspTunnelFlag struct { +func (x *FlowArp) GetTargetProtocolAddr() *PatternFlowArpTargetProtocolAddr { + if x != nil { + return x.TargetProtocolAddr + } + return nil +} + +// ICMP packet header +type FlowIcmp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.local_protection_desired - Choice *FlowRSVPLspTunnelFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPLspTunnelFlag_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.echo + Choice *FlowIcmp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpEcho `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` } -func (x *FlowRSVPLspTunnelFlag) Reset() { - *x = FlowRSVPLspTunnelFlag{} +func (x *FlowIcmp) Reset() { + *x = FlowIcmp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[300] + mi := &file_otg_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPLspTunnelFlag) String() string { +func (x *FlowIcmp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPLspTunnelFlag) ProtoMessage() {} +func (*FlowIcmp) ProtoMessage() {} -func (x *FlowRSVPLspTunnelFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[300] +func (x *FlowIcmp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49474,54 +49717,60 @@ func (x *FlowRSVPLspTunnelFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPLspTunnelFlag.ProtoReflect.Descriptor instead. -func (*FlowRSVPLspTunnelFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{300} +// Deprecated: Use FlowIcmp.ProtoReflect.Descriptor instead. +func (*FlowIcmp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293} } -func (x *FlowRSVPLspTunnelFlag) GetChoice() FlowRSVPLspTunnelFlag_Choice_Enum { +func (x *FlowIcmp) GetChoice() FlowIcmp_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPLspTunnelFlag_Choice_unspecified + return FlowIcmp_Choice_unspecified } -// Description missing in models -type FlowRSVPSessionAttributeNameLength struct { +func (x *FlowIcmp) GetEcho() *FlowIcmpEcho { + if x != nil { + return x.Echo + } + return nil +} + +// Packet Header for ICMP echo request +type FlowIcmpEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPSessionAttributeNameLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPSessionAttributeNameLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 0 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // default = 0 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + Type *PatternFlowIcmpEchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // Description missing in models + Code *PatternFlowIcmpEchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpEchoChecksum `protobuf:"bytes,3,opt,name=checksum,proto3" json:"checksum,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpEchoIdentifier `protobuf:"bytes,4,opt,name=identifier,proto3" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpEchoSequenceNumber `protobuf:"bytes,5,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` } -func (x *FlowRSVPSessionAttributeNameLength) Reset() { - *x = FlowRSVPSessionAttributeNameLength{} +func (x *FlowIcmpEcho) Reset() { + *x = FlowIcmpEcho{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[301] + mi := &file_otg_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPSessionAttributeNameLength) String() string { +func (x *FlowIcmpEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPSessionAttributeNameLength) ProtoMessage() {} +func (*FlowIcmpEcho) ProtoMessage() {} -func (x *FlowRSVPSessionAttributeNameLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[301] +func (x *FlowIcmpEcho) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49532,62 +49781,76 @@ func (x *FlowRSVPSessionAttributeNameLength) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPSessionAttributeNameLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPSessionAttributeNameLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301} +// Deprecated: Use FlowIcmpEcho.ProtoReflect.Descriptor instead. +func (*FlowIcmpEcho) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{294} } -func (x *FlowRSVPSessionAttributeNameLength) GetChoice() FlowRSVPSessionAttributeNameLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIcmpEcho) GetType() *PatternFlowIcmpEchoType { + if x != nil { + return x.Type } - return FlowRSVPSessionAttributeNameLength_Choice_unspecified + return nil } -func (x *FlowRSVPSessionAttributeNameLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowIcmpEcho) GetCode() *PatternFlowIcmpEchoCode { + if x != nil { + return x.Code } - return 0 + return nil } -func (x *FlowRSVPSessionAttributeNameLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowIcmpEcho) GetChecksum() *PatternFlowIcmpEchoChecksum { + if x != nil { + return x.Checksum } - return 0 + return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassSenderTemplate struct { +func (x *FlowIcmpEcho) GetIdentifier() *PatternFlowIcmpEchoIdentifier { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *FlowIcmpEcho) GetSequenceNumber() *PatternFlowIcmpEchoSequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +// ICMPv6 packet header +type FlowIcmpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsSenderTemplateCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // default = Choice.Enum.echo + Choice *FlowIcmpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowIcmpv6_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Echo *FlowIcmpv6Echo `protobuf:"bytes,2,opt,name=echo,proto3" json:"echo,omitempty"` } -func (x *FlowRSVPPathObjectsClassSenderTemplate) Reset() { - *x = FlowRSVPPathObjectsClassSenderTemplate{} +func (x *FlowIcmpv6) Reset() { + *x = FlowIcmpv6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[302] + mi := &file_otg_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassSenderTemplate) String() string { +func (x *FlowIcmpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassSenderTemplate) ProtoMessage() {} +func (*FlowIcmpv6) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassSenderTemplate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[302] +func (x *FlowIcmpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49598,55 +49861,60 @@ func (x *FlowRSVPPathObjectsClassSenderTemplate) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassSenderTemplate.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassSenderTemplate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{302} +// Deprecated: Use FlowIcmpv6.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{295} } -func (x *FlowRSVPPathObjectsClassSenderTemplate) GetLength() *FlowRSVPObjectLength { - if x != nil { - return x.Length +func (x *FlowIcmpv6) GetChoice() FlowIcmpv6_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowIcmpv6_Choice_unspecified } -func (x *FlowRSVPPathObjectsClassSenderTemplate) GetCType() *FlowRSVPPathObjectsSenderTemplateCType { +func (x *FlowIcmpv6) GetEcho() *FlowIcmpv6Echo { if x != nil { - return x.CType + return x.Echo } return nil } -// Object for SENDER_TEMPLATE class. Currently supported c-type is LSP Tunnel IPv4 (7). -type FlowRSVPPathObjectsSenderTemplateCType struct { +// Packet Header for ICMPv6 Echo +type FlowIcmpv6Echo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.lsp_tunnel_ipv4 - Choice *FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum,oneof" json:"choice,omitempty"` + Type *PatternFlowIcmpv6EchoType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Description missing in models - LspTunnelIpv4 *FlowRSVPPathSenderTemplateLspTunnelIpv4 `protobuf:"bytes,2,opt,name=lsp_tunnel_ipv4,json=lspTunnelIpv4,proto3" json:"lsp_tunnel_ipv4,omitempty"` + Code *PatternFlowIcmpv6EchoCode `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + // Description missing in models + Identifier *PatternFlowIcmpv6EchoIdentifier `protobuf:"bytes,3,opt,name=identifier,proto3" json:"identifier,omitempty"` + // Description missing in models + SequenceNumber *PatternFlowIcmpv6EchoSequenceNumber `protobuf:"bytes,4,opt,name=sequence_number,json=sequenceNumber,proto3" json:"sequence_number,omitempty"` + // Description missing in models + Checksum *PatternFlowIcmpv6EchoChecksum `protobuf:"bytes,5,opt,name=checksum,proto3" json:"checksum,omitempty"` } -func (x *FlowRSVPPathObjectsSenderTemplateCType) Reset() { - *x = FlowRSVPPathObjectsSenderTemplateCType{} +func (x *FlowIcmpv6Echo) Reset() { + *x = FlowIcmpv6Echo{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[303] + mi := &file_otg_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSenderTemplateCType) String() string { +func (x *FlowIcmpv6Echo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSenderTemplateCType) ProtoMessage() {} +func (*FlowIcmpv6Echo) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSenderTemplateCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[303] +func (x *FlowIcmpv6Echo) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49657,56 +49925,77 @@ func (x *FlowRSVPPathObjectsSenderTemplateCType) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSenderTemplateCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSenderTemplateCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303} +// Deprecated: Use FlowIcmpv6Echo.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6Echo) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{296} } -func (x *FlowRSVPPathObjectsSenderTemplateCType) GetChoice() FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowIcmpv6Echo) GetType() *PatternFlowIcmpv6EchoType { + if x != nil { + return x.Type } - return FlowRSVPPathObjectsSenderTemplateCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsSenderTemplateCType) GetLspTunnelIpv4() *FlowRSVPPathSenderTemplateLspTunnelIpv4 { +func (x *FlowIcmpv6Echo) GetCode() *PatternFlowIcmpv6EchoCode { if x != nil { - return x.LspTunnelIpv4 + return x.Code } return nil } -// Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7 -type FlowRSVPPathSenderTemplateLspTunnelIpv4 struct { +func (x *FlowIcmpv6Echo) GetIdentifier() *PatternFlowIcmpv6EchoIdentifier { + if x != nil { + return x.Identifier + } + return nil +} + +func (x *FlowIcmpv6Echo) GetSequenceNumber() *PatternFlowIcmpv6EchoSequenceNumber { + if x != nil { + return x.SequenceNumber + } + return nil +} + +func (x *FlowIcmpv6Echo) GetChecksum() *PatternFlowIcmpv6EchoChecksum { + if x != nil { + return x.Checksum + } + return nil +} + +// PPP packet header +type FlowPpp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - Ipv4TunnelSenderAddress *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress `protobuf:"bytes,1,opt,name=ipv4_tunnel_sender_address,json=ipv4TunnelSenderAddress,proto3" json:"ipv4_tunnel_sender_address,omitempty"` + Address *PatternFlowPppAddress `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` // Description missing in models - Reserved *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved `protobuf:"bytes,2,opt,name=reserved,proto3" json:"reserved,omitempty"` + Control *PatternFlowPppControl `protobuf:"bytes,2,opt,name=control,proto3" json:"control,omitempty"` // Description missing in models - LspId *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId `protobuf:"bytes,3,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` + ProtocolType *PatternFlowPppProtocolType `protobuf:"bytes,3,opt,name=protocol_type,json=protocolType,proto3" json:"protocol_type,omitempty"` } -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) Reset() { - *x = FlowRSVPPathSenderTemplateLspTunnelIpv4{} +func (x *FlowPpp) Reset() { + *x = FlowPpp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[304] + mi := &file_otg_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) String() string { +func (x *FlowPpp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSenderTemplateLspTunnelIpv4) ProtoMessage() {} +func (*FlowPpp) ProtoMessage() {} -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[304] +func (x *FlowPpp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49717,62 +50006,67 @@ func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSenderTemplateLspTunnelIpv4.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSenderTemplateLspTunnelIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{304} +// Deprecated: Use FlowPpp.ProtoReflect.Descriptor instead. +func (*FlowPpp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{297} } -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetIpv4TunnelSenderAddress() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress { +func (x *FlowPpp) GetAddress() *PatternFlowPppAddress { if x != nil { - return x.Ipv4TunnelSenderAddress + return x.Address } return nil } -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetReserved() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved { +func (x *FlowPpp) GetControl() *PatternFlowPppControl { if x != nil { - return x.Reserved + return x.Control } return nil } -func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetLspId() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId { +func (x *FlowPpp) GetProtocolType() *PatternFlowPppProtocolType { if x != nil { - return x.LspId + return x.ProtocolType } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassSenderTspec struct { +// IGMPv1 packet header +type FlowIgmpv1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsSenderTspecCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + Version *PatternFlowIgmpv1Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` + // Description missing in models + Type *PatternFlowIgmpv1Type `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + // Description missing in models + Unused *PatternFlowIgmpv1Unused `protobuf:"bytes,3,opt,name=unused,proto3" json:"unused,omitempty"` + // Description missing in models + Checksum *PatternFlowIgmpv1Checksum `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"` + // Description missing in models + GroupAddress *PatternFlowIgmpv1GroupAddress `protobuf:"bytes,5,opt,name=group_address,json=groupAddress,proto3" json:"group_address,omitempty"` } -func (x *FlowRSVPPathObjectsClassSenderTspec) Reset() { - *x = FlowRSVPPathObjectsClassSenderTspec{} +func (x *FlowIgmpv1) Reset() { + *x = FlowIgmpv1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[305] + mi := &file_otg_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassSenderTspec) String() string { +func (x *FlowIgmpv1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassSenderTspec) ProtoMessage() {} +func (*FlowIgmpv1) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassSenderTspec) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[305] +func (x *FlowIgmpv1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49783,55 +50077,80 @@ func (x *FlowRSVPPathObjectsClassSenderTspec) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassSenderTspec.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassSenderTspec) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{305} +// Deprecated: Use FlowIgmpv1.ProtoReflect.Descriptor instead. +func (*FlowIgmpv1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{298} } -func (x *FlowRSVPPathObjectsClassSenderTspec) GetLength() *FlowRSVPObjectLength { +func (x *FlowIgmpv1) GetVersion() *PatternFlowIgmpv1Version { if x != nil { - return x.Length + return x.Version } return nil } -func (x *FlowRSVPPathObjectsClassSenderTspec) GetCType() *FlowRSVPPathObjectsSenderTspecCType { +func (x *FlowIgmpv1) GetType() *PatternFlowIgmpv1Type { if x != nil { - return x.CType + return x.Type } return nil } -// Object for SENDER_TSPEC class. Currently supported c-type is int-serv (2). -type FlowRSVPPathObjectsSenderTspecCType struct { +func (x *FlowIgmpv1) GetUnused() *PatternFlowIgmpv1Unused { + if x != nil { + return x.Unused + } + return nil +} + +func (x *FlowIgmpv1) GetChecksum() *PatternFlowIgmpv1Checksum { + if x != nil { + return x.Checksum + } + return nil +} + +func (x *FlowIgmpv1) GetGroupAddress() *PatternFlowIgmpv1GroupAddress { + if x != nil { + return x.GroupAddress + } + return nil +} + +// MPLS packet header; When configuring multiple such headers, the count shall not exceed +// 20. +type FlowMpls struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.int_serv - Choice *FlowRSVPPathObjectsSenderTspecCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSenderTspecCType_Choice_Enum,oneof" json:"choice,omitempty"` + Label *PatternFlowMplsLabel `protobuf:"bytes,1,opt,name=label,proto3" json:"label,omitempty"` // Description missing in models - IntServ *FlowRSVPPathSenderTspecIntServ `protobuf:"bytes,2,opt,name=int_serv,json=intServ,proto3" json:"int_serv,omitempty"` + TrafficClass *PatternFlowMplsTrafficClass `protobuf:"bytes,2,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"` + // Description missing in models + BottomOfStack *PatternFlowMplsBottomOfStack `protobuf:"bytes,3,opt,name=bottom_of_stack,json=bottomOfStack,proto3" json:"bottom_of_stack,omitempty"` + // Description missing in models + TimeToLive *PatternFlowMplsTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` } -func (x *FlowRSVPPathObjectsSenderTspecCType) Reset() { - *x = FlowRSVPPathObjectsSenderTspecCType{} +func (x *FlowMpls) Reset() { + *x = FlowMpls{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[306] + mi := &file_otg_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSenderTspecCType) String() string { +func (x *FlowMpls) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSenderTspecCType) ProtoMessage() {} +func (*FlowMpls) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSenderTspecCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[306] +func (x *FlowMpls) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49842,85 +50161,74 @@ func (x *FlowRSVPPathObjectsSenderTspecCType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSenderTspecCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSenderTspecCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{306} +// Deprecated: Use FlowMpls.ProtoReflect.Descriptor instead. +func (*FlowMpls) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{299} } -func (x *FlowRSVPPathObjectsSenderTspecCType) GetChoice() FlowRSVPPathObjectsSenderTspecCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowMpls) GetLabel() *PatternFlowMplsLabel { + if x != nil { + return x.Label } - return FlowRSVPPathObjectsSenderTspecCType_Choice_unspecified + return nil } -func (x *FlowRSVPPathObjectsSenderTspecCType) GetIntServ() *FlowRSVPPathSenderTspecIntServ { +func (x *FlowMpls) GetTrafficClass() *PatternFlowMplsTrafficClass { if x != nil { - return x.IntServ + return x.TrafficClass } return nil } -// int-serv SENDER_TSPEC object: Class = 12, C-Type = 2 -type FlowRSVPPathSenderTspecIntServ struct { +func (x *FlowMpls) GetBottomOfStack() *PatternFlowMplsBottomOfStack { + if x != nil { + return x.BottomOfStack + } + return nil +} + +func (x *FlowMpls) GetTimeToLive() *PatternFlowMplsTimeToLive { + if x != nil { + return x.TimeToLive + } + 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 *PatternFlowRSVPPathSenderTspecIntServVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` - // Description missing in models - Reserved1 *PatternFlowRSVPPathSenderTspecIntServReserved1 `protobuf:"bytes,2,opt,name=reserved1,proto3" json:"reserved1,omitempty"` - // Description missing in models - OverallLength *PatternFlowRSVPPathSenderTspecIntServOverallLength `protobuf:"bytes,3,opt,name=overall_length,json=overallLength,proto3" json:"overall_length,omitempty"` - // Description missing in models - ServiceHeader *PatternFlowRSVPPathSenderTspecIntServServiceHeader `protobuf:"bytes,4,opt,name=service_header,json=serviceHeader,proto3" json:"service_header,omitempty"` - // Description missing in models - ZeroBit *PatternFlowRSVPPathSenderTspecIntServZeroBit `protobuf:"bytes,5,opt,name=zero_bit,json=zeroBit,proto3" json:"zero_bit,omitempty"` - // Description missing in models - Reserved2 *PatternFlowRSVPPathSenderTspecIntServReserved2 `protobuf:"bytes,6,opt,name=reserved2,proto3" json:"reserved2,omitempty"` - // Description missing in models - LengthOfServiceData *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData `protobuf:"bytes,7,opt,name=length_of_service_data,json=lengthOfServiceData,proto3" json:"length_of_service_data,omitempty"` - // Description missing in models - ParameterIdTokenBucketTspec *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec `protobuf:"bytes,8,opt,name=parameter_id_token_bucket_tspec,json=parameterIdTokenBucketTspec,proto3" json:"parameter_id_token_bucket_tspec,omitempty"` - // Description missing in models - Parameter_127Flag *PatternFlowRSVPPathSenderTspecIntServParameter127Flag `protobuf:"bytes,9,opt,name=parameter_127_flag,json=parameter127Flag,proto3" json:"parameter_127_flag,omitempty"` - // Description missing in models - Parameter_127Length *PatternFlowRSVPPathSenderTspecIntServParameter127Length `protobuf:"bytes,10,opt,name=parameter_127_length,json=parameter127Length,proto3" json:"parameter_127_length,omitempty"` - // Token bucket rate is set to sender's view of its generated traffic. - // default = 0 - TokenBucketRate *float32 `protobuf:"fixed32,11,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` - // Token bucket size is set to sender's view of its generated traffic. - // default = 0 - TokenBucketSize *float32 `protobuf:"fixed32,12,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` - // The peak rate may be set to the sender's peak traffic generation rate (if known and - // controlled), the physical interface line rate (if known), or positive infinity (if - // no better value is available). - // default = 0 - PeakDataRate *float32 `protobuf:"fixed32,13,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` - // Description missing in models - MinimumPolicedUnit *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit `protobuf:"bytes,14,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3" json:"minimum_policed_unit,omitempty"` + 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 - MaximumPacketSize *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize `protobuf:"bytes,15,opt,name=maximum_packet_size,json=maximumPacketSize,proto3" json:"maximum_packet_size,omitempty"` + // required = true + Data *FlowSnmpv2CData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *FlowRSVPPathSenderTspecIntServ) Reset() { - *x = FlowRSVPPathSenderTspecIntServ{} +func (x *FlowSnmpv2C) Reset() { + *x = FlowSnmpv2C{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[307] + mi := &file_otg_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathSenderTspecIntServ) String() string { +func (x *FlowSnmpv2C) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSenderTspecIntServ) ProtoMessage() {} +func (*FlowSnmpv2C) ProtoMessage() {} -func (x *FlowRSVPPathSenderTspecIntServ) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[307] +func (x *FlowSnmpv2C) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -49931,146 +50239,192 @@ func (x *FlowRSVPPathSenderTspecIntServ) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSenderTspecIntServ.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSenderTspecIntServ) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{307} +// Deprecated: Use FlowSnmpv2C.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2C) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{300} } -func (x *FlowRSVPPathSenderTspecIntServ) GetVersion() *PatternFlowRSVPPathSenderTspecIntServVersion { +func (x *FlowSnmpv2C) GetVersion() *PatternFlowSnmpv2CVersion { if x != nil { return x.Version } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetReserved1() *PatternFlowRSVPPathSenderTspecIntServReserved1 { - if x != nil { - return x.Reserved1 +func (x *FlowSnmpv2C) GetCommunity() string { + if x != nil && x.Community != nil { + return *x.Community } - return nil + return "" } -func (x *FlowRSVPPathSenderTspecIntServ) GetOverallLength() *PatternFlowRSVPPathSenderTspecIntServOverallLength { +func (x *FlowSnmpv2C) GetData() *FlowSnmpv2CData { if x != nil { - return x.OverallLength + return x.Data } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetServiceHeader() *PatternFlowRSVPPathSenderTspecIntServServiceHeader { - if x != nil { - return x.ServiceHeader - } - 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 *FlowRSVPPathSenderTspecIntServ) GetZeroBit() *PatternFlowRSVPPathSenderTspecIntServZeroBit { - if x != nil { - return x.ZeroBit +func (x *FlowSnmpv2CData) Reset() { + *x = FlowSnmpv2CData{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[301] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetReserved2() *PatternFlowRSVPPathSenderTspecIntServReserved2 { - if x != nil { - return x.Reserved2 +func (x *FlowSnmpv2CData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlowSnmpv2CData) ProtoMessage() {} + +func (x *FlowSnmpv2CData) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[301] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *FlowRSVPPathSenderTspecIntServ) GetLengthOfServiceData() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData { - if x != nil { - return x.LengthOfServiceData +// Deprecated: Use FlowSnmpv2CData.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CData) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{301} +} + +func (x *FlowSnmpv2CData) GetChoice() FlowSnmpv2CData_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowSnmpv2CData_Choice_unspecified } -func (x *FlowRSVPPathSenderTspecIntServ) GetParameterIdTokenBucketTspec() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec { +func (x *FlowSnmpv2CData) GetGetRequest() *FlowSnmpv2CPDU { if x != nil { - return x.ParameterIdTokenBucketTspec + return x.GetRequest } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetParameter_127Flag() *PatternFlowRSVPPathSenderTspecIntServParameter127Flag { +func (x *FlowSnmpv2CData) GetGetNextRequest() *FlowSnmpv2CPDU { if x != nil { - return x.Parameter_127Flag + return x.GetNextRequest } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetParameter_127Length() *PatternFlowRSVPPathSenderTspecIntServParameter127Length { +func (x *FlowSnmpv2CData) GetResponse() *FlowSnmpv2CPDU { if x != nil { - return x.Parameter_127Length + return x.Response } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetTokenBucketRate() float32 { - if x != nil && x.TokenBucketRate != nil { - return *x.TokenBucketRate +func (x *FlowSnmpv2CData) GetSetRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.SetRequest } - return 0 + return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetTokenBucketSize() float32 { - if x != nil && x.TokenBucketSize != nil { - return *x.TokenBucketSize +func (x *FlowSnmpv2CData) GetGetBulkRequest() *FlowSnmpv2CBulkPDU { + if x != nil { + return x.GetBulkRequest } - return 0 + return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetPeakDataRate() float32 { - if x != nil && x.PeakDataRate != nil { - return *x.PeakDataRate +func (x *FlowSnmpv2CData) GetInformRequest() *FlowSnmpv2CPDU { + if x != nil { + return x.InformRequest } - return 0 + return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetMinimumPolicedUnit() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit { +func (x *FlowSnmpv2CData) GetSnmpv2Trap() *FlowSnmpv2CPDU { if x != nil { - return x.MinimumPolicedUnit + return x.Snmpv2Trap } return nil } -func (x *FlowRSVPPathSenderTspecIntServ) GetMaximumPacketSize() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize { +func (x *FlowSnmpv2CData) GetReport() *FlowSnmpv2CPDU { if x != nil { - return x.MaximumPacketSize + return x.Report } return nil } -// C-Type is specific to a class num. -type FlowRSVPPathObjectsClassRecordRoute struct { +// This contains the body of the SNMPv2C PDU. +type FlowSnmpv2CPDU struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A 16-bit field containing the total object length in bytes. Must always be a multiple - // of 4 or at least 4. - Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - CType *FlowRSVPPathObjectsRecordRouteCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + 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 *FlowRSVPPathObjectsClassRecordRoute) Reset() { - *x = FlowRSVPPathObjectsClassRecordRoute{} +func (x *FlowSnmpv2CPDU) Reset() { + *x = FlowSnmpv2CPDU{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[308] + mi := &file_otg_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassRecordRoute) String() string { +func (x *FlowSnmpv2CPDU) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassRecordRoute) ProtoMessage() {} +func (*FlowSnmpv2CPDU) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassRecordRoute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[308] +func (x *FlowSnmpv2CPDU) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50081,55 +50435,74 @@ func (x *FlowRSVPPathObjectsClassRecordRoute) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassRecordRoute.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassRecordRoute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{308} +// Deprecated: Use FlowSnmpv2CPDU.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CPDU) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{302} } -func (x *FlowRSVPPathObjectsClassRecordRoute) GetLength() *FlowRSVPObjectLength { +func (x *FlowSnmpv2CPDU) GetRequestId() *PatternFlowSnmpv2CPDURequestId { if x != nil { - return x.Length + return x.RequestId } return nil } -func (x *FlowRSVPPathObjectsClassRecordRoute) GetCType() *FlowRSVPPathObjectsRecordRouteCType { +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.CType + return x.ErrorIndex } return nil } -// Object for RECORD_ROUTE class. c-type is Type 1 Route Record (1). -type FlowRSVPPathObjectsRecordRouteCType struct { +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 - // default = Choice.Enum.type_1 - Choice *FlowRSVPPathObjectsRecordRouteCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRecordRouteCType_Choice_Enum,oneof" json:"choice,omitempty"` + RequestId *PatternFlowSnmpv2CBulkPDURequestId `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` // Description missing in models - Type_1 *FlowRSVPPathRecordRouteType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` + 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 *FlowRSVPPathObjectsRecordRouteCType) Reset() { - *x = FlowRSVPPathObjectsRecordRouteCType{} +func (x *FlowSnmpv2CBulkPDU) Reset() { + *x = FlowSnmpv2CBulkPDU{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[309] + mi := &file_otg_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsRecordRouteCType) String() string { +func (x *FlowSnmpv2CBulkPDU) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRecordRouteCType) ProtoMessage() {} +func (*FlowSnmpv2CBulkPDU) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRecordRouteCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[309] +func (x *FlowSnmpv2CBulkPDU) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50140,102 +50513,94 @@ func (x *FlowRSVPPathObjectsRecordRouteCType) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRecordRouteCType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRecordRouteCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309} -} - -func (x *FlowRSVPPathObjectsRecordRouteCType) GetChoice() FlowRSVPPathObjectsRecordRouteCType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowRSVPPathObjectsRecordRouteCType_Choice_unspecified +// Deprecated: Use FlowSnmpv2CBulkPDU.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CBulkPDU) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{303} } -func (x *FlowRSVPPathObjectsRecordRouteCType) GetType_1() *FlowRSVPPathRecordRouteType1 { +func (x *FlowSnmpv2CBulkPDU) GetRequestId() *PatternFlowSnmpv2CBulkPDURequestId { if x != nil { - return x.Type_1 + return x.RequestId } return nil } -// Type1 record route has list of subobjects. Currently supported subobjects are IPv4 -// address(1) and Label(3). -type FlowRSVPPathRecordRouteType1 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Subobjects []*FlowRSVPType1RecordRouteSubobjects `protobuf:"bytes,1,rep,name=subobjects,proto3" json:"subobjects,omitempty"` -} - -func (x *FlowRSVPPathRecordRouteType1) Reset() { - *x = FlowRSVPPathRecordRouteType1{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[310] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowSnmpv2CBulkPDU) GetNonRepeaters() *PatternFlowSnmpv2CBulkPDUNonRepeaters { + if x != nil { + return x.NonRepeaters } + return nil } -func (x *FlowRSVPPathRecordRouteType1) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowRSVPPathRecordRouteType1) ProtoMessage() {} - -func (x *FlowRSVPPathRecordRouteType1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[310] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowSnmpv2CBulkPDU) GetMaxRepetitions() *PatternFlowSnmpv2CBulkPDUMaxRepetitions { + if x != nil { + return x.MaxRepetitions } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowRSVPPathRecordRouteType1.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRecordRouteType1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{310} + return nil } -func (x *FlowRSVPPathRecordRouteType1) GetSubobjects() []*FlowRSVPType1RecordRouteSubobjects { +func (x *FlowSnmpv2CBulkPDU) GetVariableBindings() []*FlowSnmpv2CVariableBinding { if x != nil { - return x.Subobjects + return x.VariableBindings } return nil } -// Type is specific to a subobject. -type FlowRSVPType1RecordRouteSubobjects struct { +// 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 - Type *FlowRSVPPathObjectsRecordRouteSubObjectType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Value *FlowSnmpv2CVariableBindingValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *FlowRSVPType1RecordRouteSubobjects) Reset() { - *x = FlowRSVPType1RecordRouteSubobjects{} +func (x *FlowSnmpv2CVariableBinding) Reset() { + *x = FlowSnmpv2CVariableBinding{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[311] + mi := &file_otg_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPType1RecordRouteSubobjects) String() string { +func (x *FlowSnmpv2CVariableBinding) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPType1RecordRouteSubobjects) ProtoMessage() {} +func (*FlowSnmpv2CVariableBinding) ProtoMessage() {} -func (x *FlowRSVPType1RecordRouteSubobjects) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[311] +func (x *FlowSnmpv2CVariableBinding) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50246,50 +50611,99 @@ func (x *FlowRSVPType1RecordRouteSubobjects) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPType1RecordRouteSubobjects.ProtoReflect.Descriptor instead. -func (*FlowRSVPType1RecordRouteSubobjects) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{311} +// Deprecated: Use FlowSnmpv2CVariableBinding.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBinding) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{304} } -func (x *FlowRSVPType1RecordRouteSubobjects) GetType() *FlowRSVPPathObjectsRecordRouteSubObjectType { +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.Type + return x.Value } return nil } -// Currently supported subobjects are IPv4 address(1) and Label(3). -type FlowRSVPPathObjectsRecordRouteSubObjectType struct { +// 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.ipv4_address - Choice *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum,oneof" json:"choice,omitempty"` + // 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 - Ipv4Address *FlowRSVPPathRecordRouteType1Ipv4Address `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + IntegerValue *PatternFlowSnmpv2CVariableBindingValueIntegerValue `protobuf:"bytes,2,opt,name=integer_value,json=integerValue,proto3" json:"integer_value,omitempty"` // Description missing in models - Label *FlowRSVPPathRecordRouteType1Label `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` + StringValue *FlowSnmpv2CVariableBindingStringValue `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3" 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 + // 10000 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 *FlowRSVPPathObjectsRecordRouteSubObjectType) Reset() { - *x = FlowRSVPPathObjectsRecordRouteSubObjectType{} +func (x *FlowSnmpv2CVariableBindingValue) Reset() { + *x = FlowSnmpv2CVariableBindingValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[312] + mi := &file_otg_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) String() string { +func (x *FlowSnmpv2CVariableBindingValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRecordRouteSubObjectType) ProtoMessage() {} +func (*FlowSnmpv2CVariableBindingValue) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[312] +func (x *FlowSnmpv2CVariableBindingValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50300,138 +50714,115 @@ func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRecordRouteSubObjectType.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRecordRouteSubObjectType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312} +// Deprecated: Use FlowSnmpv2CVariableBindingValue.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{305} } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetChoice() FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum { +func (x *FlowSnmpv2CVariableBindingValue) GetChoice() FlowSnmpv2CVariableBindingValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_unspecified + return FlowSnmpv2CVariableBindingValue_Choice_unspecified } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetIpv4Address() *FlowRSVPPathRecordRouteType1Ipv4Address { +func (x *FlowSnmpv2CVariableBindingValue) GetIntegerValue() *PatternFlowSnmpv2CVariableBindingValueIntegerValue { if x != nil { - return x.Ipv4Address + return x.IntegerValue } return nil } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetLabel() *FlowRSVPPathRecordRouteType1Label { +func (x *FlowSnmpv2CVariableBindingValue) GetStringValue() *FlowSnmpv2CVariableBindingStringValue { if x != nil { - return x.Label + return x.StringValue } return nil } -// Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Address, C-Type: -// 1 -type FlowRSVPPathRecordRouteType1Ipv4Address struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The Length contains the total length of the subobject in bytes, including the Type - // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. - Length *FlowRSVPRouteRecordLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` - // Description missing in models - Ipv4Address *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` - // Description missing in models - PrefixLength *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength `protobuf:"bytes,3,opt,name=prefix_length,json=prefixLength,proto3" json:"prefix_length,omitempty"` - // 0x01 local_protection_available, 0x02 local_protection_in_use - Flags *FlowRSVPRecordRouteIPv4Flag `protobuf:"bytes,4,opt,name=flags,proto3" json:"flags,omitempty"` -} - -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) Reset() { - *x = FlowRSVPPathRecordRouteType1Ipv4Address{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[313] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowSnmpv2CVariableBindingValue) GetObjectIdentifierValue() string { + if x != nil && x.ObjectIdentifierValue != nil { + return *x.ObjectIdentifierValue } + return "" } -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FlowRSVPPathRecordRouteType1Ipv4Address) ProtoMessage() {} - -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[313] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowSnmpv2CVariableBindingValue) GetIpAddressValue() *PatternFlowSnmpv2CVariableBindingValueIpAddressValue { + if x != nil { + return x.IpAddressValue } - return mi.MessageOf(x) -} - -// Deprecated: Use FlowRSVPPathRecordRouteType1Ipv4Address.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRecordRouteType1Ipv4Address) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{313} + return nil } -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetLength() *FlowRSVPRouteRecordLength { +func (x *FlowSnmpv2CVariableBindingValue) GetCounterValue() *PatternFlowSnmpv2CVariableBindingValueCounterValue { if x != nil { - return x.Length + return x.CounterValue } return nil } -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetIpv4Address() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address { +func (x *FlowSnmpv2CVariableBindingValue) GetTimeticksValue() *PatternFlowSnmpv2CVariableBindingValueTimeticksValue { if x != nil { - return x.Ipv4Address + return x.TimeticksValue } return nil } -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetPrefixLength() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength { +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.PrefixLength + return x.BigCounterValue } return nil } -func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetFlags() *FlowRSVPRecordRouteIPv4Flag { +func (x *FlowSnmpv2CVariableBindingValue) GetUnsignedIntegerValue() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue { if x != nil { - return x.Flags + return x.UnsignedIntegerValue } return nil } -// Description missing in models -type FlowRSVPRecordRouteIPv4Flag struct { +// It contains the raw/ascii string value to be sent. +type FlowSnmpv2CVariableBindingStringValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.local_protection_available - Choice *FlowRSVPRecordRouteIPv4Flag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPRecordRouteIPv4Flag_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.ascii + Choice *FlowSnmpv2CVariableBindingStringValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSnmpv2CVariableBindingStringValue_Choice_Enum,oneof" json:"choice,omitempty"` + // It contains the ASCII string to be sent. As of now it is restricted to 10000 bytes. + // default = ascii + Ascii *string `protobuf:"bytes,2,opt,name=ascii,proto3,oneof" json:"ascii,omitempty"` + // It contains the hex string to be sent. As of now it is restricted to 10000 bytes. + // default = 00 + Raw *string `protobuf:"bytes,3,opt,name=raw,proto3,oneof" json:"raw,omitempty"` } -func (x *FlowRSVPRecordRouteIPv4Flag) Reset() { - *x = FlowRSVPRecordRouteIPv4Flag{} +func (x *FlowSnmpv2CVariableBindingStringValue) Reset() { + *x = FlowSnmpv2CVariableBindingStringValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[314] + mi := &file_otg_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPRecordRouteIPv4Flag) String() string { +func (x *FlowSnmpv2CVariableBindingStringValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPRecordRouteIPv4Flag) ProtoMessage() {} +func (*FlowSnmpv2CVariableBindingStringValue) ProtoMessage() {} -func (x *FlowRSVPRecordRouteIPv4Flag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[314] +func (x *FlowSnmpv2CVariableBindingStringValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50442,52 +50833,76 @@ func (x *FlowRSVPRecordRouteIPv4Flag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPRecordRouteIPv4Flag.ProtoReflect.Descriptor instead. -func (*FlowRSVPRecordRouteIPv4Flag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{314} +// Deprecated: Use FlowSnmpv2CVariableBindingStringValue.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingStringValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{306} } -func (x *FlowRSVPRecordRouteIPv4Flag) GetChoice() FlowRSVPRecordRouteIPv4Flag_Choice_Enum { +func (x *FlowSnmpv2CVariableBindingStringValue) GetChoice() FlowSnmpv2CVariableBindingStringValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPRecordRouteIPv4Flag_Choice_unspecified + return FlowSnmpv2CVariableBindingStringValue_Choice_unspecified } -// Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Label, C-Type: 3 -type FlowRSVPPathRecordRouteType1Label struct { +func (x *FlowSnmpv2CVariableBindingStringValue) GetAscii() string { + if x != nil && x.Ascii != nil { + return *x.Ascii + } + return "" +} + +func (x *FlowSnmpv2CVariableBindingStringValue) GetRaw() string { + if x != nil && x.Raw != nil { + return *x.Raw + } + return "" +} + +// RSVP packet header as defined in RFC2205 and RFC3209. Currently only supported message +// type is Path with mandatory objects and sub-objects. +type FlowRsvp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The Length contains the total length of the subobject in bytes, including the Type - // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. - Length *FlowRSVPRouteRecordLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` + // RSVP Protocol Version. + // default = 1 + Version *uint32 `protobuf:"varint,1,opt,name=version,proto3,oneof" json:"version,omitempty"` + // Flag, 0x01-0x08: Reserved. + // default = Flag.Enum.not_refresh_reduction_capable + Flag *FlowRsvp_Flag_Enum `protobuf:"varint,2,opt,name=flag,proto3,enum=otg.FlowRsvp_Flag_Enum,oneof" json:"flag,omitempty"` // Description missing in models - Flags *PatternFlowRSVPPathRecordRouteType1LabelFlags `protobuf:"bytes,2,opt,name=flags,proto3" json:"flags,omitempty"` + RsvpChecksum *PatternFlowRsvpRsvpChecksum `protobuf:"bytes,3,opt,name=rsvp_checksum,json=rsvpChecksum,proto3" json:"rsvp_checksum,omitempty"` // Description missing in models - CType *PatternFlowRSVPPathRecordRouteType1LabelCType `protobuf:"bytes,3,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` - // The contents of the Label Object. Copied from the Label Object. - Label *FlowRSVPPathRecordRouteLabel `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` + TimeToLive *PatternFlowRsvpTimeToLive `protobuf:"bytes,4,opt,name=time_to_live,json=timeToLive,proto3" json:"time_to_live,omitempty"` + // Description missing in models + Reserved *PatternFlowRsvpReserved `protobuf:"bytes,5,opt,name=reserved,proto3" json:"reserved,omitempty"` + // The sum of the lengths of the common header and all objects included in the message. + RsvpLength *FlowRSVPLength `protobuf:"bytes,6,opt,name=rsvp_length,json=rsvpLength,proto3" json:"rsvp_length,omitempty"` + // An 8-bit number that identifies the function of the RSVP message. There are aound + // 20 message types defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-2 + // . Among these presently supported is Path(value: 1) message type. + MessageType *FlowRSVPMessage `protobuf:"bytes,7,opt,name=message_type,json=messageType,proto3" json:"message_type,omitempty"` } -func (x *FlowRSVPPathRecordRouteType1Label) Reset() { - *x = FlowRSVPPathRecordRouteType1Label{} +func (x *FlowRsvp) Reset() { + *x = FlowRsvp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[315] + mi := &file_otg_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathRecordRouteType1Label) String() string { +func (x *FlowRsvp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathRecordRouteType1Label) ProtoMessage() {} +func (*FlowRsvp) ProtoMessage() {} -func (x *FlowRSVPPathRecordRouteType1Label) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[315] +func (x *FlowRsvp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50498,74 +50913,96 @@ func (x *FlowRSVPPathRecordRouteType1Label) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathRecordRouteType1Label.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRecordRouteType1Label) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{315} +// Deprecated: Use FlowRsvp.ProtoReflect.Descriptor instead. +func (*FlowRsvp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{307} } -func (x *FlowRSVPPathRecordRouteType1Label) GetLength() *FlowRSVPRouteRecordLength { +func (x *FlowRsvp) GetVersion() uint32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *FlowRsvp) GetFlag() FlowRsvp_Flag_Enum { + if x != nil && x.Flag != nil { + return *x.Flag + } + return FlowRsvp_Flag_unspecified +} + +func (x *FlowRsvp) GetRsvpChecksum() *PatternFlowRsvpRsvpChecksum { if x != nil { - return x.Length + return x.RsvpChecksum } return nil } -func (x *FlowRSVPPathRecordRouteType1Label) GetFlags() *PatternFlowRSVPPathRecordRouteType1LabelFlags { +func (x *FlowRsvp) GetTimeToLive() *PatternFlowRsvpTimeToLive { if x != nil { - return x.Flags + return x.TimeToLive } return nil } -func (x *FlowRSVPPathRecordRouteType1Label) GetCType() *PatternFlowRSVPPathRecordRouteType1LabelCType { +func (x *FlowRsvp) GetReserved() *PatternFlowRsvpReserved { if x != nil { - return x.CType + return x.Reserved } return nil } -func (x *FlowRSVPPathRecordRouteType1Label) GetLabel() *FlowRSVPPathRecordRouteLabel { +func (x *FlowRsvp) GetRsvpLength() *FlowRSVPLength { if x != nil { - return x.Label + return x.RsvpLength + } + return nil +} + +func (x *FlowRsvp) GetMessageType() *FlowRSVPMessage { + if x != nil { + return x.MessageType } return nil } // Description missing in models -type FlowRSVPPathRecordRouteLabel struct { +type FlowRSVPLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 32 bit integer or hex value. - // default = Choice.Enum.as_integer - Choice *FlowRSVPPathRecordRouteLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathRecordRouteLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 0 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // default = 16 - AsInteger *uint32 `protobuf:"varint,2,opt,name=as_integer,json=asInteger,proto3,oneof" json:"as_integer,omitempty"` - // Value of the this field should not excced 4 bytes. Maximum length of this attribute - // is 8 (4 * 2 hex character per byte). - // default = 10 - AsHex *string `protobuf:"bytes,3,opt,name=as_hex,json=asHex,proto3,oneof" json:"as_hex,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowRSVPPathRecordRouteLabel) Reset() { - *x = FlowRSVPPathRecordRouteLabel{} +func (x *FlowRSVPLength) Reset() { + *x = FlowRSVPLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[316] + mi := &file_otg_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathRecordRouteLabel) String() string { +func (x *FlowRSVPLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathRecordRouteLabel) ProtoMessage() {} +func (*FlowRSVPLength) ProtoMessage() {} -func (x *FlowRSVPPathRecordRouteLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[316] +func (x *FlowRSVPLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50576,68 +51013,62 @@ func (x *FlowRSVPPathRecordRouteLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathRecordRouteLabel.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRecordRouteLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{316} +// Deprecated: Use FlowRSVPLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308} } -func (x *FlowRSVPPathRecordRouteLabel) GetChoice() FlowRSVPPathRecordRouteLabel_Choice_Enum { +func (x *FlowRSVPLength) GetChoice() FlowRSVPLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPPathRecordRouteLabel_Choice_unspecified + return FlowRSVPLength_Choice_unspecified } -func (x *FlowRSVPPathRecordRouteLabel) GetAsInteger() uint32 { - if x != nil && x.AsInteger != nil { - return *x.AsInteger - } - return 0 +func (x *FlowRSVPLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 } -func (x *FlowRSVPPathRecordRouteLabel) GetAsHex() string { - if x != nil && x.AsHex != nil { - return *x.AsHex +func (x *FlowRSVPLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } - return "" + return 0 } // Description missing in models -type FlowRSVPRouteRecordLength struct { +type FlowRSVPMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // auto or configured value. - // default = Choice.Enum.auto - Choice *FlowRSVPRouteRecordLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPRouteRecordLength_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation will provide a system generated value for this property. - // If the OTG implementation is unable to generate a value the default value must be - // used. - // default = 8 - Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // default = 8 - Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = Choice.Enum.path + Choice *FlowRSVPMessage_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPMessage_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Path *FlowRSVPPathMessage `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` } -func (x *FlowRSVPRouteRecordLength) Reset() { - *x = FlowRSVPRouteRecordLength{} +func (x *FlowRSVPMessage) Reset() { + *x = FlowRSVPMessage{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[317] + mi := &file_otg_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPRouteRecordLength) String() string { +func (x *FlowRSVPMessage) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPRouteRecordLength) ProtoMessage() {} +func (*FlowRSVPMessage) ProtoMessage() {} -func (x *FlowRSVPRouteRecordLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[317] +func (x *FlowRSVPMessage) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50648,69 +51079,56 @@ func (x *FlowRSVPRouteRecordLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPRouteRecordLength.ProtoReflect.Descriptor instead. -func (*FlowRSVPRouteRecordLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317} +// Deprecated: Use FlowRSVPMessage.ProtoReflect.Descriptor instead. +func (*FlowRSVPMessage) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{309} } -func (x *FlowRSVPRouteRecordLength) GetChoice() FlowRSVPRouteRecordLength_Choice_Enum { +func (x *FlowRSVPMessage) GetChoice() FlowRSVPMessage_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRSVPRouteRecordLength_Choice_unspecified -} - -func (x *FlowRSVPRouteRecordLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 + return FlowRSVPMessage_Choice_unspecified } -func (x *FlowRSVPRouteRecordLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowRSVPMessage) GetPath() *FlowRSVPPathMessage { + if x != nil { + return x.Path } - return 0 + return nil } -// Custom packet header -type FlowRSVPPathObjectsCustom struct { +// Path message requires the following list of objects in order as defined in https://www.rfc-editor.org/rfc/rfc3209.html#page-15: +// 1. SESSION 2. RSVP_HOP 3. TIME_VALUES 4. EXPLICIT_ROUTE [optional] 5. LABEL_REQUEST +// 6. SESSION_ATTRIBUTE [optional] 7. SENDER_TEMPLATE 8. SENDER_TSPEC 9. RECORD_ROUTE +// [optional] +type FlowRSVPPathMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Type *PatternFlowRSVPPathObjectsCustomType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - // Description missing in models - Length *FlowRSVPObjectLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` - // A custom packet header defined as a string of hex bytes. The string MUST contain - // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be - // discarded. Value of the this field should not excced 65525 bytes since maximum 65528 - // bytes can be added as object-contents in RSVP header. For type and length requires - // 3 bytes, hence maximum of 65524 bytes are expected. Maximum length of this attribute - // is 131050 (65525 * 2 hex character per byte). - // default = 0000 - Bytes *string `protobuf:"bytes,3,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // Path message requires atleast SESSION, RSVP_HOP, TIME_VALUES, LABEL_REQUEST, SENDER_TEMPLATE + // and SENDER_TSPEC objects in order. + Objects []*FlowRSVPPathObjects `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` } -func (x *FlowRSVPPathObjectsCustom) Reset() { - *x = FlowRSVPPathObjectsCustom{} +func (x *FlowRSVPPathMessage) Reset() { + *x = FlowRSVPPathMessage{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[318] + mi := &file_otg_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsCustom) String() string { +func (x *FlowRSVPPathMessage) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsCustom) ProtoMessage() {} +func (*FlowRSVPPathMessage) ProtoMessage() {} -func (x *FlowRSVPPathObjectsCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[318] +func (x *FlowRSVPPathMessage) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50721,69 +51139,46 @@ func (x *FlowRSVPPathObjectsCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsCustom.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{318} -} - -func (x *FlowRSVPPathObjectsCustom) GetType() *PatternFlowRSVPPathObjectsCustomType { - if x != nil { - return x.Type - } - return nil +// Deprecated: Use FlowRSVPPathMessage.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathMessage) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{310} } -func (x *FlowRSVPPathObjectsCustom) GetLength() *FlowRSVPObjectLength { +func (x *FlowRSVPPathMessage) GetObjects() []*FlowRSVPPathObjects { if x != nil { - return x.Length + return x.Objects } return nil } -func (x *FlowRSVPPathObjectsCustom) GetBytes() string { - if x != nil && x.Bytes != nil { - return *x.Bytes - } - return "" -} - -// The frame size which overrides the total length of the packet -type FlowSize struct { +// Every RSVP object encapsulated in an RSVP message consists of a 32-bit word header +// and the object's contents. +type FlowRSVPPathObjects struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.fixed - Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 64 - Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` - // Description missing in models - Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3" json:"random,omitempty"` - // Description missing in models - WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3" json:"weight_pairs,omitempty"` + ClassNum *FlowRSVPPathObjectsClass `protobuf:"bytes,1,opt,name=class_num,json=classNum,proto3" json:"class_num,omitempty"` } -func (x *FlowSize) Reset() { - *x = FlowSize{} +func (x *FlowRSVPPathObjects) Reset() { + *x = FlowRSVPPathObjects{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[319] + mi := &file_otg_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize) String() string { +func (x *FlowRSVPPathObjects) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize) ProtoMessage() {} +func (*FlowRSVPPathObjects) ProtoMessage() {} -func (x *FlowSize) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[319] +func (x *FlowRSVPPathObjects) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50794,81 +51189,54 @@ func (x *FlowSize) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. -func (*FlowSize) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{319} -} - -func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowSize_Choice_unspecified -} - -func (x *FlowSize) GetFixed() uint32 { - if x != nil && x.Fixed != nil { - return *x.Fixed - } - return 0 -} - -func (x *FlowSize) GetIncrement() *FlowSizeIncrement { - if x != nil { - return x.Increment - } - return nil -} - -func (x *FlowSize) GetRandom() *FlowSizeRandom { - if x != nil { - return x.Random - } - return nil +// Deprecated: Use FlowRSVPPathObjects.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjects) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{311} } -func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { +func (x *FlowRSVPPathObjects) GetClassNum() *FlowRSVPPathObjectsClass { if x != nil { - return x.WeightPairs + return x.ClassNum } return nil } -// Frame size that increments from a starting size to -// an ending size incrementing by a step size. -type FlowSizeIncrement struct { +// Description missing in models +type FlowRSVPObjectLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Starting frame size in bytes - // default = 64 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Ending frame size in bytes - // default = 1518 - End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` - // Step frame size in bytes - // default = 1 - Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPObjectLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPObjectLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 4 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + // default = 4 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowSizeIncrement) Reset() { - *x = FlowSizeIncrement{} +func (x *FlowRSVPObjectLength) Reset() { + *x = FlowRSVPObjectLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[320] + mi := &file_otg_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeIncrement) String() string { +func (x *FlowRSVPObjectLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeIncrement) ProtoMessage() {} +func (*FlowRSVPObjectLength) ProtoMessage() {} -func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[320] +func (x *FlowRSVPObjectLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50879,63 +51247,85 @@ func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. -func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{320} +// Deprecated: Use FlowRSVPObjectLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPObjectLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312} } -func (x *FlowSizeIncrement) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *FlowRSVPObjectLength) GetChoice() FlowRSVPObjectLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return FlowRSVPObjectLength_Choice_unspecified } -func (x *FlowSizeIncrement) GetEnd() uint32 { - if x != nil && x.End != nil { - return *x.End +func (x *FlowRSVPObjectLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } return 0 } -func (x *FlowSizeIncrement) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *FlowRSVPObjectLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -// Random frame size from a min value to a max value. -type FlowSizeRandom struct { +// The class number is used to identify the class of an object. Defined in https://www.iana.org/assignments/rsvp-parameters/rsvp-parameters.xhtml#rsvp-parameters-4 +// . Curently supported class numbers are for Path message type. Path message: Supported +// Class numbers and it's value: SESSION: 1, RSVP_HOP: 3, TIME_VALUES: 5, EXPLICIT_ROUTE: +// 20, LABEL_REQUEST: 19, SESSION_ATTRIBUTE: 207, SENDER_TEMPLATE: 11, SENDER_TSPEC: +// 12, RECORD_ROUTE: 21, Custom: User defined bytes based on class and c-types not supported +// in above options. +type FlowRSVPPathObjectsClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // required = true + Choice *FlowRSVPPathObjectsClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsClass_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1518 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + Session *FlowRSVPPathObjectsClassSession `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"` + // Description missing in models + RsvpHop *FlowRSVPPathObjectsClassRsvpHop `protobuf:"bytes,3,opt,name=rsvp_hop,json=rsvpHop,proto3" json:"rsvp_hop,omitempty"` + // Description missing in models + TimeValues *FlowRSVPPathObjectsClassTimeValues `protobuf:"bytes,4,opt,name=time_values,json=timeValues,proto3" json:"time_values,omitempty"` + // Description missing in models + ExplicitRoute *FlowRSVPPathObjectsClassExplicitRoute `protobuf:"bytes,5,opt,name=explicit_route,json=explicitRoute,proto3" json:"explicit_route,omitempty"` + // Description missing in models + LabelRequest *FlowRSVPPathObjectsClassLabelRequest `protobuf:"bytes,6,opt,name=label_request,json=labelRequest,proto3" json:"label_request,omitempty"` + // Description missing in models + SessionAttribute *FlowRSVPPathObjectsClassSessionAttribute `protobuf:"bytes,7,opt,name=session_attribute,json=sessionAttribute,proto3" json:"session_attribute,omitempty"` + // Description missing in models + SenderTemplate *FlowRSVPPathObjectsClassSenderTemplate `protobuf:"bytes,8,opt,name=sender_template,json=senderTemplate,proto3" json:"sender_template,omitempty"` + // Description missing in models + SenderTspec *FlowRSVPPathObjectsClassSenderTspec `protobuf:"bytes,9,opt,name=sender_tspec,json=senderTspec,proto3" json:"sender_tspec,omitempty"` + // Description missing in models + RecordRoute *FlowRSVPPathObjectsClassRecordRoute `protobuf:"bytes,10,opt,name=record_route,json=recordRoute,proto3" json:"record_route,omitempty"` + // Description missing in models + Custom *FlowRSVPPathObjectsCustom `protobuf:"bytes,11,opt,name=custom,proto3" json:"custom,omitempty"` } -func (x *FlowSizeRandom) Reset() { - *x = FlowSizeRandom{} +func (x *FlowRSVPPathObjectsClass) Reset() { + *x = FlowRSVPPathObjectsClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[321] + mi := &file_otg_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeRandom) String() string { +func (x *FlowRSVPPathObjectsClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeRandom) ProtoMessage() {} +func (*FlowRSVPPathObjectsClass) ProtoMessage() {} -func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[321] +func (x *FlowRSVPPathObjectsClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -50946,141 +51336,118 @@ func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. -func (*FlowSizeRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{321} +// Deprecated: Use FlowRSVPPathObjectsClass.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{313} } -func (x *FlowSizeRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min +func (x *FlowRSVPPathObjectsClass) GetChoice() FlowRSVPPathObjectsClass_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return FlowRSVPPathObjectsClass_Choice_unspecified } -func (x *FlowSizeRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max +func (x *FlowRSVPPathObjectsClass) GetSession() *FlowRSVPPathObjectsClassSession { + if x != nil { + return x.Session } - return 0 + return nil } -// Frame size distribution, defined as pairs (including IMIX distribution). -// Frames are randomly generated such that the proportion of each frame size out of -// the total number of frames -// are matching with the weight value of the pair. However, as with any -// other probability -// distribution, the sample distribution is close to theoretical value only if the size -// of the sample is reasonably large. -// When the number of frames is very low the transmitted frames may not come close to -// the ratio described in the weight. -type FlowSizeWeightPairs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.predefined - Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` - // Specify predefined frame size distribution pairs (including IMIX distribution). - // - // The available predefined distribution pairs are: - // - IMIX (64:7, 570:4, and 1518:1) - // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) - // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) - // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) - // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) - // default = Predefined.Enum.imix - Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` - // Description missing in models - Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` +func (x *FlowRSVPPathObjectsClass) GetRsvpHop() *FlowRSVPPathObjectsClassRsvpHop { + if x != nil { + return x.RsvpHop + } + return nil } -func (x *FlowSizeWeightPairs) Reset() { - *x = FlowSizeWeightPairs{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[322] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowRSVPPathObjectsClass) GetTimeValues() *FlowRSVPPathObjectsClassTimeValues { + if x != nil { + return x.TimeValues } + return nil } -func (x *FlowSizeWeightPairs) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowRSVPPathObjectsClass) GetExplicitRoute() *FlowRSVPPathObjectsClassExplicitRoute { + if x != nil { + return x.ExplicitRoute + } + return nil } -func (*FlowSizeWeightPairs) ProtoMessage() {} +func (x *FlowRSVPPathObjectsClass) GetLabelRequest() *FlowRSVPPathObjectsClassLabelRequest { + if x != nil { + return x.LabelRequest + } + return nil +} -func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[322] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowRSVPPathObjectsClass) GetSessionAttribute() *FlowRSVPPathObjectsClassSessionAttribute { + if x != nil { + return x.SessionAttribute } - return mi.MessageOf(x) + return nil } -// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{322} +func (x *FlowRSVPPathObjectsClass) GetSenderTemplate() *FlowRSVPPathObjectsClassSenderTemplate { + if x != nil { + return x.SenderTemplate + } + return nil } -func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathObjectsClass) GetSenderTspec() *FlowRSVPPathObjectsClassSenderTspec { + if x != nil { + return x.SenderTspec } - return FlowSizeWeightPairs_Choice_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { - if x != nil && x.Predefined != nil { - return *x.Predefined +func (x *FlowRSVPPathObjectsClass) GetRecordRoute() *FlowRSVPPathObjectsClassRecordRoute { + if x != nil { + return x.RecordRoute } - return FlowSizeWeightPairs_Predefined_unspecified + return nil } -func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { +func (x *FlowRSVPPathObjectsClass) GetCustom() *FlowRSVPPathObjectsCustom { if x != nil { return x.Custom } return nil } -// Custom frame size distribution pair. -type FlowSizeWeightPairsCustom struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassSession struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The size of the frame (in bytes) for this weight pair. - // default = 64 - Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` - // Weight assigned to the corresponding frame size in this weight pair. - // Higher weight means more packets. - // default = 1 - Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + CType *FlowRSVPPathObjectsSessionCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *FlowSizeWeightPairsCustom) Reset() { - *x = FlowSizeWeightPairsCustom{} +func (x *FlowRSVPPathObjectsClassSession) Reset() { + *x = FlowRSVPPathObjectsClassSession{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[323] + mi := &file_otg_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairsCustom) String() string { +func (x *FlowRSVPPathObjectsClassSession) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairsCustom) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassSession) ProtoMessage() {} -func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[323] +func (x *FlowRSVPPathObjectsClassSession) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51091,71 +51458,56 @@ func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. -func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{323} +// Deprecated: Use FlowRSVPPathObjectsClassSession.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassSession) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{314} } -func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { - if x != nil && x.Size != nil { - return *x.Size +func (x *FlowRSVPPathObjectsClassSession) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return 0 + return nil } -func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { - if x != nil && x.Weight != nil { - return *x.Weight +func (x *FlowRSVPPathObjectsClassSession) GetCType() *FlowRSVPPathObjectsSessionCType { + if x != nil { + return x.CType } - return 0 + return nil } -// The rate of packet transmission -type FlowRate struct { +// The body of an object corresponding to the class number and c-type. Currently supported +// c-type for SESSION object is LSP Tunnel IPv4 (7). +type FlowRSVPPathObjectsSessionCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The available types of flow rate. - // default = Choice.Enum.pps - Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` - // Packets per second. - // default = 1000 - Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` - // Bits per second. - // default = 1000000000 - Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` - // Kilobits per second. - // default = 1000000 - Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` - // Megabits per second. - // default = 1000 - Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` - // Gigabits per second. - // default = 1 - Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` - // The percentage of a port location's available bandwidth. - // default = 100 - Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` + // Description missing in models + // default = Choice.Enum.lsp_tunnel_ipv4 + Choice *FlowRSVPPathObjectsSessionCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSessionCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LspTunnelIpv4 *FlowRSVPPathSessionLspTunnelIpv4 `protobuf:"bytes,2,opt,name=lsp_tunnel_ipv4,json=lspTunnelIpv4,proto3" json:"lsp_tunnel_ipv4,omitempty"` } -func (x *FlowRate) Reset() { - *x = FlowRate{} +func (x *FlowRSVPPathObjectsSessionCType) Reset() { + *x = FlowRSVPPathObjectsSessionCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[324] + mi := &file_otg_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRate) String() string { +func (x *FlowRSVPPathObjectsSessionCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate) ProtoMessage() {} +func (*FlowRSVPPathObjectsSessionCType) ProtoMessage() {} -func (x *FlowRate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[324] +func (x *FlowRSVPPathObjectsSessionCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51166,96 +51518,61 @@ func (x *FlowRate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. -func (*FlowRate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{324} +// Deprecated: Use FlowRSVPPathObjectsSessionCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSessionCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315} } -func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { +func (x *FlowRSVPPathObjectsSessionCType) GetChoice() FlowRSVPPathObjectsSessionCType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowRate_Choice_unspecified -} - -func (x *FlowRate) GetPps() uint64 { - if x != nil && x.Pps != nil { - return *x.Pps - } - return 0 -} - -func (x *FlowRate) GetBps() uint64 { - if x != nil && x.Bps != nil { - return *x.Bps - } - return 0 -} - -func (x *FlowRate) GetKbps() uint64 { - if x != nil && x.Kbps != nil { - return *x.Kbps - } - return 0 -} - -func (x *FlowRate) GetMbps() uint64 { - if x != nil && x.Mbps != nil { - return *x.Mbps - } - return 0 -} - -func (x *FlowRate) GetGbps() uint32 { - if x != nil && x.Gbps != nil { - return *x.Gbps - } - return 0 + return FlowRSVPPathObjectsSessionCType_Choice_unspecified } -func (x *FlowRate) GetPercentage() float32 { - if x != nil && x.Percentage != nil { - return *x.Percentage +func (x *FlowRSVPPathObjectsSessionCType) GetLspTunnelIpv4() *FlowRSVPPathSessionLspTunnelIpv4 { + if x != nil { + return x.LspTunnelIpv4 } - return 0 + return nil } -// A container for different transmit durations. -type FlowDuration struct { +// Class = SESSION, LSP_TUNNEL_IPv4 C-Type = 7. +type FlowRSVPPathSessionLspTunnelIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A choice used to determine the type of duration. - // default = Choice.Enum.continuous - Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3" json:"fixed_packets,omitempty"` // Description missing in models - FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3" json:"fixed_seconds,omitempty"` + Ipv4TunnelEndPointAddress *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress `protobuf:"bytes,1,opt,name=ipv4_tunnel_end_point_address,json=ipv4TunnelEndPointAddress,proto3" json:"ipv4_tunnel_end_point_address,omitempty"` // Description missing in models - Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3" json:"burst,omitempty"` + Reserved *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved `protobuf:"bytes,2,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3" json:"continuous,omitempty"` + TunnelId *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId `protobuf:"bytes,3,opt,name=tunnel_id,json=tunnelId,proto3" json:"tunnel_id,omitempty"` + // A 32-bit identifier used in the SESSION that remains constant over the life of the + // tunnel. Normally set to all zeros. Ingress nodes that wish to narrow the scope of + // a SESSION to the ingress-egress pair may place their IPv4 address here as a globally + // unique identifier. + ExtendedTunnelId *FlowRSVPPathSessionExtTunnelId `protobuf:"bytes,4,opt,name=extended_tunnel_id,json=extendedTunnelId,proto3" json:"extended_tunnel_id,omitempty"` } -func (x *FlowDuration) Reset() { - *x = FlowDuration{} +func (x *FlowRSVPPathSessionLspTunnelIpv4) Reset() { + *x = FlowRSVPPathSessionLspTunnelIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[325] + mi := &file_otg_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDuration) String() string { +func (x *FlowRSVPPathSessionLspTunnelIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration) ProtoMessage() {} +func (*FlowRSVPPathSessionLspTunnelIpv4) ProtoMessage() {} -func (x *FlowDuration) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[325] +func (x *FlowRSVPPathSessionLspTunnelIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51266,76 +51583,71 @@ func (x *FlowDuration) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. -func (*FlowDuration) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{325} -} - -func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowDuration_Choice_unspecified +// Deprecated: Use FlowRSVPPathSessionLspTunnelIpv4.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSessionLspTunnelIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{316} } -func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { +func (x *FlowRSVPPathSessionLspTunnelIpv4) GetIpv4TunnelEndPointAddress() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress { if x != nil { - return x.FixedPackets + return x.Ipv4TunnelEndPointAddress } return nil } -func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { +func (x *FlowRSVPPathSessionLspTunnelIpv4) GetReserved() *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved { if x != nil { - return x.FixedSeconds + return x.Reserved } return nil } -func (x *FlowDuration) GetBurst() *FlowBurst { +func (x *FlowRSVPPathSessionLspTunnelIpv4) GetTunnelId() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId { if x != nil { - return x.Burst + return x.TunnelId } return nil } -func (x *FlowDuration) GetContinuous() *FlowContinuous { +func (x *FlowRSVPPathSessionLspTunnelIpv4) GetExtendedTunnelId() *FlowRSVPPathSessionExtTunnelId { if x != nil { - return x.Continuous + return x.ExtendedTunnelId } return nil } -// Transmit will be continuous and will not stop automatically. -type FlowContinuous struct { +// Description missing in models +type FlowRSVPPathSessionExtTunnelId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // 32 bit integer or IPv4 address. + // default = Choice.Enum.as_integer + Choice *FlowRSVPPathSessionExtTunnelId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathSessionExtTunnelId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` + AsInteger *PatternFlowRSVPPathSessionExtTunnelIdAsInteger `protobuf:"bytes,2,opt,name=as_integer,json=asInteger,proto3" json:"as_integer,omitempty"` + // Description missing in models + AsIpv4 *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 `protobuf:"bytes,3,opt,name=as_ipv4,json=asIpv4,proto3" json:"as_ipv4,omitempty"` } -func (x *FlowContinuous) Reset() { - *x = FlowContinuous{} +func (x *FlowRSVPPathSessionExtTunnelId) Reset() { + *x = FlowRSVPPathSessionExtTunnelId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[326] + mi := &file_otg_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowContinuous) String() string { +func (x *FlowRSVPPathSessionExtTunnelId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowContinuous) ProtoMessage() {} +func (*FlowRSVPPathSessionExtTunnelId) ProtoMessage() {} -func (x *FlowContinuous) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[326] +func (x *FlowRSVPPathSessionExtTunnelId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51346,66 +51658,62 @@ func (x *FlowContinuous) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. -func (*FlowContinuous) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{326} +// Deprecated: Use FlowRSVPPathSessionExtTunnelId.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSessionExtTunnelId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{317} } -func (x *FlowContinuous) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowRSVPPathSessionExtTunnelId) GetChoice() FlowRSVPPathSessionExtTunnelId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return FlowRSVPPathSessionExtTunnelId_Choice_unspecified } -func (x *FlowContinuous) GetDelay() *FlowDelay { +func (x *FlowRSVPPathSessionExtTunnelId) GetAsInteger() *PatternFlowRSVPPathSessionExtTunnelIdAsInteger { if x != nil { - return x.Delay + return x.AsInteger } return nil } -// The optional container to specify the delay before starting -// transmission of packets. -type FlowDelay struct { +func (x *FlowRSVPPathSessionExtTunnelId) GetAsIpv4() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 { + if x != nil { + return x.AsIpv4 + } + return nil +} + +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassRsvpHop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - // default = Choice.Enum.bytes - Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The delay before starting transmission of packets. - // A value of 0 indicates no delay. - // default = 0 - Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` + CType *FlowRSVPPathObjectsRsvpHopCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *FlowDelay) Reset() { - *x = FlowDelay{} +func (x *FlowRSVPPathObjectsClassRsvpHop) Reset() { + *x = FlowRSVPPathObjectsClassRsvpHop{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[327] + mi := &file_otg_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDelay) String() string { +func (x *FlowRSVPPathObjectsClassRsvpHop) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDelay) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassRsvpHop) ProtoMessage() {} -func (x *FlowDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[327] +func (x *FlowRSVPPathObjectsClassRsvpHop) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51416,72 +51724,55 @@ func (x *FlowDelay) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. -func (*FlowDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{327} -} - -func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowDelay_Choice_unspecified -} - -func (x *FlowDelay) GetBytes() float32 { - if x != nil && x.Bytes != nil { - return *x.Bytes - } - return 0 +// Deprecated: Use FlowRSVPPathObjectsClassRsvpHop.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassRsvpHop) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{318} } -func (x *FlowDelay) GetNanoseconds() float32 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds +func (x *FlowRSVPPathObjectsClassRsvpHop) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return 0 + return nil } -func (x *FlowDelay) GetMicroseconds() float32 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowRSVPPathObjectsClassRsvpHop) GetCType() *FlowRSVPPathObjectsRsvpHopCType { + if x != nil { + return x.CType } - return 0 + return nil } -// Transmit a fixed number of packets after which the flow will stop. -type FlowFixedPackets struct { +// Object for RSVP_HOP class. Currently supported c-type is IPv4 (1). +type FlowRSVPPathObjectsRsvpHopCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of packets. - // default = 1 - Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` + // default = Choice.Enum.ipv4 + Choice *FlowRSVPPathObjectsRsvpHopCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRsvpHopCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4 *FlowRSVPPathRsvpHopIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` } -func (x *FlowFixedPackets) Reset() { - *x = FlowFixedPackets{} +func (x *FlowRSVPPathObjectsRsvpHopCType) Reset() { + *x = FlowRSVPPathObjectsRsvpHopCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[328] + mi := &file_otg_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedPackets) String() string { +func (x *FlowRSVPPathObjectsRsvpHopCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedPackets) ProtoMessage() {} +func (*FlowRSVPPathObjectsRsvpHopCType) ProtoMessage() {} -func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[328] +func (x *FlowRSVPPathObjectsRsvpHopCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51492,65 +51783,54 @@ func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. -func (*FlowFixedPackets) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{328} -} - -func (x *FlowFixedPackets) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets - } - return 0 +// Deprecated: Use FlowRSVPPathObjectsRsvpHopCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRsvpHopCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{319} } -func (x *FlowFixedPackets) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowRSVPPathObjectsRsvpHopCType) GetChoice() FlowRSVPPathObjectsRsvpHopCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return FlowRSVPPathObjectsRsvpHopCType_Choice_unspecified } -func (x *FlowFixedPackets) GetDelay() *FlowDelay { +func (x *FlowRSVPPathObjectsRsvpHopCType) GetIpv4() *FlowRSVPPathRsvpHopIpv4 { if x != nil { - return x.Delay + return x.Ipv4 } return nil } -// Transmit for a fixed number of seconds after which the flow will stop. -type FlowFixedSeconds struct { +// IPv4 RSVP_HOP object: Class = 3, C-Type = 1 +type FlowRSVPPathRsvpHopIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Stop transmit of the flow after this number of seconds. - // default = 1 - Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` + Ipv4Address *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + // Description missing in models + LogicalInterfaceHandle *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle `protobuf:"bytes,2,opt,name=logical_interface_handle,json=logicalInterfaceHandle,proto3" json:"logical_interface_handle,omitempty"` } -func (x *FlowFixedSeconds) Reset() { - *x = FlowFixedSeconds{} +func (x *FlowRSVPPathRsvpHopIpv4) Reset() { + *x = FlowRSVPPathRsvpHopIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[329] + mi := &file_otg_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowFixedSeconds) String() string { +func (x *FlowRSVPPathRsvpHopIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowFixedSeconds) ProtoMessage() {} +func (*FlowRSVPPathRsvpHopIpv4) ProtoMessage() {} -func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[329] +func (x *FlowRSVPPathRsvpHopIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51561,71 +51841,55 @@ func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. -func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{329} -} - -func (x *FlowFixedSeconds) GetSeconds() float32 { - if x != nil && x.Seconds != nil { - return *x.Seconds - } - return 0 +// Deprecated: Use FlowRSVPPathRsvpHopIpv4.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRsvpHopIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{320} } -func (x *FlowFixedSeconds) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowRSVPPathRsvpHopIpv4) GetIpv4Address() *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address { + if x != nil { + return x.Ipv4Address } - return 0 + return nil } -func (x *FlowFixedSeconds) GetDelay() *FlowDelay { +func (x *FlowRSVPPathRsvpHopIpv4) GetLogicalInterfaceHandle() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle { if x != nil { - return x.Delay + return x.LogicalInterfaceHandle } return nil } -// Transmits continuous or fixed burst of packets. -// For continuous burst of packets, it will not automatically stop. -// For fixed burst of packets, it will stop after transmitting fixed number of bursts. -type FlowBurst struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassTimeValues struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The number of packet bursts transmitted per flow. - // A value of 0 implies continuous burst of packets. - // default = 0 - Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` - // The number of packets transmitted per burst. - // default = 1 - Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` - // The minimum gap between packets expressed as bytes. - // default = 12 - Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3" json:"inter_burst_gap,omitempty"` + CType *FlowRSVPPathObjectsTimeValuesCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *FlowBurst) Reset() { - *x = FlowBurst{} +func (x *FlowRSVPPathObjectsClassTimeValues) Reset() { + *x = FlowRSVPPathObjectsClassTimeValues{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[330] + mi := &file_otg_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowBurst) String() string { +func (x *FlowRSVPPathObjectsClassTimeValues) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowBurst) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassTimeValues) ProtoMessage() {} -func (x *FlowBurst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[330] +func (x *FlowRSVPPathObjectsClassTimeValues) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51636,79 +51900,55 @@ func (x *FlowBurst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. -func (*FlowBurst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{330} -} - -func (x *FlowBurst) GetBursts() uint32 { - if x != nil && x.Bursts != nil { - return *x.Bursts - } - return 0 -} - -func (x *FlowBurst) GetPackets() uint32 { - if x != nil && x.Packets != nil { - return *x.Packets - } - return 0 +// Deprecated: Use FlowRSVPPathObjectsClassTimeValues.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassTimeValues) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{321} } -func (x *FlowBurst) GetGap() uint32 { - if x != nil && x.Gap != nil { - return *x.Gap +func (x *FlowRSVPPathObjectsClassTimeValues) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return 0 + return nil } -func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { +func (x *FlowRSVPPathObjectsClassTimeValues) GetCType() *FlowRSVPPathObjectsTimeValuesCType { if x != nil { - return x.InterBurstGap + return x.CType } return nil } -// The optional container for specifying a gap between bursts. -type FlowDurationInterBurstGap struct { +// Object for TIME_VALUES class. Currently supported c-type is Type 1 Time Value (1). +type FlowRSVPPathObjectsTimeValuesCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of inter burst gap units. - // default = Choice.Enum.bytes - Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` - // The amount of time between bursts expressed in bytes. - // A value of 0 indicates no gap between bursts. - // default = 12 - Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` - // The amount of time between bursts expressed in nanoseconds. - // A value of 0 indicates no gap between bursts. - // default = 96 - Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` - // The amount of time between bursts expressed in microseconds. - // A value of 0 indicates no gap between bursts. - // default = 0.096 - Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` + // Description missing in models + // default = Choice.Enum.type_1 + Choice *FlowRSVPPathObjectsTimeValuesCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsTimeValuesCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Type_1 *FlowRSVPPathTimeValuesType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` } -func (x *FlowDurationInterBurstGap) Reset() { - *x = FlowDurationInterBurstGap{} +func (x *FlowRSVPPathObjectsTimeValuesCType) Reset() { + *x = FlowRSVPPathObjectsTimeValuesCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[331] + mi := &file_otg_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap) String() string { +func (x *FlowRSVPPathObjectsTimeValuesCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap) ProtoMessage() {} +func (*FlowRSVPPathObjectsTimeValuesCType) ProtoMessage() {} -func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[331] +func (x *FlowRSVPPathObjectsTimeValuesCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51719,81 +51959,52 @@ func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. -func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{331} +// Deprecated: Use FlowRSVPPathObjectsTimeValuesCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsTimeValuesCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{322} } -func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { +func (x *FlowRSVPPathObjectsTimeValuesCType) GetChoice() FlowRSVPPathObjectsTimeValuesCType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowDurationInterBurstGap_Choice_unspecified + return FlowRSVPPathObjectsTimeValuesCType_Choice_unspecified } -func (x *FlowDurationInterBurstGap) GetBytes() float64 { - if x != nil && x.Bytes != nil { - return *x.Bytes +func (x *FlowRSVPPathObjectsTimeValuesCType) GetType_1() *FlowRSVPPathTimeValuesType1 { + if x != nil { + return x.Type_1 } - return 0 + return nil } -func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { - if x != nil && x.Nanoseconds != nil { - return *x.Nanoseconds - } - return 0 +// TIME_VALUES Object: Class = 5, C-Type = 1 +type FlowRSVPPathTimeValuesType1 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + RefreshPeriodR *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR `protobuf:"bytes,1,opt,name=refresh_period_r,json=refreshPeriodR,proto3" json:"refresh_period_r,omitempty"` } -func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { - if x != nil && x.Microseconds != nil { - return *x.Microseconds +func (x *FlowRSVPPathTimeValuesType1) Reset() { + *x = FlowRSVPPathTimeValuesType1{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[323] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -// The optional container for configuring flow metrics. -type FlowMetrics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Enables flow metrics. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Enables additional flow metric loss calculation. - // default = False - Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Rx Tx ratio. - RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3" json:"rx_tx_ratio,omitempty"` - // Enables additional flow metric first and last timestamps. - // default = False - Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` - // Latency metrics. - Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3" json:"latency,omitempty"` - // Predefined metric tags - PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3" json:"predefined_metric_tags,omitempty"` -} - -func (x *FlowMetrics) Reset() { - *x = FlowMetrics{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[332] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FlowMetrics) String() string { +func (x *FlowRSVPPathTimeValuesType1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetrics) ProtoMessage() {} +func (*FlowRSVPPathTimeValuesType1) ProtoMessage() {} -func (x *FlowMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[332] +func (x *FlowRSVPPathTimeValuesType1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51804,99 +52015,48 @@ func (x *FlowMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. -func (*FlowMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{332} -} - -func (x *FlowMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable - } - return false -} - -func (x *FlowMetrics) GetLoss() bool { - if x != nil && x.Loss != nil { - return *x.Loss - } - return false -} - -func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { - if x != nil { - return x.RxTxRatio - } - return nil -} - -func (x *FlowMetrics) GetTimestamps() bool { - if x != nil && x.Timestamps != nil { - return *x.Timestamps - } - return false -} - -func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { - if x != nil { - return x.Latency - } - return nil +// Deprecated: Use FlowRSVPPathTimeValuesType1.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathTimeValuesType1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{323} } -func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { +func (x *FlowRSVPPathTimeValuesType1) GetRefreshPeriodR() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR { if x != nil { - return x.PredefinedMetricTags + return x.RefreshPeriodR } return nil } -// The optional container for per flow latency metric configuration. -type FlowLatencyMetrics struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassExplicitRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable latency metrics using timestamps. - // - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // Select the type of latency measurement. The different types of - // latency measurements are: - // - // store_forward: - // The time interval starting when the last bit of the frame leaves the - // sending port and ending when the first bit of the frame is seen on - // the receiving port (LIFO). This is based on the RFC 1242 standard. - // - // cut_through: - // The time interval starting when the first bit of the frame leaves - // the sending port and ending when the first bit of the frame is seen - // on the receiving port (FIFO). This is based on the RFC 1242 - // standard. - // default = Mode.Enum.store_forward - Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + CType *FlowRSVPPathObjectsClassExplicitRouteCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *FlowLatencyMetrics) Reset() { - *x = FlowLatencyMetrics{} +func (x *FlowRSVPPathObjectsClassExplicitRoute) Reset() { + *x = FlowRSVPPathObjectsClassExplicitRoute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[333] + mi := &file_otg_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics) String() string { +func (x *FlowRSVPPathObjectsClassExplicitRoute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassExplicitRoute) ProtoMessage() {} -func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[333] +func (x *FlowRSVPPathObjectsClassExplicitRoute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51907,56 +52067,55 @@ func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. -func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{333} +// Deprecated: Use FlowRSVPPathObjectsClassExplicitRoute.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassExplicitRoute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{324} } -func (x *FlowLatencyMetrics) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowRSVPPathObjectsClassExplicitRoute) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return false + return nil } -func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { - if x != nil && x.Mode != nil { - return *x.Mode +func (x *FlowRSVPPathObjectsClassExplicitRoute) GetCType() *FlowRSVPPathObjectsClassExplicitRouteCType { + if x != nil { + return x.CType } - return FlowLatencyMetrics_Mode_unspecified + return nil } -// List of predefined flow tracking options, outside packet fields, that can be enabled. -type FlowPredefinedTags struct { +// Object for EXPLICIT_ROUTE class and c-type is Type 1 Explicit Route (1). +type FlowRSVPPathObjectsClassExplicitRouteCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Enables Rx port or lag level disaggregation with predefined metrics tag name set - // as rx_name. - // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics - // response. - // default = False - RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` + // Description missing in models + // default = Choice.Enum.type_1 + Choice *FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Type_1 *FlowRSVPPathExplicitRouteType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` } -func (x *FlowPredefinedTags) Reset() { - *x = FlowPredefinedTags{} +func (x *FlowRSVPPathObjectsClassExplicitRouteCType) Reset() { + *x = FlowRSVPPathObjectsClassExplicitRouteCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[334] + mi := &file_otg_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowPredefinedTags) String() string { +func (x *FlowRSVPPathObjectsClassExplicitRouteCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowPredefinedTags) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassExplicitRouteCType) ProtoMessage() {} -func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[334] +func (x *FlowRSVPPathObjectsClassExplicitRouteCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -51967,67 +52126,53 @@ func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. -func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{334} +// Deprecated: Use FlowRSVPPathObjectsClassExplicitRouteCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassExplicitRouteCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{325} } -func (x *FlowPredefinedTags) GetRxName() bool { - if x != nil && x.RxName != nil { - return *x.RxName +func (x *FlowRSVPPathObjectsClassExplicitRouteCType) GetChoice() FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowRSVPPathObjectsClassExplicitRouteCType_Choice_unspecified } -// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to -// the Tx packets -// for the configured flow. It is a factor by which the Tx packet count is multiplied -// to calculate -// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate -// loss -// percentage of flow at aggregate level. -type FlowRxTxRatio struct { +func (x *FlowRSVPPathObjectsClassExplicitRouteCType) GetType_1() *FlowRSVPPathExplicitRouteType1 { + if x != nil { + return x.Type_1 + } + return nil +} + +// Type1 Explicit Route has subobjects. Currently supported subobjects are IPv4 prefix +// and Autonomous system number. +type FlowRSVPPathExplicitRouteType1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3" json:"rx_count,omitempty"` - // Should be a positive, non-zero value. The default value of 1, is when the Rx packet - // count across - // all ports is expected to match the Tx packet count. A custom integer value (>1) can - // be specified for - // loss calculation for cases when there are multiple destination addresses configured - // within one flow, - // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx - // side generates two - // packets from each source in 1:1 protection mode but only one of the two packets are - // received by the - // Rx port, we may need to specify a fractional value instead. - // default = 1.0 - Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + Subobjects []*FlowRSVPType1ExplicitRouteSubobjects `protobuf:"bytes,1,rep,name=subobjects,proto3" json:"subobjects,omitempty"` } -func (x *FlowRxTxRatio) Reset() { - *x = FlowRxTxRatio{} +func (x *FlowRSVPPathExplicitRouteType1) Reset() { + *x = FlowRSVPPathExplicitRouteType1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[335] + mi := &file_otg_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio) String() string { +func (x *FlowRSVPPathExplicitRouteType1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio) ProtoMessage() {} +func (*FlowRSVPPathExplicitRouteType1) ProtoMessage() {} -func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[335] +func (x *FlowRSVPPathExplicitRouteType1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52038,58 +52183,45 @@ func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{335} -} - -func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return FlowRxTxRatio_Choice_unspecified +// Deprecated: Use FlowRSVPPathExplicitRouteType1.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathExplicitRouteType1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{326} } -func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { +func (x *FlowRSVPPathExplicitRouteType1) GetSubobjects() []*FlowRSVPType1ExplicitRouteSubobjects { if x != nil { - return x.RxCount + return x.Subobjects } return nil } -func (x *FlowRxTxRatio) GetValue() float32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -// This is for cases where one copy of Tx packet is received on all Rx ports and so -// the sum total of Rx packets -// received across all Rx ports is a multiple of Rx port count and Tx packets. -type FlowRxTxRatioRxCount struct { +// Type is specific to a subobject. +type FlowRSVPType1ExplicitRouteSubobjects struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + Type *FlowRSVPType1ExplicitRouteSubobjectsType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` } -func (x *FlowRxTxRatioRxCount) Reset() { - *x = FlowRxTxRatioRxCount{} +func (x *FlowRSVPType1ExplicitRouteSubobjects) Reset() { + *x = FlowRSVPType1ExplicitRouteSubobjects{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[336] + mi := &file_otg_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatioRxCount) String() string { +func (x *FlowRSVPType1ExplicitRouteSubobjects) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatioRxCount) ProtoMessage() {} +func (*FlowRSVPType1ExplicitRouteSubobjects) ProtoMessage() {} -func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[336] +func (x *FlowRSVPType1ExplicitRouteSubobjects) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52100,47 +52232,50 @@ func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. -func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{336} +// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjects.ProtoReflect.Descriptor instead. +func (*FlowRSVPType1ExplicitRouteSubobjects) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{327} } -// The optional container for event configuration. -type Event struct { +func (x *FlowRSVPType1ExplicitRouteSubobjects) GetType() *FlowRSVPType1ExplicitRouteSubobjectsType { + if x != nil { + return x.Type + } + return nil +} + +// Currently supported subobjects are IPv4 address(1) and Autonomous system number(32). +type FlowRSVPType1ExplicitRouteSubobjectsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable all events. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` + // default = Choice.Enum.ipv4_prefix + Choice *FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3" json:"rx_rate_threshold,omitempty"` + Ipv4Prefix *FlowRSVPPathExplicitRouteType1Ipv4Prefix `protobuf:"bytes,2,opt,name=ipv4_prefix,json=ipv4Prefix,proto3" json:"ipv4_prefix,omitempty"` // Description missing in models - RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3" json:"route_advertise_withdraw,omitempty"` + AsNumber *FlowRSVPPathExplicitRouteType1ASNumber `protobuf:"bytes,3,opt,name=as_number,json=asNumber,proto3" json:"as_number,omitempty"` } -func (x *Event) Reset() { - *x = Event{} +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) Reset() { + *x = FlowRSVPType1ExplicitRouteSubobjectsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[337] + mi := &file_otg_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Event) String() string { +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Event) ProtoMessage() {} +func (*FlowRSVPType1ExplicitRouteSubobjectsType) ProtoMessage() {} -func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[337] +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52151,73 +52286,68 @@ func (x *Event) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Event.ProtoReflect.Descriptor instead. -func (*Event) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{337} -} - -func (x *Event) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable - } - return false +// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjectsType.ProtoReflect.Descriptor instead. +func (*FlowRSVPType1ExplicitRouteSubobjectsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{328} } -func (x *Event) GetLink() *EventLink { - if x != nil { - return x.Link +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetChoice() FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPType1ExplicitRouteSubobjectsType_Choice_unspecified } -func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetIpv4Prefix() *FlowRSVPPathExplicitRouteType1Ipv4Prefix { if x != nil { - return x.RxRateThreshold + return x.Ipv4Prefix } return nil } -func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { +func (x *FlowRSVPType1ExplicitRouteSubobjectsType) GetAsNumber() *FlowRSVPPathExplicitRouteType1ASNumber { if x != nil { - return x.RouteAdvertiseWithdraw + return x.AsNumber } return nil } -// The optional container for rx rate threshold event configuration. -type EventRxRateThreshold struct { +// Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Prefix, C-Type: +// 1 +type FlowRSVPPathExplicitRouteType1Ipv4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable the rx_rate_threshold event. - // Enabling this option may affect the resultant packet payload due to - // additional instrumentation data. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` - // True to enable notifications when the rx rate of a flow passes above - // or below the threshold value. - // default = 95 - Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` + // Description missing in models + LBit *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit `protobuf:"bytes,1,opt,name=l_bit,json=lBit,proto3" json:"l_bit,omitempty"` + // The Length contains the total length of the subobject in bytes,including L,Type and + // Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. + Length *FlowRSVPExplicitRouteLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + Ipv4Address *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address `protobuf:"bytes,3,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + // The prefix length of the IPv4 address. + // default = 32 + Prefix *uint32 `protobuf:"varint,4,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` } -func (x *EventRxRateThreshold) Reset() { - *x = EventRxRateThreshold{} +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) Reset() { + *x = FlowRSVPPathExplicitRouteType1Ipv4Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[338] + mi := &file_otg_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRxRateThreshold) String() string { +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRxRateThreshold) ProtoMessage() {} +func (*FlowRSVPPathExplicitRouteType1Ipv4Prefix) ProtoMessage() {} -func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[338] +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52228,53 +52358,74 @@ func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. -func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{338} +// Deprecated: Use FlowRSVPPathExplicitRouteType1Ipv4Prefix.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathExplicitRouteType1Ipv4Prefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{329} } -func (x *EventRxRateThreshold) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetLBit() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit { + if x != nil { + return x.LBit } - return false + return nil } -func (x *EventRxRateThreshold) GetThreshold() float32 { - if x != nil && x.Threshold != nil { - return *x.Threshold +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetLength() *FlowRSVPExplicitRouteLength { + if x != nil { + return x.Length + } + return nil +} + +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetIpv4Address() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address { + if x != nil { + return x.Ipv4Address + } + return nil +} + +func (x *FlowRSVPPathExplicitRouteType1Ipv4Prefix) GetPrefix() uint32 { + if x != nil && x.Prefix != nil { + return *x.Prefix } return 0 } -// The optional container for link up/down event configuration. -type EventLink struct { +// Class = EXPLICIT_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Autonomous system +// number, C-Type: 32 +type FlowRSVPPathExplicitRouteType1ASNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a link up/down event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Description missing in models + LBit *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit `protobuf:"bytes,1,opt,name=l_bit,json=lBit,proto3" json:"l_bit,omitempty"` + // The Length contains the total length of the subobject in bytes,including L, Type + // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. + Length *FlowRSVPExplicitRouteASNumberLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` + // Autonomous System number to be set in the ERO sub-object that this LSP should traverse + // through. This field is applicable only if the value of 'type' is set to 'as_number'. + // default = 0 + AsNumber *uint32 `protobuf:"varint,3,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` } -func (x *EventLink) Reset() { - *x = EventLink{} +func (x *FlowRSVPPathExplicitRouteType1ASNumber) Reset() { + *x = FlowRSVPPathExplicitRouteType1ASNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[339] + mi := &file_otg_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventLink) String() string { +func (x *FlowRSVPPathExplicitRouteType1ASNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventLink) ProtoMessage() {} +func (*FlowRSVPPathExplicitRouteType1ASNumber) ProtoMessage() {} -func (x *EventLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[339] +func (x *FlowRSVPPathExplicitRouteType1ASNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52285,47 +52436,68 @@ func (x *EventLink) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. -func (*EventLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{339} +// Deprecated: Use FlowRSVPPathExplicitRouteType1ASNumber.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathExplicitRouteType1ASNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{330} } -func (x *EventLink) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetLBit() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit { + if x != nil { + return x.LBit } - return false + return nil } -// The optional container for route advertise/withdraw event configuration. -type EventRouteAdvertiseWithdraw struct { +func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetLength() *FlowRSVPExplicitRouteASNumberLength { + if x != nil { + return x.Length + } + return nil +} + +func (x *FlowRSVPPathExplicitRouteType1ASNumber) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber + } + return 0 +} + +// Description missing in models +type FlowRSVPExplicitRouteLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // True to enable notifications when a route advertise/withdraw - // event occurs. - // default = False - Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPExplicitRouteLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPExplicitRouteLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 8 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + // default = 8 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *EventRouteAdvertiseWithdraw) Reset() { - *x = EventRouteAdvertiseWithdraw{} +func (x *FlowRSVPExplicitRouteLength) Reset() { + *x = FlowRSVPExplicitRouteLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[340] + mi := &file_otg_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRouteAdvertiseWithdraw) String() string { +func (x *FlowRSVPExplicitRouteLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} +func (*FlowRSVPExplicitRouteLength) ProtoMessage() {} -func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[340] +func (x *FlowRSVPExplicitRouteLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52336,59 +52508,68 @@ func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. -func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{340} +// Deprecated: Use FlowRSVPExplicitRouteLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPExplicitRouteLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{331} } -func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { - if x != nil && x.Enable != nil { - return *x.Enable +func (x *FlowRSVPExplicitRouteLength) GetChoice() FlowRSVPExplicitRouteLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return FlowRSVPExplicitRouteLength_Choice_unspecified +} + +func (x *FlowRSVPExplicitRouteLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *FlowRSVPExplicitRouteLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } // Description missing in models -type EventRequest struct { +type FlowRSVPExplicitRouteASNumberLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Constrain the events being returned by specifying event types. - // If the list is empty then all event types will be returned. - Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` - // Constrain the events being returned by specifying event sources. - // If the list is empty then all event sources will be returned. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - /components/schemas/Bgp.V4RouteRange/name - // - /components/schemas/Bgp.V6RouteRange/name - Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPExplicitRouteASNumberLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPExplicitRouteASNumberLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 4 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + // default = 4 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *EventRequest) Reset() { - *x = EventRequest{} +func (x *FlowRSVPExplicitRouteASNumberLength) Reset() { + *x = FlowRSVPExplicitRouteASNumberLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[341] + mi := &file_otg_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest) String() string { +func (x *FlowRSVPExplicitRouteASNumberLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest) ProtoMessage() {} +func (*FlowRSVPExplicitRouteASNumberLength) ProtoMessage() {} -func (x *EventRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[341] +func (x *FlowRSVPExplicitRouteASNumberLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52399,58 +52580,62 @@ func (x *EventRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. -func (*EventRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{341} +// Deprecated: Use FlowRSVPExplicitRouteASNumberLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPExplicitRouteASNumberLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{332} } -func (x *EventRequest) GetType() []EventRequest_Type_Enum { - if x != nil { - return x.Type +func (x *FlowRSVPExplicitRouteASNumberLength) GetChoice() FlowRSVPExplicitRouteASNumberLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPExplicitRouteASNumberLength_Choice_unspecified } -func (x *EventRequest) GetSource() []string { - if x != nil { - return x.Source +func (x *FlowRSVPExplicitRouteASNumberLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return 0 } -// A container that describes what events a system should provide and -// optionally where to publish them. -type EventSubscription struct { +func (x *FlowRSVPExplicitRouteASNumberLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassLabelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3" json:"events,omitempty"` - // Indicates where a client wants to be notified of the events set in - // the events property. - // If this property is empty or null then no event notifications will - // be forwarded. - CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` + CType *FlowRSVPPathObjectsLabelRequestCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *EventSubscription) Reset() { - *x = EventSubscription{} +func (x *FlowRSVPPathObjectsClassLabelRequest) Reset() { + *x = FlowRSVPPathObjectsClassLabelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[342] + mi := &file_otg_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventSubscription) String() string { +func (x *FlowRSVPPathObjectsClassLabelRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventSubscription) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassLabelRequest) ProtoMessage() {} -func (x *EventSubscription) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[342] +func (x *FlowRSVPPathObjectsClassLabelRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52461,77 +52646,56 @@ func (x *EventSubscription) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. -func (*EventSubscription) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{342} +// Deprecated: Use FlowRSVPPathObjectsClassLabelRequest.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassLabelRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{333} } -func (x *EventSubscription) GetEvents() *EventRequest { +func (x *FlowRSVPPathObjectsClassLabelRequest) GetLength() *FlowRSVPObjectLength { if x != nil { - return x.Events + return x.Length } return nil } -func (x *EventSubscription) GetCallbackUrl() string { - if x != nil && x.CallbackUrl != nil { - return *x.CallbackUrl +func (x *FlowRSVPPathObjectsClassLabelRequest) GetCType() *FlowRSVPPathObjectsLabelRequestCType { + if x != nil { + return x.CType } - return "" + return nil } -// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf -type Lldp struct { +// Object for LABEL_REQUEST class. Currently supported c-type is Without Label Range +// (1). +type FlowRSVPPathObjectsLabelRequestCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The unique name of the object on which LLDP is running. - // required = true - Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint - // identifier associated with the transmitting LLDP agent. If mac address is specified - // it should be in colon seperated mac address format. - ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3" json:"chassis_id,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3" json:"system_name,omitempty"` - // Specifies the amount of time in seconds a receiving device should maintain LLDP information - // sent by the device before discarding it. - // default = 120 - HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` - // Set the transmission frequency of LLDP updates in seconds. - // default = 30 - AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Description missing in models + // default = Choice.Enum.without_label_range + Choice *FlowRSVPPathObjectsLabelRequestCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsLabelRequestCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + WithoutLabelRange *FlowRSVPPathLabelRequestWithoutLabelRange `protobuf:"bytes,2,opt,name=without_label_range,json=withoutLabelRange,proto3" json:"without_label_range,omitempty"` } -func (x *Lldp) Reset() { - *x = Lldp{} +func (x *FlowRSVPPathObjectsLabelRequestCType) Reset() { + *x = FlowRSVPPathObjectsLabelRequestCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[343] + mi := &file_otg_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Lldp) String() string { +func (x *FlowRSVPPathObjectsLabelRequestCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Lldp) ProtoMessage() {} +func (*FlowRSVPPathObjectsLabelRequestCType) ProtoMessage() {} -func (x *Lldp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[343] +func (x *FlowRSVPPathObjectsLabelRequestCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52542,96 +52706,54 @@ func (x *Lldp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. -func (*Lldp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{343} -} - -func (x *Lldp) GetConnection() *LldpConnection { - if x != nil { - return x.Connection - } - return nil -} - -func (x *Lldp) GetChassisId() *LldpChassisId { - if x != nil { - return x.ChassisId - } - return nil +// Deprecated: Use FlowRSVPPathObjectsLabelRequestCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsLabelRequestCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{334} } -func (x *Lldp) GetPortId() *LldpPortId { - if x != nil { - return x.PortId +func (x *FlowRSVPPathObjectsLabelRequestCType) GetChoice() FlowRSVPPathObjectsLabelRequestCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPPathObjectsLabelRequestCType_Choice_unspecified } -func (x *Lldp) GetSystemName() *LldpSystemName { +func (x *FlowRSVPPathObjectsLabelRequestCType) GetWithoutLabelRange() *FlowRSVPPathLabelRequestWithoutLabelRange { if x != nil { - return x.SystemName + return x.WithoutLabelRange } return nil } -func (x *Lldp) GetHoldTime() uint32 { - if x != nil && x.HoldTime != nil { - return *x.HoldTime - } - return 0 -} - -func (x *Lldp) GetAdvertisementInterval() uint32 { - if x != nil && x.AdvertisementInterval != nil { - return *x.AdvertisementInterval - } - return 0 -} - -func (x *Lldp) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -// LLDP connection to a test port. In future if more connection options arise LLDP -// connection object will be enhanced. -type LldpConnection struct { +// Class = LABEL_REQUEST, Without Label Range C-Type = 1 +type FlowRSVPPathLabelRequestWithoutLabelRange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the test port or other connection objects on which LLDP is configured. - Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` - // Name of the test port on which LLDP is configured on. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` + // Description missing in models + Reserved *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved `protobuf:"bytes,1,opt,name=reserved,proto3" json:"reserved,omitempty"` + // Description missing in models + L3Pid *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid `protobuf:"bytes,2,opt,name=l3pid,proto3" json:"l3pid,omitempty"` } -func (x *LldpConnection) Reset() { - *x = LldpConnection{} +func (x *FlowRSVPPathLabelRequestWithoutLabelRange) Reset() { + *x = FlowRSVPPathLabelRequestWithoutLabelRange{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[344] + mi := &file_otg_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection) String() string { +func (x *FlowRSVPPathLabelRequestWithoutLabelRange) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection) ProtoMessage() {} +func (*FlowRSVPPathLabelRequestWithoutLabelRange) ProtoMessage() {} -func (x *LldpConnection) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[344] +func (x *FlowRSVPPathLabelRequestWithoutLabelRange) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52642,62 +52764,55 @@ func (x *LldpConnection) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. -func (*LldpConnection) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{344} +// Deprecated: Use FlowRSVPPathLabelRequestWithoutLabelRange.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathLabelRequestWithoutLabelRange) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{335} } -func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathLabelRequestWithoutLabelRange) GetReserved() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved { + if x != nil { + return x.Reserved } - return LldpConnection_Choice_unspecified + return nil } -func (x *LldpConnection) GetPortName() string { - if x != nil && x.PortName != nil { - return *x.PortName +func (x *FlowRSVPPathLabelRequestWithoutLabelRange) GetL3Pid() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid { + if x != nil { + return x.L3Pid } - return "" + return nil } -// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint -// identifier associated with the transmitting LLDP agent. This field identifies the -// format and source of the chassis identifier string. It is based on the enumerator -// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. -type LldpChassisId struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassSessionAttribute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Chassis ID subtype to be used in Chassis ID TLV. - // default = Choice.Enum.mac_address_subtype - Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3" json:"mac_address_subtype,omitempty"` - // Name of an interface of the chassis that uniquely identifies the chassis. - InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` - // Locally assigned name of the chassis. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + CType *FlowRSVPPathObjectsSessionAttributeCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *LldpChassisId) Reset() { - *x = LldpChassisId{} +func (x *FlowRSVPPathObjectsClassSessionAttribute) Reset() { + *x = FlowRSVPPathObjectsClassSessionAttribute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[345] + mi := &file_otg_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId) String() string { +func (x *FlowRSVPPathObjectsClassSessionAttribute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassSessionAttribute) ProtoMessage() {} -func (x *LldpChassisId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[345] +func (x *FlowRSVPPathObjectsClassSessionAttribute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52708,76 +52823,58 @@ func (x *LldpChassisId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. -func (*LldpChassisId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{345} -} - -func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return LldpChassisId_Choice_unspecified +// Deprecated: Use FlowRSVPPathObjectsClassSessionAttribute.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassSessionAttribute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{336} } -func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { +func (x *FlowRSVPPathObjectsClassSessionAttribute) GetLength() *FlowRSVPObjectLength { if x != nil { - return x.MacAddressSubtype + return x.Length } return nil } -func (x *LldpChassisId) GetInterfaceNameSubtype() string { - if x != nil && x.InterfaceNameSubtype != nil { - return *x.InterfaceNameSubtype - } - return "" -} - -func (x *LldpChassisId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype +func (x *FlowRSVPPathObjectsClassSessionAttribute) GetCType() *FlowRSVPPathObjectsSessionAttributeCType { + if x != nil { + return x.CType } - return "" + return nil } -// The Port ID is a mandatory TLV which identifies the port component of the endpoint -// identifier associated with the transmitting LLDP agent.This field identifies the -// format and source of the port identifier string. It is based on the enumerator defined -// by the PtopoPortIdType object from RFC2922. -type LldpPortId struct { +// Object for SESSION_ATTRIBUTE class. Currently supported c-type is LSP_Tunnel_RA (1) +// and LSP_Tunnel (7). +type FlowRSVPPathObjectsSessionAttributeCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Port ID subtype to be used in Port ID TLV. - // default = Choice.Enum.interface_name_subtype - Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` - // The MAC Address configured in the Port ID TLV. - MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` // Description missing in models - InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3" json:"interface_name_subtype,omitempty"` - // The Locally assigned name configured in the Port ID TLV. - LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` + // default = Choice.Enum.lsp_tunnel + Choice *FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LspTunnel *FlowRSVPPathSessionAttributeLspTunnel `protobuf:"bytes,2,opt,name=lsp_tunnel,json=lspTunnel,proto3" json:"lsp_tunnel,omitempty"` + // Description missing in models + LspTunnelRa *FlowRSVPPathSessionAttributeLspTunnelRa `protobuf:"bytes,3,opt,name=lsp_tunnel_ra,json=lspTunnelRa,proto3" json:"lsp_tunnel_ra,omitempty"` } -func (x *LldpPortId) Reset() { - *x = LldpPortId{} +func (x *FlowRSVPPathObjectsSessionAttributeCType) Reset() { + *x = FlowRSVPPathObjectsSessionAttributeCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[346] + mi := &file_otg_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId) String() string { +func (x *FlowRSVPPathObjectsSessionAttributeCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId) ProtoMessage() {} +func (*FlowRSVPPathObjectsSessionAttributeCType) ProtoMessage() {} -func (x *LldpPortId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[346] +func (x *FlowRSVPPathObjectsSessionAttributeCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52788,72 +52885,74 @@ func (x *LldpPortId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. -func (*LldpPortId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{346} +// Deprecated: Use FlowRSVPPathObjectsSessionAttributeCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSessionAttributeCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{337} } -func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { +func (x *FlowRSVPPathObjectsSessionAttributeCType) GetChoice() FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return LldpPortId_Choice_unspecified -} - -func (x *LldpPortId) GetMacAddressSubtype() string { - if x != nil && x.MacAddressSubtype != nil { - return *x.MacAddressSubtype - } - return "" + return FlowRSVPPathObjectsSessionAttributeCType_Choice_unspecified } -func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { +func (x *FlowRSVPPathObjectsSessionAttributeCType) GetLspTunnel() *FlowRSVPPathSessionAttributeLspTunnel { if x != nil { - return x.InterfaceNameSubtype + return x.LspTunnel } return nil } -func (x *LldpPortId) GetLocalSubtype() string { - if x != nil && x.LocalSubtype != nil { - return *x.LocalSubtype +func (x *FlowRSVPPathObjectsSessionAttributeCType) GetLspTunnelRa() *FlowRSVPPathSessionAttributeLspTunnelRa { + if x != nil { + return x.LspTunnelRa } - return "" + return nil } -// The MAC address configured in the Chassis ID TLV. -type LldpChassisMacSubType struct { +// SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 7, resource affinity information. +type FlowRSVPPathSessionAttributeLspTunnel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // The priority of the session with respect to taking resources,in the range of 0 to + // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether + // this session can preempt another session. + // default = 7 + SetupPriority *uint32 `protobuf:"varint,1,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // The priority of the session with respect to holding resources,in the range of 0 to + // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether + // this session can preempt another session. + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,2,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // 0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired + Flags *FlowRSVPLspTunnelFlag `protobuf:"bytes,3,opt,name=flags,proto3" json:"flags,omitempty"` + // The length of the display string before padding, in bytes. + NameLength *FlowRSVPSessionAttributeNameLength `protobuf:"bytes,4,opt,name=name_length,json=nameLength,proto3" json:"name_length,omitempty"` + // A null padded string of characters. + // default = + SessionName *string `protobuf:"bytes,5,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` } -func (x *LldpChassisMacSubType) Reset() { - *x = LldpChassisMacSubType{} +func (x *FlowRSVPPathSessionAttributeLspTunnel) Reset() { + *x = FlowRSVPPathSessionAttributeLspTunnel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[347] + mi := &file_otg_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType) String() string { +func (x *FlowRSVPPathSessionAttributeLspTunnel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType) ProtoMessage() {} +func (*FlowRSVPPathSessionAttributeLspTunnel) ProtoMessage() {} -func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[347] +func (x *FlowRSVPPathSessionAttributeLspTunnel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52864,65 +52963,110 @@ func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. -func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{347} +// Deprecated: Use FlowRSVPPathSessionAttributeLspTunnel.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSessionAttributeLspTunnel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{338} } -func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathSessionAttributeLspTunnel) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } - return LldpChassisMacSubType_Choice_unspecified + return 0 } -func (x *LldpChassisMacSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto - } - return "" +func (x *FlowRSVPPathSessionAttributeLspTunnel) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority + } + return 0 } -func (x *LldpChassisMacSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowRSVPPathSessionAttributeLspTunnel) GetFlags() *FlowRSVPLspTunnelFlag { + if x != nil { + return x.Flags + } + return nil +} + +func (x *FlowRSVPPathSessionAttributeLspTunnel) GetNameLength() *FlowRSVPSessionAttributeNameLength { + if x != nil { + return x.NameLength + } + return nil +} + +func (x *FlowRSVPPathSessionAttributeLspTunnel) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } return "" } -// The interface name configured in the Port ID TLV. -type LldpPortInterfaceNameSubType struct { +// SESSION_ATTRIBUTE class = 207, LSP_TUNNEL_RA C-Type = 1, it carries resource affinity +// information. +type FlowRSVPPathSessionAttributeLspTunnelRa struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link unacceptable. A null set (all bits set to zero) doesn't + // render the link unacceptable. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 00 + ExcludeAny *string `protobuf:"bytes,1,opt,name=exclude_any,json=excludeAny,proto3,oneof" json:"exclude_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // any of which renders a link acceptable. A null set (all bits set to zero) automatically + // passes. The most significant byte in the hex-string is the farthest to the left + // in the byte sequence. Leading zero bytes in the configured value may be omitted + // for brevity. + // default = 00 + IncludeAny *string `protobuf:"bytes,2,opt,name=include_any,json=includeAny,proto3,oneof" json:"include_any,omitempty"` + // A 32-bit vector representing a set of attribute filters associated with a tunnel + // all of which must be present for a link to be acceptable. A null set (all bits set + // to zero) automatically passes. The most significant byte in the hex-string is the + // farthest to the left in the byte sequence. Leading zero bytes in the configured + // value may be omitted for brevity. + // default = 00 + IncludeAll *string `protobuf:"bytes,3,opt,name=include_all,json=includeAll,proto3,oneof" json:"include_all,omitempty"` + // The priority of the session with respect to taking resources,in the range of 0 to + // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether + // this session can preempt another session. + // default = 7 + SetupPriority *uint32 `protobuf:"varint,4,opt,name=setup_priority,json=setupPriority,proto3,oneof" json:"setup_priority,omitempty"` + // The priority of the session with respect to holding resources,in the range of 0 to + // 7. The value 0 is the highest priority. The Setup Priority is used in deciding whether + // this session can preempt another session. + // default = 7 + HoldingPriority *uint32 `protobuf:"varint,5,opt,name=holding_priority,json=holdingPriority,proto3,oneof" json:"holding_priority,omitempty"` + // 0x01 Local protection desired, 0x02 Label recording desired, 0x04 SE Style desired + Flags *FlowRSVPLspTunnelFlag `protobuf:"bytes,6,opt,name=flags,proto3" json:"flags,omitempty"` + // The length of the display string before padding, in bytes. + NameLength *FlowRSVPSessionAttributeNameLength `protobuf:"bytes,7,opt,name=name_length,json=nameLength,proto3" json:"name_length,omitempty"` + // A null padded string of characters. + // default = + SessionName *string `protobuf:"bytes,8,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` } -func (x *LldpPortInterfaceNameSubType) Reset() { - *x = LldpPortInterfaceNameSubType{} +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) Reset() { + *x = FlowRSVPPathSessionAttributeLspTunnelRa{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[348] + mi := &file_otg_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType) String() string { +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType) ProtoMessage() {} +func (*FlowRSVPPathSessionAttributeLspTunnelRa) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[348] +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -52933,140 +53077,95 @@ func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. -func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{348} +// Deprecated: Use FlowRSVPPathSessionAttributeLspTunnelRa.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSessionAttributeLspTunnelRa) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{339} } -func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetExcludeAny() string { + if x != nil && x.ExcludeAny != nil { + return *x.ExcludeAny } - return LldpPortInterfaceNameSubType_Choice_unspecified + return "" } -func (x *LldpPortInterfaceNameSubType) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetIncludeAny() string { + if x != nil && x.IncludeAny != nil { + return *x.IncludeAny } return "" } -func (x *LldpPortInterfaceNameSubType) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetIncludeAll() string { + if x != nil && x.IncludeAll != nil { + return *x.IncludeAll } return "" } -// The system Name configured in the System Name TLV. -type LldpSystemName struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // In auto mode the system generated value is set for this property, while if the choice - // is selected as value, a user configured value will be used for this property. - // default = Choice.Enum.auto - Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` - // The OTG implementation must provide a system generated value for this property. - Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // User must specify a value if mode is not auto. - Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` -} - -func (x *LldpSystemName) Reset() { - *x = LldpSystemName{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[349] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetSetupPriority() uint32 { + if x != nil && x.SetupPriority != nil { + return *x.SetupPriority } + return 0 } -func (x *LldpSystemName) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LldpSystemName) ProtoMessage() {} - -func (x *LldpSystemName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[349] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetHoldingPriority() uint32 { + if x != nil && x.HoldingPriority != nil { + return *x.HoldingPriority } - return mi.MessageOf(x) -} - -// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. -func (*LldpSystemName) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{349} + return 0 } -func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetFlags() *FlowRSVPLspTunnelFlag { + if x != nil { + return x.Flags } - return LldpSystemName_Choice_unspecified + return nil } -func (x *LldpSystemName) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetNameLength() *FlowRSVPSessionAttributeNameLength { + if x != nil { + return x.NameLength } - return "" + return nil } -func (x *LldpSystemName) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *FlowRSVPPathSessionAttributeLspTunnelRa) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } return "" } -// Error response generated while serving API request. -type Error struct { +// Description missing in models +type FlowRSVPLspTunnelFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Numeric status code based on the underlying transport being used. - // The API server MUST set this code explicitly based on following references: - // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 - // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 - // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html - // required = true - Code *int32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` - // Classification of error originating from within API server that may not be mapped - // to the value in `code`. - // Absence of this field may indicate that the error did not originate from within API - // server. - Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` - // List of error messages generated while executing the request. - Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` + // Description missing in models + // default = Choice.Enum.local_protection_desired + Choice *FlowRSVPLspTunnelFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPLspTunnelFlag_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *Error) Reset() { - *x = Error{} +func (x *FlowRSVPLspTunnelFlag) Reset() { + *x = FlowRSVPLspTunnelFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[350] + mi := &file_otg_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Error) String() string { +func (x *FlowRSVPLspTunnelFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error) ProtoMessage() {} +func (*FlowRSVPLspTunnelFlag) ProtoMessage() {} -func (x *Error) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[350] +func (x *FlowRSVPLspTunnelFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53077,60 +53176,54 @@ func (x *Error) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Error.ProtoReflect.Descriptor instead. -func (*Error) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{350} -} - -func (x *Error) GetCode() int32 { - if x != nil && x.Code != nil { - return *x.Code - } - return 0 -} - -func (x *Error) GetKind() Error_Kind_Enum { - if x != nil && x.Kind != nil { - return *x.Kind - } - return Error_Kind_unspecified +// Deprecated: Use FlowRSVPLspTunnelFlag.ProtoReflect.Descriptor instead. +func (*FlowRSVPLspTunnelFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{340} } -func (x *Error) GetErrors() []string { - if x != nil { - return x.Errors +func (x *FlowRSVPLspTunnelFlag) GetChoice() FlowRSVPLspTunnelFlag_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPLspTunnelFlag_Choice_unspecified } -// A list of warnings that have occurred while executing the request. -type Warning struct { +// Description missing in models +type FlowRSVPSessionAttributeNameLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A list of any system specific warnings that have occurred while - // executing the request. - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPSessionAttributeNameLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPSessionAttributeNameLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 0 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + // default = 0 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *Warning) Reset() { - *x = Warning{} +func (x *FlowRSVPSessionAttributeNameLength) Reset() { + *x = FlowRSVPSessionAttributeNameLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[351] + mi := &file_otg_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Warning) String() string { +func (x *FlowRSVPSessionAttributeNameLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Warning) ProtoMessage() {} +func (*FlowRSVPSessionAttributeNameLength) ProtoMessage() {} -func (x *Warning) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[351] +func (x *FlowRSVPSessionAttributeNameLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53141,47 +53234,62 @@ func (x *Warning) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Warning.ProtoReflect.Descriptor instead. -func (*Warning) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{351} +// Deprecated: Use FlowRSVPSessionAttributeNameLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPSessionAttributeNameLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{341} } -func (x *Warning) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *FlowRSVPSessionAttributeNameLength) GetChoice() FlowRSVPSessionAttributeNameLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPSessionAttributeNameLength_Choice_unspecified } -// Request for updating specific attributes of resources in traffic generator -type ConfigUpdate struct { +func (x *FlowRSVPSessionAttributeNameLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *FlowRSVPSessionAttributeNameLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassSenderTemplate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"` + CType *FlowRSVPPathObjectsSenderTemplateCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *ConfigUpdate) Reset() { - *x = ConfigUpdate{} +func (x *FlowRSVPPathObjectsClassSenderTemplate) Reset() { + *x = FlowRSVPPathObjectsClassSenderTemplate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[352] + mi := &file_otg_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConfigUpdate) String() string { +func (x *FlowRSVPPathObjectsClassSenderTemplate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassSenderTemplate) ProtoMessage() {} -func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[352] +func (x *FlowRSVPPathObjectsClassSenderTemplate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53192,55 +53300,55 @@ func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. -func (*ConfigUpdate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{352} +// Deprecated: Use FlowRSVPPathObjectsClassSenderTemplate.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassSenderTemplate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{342} } -func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathObjectsClassSenderTemplate) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return ConfigUpdate_Choice_unspecified + return nil } -func (x *ConfigUpdate) GetFlows() *FlowsUpdate { +func (x *FlowRSVPPathObjectsClassSenderTemplate) GetCType() *FlowRSVPPathObjectsSenderTemplateCType { if x != nil { - return x.Flows + return x.CType } return nil } -// A container of flows with associated properties to be updated without affecting the -// flows current transmit state. -type FlowsUpdate struct { +// Object for SENDER_TEMPLATE class. Currently supported c-type is LSP Tunnel IPv4 (7). +type FlowRSVPPathObjectsSenderTemplateCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow properties to be updated without affecting the transmit state. - PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` - // The list of configured flows for which given property will be updated. - Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` + // Description missing in models + // default = Choice.Enum.lsp_tunnel_ipv4 + Choice *FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LspTunnelIpv4 *FlowRSVPPathSenderTemplateLspTunnelIpv4 `protobuf:"bytes,2,opt,name=lsp_tunnel_ipv4,json=lspTunnelIpv4,proto3" json:"lsp_tunnel_ipv4,omitempty"` } -func (x *FlowsUpdate) Reset() { - *x = FlowsUpdate{} +func (x *FlowRSVPPathObjectsSenderTemplateCType) Reset() { + *x = FlowRSVPPathObjectsSenderTemplateCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[353] + mi := &file_otg_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowsUpdate) String() string { +func (x *FlowRSVPPathObjectsSenderTemplateCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate) ProtoMessage() {} +func (*FlowRSVPPathObjectsSenderTemplateCType) ProtoMessage() {} -func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[353] +func (x *FlowRSVPPathObjectsSenderTemplateCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53251,59 +53359,56 @@ func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. -func (*FlowsUpdate) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{353} +// Deprecated: Use FlowRSVPPathObjectsSenderTemplateCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSenderTemplateCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{343} } -func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { - if x != nil { - return x.PropertyNames +func (x *FlowRSVPPathObjectsSenderTemplateCType) GetChoice() FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPPathObjectsSenderTemplateCType_Choice_unspecified } -func (x *FlowsUpdate) GetFlows() []*Flow { +func (x *FlowRSVPPathObjectsSenderTemplateCType) GetLspTunnelIpv4() *FlowRSVPPathSenderTemplateLspTunnelIpv4 { if x != nil { - return x.Flows + return x.LspTunnelIpv4 } return nil } -// Request for setting operational state of configured resources. -type ControlState struct { +// Class = SENDER_TEMPLATE, LSP_TUNNEL_IPv4 C-Type = 7 +type FlowRSVPPathSenderTemplateLspTunnelIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` + Ipv4TunnelSenderAddress *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress `protobuf:"bytes,1,opt,name=ipv4_tunnel_sender_address,json=ipv4TunnelSenderAddress,proto3" json:"ipv4_tunnel_sender_address,omitempty"` // Description missing in models - Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"` + Reserved *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved `protobuf:"bytes,2,opt,name=reserved,proto3" json:"reserved,omitempty"` // Description missing in models - Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` + LspId *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId `protobuf:"bytes,3,opt,name=lsp_id,json=lspId,proto3" json:"lsp_id,omitempty"` } -func (x *ControlState) Reset() { - *x = ControlState{} +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) Reset() { + *x = FlowRSVPPathSenderTemplateLspTunnelIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[354] + mi := &file_otg_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlState) String() string { +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState) ProtoMessage() {} +func (*FlowRSVPPathSenderTemplateLspTunnelIpv4) ProtoMessage() {} -func (x *ControlState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[354] +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53314,71 +53419,62 @@ func (x *ControlState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. -func (*ControlState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{354} -} - -func (x *ControlState) GetChoice() ControlState_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ControlState_Choice_unspecified +// Deprecated: Use FlowRSVPPathSenderTemplateLspTunnelIpv4.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSenderTemplateLspTunnelIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{344} } -func (x *ControlState) GetPort() *StatePort { +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetIpv4TunnelSenderAddress() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress { if x != nil { - return x.Port + return x.Ipv4TunnelSenderAddress } return nil } -func (x *ControlState) GetProtocol() *StateProtocol { +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetReserved() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved { if x != nil { - return x.Protocol + return x.Reserved } return nil } -func (x *ControlState) GetTraffic() *StateTraffic { +func (x *FlowRSVPPathSenderTemplateLspTunnelIpv4) GetLspId() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId { if x != nil { - return x.Traffic + return x.LspId } return nil } -// States associated with configured ports. -type StatePort struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassSenderTspec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - // required = true - Choice *StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` - // Description missing in models - Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3" json:"capture,omitempty"` + CType *FlowRSVPPathObjectsSenderTspecCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *StatePort) Reset() { - *x = StatePort{} +func (x *FlowRSVPPathObjectsClassSenderTspec) Reset() { + *x = FlowRSVPPathObjectsClassSenderTspec{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[355] + mi := &file_otg_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePort) String() string { +func (x *FlowRSVPPathObjectsClassSenderTspec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassSenderTspec) ProtoMessage() {} -func (x *StatePort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[355] +func (x *FlowRSVPPathObjectsClassSenderTspec) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53389,62 +53485,55 @@ func (x *StatePort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. -func (*StatePort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{355} -} - -func (x *StatePort) GetChoice() StatePort_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return StatePort_Choice_unspecified +// Deprecated: Use FlowRSVPPathObjectsClassSenderTspec.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassSenderTspec) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{345} } -func (x *StatePort) GetLink() *StatePortLink { +func (x *FlowRSVPPathObjectsClassSenderTspec) GetLength() *FlowRSVPObjectLength { if x != nil { - return x.Link + return x.Length } return nil } -func (x *StatePort) GetCapture() *StatePortCapture { +func (x *FlowRSVPPathObjectsClassSenderTspec) GetCType() *FlowRSVPPathObjectsSenderTspecCType { if x != nil { - return x.Capture + return x.CType } return nil } -// States associated with configured flows -type StateTraffic struct { +// Object for SENDER_TSPEC class. Currently supported c-type is int-serv (2). +type FlowRSVPPathObjectsSenderTspecCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.int_serv + Choice *FlowRSVPPathObjectsSenderTspecCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsSenderTspecCType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3" json:"flow_transmit,omitempty"` + IntServ *FlowRSVPPathSenderTspecIntServ `protobuf:"bytes,2,opt,name=int_serv,json=intServ,proto3" json:"int_serv,omitempty"` } -func (x *StateTraffic) Reset() { - *x = StateTraffic{} +func (x *FlowRSVPPathObjectsSenderTspecCType) Reset() { + *x = FlowRSVPPathObjectsSenderTspecCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[356] + mi := &file_otg_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTraffic) String() string { +func (x *FlowRSVPPathObjectsSenderTspecCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic) ProtoMessage() {} +func (*FlowRSVPPathObjectsSenderTspecCType) ProtoMessage() {} -func (x *StateTraffic) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[356] +func (x *FlowRSVPPathObjectsSenderTspecCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53455,63 +53544,85 @@ func (x *StateTraffic) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. -func (*StateTraffic) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{356} +// Deprecated: Use FlowRSVPPathObjectsSenderTspecCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSenderTspecCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{346} } -func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { +func (x *FlowRSVPPathObjectsSenderTspecCType) GetChoice() FlowRSVPPathObjectsSenderTspecCType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return StateTraffic_Choice_unspecified + return FlowRSVPPathObjectsSenderTspecCType_Choice_unspecified } -func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { +func (x *FlowRSVPPathObjectsSenderTspecCType) GetIntServ() *FlowRSVPPathSenderTspecIntServ { if x != nil { - return x.FlowTransmit + return x.IntServ } return nil } -// States associated with protocols on configured resources. -type StateProtocol struct { +// int-serv SENDER_TSPEC object: Class = 12, C-Type = 2 +type FlowRSVPPathSenderTspecIntServ struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + Version *PatternFlowRSVPPathSenderTspecIntServVersion `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"` // Description missing in models - All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3" json:"all,omitempty"` + Reserved1 *PatternFlowRSVPPathSenderTspecIntServReserved1 `protobuf:"bytes,2,opt,name=reserved1,proto3" json:"reserved1,omitempty"` // Description missing in models - Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3" json:"route,omitempty"` + OverallLength *PatternFlowRSVPPathSenderTspecIntServOverallLength `protobuf:"bytes,3,opt,name=overall_length,json=overallLength,proto3" json:"overall_length,omitempty"` // Description missing in models - Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3" json:"lacp,omitempty"` + ServiceHeader *PatternFlowRSVPPathSenderTspecIntServServiceHeader `protobuf:"bytes,4,opt,name=service_header,json=serviceHeader,proto3" json:"service_header,omitempty"` // Description missing in models - Bgp *StateProtocolBgp `protobuf:"bytes,5,opt,name=bgp,proto3" json:"bgp,omitempty"` + ZeroBit *PatternFlowRSVPPathSenderTspecIntServZeroBit `protobuf:"bytes,5,opt,name=zero_bit,json=zeroBit,proto3" json:"zero_bit,omitempty"` // Description missing in models - Isis *StateProtocolIsis `protobuf:"bytes,6,opt,name=isis,proto3" json:"isis,omitempty"` + Reserved2 *PatternFlowRSVPPathSenderTspecIntServReserved2 `protobuf:"bytes,6,opt,name=reserved2,proto3" json:"reserved2,omitempty"` + // Description missing in models + LengthOfServiceData *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData `protobuf:"bytes,7,opt,name=length_of_service_data,json=lengthOfServiceData,proto3" json:"length_of_service_data,omitempty"` + // Description missing in models + ParameterIdTokenBucketTspec *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec `protobuf:"bytes,8,opt,name=parameter_id_token_bucket_tspec,json=parameterIdTokenBucketTspec,proto3" json:"parameter_id_token_bucket_tspec,omitempty"` + // Description missing in models + Parameter_127Flag *PatternFlowRSVPPathSenderTspecIntServParameter127Flag `protobuf:"bytes,9,opt,name=parameter_127_flag,json=parameter127Flag,proto3" json:"parameter_127_flag,omitempty"` + // Description missing in models + Parameter_127Length *PatternFlowRSVPPathSenderTspecIntServParameter127Length `protobuf:"bytes,10,opt,name=parameter_127_length,json=parameter127Length,proto3" json:"parameter_127_length,omitempty"` + // Token bucket rate is set to sender's view of its generated traffic. + // default = 0 + TokenBucketRate *float32 `protobuf:"fixed32,11,opt,name=token_bucket_rate,json=tokenBucketRate,proto3,oneof" json:"token_bucket_rate,omitempty"` + // Token bucket size is set to sender's view of its generated traffic. + // default = 0 + TokenBucketSize *float32 `protobuf:"fixed32,12,opt,name=token_bucket_size,json=tokenBucketSize,proto3,oneof" json:"token_bucket_size,omitempty"` + // The peak rate may be set to the sender's peak traffic generation rate (if known and + // controlled), the physical interface line rate (if known), or positive infinity (if + // no better value is available). + // default = 0 + PeakDataRate *float32 `protobuf:"fixed32,13,opt,name=peak_data_rate,json=peakDataRate,proto3,oneof" json:"peak_data_rate,omitempty"` + // Description missing in models + MinimumPolicedUnit *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit `protobuf:"bytes,14,opt,name=minimum_policed_unit,json=minimumPolicedUnit,proto3" json:"minimum_policed_unit,omitempty"` + // Description missing in models + MaximumPacketSize *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize `protobuf:"bytes,15,opt,name=maximum_packet_size,json=maximumPacketSize,proto3" json:"maximum_packet_size,omitempty"` } -func (x *StateProtocol) Reset() { - *x = StateProtocol{} +func (x *FlowRSVPPathSenderTspecIntServ) Reset() { + *x = FlowRSVPPathSenderTspecIntServ{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[357] + mi := &file_otg_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocol) String() string { +func (x *FlowRSVPPathSenderTspecIntServ) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol) ProtoMessage() {} +func (*FlowRSVPPathSenderTspecIntServ) ProtoMessage() {} -func (x *StateProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[357] +func (x *FlowRSVPPathSenderTspecIntServ) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53522,157 +53633,146 @@ func (x *StateProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. -func (*StateProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{357} +// Deprecated: Use FlowRSVPPathSenderTspecIntServ.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSenderTspecIntServ) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{347} } -func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathSenderTspecIntServ) GetVersion() *PatternFlowRSVPPathSenderTspecIntServVersion { + if x != nil { + return x.Version } - return StateProtocol_Choice_unspecified + return nil } -func (x *StateProtocol) GetAll() *StateProtocolAll { +func (x *FlowRSVPPathSenderTspecIntServ) GetReserved1() *PatternFlowRSVPPathSenderTspecIntServReserved1 { if x != nil { - return x.All + return x.Reserved1 } return nil } -func (x *StateProtocol) GetRoute() *StateProtocolRoute { +func (x *FlowRSVPPathSenderTspecIntServ) GetOverallLength() *PatternFlowRSVPPathSenderTspecIntServOverallLength { if x != nil { - return x.Route + return x.OverallLength } return nil } -func (x *StateProtocol) GetLacp() *StateProtocolLacp { +func (x *FlowRSVPPathSenderTspecIntServ) GetServiceHeader() *PatternFlowRSVPPathSenderTspecIntServServiceHeader { if x != nil { - return x.Lacp + return x.ServiceHeader } return nil } -func (x *StateProtocol) GetBgp() *StateProtocolBgp { +func (x *FlowRSVPPathSenderTspecIntServ) GetZeroBit() *PatternFlowRSVPPathSenderTspecIntServZeroBit { if x != nil { - return x.Bgp + return x.ZeroBit } return nil } -func (x *StateProtocol) GetIsis() *StateProtocolIsis { +func (x *FlowRSVPPathSenderTspecIntServ) GetReserved2() *PatternFlowRSVPPathSenderTspecIntServReserved2 { if x != nil { - return x.Isis + return x.Reserved2 } return nil } -// Sets the link of configured ports. -type StatePortLink struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *FlowRSVPPathSenderTspecIntServ) GetLengthOfServiceData() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData { + if x != nil { + return x.LengthOfServiceData + } + return nil +} - // The names of target ports. An empty or null list will target all ports. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The link state. - // required = true - State *StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum,oneof" json:"state,omitempty"` +func (x *FlowRSVPPathSenderTspecIntServ) GetParameterIdTokenBucketTspec() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec { + if x != nil { + return x.ParameterIdTokenBucketTspec + } + return nil } -func (x *StatePortLink) Reset() { - *x = StatePortLink{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[358] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowRSVPPathSenderTspecIntServ) GetParameter_127Flag() *PatternFlowRSVPPathSenderTspecIntServParameter127Flag { + if x != nil { + return x.Parameter_127Flag } + return nil } -func (x *StatePortLink) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *FlowRSVPPathSenderTspecIntServ) GetParameter_127Length() *PatternFlowRSVPPathSenderTspecIntServParameter127Length { + if x != nil { + return x.Parameter_127Length + } + return nil } -func (*StatePortLink) ProtoMessage() {} +func (x *FlowRSVPPathSenderTspecIntServ) GetTokenBucketRate() float32 { + if x != nil && x.TokenBucketRate != nil { + return *x.TokenBucketRate + } + return 0 +} -func (x *StatePortLink) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[358] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowRSVPPathSenderTspecIntServ) GetTokenBucketSize() float32 { + if x != nil && x.TokenBucketSize != nil { + return *x.TokenBucketSize } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. -func (*StatePortLink) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{358} +func (x *FlowRSVPPathSenderTspecIntServ) GetPeakDataRate() float32 { + if x != nil && x.PeakDataRate != nil { + return *x.PeakDataRate + } + return 0 } -func (x *StatePortLink) GetPortNames() []string { +func (x *FlowRSVPPathSenderTspecIntServ) GetMinimumPolicedUnit() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit { if x != nil { - return x.PortNames + return x.MinimumPolicedUnit } return nil } -func (x *StatePortLink) GetState() StatePortLink_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathSenderTspecIntServ) GetMaximumPacketSize() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize { + if x != nil { + return x.MaximumPacketSize } - return StatePortLink_State_unspecified + return nil } -// Sets the capture state of configured ports -type StatePortCapture struct { +// C-Type is specific to a class num. +type FlowRSVPPathObjectsClassRecordRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ports to which the capture state will be applied to. If the list of - // port_names is empty or null the state will be applied to all configured ports. - // If the list is not empty any port that is not included in the list of port_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The capture state. - // required = true - State *StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum,oneof" json:"state,omitempty"` + // A 16-bit field containing the total object length in bytes. Must always be a multiple + // of 4 or at least 4. + Length *FlowRSVPObjectLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + CType *FlowRSVPPathObjectsRecordRouteCType `protobuf:"bytes,2,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` } -func (x *StatePortCapture) Reset() { - *x = StatePortCapture{} +func (x *FlowRSVPPathObjectsClassRecordRoute) Reset() { + *x = FlowRSVPPathObjectsClassRecordRoute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[359] + mi := &file_otg_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortCapture) String() string { +func (x *FlowRSVPPathObjectsClassRecordRoute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassRecordRoute) ProtoMessage() {} -func (x *StatePortCapture) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[359] +func (x *FlowRSVPPathObjectsClassRecordRoute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53683,75 +53783,55 @@ func (x *StatePortCapture) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. -func (*StatePortCapture) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{359} +// Deprecated: Use FlowRSVPPathObjectsClassRecordRoute.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassRecordRoute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{348} } -func (x *StatePortCapture) GetPortNames() []string { +func (x *FlowRSVPPathObjectsClassRecordRoute) GetLength() *FlowRSVPObjectLength { if x != nil { - return x.PortNames + return x.Length } return nil } -func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathObjectsClassRecordRoute) GetCType() *FlowRSVPPathObjectsRecordRouteCType { + if x != nil { + return x.CType } - return StatePortCapture_State_unspecified + return nil } -// Provides state control of flow transmission. -type StateTrafficFlowTransmit struct { +// Object for RECORD_ROUTE class. c-type is Type 1 Route Record (1). +type FlowRSVPPathObjectsRecordRouteCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of flows to which the transmit state will be applied to. If the list of - // flow_names is empty or null the state will be applied to all configured flows. - // If the list is not empty any flow that is not included in the list of flow_names - // MUST be ignored and not included in the state change. - // - // x-constraint: - // - /components/schemas/Flow/properties/name - // - // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The transmit state. - // If the value of the state property is 'start' then all flows defined by the 'flow_names' - // property will be started and the metric counters MUST be cleared prior to starting - // the flow(s). - // If the value of the state property is 'stop' then all flows defined by the 'flow_names' - // property will be stopped and the metric counters MUST NOT be cleared. - // If the value of the state property is 'pause' then all flows defined by the 'flow_names' - // property will be paused and the metric counters MUST NOT be cleared. - // If the value of the state property is 'resume' then any paused flows defined by the - // 'flow_names' property will start transmit at the point at which they were paused. - // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) - // MUST NOT have their metric counters cleared. - // required = true - State *StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum,oneof" json:"state,omitempty"` + // Description missing in models + // default = Choice.Enum.type_1 + Choice *FlowRSVPPathObjectsRecordRouteCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRecordRouteCType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Type_1 *FlowRSVPPathRecordRouteType1 `protobuf:"bytes,2,opt,name=type_1,json=type1,proto3" json:"type_1,omitempty"` } -func (x *StateTrafficFlowTransmit) Reset() { - *x = StateTrafficFlowTransmit{} +func (x *FlowRSVPPathObjectsRecordRouteCType) Reset() { + *x = FlowRSVPPathObjectsRecordRouteCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[360] + mi := &file_otg_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTrafficFlowTransmit) String() string { +func (x *FlowRSVPPathObjectsRecordRouteCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit) ProtoMessage() {} +func (*FlowRSVPPathObjectsRecordRouteCType) ProtoMessage() {} -func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[360] +func (x *FlowRSVPPathObjectsRecordRouteCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53762,56 +53842,53 @@ func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. -func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{360} +// Deprecated: Use FlowRSVPPathObjectsRecordRouteCType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRecordRouteCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{349} } -func (x *StateTrafficFlowTransmit) GetFlowNames() []string { - if x != nil { - return x.FlowNames +func (x *FlowRSVPPathObjectsRecordRouteCType) GetChoice() FlowRSVPPathObjectsRecordRouteCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPPathObjectsRecordRouteCType_Choice_unspecified } -func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathObjectsRecordRouteCType) GetType_1() *FlowRSVPPathRecordRouteType1 { + if x != nil { + return x.Type_1 } - return StateTrafficFlowTransmit_State_unspecified + return nil } -// Sets all configured protocols to `start` or `stop` state. -// Setting protocol state to `start` shall be a no-op if preceding `set_config` API -// call was made with `config.options.protocol_options.auto_start_all` set to `true` -// or if all the configured protocols are already started. -type StateProtocolAll struct { +// Type1 record route has list of subobjects. Currently supported subobjects are IPv4 +// address(1) and Label(3). +type FlowRSVPPathRecordRouteType1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Protocol states - // required = true - State *StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum,oneof" json:"state,omitempty"` + // Description missing in models + Subobjects []*FlowRSVPType1RecordRouteSubobjects `protobuf:"bytes,1,rep,name=subobjects,proto3" json:"subobjects,omitempty"` } -func (x *StateProtocolAll) Reset() { - *x = StateProtocolAll{} +func (x *FlowRSVPPathRecordRouteType1) Reset() { + *x = FlowRSVPPathRecordRouteType1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[361] + mi := &file_otg_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolAll) String() string { +func (x *FlowRSVPPathRecordRouteType1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll) ProtoMessage() {} +func (*FlowRSVPPathRecordRouteType1) ProtoMessage() {} -func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[361] +func (x *FlowRSVPPathRecordRouteType1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53822,61 +53899,45 @@ func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. -func (*StateProtocolAll) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{361} +// Deprecated: Use FlowRSVPPathRecordRouteType1.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRecordRouteType1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{350} } -func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathRecordRouteType1) GetSubobjects() []*FlowRSVPType1RecordRouteSubobjects { + if x != nil { + return x.Subobjects } - return StateProtocolAll_State_unspecified + return nil } -// Sets the state of configured routes -type StateProtocolRoute struct { +// Type is specific to a subobject. +type FlowRSVPType1RecordRouteSubobjects struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device route objects to control. If no names are specified then all - // route objects that match the x-constraint will be affected. - // - // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4RouteRange/properties/name - // - /components/schemas/Bgp.V6RouteRange/properties/name - // - /components/schemas/Isis.V4RouteRange/properties/name - // - /components/schemas/Isis.V6RouteRange/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Route states - // required = true - State *StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum,oneof" json:"state,omitempty"` + // Description missing in models + Type *FlowRSVPPathObjectsRecordRouteSubObjectType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` } -func (x *StateProtocolRoute) Reset() { - *x = StateProtocolRoute{} +func (x *FlowRSVPType1RecordRouteSubobjects) Reset() { + *x = FlowRSVPType1RecordRouteSubobjects{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[362] + mi := &file_otg_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolRoute) String() string { +func (x *FlowRSVPType1RecordRouteSubobjects) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute) ProtoMessage() {} +func (*FlowRSVPType1RecordRouteSubobjects) ProtoMessage() {} -func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[362] +func (x *FlowRSVPType1RecordRouteSubobjects) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53887,57 +53948,50 @@ func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. -func (*StateProtocolRoute) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{362} +// Deprecated: Use FlowRSVPType1RecordRouteSubobjects.ProtoReflect.Descriptor instead. +func (*FlowRSVPType1RecordRouteSubobjects) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{351} } -func (x *StateProtocolRoute) GetNames() []string { +func (x *FlowRSVPType1RecordRouteSubobjects) GetType() *FlowRSVPPathObjectsRecordRouteSubObjectType { if x != nil { - return x.Names + return x.Type } return nil } -func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { - if x != nil && x.State != nil { - return *x.State - } - return StateProtocolRoute_State_unspecified -} - -// Sets state of configured LACP -type StateProtocolLacp struct { +// Currently supported subobjects are IPv4 address(1) and Label(3). +type FlowRSVPPathObjectsRecordRouteSubObjectType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.ipv4_address + Choice *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3" json:"admin,omitempty"` + Ipv4Address *FlowRSVPPathRecordRouteType1Ipv4Address `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` // Description missing in models - MemberPorts *StateProtocolLacpMemberPorts `protobuf:"bytes,3,opt,name=member_ports,json=memberPorts,proto3" json:"member_ports,omitempty"` + Label *FlowRSVPPathRecordRouteType1Label `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"` } -func (x *StateProtocolLacp) Reset() { - *x = StateProtocolLacp{} +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) Reset() { + *x = FlowRSVPPathObjectsRecordRouteSubObjectType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[363] + mi := &file_otg_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacp) String() string { +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp) ProtoMessage() {} +func (*FlowRSVPPathObjectsRecordRouteSubObjectType) ProtoMessage() {} -func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[363] +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -53948,71 +54002,67 @@ func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. -func (*StateProtocolLacp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{363} +// Deprecated: Use FlowRSVPPathObjectsRecordRouteSubObjectType.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRecordRouteSubObjectType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{352} } -func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetChoice() FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return StateProtocolLacp_Choice_unspecified + return FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_unspecified } -func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetIpv4Address() *FlowRSVPPathRecordRouteType1Ipv4Address { if x != nil { - return x.Admin + return x.Ipv4Address } return nil } -func (x *StateProtocolLacp) GetMemberPorts() *StateProtocolLacpMemberPorts { +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType) GetLabel() *FlowRSVPPathRecordRouteType1Label { if x != nil { - return x.MemberPorts + return x.Label } return nil } -// Sets admin state of LACP configured on LAG members -type StateProtocolLacpAdmin struct { +// Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: IPv4 Address, C-Type: +// 1 +type FlowRSVPPathRecordRouteType1Ipv4Address struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` - // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected - // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member - // ports. - // required = true - State *StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum,oneof" json:"state,omitempty"` + // The Length contains the total length of the subobject in bytes, including the Type + // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. + Length *FlowRSVPRouteRecordLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` + // Description missing in models + Ipv4Address *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3" json:"ipv4_address,omitempty"` + // Description missing in models + PrefixLength *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength `protobuf:"bytes,3,opt,name=prefix_length,json=prefixLength,proto3" json:"prefix_length,omitempty"` + // 0x01 local_protection_available, 0x02 local_protection_in_use + Flags *FlowRSVPRecordRouteIPv4Flag `protobuf:"bytes,4,opt,name=flags,proto3" json:"flags,omitempty"` } -func (x *StateProtocolLacpAdmin) Reset() { - *x = StateProtocolLacpAdmin{} +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) Reset() { + *x = FlowRSVPPathRecordRouteType1Ipv4Address{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[364] + mi := &file_otg_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpAdmin) String() string { +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin) ProtoMessage() {} +func (*FlowRSVPPathRecordRouteType1Ipv4Address) ProtoMessage() {} -func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[364] +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54023,62 +54073,67 @@ func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{364} +// Deprecated: Use FlowRSVPPathRecordRouteType1Ipv4Address.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRecordRouteType1Ipv4Address) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{353} } -func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetLength() *FlowRSVPRouteRecordLength { if x != nil { - return x.LagMemberNames + return x.Length } return nil } -func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetIpv4Address() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address { + if x != nil { + return x.Ipv4Address } - return StateProtocolLacpAdmin_State_unspecified + return nil } -// Sets state of LACP member ports configured on LAG. -type StateProtocolLacpMemberPorts struct { +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetPrefixLength() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength { + if x != nil { + return x.PrefixLength + } + return nil +} + +func (x *FlowRSVPPathRecordRouteType1Ipv4Address) GetFlags() *FlowRSVPRecordRouteIPv4Flag { + if x != nil { + return x.Flags + } + return nil +} + +// Description missing in models +type FlowRSVPRecordRouteIPv4Flag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG members (ports) for which the state has to be applied. An empty - // or null list will control all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` - // The desired LACP member port state. - // required = true - State *StateProtocolLacpMemberPorts_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpMemberPorts_State_Enum,oneof" json:"state,omitempty"` + // Description missing in models + // default = Choice.Enum.local_protection_available + Choice *FlowRSVPRecordRouteIPv4Flag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPRecordRouteIPv4Flag_Choice_Enum,oneof" json:"choice,omitempty"` } -func (x *StateProtocolLacpMemberPorts) Reset() { - *x = StateProtocolLacpMemberPorts{} +func (x *FlowRSVPRecordRouteIPv4Flag) Reset() { + *x = FlowRSVPRecordRouteIPv4Flag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[365] + mi := &file_otg_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpMemberPorts) String() string { +func (x *FlowRSVPRecordRouteIPv4Flag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpMemberPorts) ProtoMessage() {} +func (*FlowRSVPRecordRouteIPv4Flag) ProtoMessage() {} -func (x *StateProtocolLacpMemberPorts) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[365] +func (x *FlowRSVPRecordRouteIPv4Flag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54089,55 +54144,52 @@ func (x *StateProtocolLacpMemberPorts) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolLacpMemberPorts.ProtoReflect.Descriptor instead. -func (*StateProtocolLacpMemberPorts) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{365} -} - -func (x *StateProtocolLacpMemberPorts) GetLagMemberNames() []string { - if x != nil { - return x.LagMemberNames - } - return nil +// Deprecated: Use FlowRSVPRecordRouteIPv4Flag.ProtoReflect.Descriptor instead. +func (*FlowRSVPRecordRouteIPv4Flag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{354} } -func (x *StateProtocolLacpMemberPorts) GetState() StateProtocolLacpMemberPorts_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPRecordRouteIPv4Flag) GetChoice() FlowRSVPRecordRouteIPv4Flag_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return StateProtocolLacpMemberPorts_State_unspecified + return FlowRSVPRecordRouteIPv4Flag_Choice_unspecified } -// Sets state of configured BGP peers. -type StateProtocolBgp struct { +// Class = RECORD_ROUTE, Type1 ROUTE_RECORD C-Type = 1 Subobject: Label, C-Type: 3 +type FlowRSVPPathRecordRouteType1Label struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The Length contains the total length of the subobject in bytes, including the Type + // and Length fields. The Length MUST be atleast 4, and MUST be a multiple of 4. + Length *FlowRSVPRouteRecordLength `protobuf:"bytes,1,opt,name=length,proto3" json:"length,omitempty"` // Description missing in models - // required = true - Choice *StateProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolBgp_Choice_Enum,oneof" json:"choice,omitempty"` + Flags *PatternFlowRSVPPathRecordRouteType1LabelFlags `protobuf:"bytes,2,opt,name=flags,proto3" json:"flags,omitempty"` // Description missing in models - Peers *StateProtocolBgpPeers `protobuf:"bytes,2,opt,name=peers,proto3" json:"peers,omitempty"` + CType *PatternFlowRSVPPathRecordRouteType1LabelCType `protobuf:"bytes,3,opt,name=c_type,json=cType,proto3" json:"c_type,omitempty"` + // The contents of the Label Object. Copied from the Label Object. + Label *FlowRSVPPathRecordRouteLabel `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` } -func (x *StateProtocolBgp) Reset() { - *x = StateProtocolBgp{} +func (x *FlowRSVPPathRecordRouteType1Label) Reset() { + *x = FlowRSVPPathRecordRouteType1Label{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[366] + mi := &file_otg_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolBgp) String() string { +func (x *FlowRSVPPathRecordRouteType1Label) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgp) ProtoMessage() {} +func (*FlowRSVPPathRecordRouteType1Label) ProtoMessage() {} -func (x *StateProtocolBgp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[366] +func (x *FlowRSVPPathRecordRouteType1Label) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54148,67 +54200,74 @@ func (x *StateProtocolBgp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolBgp.ProtoReflect.Descriptor instead. -func (*StateProtocolBgp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{366} +// Deprecated: Use FlowRSVPPathRecordRouteType1Label.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRecordRouteType1Label) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{355} } -func (x *StateProtocolBgp) GetChoice() StateProtocolBgp_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowRSVPPathRecordRouteType1Label) GetLength() *FlowRSVPRouteRecordLength { + if x != nil { + return x.Length } - return StateProtocolBgp_Choice_unspecified + return nil } -func (x *StateProtocolBgp) GetPeers() *StateProtocolBgpPeers { +func (x *FlowRSVPPathRecordRouteType1Label) GetFlags() *PatternFlowRSVPPathRecordRouteType1LabelFlags { if x != nil { - return x.Peers + return x.Flags } return nil } -// Sets state of configured BGP peers. -type StateProtocolBgpPeers struct { +func (x *FlowRSVPPathRecordRouteType1Label) GetCType() *PatternFlowRSVPPathRecordRouteType1LabelCType { + if x != nil { + return x.CType + } + return nil +} + +func (x *FlowRSVPPathRecordRouteType1Label) GetLabel() *FlowRSVPPathRecordRouteLabel { + if x != nil { + return x.Label + } + return nil +} + +// Description missing in models +type FlowRSVPPathRecordRouteLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGP peers for which the state has to be applied. An empty or null list - // will control all BGP peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // The desired state of BGP peer. If the desired state is 'up', underlying IP interface(s) - // would be brought up automatically (if not already up), would attempt to bring up - // the BGP session(s) and advertise route(s), if configured. If the desired state is - // 'down', BGP session(s) would be brought down. - // required = true - State *StateProtocolBgpPeers_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolBgpPeers_State_Enum,oneof" json:"state,omitempty"` + // 32 bit integer or hex value. + // default = Choice.Enum.as_integer + Choice *FlowRSVPPathRecordRouteLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPPathRecordRouteLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 16 + AsInteger *uint32 `protobuf:"varint,2,opt,name=as_integer,json=asInteger,proto3,oneof" json:"as_integer,omitempty"` + // Value of the this field should not excced 4 bytes. Maximum length of this attribute + // is 8 (4 * 2 hex character per byte). + // default = 10 + AsHex *string `protobuf:"bytes,3,opt,name=as_hex,json=asHex,proto3,oneof" json:"as_hex,omitempty"` } -func (x *StateProtocolBgpPeers) Reset() { - *x = StateProtocolBgpPeers{} +func (x *FlowRSVPPathRecordRouteLabel) Reset() { + *x = FlowRSVPPathRecordRouteLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[367] + mi := &file_otg_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolBgpPeers) String() string { +func (x *FlowRSVPPathRecordRouteLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgpPeers) ProtoMessage() {} +func (*FlowRSVPPathRecordRouteLabel) ProtoMessage() {} -func (x *StateProtocolBgpPeers) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[367] +func (x *FlowRSVPPathRecordRouteLabel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54219,55 +54278,68 @@ func (x *StateProtocolBgpPeers) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolBgpPeers.ProtoReflect.Descriptor instead. -func (*StateProtocolBgpPeers) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{367} +// Deprecated: Use FlowRSVPPathRecordRouteLabel.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRecordRouteLabel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{356} } -func (x *StateProtocolBgpPeers) GetPeerNames() []string { - if x != nil { - return x.PeerNames +func (x *FlowRSVPPathRecordRouteLabel) GetChoice() FlowRSVPPathRecordRouteLabel_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return FlowRSVPPathRecordRouteLabel_Choice_unspecified } -func (x *StateProtocolBgpPeers) GetState() StateProtocolBgpPeers_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathRecordRouteLabel) GetAsInteger() uint32 { + if x != nil && x.AsInteger != nil { + return *x.AsInteger } - return StateProtocolBgpPeers_State_unspecified + return 0 } -// Sets state of configured ISIS routers. -type StateProtocolIsis struct { +func (x *FlowRSVPPathRecordRouteLabel) GetAsHex() string { + if x != nil && x.AsHex != nil { + return *x.AsHex + } + return "" +} + +// Description missing in models +type FlowRSVPRouteRecordLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // auto or configured value. + // default = Choice.Enum.auto + Choice *FlowRSVPRouteRecordLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRSVPRouteRecordLength_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation will provide a system generated value for this property. + // If the OTG implementation is unable to generate a value the default value must be + // used. + // default = 8 + Auto *uint32 `protobuf:"varint,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - // required = true - Choice *StateProtocolIsis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolIsis_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Routers *StateProtocolIsisRouters `protobuf:"bytes,2,opt,name=routers,proto3" json:"routers,omitempty"` + // default = 8 + Value *uint32 `protobuf:"varint,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *StateProtocolIsis) Reset() { - *x = StateProtocolIsis{} +func (x *FlowRSVPRouteRecordLength) Reset() { + *x = FlowRSVPRouteRecordLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[368] + mi := &file_otg_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolIsis) String() string { +func (x *FlowRSVPRouteRecordLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsis) ProtoMessage() {} +func (*FlowRSVPRouteRecordLength) ProtoMessage() {} -func (x *StateProtocolIsis) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[368] +func (x *FlowRSVPRouteRecordLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54278,65 +54350,69 @@ func (x *StateProtocolIsis) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolIsis.ProtoReflect.Descriptor instead. -func (*StateProtocolIsis) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{368} +// Deprecated: Use FlowRSVPRouteRecordLength.ProtoReflect.Descriptor instead. +func (*FlowRSVPRouteRecordLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{357} } -func (x *StateProtocolIsis) GetChoice() StateProtocolIsis_Choice_Enum { +func (x *FlowRSVPRouteRecordLength) GetChoice() FlowRSVPRouteRecordLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return StateProtocolIsis_Choice_unspecified + return FlowRSVPRouteRecordLength_Choice_unspecified } -func (x *StateProtocolIsis) GetRouters() *StateProtocolIsisRouters { - if x != nil { - return x.Routers +func (x *FlowRSVPRouteRecordLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return 0 } -// Sets state of configured ISIS routers. -type StateProtocolIsisRouters struct { +func (x *FlowRSVPRouteRecordLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +// Custom packet header +type FlowRSVPPathObjectsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS routers for which the state has to be applied. An empty or null - // list will control all ISIS routers. - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - // - // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The desired state of ISIS router. If the desired state is 'up', would attempt to - // bring up the ISIS session(s) with respective peer(s) and advertise route(s), if configured. - // If the desired state is 'down', would bring down ISIS session(s) with respective - // peer(s). - // required = true - State *StateProtocolIsisRouters_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolIsisRouters_State_Enum,oneof" json:"state,omitempty"` + // Description missing in models + Type *PatternFlowRSVPPathObjectsCustomType `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // Description missing in models + Length *FlowRSVPObjectLength `protobuf:"bytes,2,opt,name=length,proto3" json:"length,omitempty"` + // A custom packet header defined as a string of hex bytes. The string MUST contain + // sequence of valid hex bytes. Spaces or colons can be part of the bytes but will be + // discarded. Value of the this field should not excced 65525 bytes since maximum 65528 + // bytes can be added as object-contents in RSVP header. For type and length requires + // 3 bytes, hence maximum of 65524 bytes are expected. Maximum length of this attribute + // is 131050 (65525 * 2 hex character per byte). + // default = 0000 + Bytes *string `protobuf:"bytes,3,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` } -func (x *StateProtocolIsisRouters) Reset() { - *x = StateProtocolIsisRouters{} +func (x *FlowRSVPPathObjectsCustom) Reset() { + *x = FlowRSVPPathObjectsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[369] + mi := &file_otg_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolIsisRouters) String() string { +func (x *FlowRSVPPathObjectsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsisRouters) ProtoMessage() {} +func (*FlowRSVPPathObjectsCustom) ProtoMessage() {} -func (x *StateProtocolIsisRouters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[369] +func (x *FlowRSVPPathObjectsCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54347,55 +54423,69 @@ func (x *StateProtocolIsisRouters) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StateProtocolIsisRouters.ProtoReflect.Descriptor instead. -func (*StateProtocolIsisRouters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{369} +// Deprecated: Use FlowRSVPPathObjectsCustom.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{358} } -func (x *StateProtocolIsisRouters) GetRouterNames() []string { +func (x *FlowRSVPPathObjectsCustom) GetType() *PatternFlowRSVPPathObjectsCustomType { if x != nil { - return x.RouterNames + return x.Type } return nil } -func (x *StateProtocolIsisRouters) GetState() StateProtocolIsisRouters_State_Enum { - if x != nil && x.State != nil { - return *x.State +func (x *FlowRSVPPathObjectsCustom) GetLength() *FlowRSVPObjectLength { + if x != nil { + return x.Length } - return StateProtocolIsisRouters_State_unspecified + return nil } -// Request for triggering action against configured resources. -type ControlAction struct { +func (x *FlowRSVPPathObjectsCustom) GetBytes() string { + if x != nil && x.Bytes != nil { + return *x.Bytes + } + return "" +} + +// The frame size which overrides the total length of the packet +type FlowSize struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.fixed + Choice *FlowSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSize_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` + // default = 64 + Fixed *uint32 `protobuf:"varint,2,opt,name=fixed,proto3,oneof" json:"fixed,omitempty"` + // Description missing in models + Increment *FlowSizeIncrement `protobuf:"bytes,3,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Random *FlowSizeRandom `protobuf:"bytes,4,opt,name=random,proto3" json:"random,omitempty"` + // Description missing in models + WeightPairs *FlowSizeWeightPairs `protobuf:"bytes,5,opt,name=weight_pairs,json=weightPairs,proto3" json:"weight_pairs,omitempty"` } -func (x *ControlAction) Reset() { - *x = ControlAction{} +func (x *FlowSize) Reset() { + *x = FlowSize{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[370] + mi := &file_otg_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlAction) String() string { +func (x *FlowSize) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction) ProtoMessage() {} +func (*FlowSize) ProtoMessage() {} -func (x *ControlAction) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[370] +func (x *FlowSize) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54406,54 +54496,81 @@ func (x *ControlAction) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. -func (*ControlAction) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{370} +// Deprecated: Use FlowSize.ProtoReflect.Descriptor instead. +func (*FlowSize) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{359} } -func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { +func (x *FlowSize) GetChoice() FlowSize_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ControlAction_Choice_unspecified + return FlowSize_Choice_unspecified } -func (x *ControlAction) GetProtocol() *ActionProtocol { +func (x *FlowSize) GetFixed() uint32 { + if x != nil && x.Fixed != nil { + return *x.Fixed + } + return 0 +} + +func (x *FlowSize) GetIncrement() *FlowSizeIncrement { if x != nil { - return x.Protocol + return x.Increment } return nil } -// Response for action triggered against configured resources along with warnings. -type ControlActionResponse struct { +func (x *FlowSize) GetRandom() *FlowSizeRandom { + if x != nil { + return x.Random + } + return nil +} + +func (x *FlowSize) GetWeightPairs() *FlowSizeWeightPairs { + if x != nil { + return x.WeightPairs + } + return nil +} + +// Frame size that increments from a starting size to +// an ending size incrementing by a step size. +type FlowSizeIncrement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of warnings generated while triggering specified action - Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` - // Description missing in models - Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` + // Starting frame size in bytes + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // Ending frame size in bytes + // default = 1518 + End *uint32 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` + // Step frame size in bytes + // default = 1 + Step *uint32 `protobuf:"varint,3,opt,name=step,proto3,oneof" json:"step,omitempty"` } -func (x *ControlActionResponse) Reset() { - *x = ControlActionResponse{} +func (x *FlowSizeIncrement) Reset() { + *x = FlowSizeIncrement{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[371] + mi := &file_otg_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlActionResponse) String() string { +func (x *FlowSizeIncrement) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlActionResponse) ProtoMessage() {} +func (*FlowSizeIncrement) ProtoMessage() {} -func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[371] +func (x *FlowSizeIncrement) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54464,55 +54581,63 @@ func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. -func (*ControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{371} +// Deprecated: Use FlowSizeIncrement.ProtoReflect.Descriptor instead. +func (*FlowSizeIncrement) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{360} } -func (x *ControlActionResponse) GetWarnings() []string { - if x != nil { - return x.Warnings +func (x *FlowSizeIncrement) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -func (x *ControlActionResponse) GetResponse() *ActionResponse { - if x != nil { - return x.Response +func (x *FlowSizeIncrement) GetEnd() uint32 { + if x != nil && x.End != nil { + return *x.End } - return nil + return 0 } -// Response for action triggered against configured resources. -type ActionResponse struct { +func (x *FlowSizeIncrement) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +// Random frame size from a min value to a max value. +type FlowSizeRandom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // default = 64 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` // Description missing in models - Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` + // default = 1518 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` } -func (x *ActionResponse) Reset() { - *x = ActionResponse{} +func (x *FlowSizeRandom) Reset() { + *x = FlowSizeRandom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[372] + mi := &file_otg_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponse) String() string { +func (x *FlowSizeRandom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse) ProtoMessage() {} +func (*FlowSizeRandom) ProtoMessage() {} -func (x *ActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[372] +func (x *FlowSizeRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54523,59 +54648,73 @@ func (x *ActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. -func (*ActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{372} +// Deprecated: Use FlowSizeRandom.ProtoReflect.Descriptor instead. +func (*FlowSizeRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{361} } -func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowSizeRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min } - return ActionResponse_Choice_unspecified + return 0 } -func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { - if x != nil { - return x.Protocol +func (x *FlowSizeRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max } - return nil + return 0 } -// Actions associated with protocols on configured resources. -type ActionProtocol struct { +// Frame size distribution, defined as pairs (including IMIX distribution). +// Frames are randomly generated such that the proportion of each frame size out of +// the total number of frames +// are matching with the weight value of the pair. However, as with any +// other probability +// distribution, the sample distribution is close to theoretical value only if the size +// of the sample is reasonably large. +// When the number of frames is very low the transmitted frames may not come close to +// the ratio described in the weight. +type FlowSizeWeightPairs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // required = true - Choice *ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` + // default = Choice.Enum.predefined + Choice *FlowSizeWeightPairs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowSizeWeightPairs_Choice_Enum,oneof" json:"choice,omitempty"` + // Specify predefined frame size distribution pairs (including IMIX distribution). + // + // The available predefined distribution pairs are: + // - IMIX (64:7, 570:4, and 1518:1) + // - IPSec IMIX (90:58.67, 92:2, 594:23.66 and 1418:15.67) + // - IPv6 IMIX (60:58.67, 496:2, 594:23.66 and 1518:15.67) + // - Standard IMIX (58:58.67, 62:2, 594:23.66 and 1518:15.67) + // - TCP IMIX (90:58.67, 92:2, 594:23.66 and 1518:15.67) + // default = Predefined.Enum.imix + Predefined *FlowSizeWeightPairs_Predefined_Enum `protobuf:"varint,2,opt,name=predefined,proto3,enum=otg.FlowSizeWeightPairs_Predefined_Enum,oneof" json:"predefined,omitempty"` // Description missing in models - Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3" json:"bgp,omitempty"` + Custom []*FlowSizeWeightPairsCustom `protobuf:"bytes,3,rep,name=custom,proto3" json:"custom,omitempty"` } -func (x *ActionProtocol) Reset() { - *x = ActionProtocol{} +func (x *FlowSizeWeightPairs) Reset() { + *x = FlowSizeWeightPairs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[373] + mi := &file_otg_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocol) String() string { +func (x *FlowSizeWeightPairs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol) ProtoMessage() {} +func (*FlowSizeWeightPairs) ProtoMessage() {} -func (x *ActionProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[373] +func (x *FlowSizeWeightPairs) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54586,71 +54725,64 @@ func (x *ActionProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. -func (*ActionProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{373} +// Deprecated: Use FlowSizeWeightPairs.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{362} } -func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { +func (x *FlowSizeWeightPairs) GetChoice() FlowSizeWeightPairs_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ActionProtocol_Choice_unspecified -} - -func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { - if x != nil { - return x.Ipv4 - } - return nil + return FlowSizeWeightPairs_Choice_unspecified } -func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { - if x != nil { - return x.Ipv6 +func (x *FlowSizeWeightPairs) GetPredefined() FlowSizeWeightPairs_Predefined_Enum { + if x != nil && x.Predefined != nil { + return *x.Predefined } - return nil + return FlowSizeWeightPairs_Predefined_unspecified } -func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { +func (x *FlowSizeWeightPairs) GetCustom() []*FlowSizeWeightPairsCustom { if x != nil { - return x.Bgp + return x.Custom } return nil } -// Response for actions associated with protocols on configured resources. -type ActionResponseProtocol struct { +// Custom frame size distribution pair. +type FlowSizeWeightPairsCustom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice *ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` - // Description missing in models - Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` + // The size of the frame (in bytes) for this weight pair. + // default = 64 + Size *uint32 `protobuf:"varint,1,opt,name=size,proto3,oneof" json:"size,omitempty"` + // Weight assigned to the corresponding frame size in this weight pair. + // Higher weight means more packets. + // default = 1 + Weight *float32 `protobuf:"fixed32,2,opt,name=weight,proto3,oneof" json:"weight,omitempty"` } -func (x *ActionResponseProtocol) Reset() { - *x = ActionResponseProtocol{} +func (x *FlowSizeWeightPairsCustom) Reset() { + *x = FlowSizeWeightPairsCustom{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[374] + mi := &file_otg_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocol) String() string { +func (x *FlowSizeWeightPairsCustom) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol) ProtoMessage() {} +func (*FlowSizeWeightPairsCustom) ProtoMessage() {} -func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[374] +func (x *FlowSizeWeightPairsCustom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54661,62 +54793,71 @@ func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{374} -} - -func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ActionResponseProtocol_Choice_unspecified +// Deprecated: Use FlowSizeWeightPairsCustom.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairsCustom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{363} } -func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { - if x != nil { - return x.Ipv4 +func (x *FlowSizeWeightPairsCustom) GetSize() uint32 { + if x != nil && x.Size != nil { + return *x.Size } - return nil + return 0 } -func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { - if x != nil { - return x.Ipv6 +func (x *FlowSizeWeightPairsCustom) GetWeight() float32 { + if x != nil && x.Weight != nil { + return *x.Weight } - return nil + return 0 } -// Actions associated with IPv4 on configured resources. -type ActionProtocolIpv4 struct { +// The rate of packet transmission +type FlowRate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice *ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` + // The available types of flow rate. + // default = Choice.Enum.pps + Choice *FlowRate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRate_Choice_Enum,oneof" json:"choice,omitempty"` + // Packets per second. + // default = 1000 + Pps *uint64 `protobuf:"varint,2,opt,name=pps,proto3,oneof" json:"pps,omitempty"` + // Bits per second. + // default = 1000000000 + Bps *uint64 `protobuf:"varint,3,opt,name=bps,proto3,oneof" json:"bps,omitempty"` + // Kilobits per second. + // default = 1000000 + Kbps *uint64 `protobuf:"varint,4,opt,name=kbps,proto3,oneof" json:"kbps,omitempty"` + // Megabits per second. + // default = 1000 + Mbps *uint64 `protobuf:"varint,5,opt,name=mbps,proto3,oneof" json:"mbps,omitempty"` + // Gigabits per second. + // default = 1 + Gbps *uint32 `protobuf:"varint,6,opt,name=gbps,proto3,oneof" json:"gbps,omitempty"` + // The percentage of a port location's available bandwidth. + // default = 100 + Percentage *float32 `protobuf:"fixed32,7,opt,name=percentage,proto3,oneof" json:"percentage,omitempty"` } -func (x *ActionProtocolIpv4) Reset() { - *x = ActionProtocolIpv4{} +func (x *FlowRate) Reset() { + *x = FlowRate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[375] + mi := &file_otg_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4) String() string { +func (x *FlowRate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4) ProtoMessage() {} +func (*FlowRate) ProtoMessage() {} -func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[375] +func (x *FlowRate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54727,55 +54868,96 @@ func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{375} +// Deprecated: Use FlowRate.ProtoReflect.Descriptor instead. +func (*FlowRate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{364} } -func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { +func (x *FlowRate) GetChoice() FlowRate_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ActionProtocolIpv4_Choice_unspecified + return FlowRate_Choice_unspecified } -func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { - if x != nil { - return x.Ping +func (x *FlowRate) GetPps() uint64 { + if x != nil && x.Pps != nil { + return *x.Pps } - return nil + return 0 } -// Response for actions associated with IPv4 on configured resources. -type ActionResponseProtocolIpv4 struct { +func (x *FlowRate) GetBps() uint64 { + if x != nil && x.Bps != nil { + return *x.Bps + } + return 0 +} + +func (x *FlowRate) GetKbps() uint64 { + if x != nil && x.Kbps != nil { + return *x.Kbps + } + return 0 +} + +func (x *FlowRate) GetMbps() uint64 { + if x != nil && x.Mbps != nil { + return *x.Mbps + } + return 0 +} + +func (x *FlowRate) GetGbps() uint32 { + if x != nil && x.Gbps != nil { + return *x.Gbps + } + return 0 +} + +func (x *FlowRate) GetPercentage() float32 { + if x != nil && x.Percentage != nil { + return *x.Percentage + } + return 0 +} + +// A container for different transmit durations. +type FlowDuration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // A choice used to determine the type of duration. + // default = Choice.Enum.continuous + Choice *FlowDuration_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDuration_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // required = true - Choice *ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` + FixedPackets *FlowFixedPackets `protobuf:"bytes,2,opt,name=fixed_packets,json=fixedPackets,proto3" json:"fixed_packets,omitempty"` // Description missing in models - Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` + FixedSeconds *FlowFixedSeconds `protobuf:"bytes,3,opt,name=fixed_seconds,json=fixedSeconds,proto3" json:"fixed_seconds,omitempty"` + // Description missing in models + Burst *FlowBurst `protobuf:"bytes,4,opt,name=burst,proto3" json:"burst,omitempty"` + // Description missing in models + Continuous *FlowContinuous `protobuf:"bytes,5,opt,name=continuous,proto3" json:"continuous,omitempty"` } -func (x *ActionResponseProtocolIpv4) Reset() { - *x = ActionResponseProtocolIpv4{} +func (x *FlowDuration) Reset() { + *x = FlowDuration{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[376] + mi := &file_otg_proto_msgTypes[365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4) String() string { +func (x *FlowDuration) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4) ProtoMessage() {} +func (*FlowDuration) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[376] +func (x *FlowDuration) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54786,52 +54968,76 @@ func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{376} +// Deprecated: Use FlowDuration.ProtoReflect.Descriptor instead. +func (*FlowDuration) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{365} } -func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { +func (x *FlowDuration) GetChoice() FlowDuration_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ActionResponseProtocolIpv4_Choice_unspecified + return FlowDuration_Choice_unspecified } -func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { +func (x *FlowDuration) GetFixedPackets() *FlowFixedPackets { if x != nil { - return x.Ping + return x.FixedPackets } return nil } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv4Ping struct { +func (x *FlowDuration) GetFixedSeconds() *FlowFixedSeconds { + if x != nil { + return x.FixedSeconds + } + return nil +} + +func (x *FlowDuration) GetBurst() *FlowBurst { + if x != nil { + return x.Burst + } + return nil +} + +func (x *FlowDuration) GetContinuous() *FlowContinuous { + if x != nil { + return x.Continuous + } + return nil +} + +// Transmit will be continuous and will not stop automatically. +type FlowContinuous struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv4 ping requests. - Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,1,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,2,opt,name=delay,proto3" json:"delay,omitempty"` } -func (x *ActionProtocolIpv4Ping) Reset() { - *x = ActionProtocolIpv4Ping{} +func (x *FlowContinuous) Reset() { + *x = FlowContinuous{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[377] + mi := &file_otg_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4Ping) String() string { +func (x *FlowContinuous) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4Ping) ProtoMessage() {} +func (*FlowContinuous) ProtoMessage() {} -func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[377] +func (x *FlowContinuous) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54842,59 +55048,66 @@ func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{377} +// Deprecated: Use FlowContinuous.ProtoReflect.Descriptor instead. +func (*FlowContinuous) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{366} } -func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { +func (x *FlowContinuous) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap + } + return 0 +} + +func (x *FlowContinuous) GetDelay() *FlowDelay { if x != nil { - return x.Requests + return x.Delay } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv4PingRequest struct { +// The optional container to specify the delay before starting +// transmission of packets. +type FlowDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface to be used. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv4 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Description missing in models + // default = Choice.Enum.bytes + Choice *FlowDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDelay_Choice_Enum,oneof" json:"choice,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Bytes *float32 `protobuf:"fixed32,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Nanoseconds *float32 `protobuf:"fixed32,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The delay before starting transmission of packets. + // A value of 0 indicates no delay. + // default = 0 + Microseconds *float32 `protobuf:"fixed32,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` } -func (x *ActionProtocolIpv4PingRequest) Reset() { - *x = ActionProtocolIpv4PingRequest{} +func (x *FlowDelay) Reset() { + *x = FlowDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[378] + mi := &file_otg_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4PingRequest) String() string { +func (x *FlowDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} +func (*FlowDelay) ProtoMessage() {} -func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[378] +func (x *FlowDelay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54905,52 +55118,72 @@ func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{378} +// Deprecated: Use FlowDelay.ProtoReflect.Descriptor instead. +func (*FlowDelay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{367} } -func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *FlowDelay) GetChoice() FlowDelay_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return FlowDelay_Choice_unspecified } -func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *FlowDelay) GetBytes() float32 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return "" + return 0 } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv4Ping struct { +func (x *FlowDelay) GetNanoseconds() float32 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds + } + return 0 +} + +func (x *FlowDelay) GetMicroseconds() float32 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds + } + return 0 +} + +// Transmit a fixed number of packets after which the flow will stop. +type FlowFixedPackets struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv4 ping responses. - Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // Stop transmit of the flow after this number of packets. + // default = 1 + Packets *uint32 `protobuf:"varint,1,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` } -func (x *ActionResponseProtocolIpv4Ping) Reset() { - *x = ActionResponseProtocolIpv4Ping{} +func (x *FlowFixedPackets) Reset() { + *x = FlowFixedPackets{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[379] + mi := &file_otg_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4Ping) String() string { +func (x *FlowFixedPackets) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} +func (*FlowFixedPackets) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[379] +func (x *FlowFixedPackets) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -54961,59 +55194,65 @@ func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{379} +// Deprecated: Use FlowFixedPackets.ProtoReflect.Descriptor instead. +func (*FlowFixedPackets) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{368} } -func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { +func (x *FlowFixedPackets) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 +} + +func (x *FlowFixedPackets) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap + } + return 0 +} + +func (x *FlowFixedPackets) GetDelay() *FlowDelay { if x != nil { - return x.Responses + return x.Delay } return nil } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv4PingResponse struct { +// Transmit for a fixed number of seconds after which the flow will stop. +type FlowFixedSeconds struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv4 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv4 address used for ping. - // required = true - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` - // Result of the ping request. - // required = true - Result *ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum,oneof" json:"result,omitempty"` + // Stop transmit of the flow after this number of seconds. + // default = 1 + Seconds *float32 `protobuf:"fixed32,1,opt,name=seconds,proto3,oneof" json:"seconds,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,2,opt,name=gap,proto3,oneof" json:"gap,omitempty"` + // Description missing in models + Delay *FlowDelay `protobuf:"bytes,3,opt,name=delay,proto3" json:"delay,omitempty"` } -func (x *ActionResponseProtocolIpv4PingResponse) Reset() { - *x = ActionResponseProtocolIpv4PingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[380] +func (x *FlowFixedSeconds) Reset() { + *x = FlowFixedSeconds{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4PingResponse) String() string { +func (x *FlowFixedSeconds) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} +func (*FlowFixedSeconds) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[380] +func (x *FlowFixedSeconds) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55024,62 +55263,71 @@ func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{380} +// Deprecated: Use FlowFixedSeconds.ProtoReflect.Descriptor instead. +func (*FlowFixedSeconds) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{369} } -func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *FlowFixedSeconds) GetSeconds() float32 { + if x != nil && x.Seconds != nil { + return *x.Seconds } - return "" + return 0 } -func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *FlowFixedSeconds) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap } - return "" + return 0 } -func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { - if x != nil && x.Result != nil { - return *x.Result +func (x *FlowFixedSeconds) GetDelay() *FlowDelay { + if x != nil { + return x.Delay } - return ActionResponseProtocolIpv4PingResponse_Result_unspecified + return nil } -// Actions associated with IPv6 on configured resources. -type ActionProtocolIpv6 struct { +// Transmits continuous or fixed burst of packets. +// For continuous burst of packets, it will not automatically stop. +// For fixed burst of packets, it will stop after transmitting fixed number of bursts. +type FlowBurst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The number of packet bursts transmitted per flow. + // A value of 0 implies continuous burst of packets. + // default = 0 + Bursts *uint32 `protobuf:"varint,1,opt,name=bursts,proto3,oneof" json:"bursts,omitempty"` + // The number of packets transmitted per burst. + // default = 1 + Packets *uint32 `protobuf:"varint,2,opt,name=packets,proto3,oneof" json:"packets,omitempty"` + // The minimum gap between packets expressed as bytes. + // default = 12 + Gap *uint32 `protobuf:"varint,3,opt,name=gap,proto3,oneof" json:"gap,omitempty"` // Description missing in models - // required = true - Choice *ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` + InterBurstGap *FlowDurationInterBurstGap `protobuf:"bytes,4,opt,name=inter_burst_gap,json=interBurstGap,proto3" json:"inter_burst_gap,omitempty"` } -func (x *ActionProtocolIpv6) Reset() { - *x = ActionProtocolIpv6{} +func (x *FlowBurst) Reset() { + *x = FlowBurst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[381] + mi := &file_otg_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6) String() string { +func (x *FlowBurst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6) ProtoMessage() {} +func (*FlowBurst) ProtoMessage() {} -func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[381] +func (x *FlowBurst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55090,55 +55338,79 @@ func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{381} +// Deprecated: Use FlowBurst.ProtoReflect.Descriptor instead. +func (*FlowBurst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{370} } -func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *FlowBurst) GetBursts() uint32 { + if x != nil && x.Bursts != nil { + return *x.Bursts } - return ActionProtocolIpv6_Choice_unspecified + return 0 } -func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { +func (x *FlowBurst) GetPackets() uint32 { + if x != nil && x.Packets != nil { + return *x.Packets + } + return 0 +} + +func (x *FlowBurst) GetGap() uint32 { + if x != nil && x.Gap != nil { + return *x.Gap + } + return 0 +} + +func (x *FlowBurst) GetInterBurstGap() *FlowDurationInterBurstGap { if x != nil { - return x.Ping + return x.InterBurstGap } return nil } -// Response for actions associated with IPv6 on configured resources. -type ActionResponseProtocolIpv6 struct { +// The optional container for specifying a gap between bursts. +type FlowDurationInterBurstGap struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // required = true - Choice *ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` + // The type of inter burst gap units. + // default = Choice.Enum.bytes + Choice *FlowDurationInterBurstGap_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowDurationInterBurstGap_Choice_Enum,oneof" json:"choice,omitempty"` + // The amount of time between bursts expressed in bytes. + // A value of 0 indicates no gap between bursts. + // default = 12 + Bytes *float64 `protobuf:"fixed64,2,opt,name=bytes,proto3,oneof" json:"bytes,omitempty"` + // The amount of time between bursts expressed in nanoseconds. + // A value of 0 indicates no gap between bursts. + // default = 96 + Nanoseconds *float64 `protobuf:"fixed64,3,opt,name=nanoseconds,proto3,oneof" json:"nanoseconds,omitempty"` + // The amount of time between bursts expressed in microseconds. + // A value of 0 indicates no gap between bursts. + // default = 0.096 + Microseconds *float64 `protobuf:"fixed64,4,opt,name=microseconds,proto3,oneof" json:"microseconds,omitempty"` } -func (x *ActionResponseProtocolIpv6) Reset() { - *x = ActionResponseProtocolIpv6{} +func (x *FlowDurationInterBurstGap) Reset() { + *x = FlowDurationInterBurstGap{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[382] + mi := &file_otg_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6) String() string { +func (x *FlowDurationInterBurstGap) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6) ProtoMessage() {} +func (*FlowDurationInterBurstGap) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[382] +func (x *FlowDurationInterBurstGap) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55149,52 +55421,81 @@ func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{382} +// Deprecated: Use FlowDurationInterBurstGap.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{371} } -func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { +func (x *FlowDurationInterBurstGap) GetChoice() FlowDurationInterBurstGap_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ActionResponseProtocolIpv6_Choice_unspecified + return FlowDurationInterBurstGap_Choice_unspecified } -func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { - if x != nil { - return x.Ping +func (x *FlowDurationInterBurstGap) GetBytes() float64 { + if x != nil && x.Bytes != nil { + return *x.Bytes } - return nil + return 0 } -// Request for initiating ping between multiple source and destination pairs. -type ActionProtocolIpv6Ping struct { +func (x *FlowDurationInterBurstGap) GetNanoseconds() float64 { + if x != nil && x.Nanoseconds != nil { + return *x.Nanoseconds + } + return 0 +} + +func (x *FlowDurationInterBurstGap) GetMicroseconds() float64 { + if x != nil && x.Microseconds != nil { + return *x.Microseconds + } + return 0 +} + +// The optional container for configuring flow metrics. +type FlowMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of IPv6 ping requests. - Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` + // Enables flow metrics. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Enables additional flow metric loss calculation. + // default = False + Loss *bool `protobuf:"varint,2,opt,name=loss,proto3,oneof" json:"loss,omitempty"` + // Rx Tx ratio. + RxTxRatio *FlowRxTxRatio `protobuf:"bytes,6,opt,name=rx_tx_ratio,json=rxTxRatio,proto3" json:"rx_tx_ratio,omitempty"` + // Enables additional flow metric first and last timestamps. + // default = False + Timestamps *bool `protobuf:"varint,3,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` + // Latency metrics. + Latency *FlowLatencyMetrics `protobuf:"bytes,4,opt,name=latency,proto3" json:"latency,omitempty"` + // Predefined metric tags + PredefinedMetricTags *FlowPredefinedTags `protobuf:"bytes,5,opt,name=predefined_metric_tags,json=predefinedMetricTags,proto3" json:"predefined_metric_tags,omitempty"` } -func (x *ActionProtocolIpv6Ping) Reset() { - *x = ActionProtocolIpv6Ping{} +func (x *FlowMetrics) Reset() { + *x = FlowMetrics{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[383] + mi := &file_otg_proto_msgTypes[372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6Ping) String() string { +func (x *FlowMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6Ping) ProtoMessage() {} +func (*FlowMetrics) ProtoMessage() {} -func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[383] +func (x *FlowMetrics) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55205,59 +55506,99 @@ func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{383} +// Deprecated: Use FlowMetrics.ProtoReflect.Descriptor instead. +func (*FlowMetrics) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{372} } -func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { +func (x *FlowMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable + } + return false +} + +func (x *FlowMetrics) GetLoss() bool { + if x != nil && x.Loss != nil { + return *x.Loss + } + return false +} + +func (x *FlowMetrics) GetRxTxRatio() *FlowRxTxRatio { if x != nil { - return x.Requests + return x.RxTxRatio } return nil } -// Under Review: Most ping request parameters are still TBD. -// -// Under Review: Most ping request parameters are still TBD. -// -// Request for initiating ping between a single source and destination pair. -// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response -// to either succeed or time out. The API wait timeout for each request shall be 300ms. -type ActionProtocolIpv6PingRequest struct { +func (x *FlowMetrics) GetTimestamps() bool { + if x != nil && x.Timestamps != nil { + return *x.Timestamps + } + return false +} + +func (x *FlowMetrics) GetLatency() *FlowLatencyMetrics { + if x != nil { + return x.Latency + } + return nil +} + +func (x *FlowMetrics) GetPredefinedMetricTags() *FlowPredefinedTags { + if x != nil { + return x.PredefinedMetricTags + } + return nil +} + +// The optional container for per flow latency metric configuration. +type FlowLatencyMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface to be used. + // True to enable latency metrics using timestamps. // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // Select the type of latency measurement. The different types of + // latency measurements are: // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv6 address to ping. - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // store_forward: + // The time interval starting when the last bit of the frame leaves the + // sending port and ending when the first bit of the frame is seen on + // the receiving port (LIFO). This is based on the RFC 1242 standard. + // + // cut_through: + // The time interval starting when the first bit of the frame leaves + // the sending port and ending when the first bit of the frame is seen + // on the receiving port (FIFO). This is based on the RFC 1242 + // standard. + // default = Mode.Enum.store_forward + Mode *FlowLatencyMetrics_Mode_Enum `protobuf:"varint,2,opt,name=mode,proto3,enum=otg.FlowLatencyMetrics_Mode_Enum,oneof" json:"mode,omitempty"` } -func (x *ActionProtocolIpv6PingRequest) Reset() { - *x = ActionProtocolIpv6PingRequest{} +func (x *FlowLatencyMetrics) Reset() { + *x = FlowLatencyMetrics{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[384] + mi := &file_otg_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6PingRequest) String() string { +func (x *FlowLatencyMetrics) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} +func (*FlowLatencyMetrics) ProtoMessage() {} -func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[384] +func (x *FlowLatencyMetrics) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55268,52 +55609,56 @@ func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. -func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{384} +// Deprecated: Use FlowLatencyMetrics.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{373} } -func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *FlowLatencyMetrics) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return "" + return false } -func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *FlowLatencyMetrics) GetMode() FlowLatencyMetrics_Mode_Enum { + if x != nil && x.Mode != nil { + return *x.Mode } - return "" + return FlowLatencyMetrics_Mode_unspecified } -// Response for ping initiated between multiple source and destination pairs. -type ActionResponseProtocolIpv6Ping struct { +// List of predefined flow tracking options, outside packet fields, that can be enabled. +type FlowPredefinedTags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of responses for IPv6 ping responses. - Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` + // Enables Rx port or lag level disaggregation with predefined metrics tag name set + // as rx_name. + // The Rx port / lag names can be found under tagged_metrics tag names in flow metrics + // response. + // default = False + RxName *bool `protobuf:"varint,1,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` } -func (x *ActionResponseProtocolIpv6Ping) Reset() { - *x = ActionResponseProtocolIpv6Ping{} +func (x *FlowPredefinedTags) Reset() { + *x = FlowPredefinedTags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[385] + mi := &file_otg_proto_msgTypes[374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6Ping) String() string { +func (x *FlowPredefinedTags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} +func (*FlowPredefinedTags) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[385] +func (x *FlowPredefinedTags) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55324,59 +55669,67 @@ func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{385} +// Deprecated: Use FlowPredefinedTags.ProtoReflect.Descriptor instead. +func (*FlowPredefinedTags) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{374} } -func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { - if x != nil { - return x.Responses +func (x *FlowPredefinedTags) GetRxName() bool { + if x != nil && x.RxName != nil { + return *x.RxName } - return nil + return false } -// Response for ping initiated between a single source and destination pair. -type ActionResponseProtocolIpv6PingResponse struct { +// Rx Tx ratio is the ratio of expected number of Rx packets across all Rx ports to +// the Tx packets +// for the configured flow. It is a factor by which the Tx packet count is multiplied +// to calculate +// the sum of expected Rx packet count, across all Rx ports. This will be used to calculate +// loss +// percentage of flow at aggregate level. +type FlowRxTxRatio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of source IPv6 interface used for ping. - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ipv6/properties/name - // - // required = true - SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` - // Destination IPv6 address used for ping. - // required = true - DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` - // Result of the ping request. - // required = true - Result *ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum,oneof" json:"result,omitempty"` + // Description missing in models + // default = Choice.Enum.value + Choice *FlowRxTxRatio_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowRxTxRatio_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + RxCount *FlowRxTxRatioRxCount `protobuf:"bytes,2,opt,name=rx_count,json=rxCount,proto3" json:"rx_count,omitempty"` + // Should be a positive, non-zero value. The default value of 1, is when the Rx packet + // count across + // all ports is expected to match the Tx packet count. A custom integer value (>1) can + // be specified for + // loss calculation for cases when there are multiple destination addresses configured + // within one flow, + // but DUT is configured to replicate only to a subset of Rx ports. For cases when Tx + // side generates two + // packets from each source in 1:1 protection mode but only one of the two packets are + // received by the + // Rx port, we may need to specify a fractional value instead. + // default = 1.0 + Value *float32 `protobuf:"fixed32,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *ActionResponseProtocolIpv6PingResponse) Reset() { - *x = ActionResponseProtocolIpv6PingResponse{} +func (x *FlowRxTxRatio) Reset() { + *x = FlowRxTxRatio{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[386] + mi := &file_otg_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6PingResponse) String() string { +func (x *FlowRxTxRatio) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} +func (*FlowRxTxRatio) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[386] +func (x *FlowRxTxRatio) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55387,64 +55740,58 @@ func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. -func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{386} +// Deprecated: Use FlowRxTxRatio.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375} } -func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { - if x != nil && x.SrcName != nil { - return *x.SrcName +func (x *FlowRxTxRatio) GetChoice() FlowRxTxRatio_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return FlowRxTxRatio_Choice_unspecified } -func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { - if x != nil && x.DstIp != nil { - return *x.DstIp +func (x *FlowRxTxRatio) GetRxCount() *FlowRxTxRatioRxCount { + if x != nil { + return x.RxCount } - return "" + return nil } -func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { - if x != nil && x.Result != nil { - return *x.Result +func (x *FlowRxTxRatio) GetValue() float32 { + if x != nil && x.Value != nil { + return *x.Value } - return ActionResponseProtocolIpv6PingResponse_Result_unspecified + return 0 } -// Actions associated with BGP on configured resources. -type ActionProtocolBgp struct { +// This is for cases where one copy of Tx packet is received on all Rx ports and so +// the sum total of Rx packets +// received across all Rx ports is a multiple of Rx port count and Tx packets. +type FlowRxTxRatioRxCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - // Description missing in models - // required = true - Choice *ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3" json:"notification,omitempty"` - // Description missing in models - InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3" json:"initiate_graceful_restart,omitempty"` } -func (x *ActionProtocolBgp) Reset() { - *x = ActionProtocolBgp{} +func (x *FlowRxTxRatioRxCount) Reset() { + *x = FlowRxTxRatioRxCount{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[387] + mi := &file_otg_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgp) String() string { +func (x *FlowRxTxRatioRxCount) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp) ProtoMessage() {} +func (*FlowRxTxRatioRxCount) ProtoMessage() {} -func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[387] +func (x *FlowRxTxRatioRxCount) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55455,94 +55802,47 @@ func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{387} -} - -func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ActionProtocolBgp_Choice_unspecified -} - -func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { - if x != nil { - return x.Notification - } - return nil -} - -func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { - if x != nil { - return x.InitiateGracefulRestart - } - return nil +// Deprecated: Use FlowRxTxRatioRxCount.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatioRxCount) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{376} } -// A NOTIFICATION message is sent when an error is detected with the BGP session, such -// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. -// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of -// specified BGP peers. If a user wants to send custom Error Code and Error Subcode -// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs -// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. -type ActionProtocolBgpNotification struct { +// The optional container for event configuration. +type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION - // will be sent to all configured BGP peers. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` - // Each BGP NOTIFICATION message includes an Error Code field indicating what type of - // problem occurred. For certain Error Codes, an Error Subcode field provides additional - // details about the specific nature of the problem. The choice value will provide - // the Error Code used in NOTIFICATION message. The Subcode can be set for each of - // the corresponding errors except for Hold Timer Expired error and BGP Finite State - // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to - // use non zero Sub Code then custom choice can be used. - // default = Choice.Enum.cease - Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3" json:"cease,omitempty"` - // Description missing in models - MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3" json:"message_header_error,omitempty"` - // Description missing in models - OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3" json:"open_message_error,omitempty"` - // Description missing in models - UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3" json:"update_message_error,omitempty"` + // True to enable all events. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` // Description missing in models - HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3" json:"hold_timer_expired,omitempty"` + Link *EventLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` // Description missing in models - FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3" json:"finite_state_machine_error,omitempty"` + RxRateThreshold *EventRxRateThreshold `protobuf:"bytes,3,opt,name=rx_rate_threshold,json=rxRateThreshold,proto3" json:"rx_rate_threshold,omitempty"` // Description missing in models - Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3" json:"custom,omitempty"` + RouteAdvertiseWithdraw *EventRouteAdvertiseWithdraw `protobuf:"bytes,4,opt,name=route_advertise_withdraw,json=routeAdvertiseWithdraw,proto3" json:"route_advertise_withdraw,omitempty"` } -func (x *ActionProtocolBgpNotification) Reset() { - *x = ActionProtocolBgpNotification{} +func (x *Event) Reset() { + *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[388] + mi := &file_otg_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpNotification) String() string { +func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification) ProtoMessage() {} +func (*Event) ProtoMessage() {} -func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[388] +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55553,113 +55853,130 @@ func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{388} -} - -func (x *ActionProtocolBgpNotification) GetNames() []string { - if x != nil { - return x.Names - } - return nil +// Deprecated: Use Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{377} } -func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Event) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return ActionProtocolBgpNotification_Choice_unspecified + return false } -func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { +func (x *Event) GetLink() *EventLink { if x != nil { - return x.Cease + return x.Link } return nil } -func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { +func (x *Event) GetRxRateThreshold() *EventRxRateThreshold { if x != nil { - return x.MessageHeaderError + return x.RxRateThreshold } return nil } -func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { +func (x *Event) GetRouteAdvertiseWithdraw() *EventRouteAdvertiseWithdraw { if x != nil { - return x.OpenMessageError + return x.RouteAdvertiseWithdraw } return nil } -func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { - if x != nil { - return x.UpdateMessageError +// The optional container for rx rate threshold event configuration. +type EventRxRateThreshold struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // True to enable the rx_rate_threshold event. + // Enabling this option may affect the resultant packet payload due to + // additional instrumentation data. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` + // True to enable notifications when the rx rate of a flow passes above + // or below the threshold value. + // default = 95 + Threshold *float32 `protobuf:"fixed32,2,opt,name=threshold,proto3,oneof" json:"threshold,omitempty"` +} + +func (x *EventRxRateThreshold) Reset() { + *x = EventRxRateThreshold{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[378] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { - if x != nil { - return x.HoldTimerExpired +func (x *EventRxRateThreshold) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventRxRateThreshold) ProtoMessage() {} + +func (x *EventRxRateThreshold) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[378] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { - if x != nil { - return x.FiniteStateMachineError +// Deprecated: Use EventRxRateThreshold.ProtoReflect.Descriptor instead. +func (*EventRxRateThreshold) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{378} +} + +func (x *EventRxRateThreshold) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return nil + return false } -func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { - if x != nil { - return x.Custom +func (x *EventRxRateThreshold) GetThreshold() float32 { + if x != nil && x.Threshold != nil { + return *x.Threshold } - return nil + return 0 } -// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is -// specified then Graceful Restart will be sent to all configured BGP peers. -type ActionProtocolBgpInitiateGracefulRestart struct { +// The optional container for link up/down event configuration. +type EventLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of device BGP peers objects to control. - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Bgp/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // Duration (in seconds) after which selected BGP peers will initiate - // Graceful restart by sending the Open Message with Restart State bit set in the Graceful - // Restart capability. - // default = 30 - RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` + // True to enable notifications when a link up/down event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { - *x = ActionProtocolBgpInitiateGracefulRestart{} +func (x *EventLink) Reset() { + *x = EventLink{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[389] + mi := &file_otg_proto_msgTypes[379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { +func (x *EventLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} +func (*EventLink) ProtoMessage() {} -func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[389] +func (x *EventLink) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[379] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55670,75 +55987,47 @@ func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. -func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{389} -} - -func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { - if x != nil { - return x.PeerNames - } - return nil +// Deprecated: Use EventLink.ProtoReflect.Descriptor instead. +func (*EventLink) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{379} } -func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { - if x != nil && x.RestartDelay != nil { - return *x.RestartDelay +func (x *EventLink) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return 0 + return false } -// Request to traffic generator for metrics of choice. -type MetricsRequest struct { +// The optional container for route advertise/withdraw event configuration. +type EventRouteAdvertiseWithdraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.port - Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` - // Description missing in models - Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3" json:"flow,omitempty"` - // Description missing in models - Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3" json:"bgpv4,omitempty"` - // Description missing in models - Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3" json:"bgpv6,omitempty"` - // Description missing in models - Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3" json:"isis,omitempty"` - // Description missing in models - Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3" json:"lag,omitempty"` - // Description missing in models - Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3" json:"lacp,omitempty"` - // Description missing in models - Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3" json:"lldp,omitempty"` - // Description missing in models - Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3" json:"rsvp,omitempty"` - // Description missing in models - Dhcpv4Client *Dhcpv4ClientMetricsRequest `protobuf:"bytes,11,opt,name=dhcpv4_client,json=dhcpv4Client,proto3" json:"dhcpv4_client,omitempty"` - // Description missing in models - Dhcpv4Server *Dhcpv4ServerMetricsRequest `protobuf:"bytes,12,opt,name=dhcpv4_server,json=dhcpv4Server,proto3" json:"dhcpv4_server,omitempty"` + // True to enable notifications when a route advertise/withdraw + // event occurs. + // default = False + Enable *bool `protobuf:"varint,1,opt,name=enable,proto3,oneof" json:"enable,omitempty"` } -func (x *MetricsRequest) Reset() { - *x = MetricsRequest{} +func (x *EventRouteAdvertiseWithdraw) Reset() { + *x = EventRouteAdvertiseWithdraw{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[390] + mi := &file_otg_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest) String() string { +func (x *EventRouteAdvertiseWithdraw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest) ProtoMessage() {} +func (*EventRouteAdvertiseWithdraw) ProtoMessage() {} -func (x *MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[390] +func (x *EventRouteAdvertiseWithdraw) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55749,145 +56038,202 @@ func (x *MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. -func (*MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{390} +// Deprecated: Use EventRouteAdvertiseWithdraw.ProtoReflect.Descriptor instead. +func (*EventRouteAdvertiseWithdraw) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{380} } -func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *EventRouteAdvertiseWithdraw) GetEnable() bool { + if x != nil && x.Enable != nil { + return *x.Enable } - return MetricsRequest_Choice_unspecified + return false } -func (x *MetricsRequest) GetPort() *PortMetricsRequest { - if x != nil { - return x.Port - } - return nil +// Description missing in models +type EventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Constrain the events being returned by specifying event types. + // If the list is empty then all event types will be returned. + Type []EventRequest_Type_Enum `protobuf:"varint,1,rep,packed,name=type,proto3,enum=otg.EventRequest_Type_Enum" json:"type,omitempty"` + // Constrain the events being returned by specifying event sources. + // If the list is empty then all event sources will be returned. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name + Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` } -func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { - if x != nil { - return x.Flow +func (x *EventRequest) Reset() { + *x = EventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[381] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { - if x != nil { - return x.Bgpv4 - } - return nil +func (x *EventRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { - if x != nil { - return x.Bgpv6 +func (*EventRequest) ProtoMessage() {} + +func (x *EventRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[381] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { - if x != nil { - return x.Isis - } - return nil +// Deprecated: Use EventRequest.ProtoReflect.Descriptor instead. +func (*EventRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381} } -func (x *MetricsRequest) GetLag() *LagMetricsRequest { +func (x *EventRequest) GetType() []EventRequest_Type_Enum { if x != nil { - return x.Lag + return x.Type } return nil } -func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { +func (x *EventRequest) GetSource() []string { if x != nil { - return x.Lacp + return x.Source } return nil } -func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { - if x != nil { - return x.Lldp +// A container that describes what events a system should provide and +// optionally where to publish them. +type EventSubscription struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + Events *EventRequest `protobuf:"bytes,1,opt,name=events,proto3" json:"events,omitempty"` + // Indicates where a client wants to be notified of the events set in + // the events property. + // If this property is empty or null then no event notifications will + // be forwarded. + CallbackUrl *string `protobuf:"bytes,2,opt,name=callback_url,json=callbackUrl,proto3,oneof" json:"callback_url,omitempty"` +} + +func (x *EventSubscription) Reset() { + *x = EventSubscription{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[382] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { - if x != nil { - return x.Rsvp +func (x *EventSubscription) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventSubscription) ProtoMessage() {} + +func (x *EventSubscription) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[382] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MetricsRequest) GetDhcpv4Client() *Dhcpv4ClientMetricsRequest { +// Deprecated: Use EventSubscription.ProtoReflect.Descriptor instead. +func (*EventSubscription) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{382} +} + +func (x *EventSubscription) GetEvents() *EventRequest { if x != nil { - return x.Dhcpv4Client + return x.Events } return nil } -func (x *MetricsRequest) GetDhcpv4Server() *Dhcpv4ServerMetricsRequest { - if x != nil { - return x.Dhcpv4Server +func (x *EventSubscription) GetCallbackUrl() string { + if x != nil && x.CallbackUrl != nil { + return *x.CallbackUrl } - return nil + return "" } -// Response containing chosen traffic generator metrics. -type MetricsResponse struct { +// Configuration of LLDP protocol IEEE Ref: https://www.ieee802.org/1/files/public/docs2002/lldp-protocol-00.pdf +type Lldp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.port_metrics - Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` - // Description missing in models - FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` - // Description missing in models - Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` - // Description missing in models - Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` - // Description missing in models - IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` - // Description missing in models - LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` - // Description missing in models - LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` - // Description missing in models - LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` - // Description missing in models - RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` - // Description missing in models - Dhcpv4ClientMetrics []*Dhcpv4ClientMetric `protobuf:"bytes,11,rep,name=dhcpv4client_metrics,json=dhcpv4clientMetrics,proto3" json:"dhcpv4client_metrics,omitempty"` - // Description missing in models - Dhcpv4ServerMetrics []*Dhcpv4ServerMetric `protobuf:"bytes,12,rep,name=dhcpv4server_metrics,json=dhcpv4serverMetrics,proto3" json:"dhcpv4server_metrics,omitempty"` + // The unique name of the object on which LLDP is running. + // required = true + Connection *LldpConnection `protobuf:"bytes,1,opt,name=connection,proto3" json:"connection,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint + // identifier associated with the transmitting LLDP agent. If mac address is specified + // it should be in colon seperated mac address format. + ChassisId *LldpChassisId `protobuf:"bytes,2,opt,name=chassis_id,json=chassisId,proto3" json:"chassis_id,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *LldpPortId `protobuf:"bytes,3,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *LldpSystemName `protobuf:"bytes,4,opt,name=system_name,json=systemName,proto3" json:"system_name,omitempty"` + // Specifies the amount of time in seconds a receiving device should maintain LLDP information + // sent by the device before discarding it. + // default = 120 + HoldTime *uint32 `protobuf:"varint,5,opt,name=hold_time,json=holdTime,proto3,oneof" json:"hold_time,omitempty"` + // Set the transmission frequency of LLDP updates in seconds. + // default = 30 + AdvertisementInterval *uint32 `protobuf:"varint,6,opt,name=advertisement_interval,json=advertisementInterval,proto3,oneof" json:"advertisement_interval,omitempty"` + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + Name *string `protobuf:"bytes,7,opt,name=name,proto3,oneof" json:"name,omitempty"` } -func (x *MetricsResponse) Reset() { - *x = MetricsResponse{} +func (x *Lldp) Reset() { + *x = Lldp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[391] + mi := &file_otg_proto_msgTypes[383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse) String() string { +func (x *Lldp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse) ProtoMessage() {} +func (*Lldp) ProtoMessage() {} -func (x *MetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[391] +func (x *Lldp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[383] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -55898,132 +56244,96 @@ func (x *MetricsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. -func (*MetricsResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{391} +// Deprecated: Use Lldp.ProtoReflect.Descriptor instead. +func (*Lldp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{383} } -func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Lldp) GetConnection() *LldpConnection { + if x != nil { + return x.Connection } - return MetricsResponse_Choice_unspecified + return nil } -func (x *MetricsResponse) GetPortMetrics() []*PortMetric { +func (x *Lldp) GetChassisId() *LldpChassisId { if x != nil { - return x.PortMetrics + return x.ChassisId } return nil } -func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { +func (x *Lldp) GetPortId() *LldpPortId { if x != nil { - return x.FlowMetrics + return x.PortId } return nil } -func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { - if x != nil { - return x.Bgpv4Metrics - } - return nil -} - -func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { - if x != nil { - return x.Bgpv6Metrics - } - return nil -} - -func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { - if x != nil { - return x.IsisMetrics - } - return nil -} - -func (x *MetricsResponse) GetLagMetrics() []*LagMetric { - if x != nil { - return x.LagMetrics - } - return nil -} - -func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { - if x != nil { - return x.LacpMetrics - } - return nil -} - -func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { +func (x *Lldp) GetSystemName() *LldpSystemName { if x != nil { - return x.LldpMetrics + return x.SystemName } return nil } -func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { - if x != nil { - return x.RsvpMetrics +func (x *Lldp) GetHoldTime() uint32 { + if x != nil && x.HoldTime != nil { + return *x.HoldTime } - return nil + return 0 } -func (x *MetricsResponse) GetDhcpv4ClientMetrics() []*Dhcpv4ClientMetric { - if x != nil { - return x.Dhcpv4ClientMetrics +func (x *Lldp) GetAdvertisementInterval() uint32 { + if x != nil && x.AdvertisementInterval != nil { + return *x.AdvertisementInterval } - return nil + return 0 } -func (x *MetricsResponse) GetDhcpv4ServerMetrics() []*Dhcpv4ServerMetric { - if x != nil { - return x.Dhcpv4ServerMetrics +func (x *Lldp) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// The port result request to the traffic generator -type PortMetricsRequest struct { +// LLDP connection to a test port. In future if more connection options arise LLDP +// connection object will be enhanced. +type LldpConnection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of objects to return results for. An empty list will return all port row - // results. + // The name of the test port or other connection objects on which LLDP is configured. + Choice *LldpConnection_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpConnection_Choice_Enum,oneof" json:"choice,omitempty"` + // Name of the test port on which LLDP is configured on. // // x-constraint: // - /components/schemas/Port/properties/name // // x-constraint: // - /components/schemas/Port/properties/name - PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the port cannot be excluded. - ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` } -func (x *PortMetricsRequest) Reset() { - *x = PortMetricsRequest{} +func (x *LldpConnection) Reset() { + *x = LldpConnection{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[392] + mi := &file_otg_proto_msgTypes[384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest) String() string { +func (x *LldpConnection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest) ProtoMessage() {} +func (*LldpConnection) ProtoMessage() {} -func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[392] +func (x *LldpConnection) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[384] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56034,84 +56344,62 @@ func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. -func (*PortMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{392} +// Deprecated: Use LldpConnection.ProtoReflect.Descriptor instead. +func (*LldpConnection) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384} } -func (x *PortMetricsRequest) GetPortNames() []string { - if x != nil { - return x.PortNames +func (x *LldpConnection) GetChoice() LldpConnection_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpConnection_Choice_unspecified } -func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *LldpConnection) GetPortName() string { + if x != nil && x.PortName != nil { + return *x.PortName } - return nil + return "" } -// Description missing in models -type PortMetric struct { +// The Chassis ID is a mandatory TLV which identifies the chassis component of the endpoint +// identifier associated with the transmitting LLDP agent. This field identifies the +// format and source of the chassis identifier string. It is based on the enumerator +// defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. +type LldpChassisId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured port - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The state of the connection to the test port location. The format should be the configured - // port location along with any custom connection state message. - Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` - // The state of the test port link The string can be up, down or a custom error message. - Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` - // The state of the test port capture infrastructure. The string can be started, stopped - // or a custom error message. - Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received - BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted - BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received - BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` - // The transmit state of the flow. - Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // Chassis ID subtype to be used in Chassis ID TLV. + // default = Choice.Enum.mac_address_subtype + Choice *LldpChassisId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisId_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + MacAddressSubtype *LldpChassisMacSubType `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3" json:"mac_address_subtype,omitempty"` + // Name of an interface of the chassis that uniquely identifies the chassis. + InterfaceNameSubtype *string `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3,oneof" json:"interface_name_subtype,omitempty"` + // Locally assigned name of the chassis. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *PortMetric) Reset() { - *x = PortMetric{} +func (x *LldpChassisId) Reset() { + *x = LldpChassisId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[393] + mi := &file_otg_proto_msgTypes[385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric) String() string { +func (x *LldpChassisId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric) ProtoMessage() {} +func (*LldpChassisId) ProtoMessage() {} -func (x *PortMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[393] +func (x *LldpChassisId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[385] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56122,141 +56410,76 @@ func (x *PortMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. -func (*PortMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{393} -} - -func (x *PortMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *PortMetric) GetLocation() string { - if x != nil && x.Location != nil { - return *x.Location - } - return "" -} - -func (x *PortMetric) GetLink() PortMetric_Link_Enum { - if x != nil && x.Link != nil { - return *x.Link - } - return PortMetric_Link_unspecified -} - -func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { - if x != nil && x.Capture != nil { - return *x.Capture - } - return PortMetric_Capture_unspecified -} - -func (x *PortMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx - } - return 0 -} - -func (x *PortMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 -} - -func (x *PortMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 -} - -func (x *PortMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 -} - -func (x *PortMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 +// Deprecated: Use LldpChassisId.ProtoReflect.Descriptor instead. +func (*LldpChassisId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{385} } -func (x *PortMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (x *LldpChassisId) GetChoice() LldpChassisId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return LldpChassisId_Choice_unspecified } -func (x *PortMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *LldpChassisId) GetMacAddressSubtype() *LldpChassisMacSubType { + if x != nil { + return x.MacAddressSubtype } - return 0 + return nil } -func (x *PortMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate +func (x *LldpChassisId) GetInterfaceNameSubtype() string { + if x != nil && x.InterfaceNameSubtype != nil { + return *x.InterfaceNameSubtype } - return 0 + return "" } -func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit +func (x *LldpChassisId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype } - return PortMetric_Transmit_unspecified + return "" } -// The container for a flow metric request. -type FlowMetricsRequest struct { +// The Port ID is a mandatory TLV which identifies the port component of the endpoint +// identifier associated with the transmitting LLDP agent.This field identifies the +// format and source of the port identifier string. It is based on the enumerator defined +// by the PtopoPortIdType object from RFC2922. +type LldpPortId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Flow metrics will be retrieved for these flow names. - // If no flow names are specified then all flows will be returned. - // - // x-constraint: - // - /components/schemas/Flow/properties/name - // - // x-constraint: - // - /components/schemas/Flow/properties/name - FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` + // Port ID subtype to be used in Port ID TLV. + // default = Choice.Enum.interface_name_subtype + Choice *LldpPortId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortId_Choice_Enum,oneof" json:"choice,omitempty"` + // The MAC Address configured in the Port ID TLV. + MacAddressSubtype *string `protobuf:"bytes,2,opt,name=mac_address_subtype,json=macAddressSubtype,proto3,oneof" json:"mac_address_subtype,omitempty"` // Description missing in models - TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` + InterfaceNameSubtype *LldpPortInterfaceNameSubType `protobuf:"bytes,3,opt,name=interface_name_subtype,json=interfaceNameSubtype,proto3" json:"interface_name_subtype,omitempty"` + // The Locally assigned name configured in the Port ID TLV. + LocalSubtype *string `protobuf:"bytes,4,opt,name=local_subtype,json=localSubtype,proto3,oneof" json:"local_subtype,omitempty"` } -func (x *FlowMetricsRequest) Reset() { - *x = FlowMetricsRequest{} +func (x *LldpPortId) Reset() { + *x = LldpPortId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[394] + mi := &file_otg_proto_msgTypes[386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest) String() string { +func (x *LldpPortId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest) ProtoMessage() {} +func (*LldpPortId) ProtoMessage() {} -func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[394] +func (x *LldpPortId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[386] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56267,70 +56490,72 @@ func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. -func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{394} +// Deprecated: Use LldpPortId.ProtoReflect.Descriptor instead. +func (*LldpPortId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{386} } -func (x *FlowMetricsRequest) GetFlowNames() []string { - if x != nil { - return x.FlowNames +func (x *LldpPortId) GetChoice() LldpPortId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return LldpPortId_Choice_unspecified } -func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { - if x != nil { - return x.MetricNames +func (x *LldpPortId) GetMacAddressSubtype() string { + if x != nil && x.MacAddressSubtype != nil { + return *x.MacAddressSubtype } - return nil + return "" } -func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { +func (x *LldpPortId) GetInterfaceNameSubtype() *LldpPortInterfaceNameSubType { if x != nil { - return x.TaggedMetrics + return x.InterfaceNameSubtype } return nil } -// Filter for tagged metrics -type FlowTaggedMetricsFilter struct { +func (x *LldpPortId) GetLocalSubtype() string { + if x != nil && x.LocalSubtype != nil { + return *x.LocalSubtype + } + return "" +} + +// The MAC address configured in the Chassis ID TLV. +type LldpChassisMacSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. - // default = True - Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` - // Controls inclusion/exclusion of tagged metrics where each underlying attributes has - // zero value or absent value. - // default = False - IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` - // The list of metric names that the returned result set will contain. If the list is - // empty then all metrics will be returned. - MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` - // List of filters to selectively fetch tagged metrics with certain tag and corresponding - // value. - Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpChassisMacSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpChassisMacSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowTaggedMetricsFilter) Reset() { - *x = FlowTaggedMetricsFilter{} +func (x *LldpChassisMacSubType) Reset() { + *x = LldpChassisMacSubType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[395] + mi := &file_otg_proto_msgTypes[387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter) String() string { +func (x *LldpChassisMacSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter) ProtoMessage() {} +func (*LldpChassisMacSubType) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[395] +func (x *LldpChassisMacSubType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56341,71 +56566,65 @@ func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{395} -} - -func (x *FlowTaggedMetricsFilter) GetInclude() bool { - if x != nil && x.Include != nil { - return *x.Include - } - return false +// Deprecated: Use LldpChassisMacSubType.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387} } -func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { - if x != nil && x.IncludeEmptyMetrics != nil { - return *x.IncludeEmptyMetrics +func (x *LldpChassisMacSubType) GetChoice() LldpChassisMacSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return LldpChassisMacSubType_Choice_unspecified } -func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { - if x != nil { - return x.MetricNames +func (x *LldpChassisMacSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } - return nil + return "" } -func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { - if x != nil { - return x.Filters +func (x *LldpChassisMacSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return "" } -// A container for filtering ingress and/or egress metric tags. -// The Tx stats may not be applicable in both the request and response filter. -type FlowMetricTagFilter struct { +// The interface name configured in the Port ID TLV. +type LldpPortInterfaceNameSubType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // A metric tag name that MUST exist in a flow packet or - // flow egress_packet configuration - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // A list of filters that can be applied to the metric tag name. - // By default all values will be included in the flow metric results. - Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpPortInterfaceNameSubType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpPortInterfaceNameSubType_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowMetricTagFilter) Reset() { - *x = FlowMetricTagFilter{} +func (x *LldpPortInterfaceNameSubType) Reset() { + *x = LldpPortInterfaceNameSubType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[396] + mi := &file_otg_proto_msgTypes[388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagFilter) String() string { +func (x *LldpPortInterfaceNameSubType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagFilter) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType) ProtoMessage() {} -func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[396] +func (x *LldpPortInterfaceNameSubType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56416,82 +56635,65 @@ func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. -func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{396} +// Deprecated: Use LldpPortInterfaceNameSubType.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{388} } -func (x *FlowMetricTagFilter) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *LldpPortInterfaceNameSubType) GetChoice() LldpPortInterfaceNameSubType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return LldpPortInterfaceNameSubType_Choice_unspecified +} + +func (x *LldpPortInterfaceNameSubType) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } return "" } -func (x *FlowMetricTagFilter) GetValues() []string { - if x != nil { - return x.Values +func (x *LldpPortInterfaceNameSubType) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } - return nil + return "" } -// A container for flow metrics. -// The container is keyed by the name, port_tx and port_rx. -type FlowMetric struct { +// The system Name configured in the System Name TLV. +type LldpSystemName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the flow - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The name of the transmit port - PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` - // The name of the receive port - PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` - // The transmit state of the flow. - Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3" json:"latency,omitempty"` - // List of metrics corresponding to a set of values applicable - // for configured metric tags in ingress or egress packet header fields of corresponding - // flow. - // The container is keyed by list of tag-value pairs. - TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` + // In auto mode the system generated value is set for this property, while if the choice + // is selected as value, a user configured value will be used for this property. + // default = Choice.Enum.auto + Choice *LldpSystemName_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.LldpSystemName_Choice_Enum,oneof" json:"choice,omitempty"` + // The OTG implementation must provide a system generated value for this property. + Auto *string `protobuf:"bytes,2,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // User must specify a value if mode is not auto. + Value *string `protobuf:"bytes,3,opt,name=value,proto3,oneof" json:"value,omitempty"` } -func (x *FlowMetric) Reset() { - *x = FlowMetric{} +func (x *LldpSystemName) Reset() { + *x = LldpSystemName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[397] + mi := &file_otg_proto_msgTypes[389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric) String() string { +func (x *LldpSystemName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric) ProtoMessage() {} +func (*LldpSystemName) ProtoMessage() {} -func (x *FlowMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[397] +func (x *LldpSystemName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[389] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56502,156 +56704,135 @@ func (x *FlowMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. -func (*FlowMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{397} +// Deprecated: Use LldpSystemName.ProtoReflect.Descriptor instead. +func (*LldpSystemName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{389} } -func (x *FlowMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *LldpSystemName) GetChoice() LldpSystemName_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return LldpSystemName_Choice_unspecified } -func (x *FlowMetric) GetPortTx() string { - if x != nil && x.PortTx != nil { - return *x.PortTx +func (x *LldpSystemName) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto } return "" } -func (x *FlowMetric) GetPortRx() string { - if x != nil && x.PortRx != nil { - return *x.PortRx +func (x *LldpSystemName) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } return "" } -func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { - if x != nil && x.Transmit != nil { - return *x.Transmit - } - return FlowMetric_Transmit_unspecified -} +// Error response generated while serving API request. +type Error struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx - } - return 0 + // Numeric status code based on the underlying transport being used. + // The API server MUST set this code explicitly based on following references: + // - HTTP 4xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.5 + // - HTTP 5xx errors: https://datatracker.ietf.org/doc/html/rfc9110#section-15.6 + // - gRPC errors: https://grpc.github.io/grpc/core/md_doc_statuscodes.html + // required = true + Code *int32 `protobuf:"varint,1,opt,name=code,proto3,oneof" json:"code,omitempty"` + // Classification of error originating from within API server that may not be mapped + // to the value in `code`. + // Absence of this field may indicate that the error did not originate from within API + // server. + Kind *Error_Kind_Enum `protobuf:"varint,2,opt,name=kind,proto3,enum=otg.Error_Kind_Enum,oneof" json:"kind,omitempty"` + // List of error messages generated while executing the request. + Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` } -func (x *FlowMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx +func (x *Error) Reset() { + *x = Error{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[390] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx - } - return 0 +func (x *Error) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 -} +func (*Error) ProtoMessage() {} -func (x *FlowMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate +func (x *Error) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[390] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate - } - return 0 +// Deprecated: Use Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390} } -func (x *FlowMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss +func (x *Error) GetCode() int32 { + if x != nil && x.Code != nil { + return *x.Code } return 0 } -func (x *FlowMetric) GetTimestamps() *MetricTimestamp { - if x != nil { - return x.Timestamps - } - return nil -} - -func (x *FlowMetric) GetLatency() *MetricLatency { - if x != nil { - return x.Latency +func (x *Error) GetKind() Error_Kind_Enum { + if x != nil && x.Kind != nil { + return *x.Kind } - return nil + return Error_Kind_unspecified } -func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { +func (x *Error) GetErrors() []string { if x != nil { - return x.TaggedMetrics + return x.Errors } return nil } -// Metrics for each set of values applicable for configured -// metric tags in ingress or egress packet header fields of corresponding flow. -// The container is keyed by list of tag-value pairs. -type FlowTaggedMetric struct { +// A list of warnings that have occurred while executing the request. +type Warning struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // List of tag and value pairs - Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` - // The current total number of frames transmitted - FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received - FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted - BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of bytes received - BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted - FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received - FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The percentage of lost frames - Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` - // Description missing in models - Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3" json:"timestamps,omitempty"` - // Description missing in models - Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3" json:"latency,omitempty"` + // A list of any system specific warnings that have occurred while + // executing the request. + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` } -func (x *FlowTaggedMetric) Reset() { - *x = FlowTaggedMetric{} +func (x *Warning) Reset() { + *x = Warning{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[398] + mi := &file_otg_proto_msgTypes[391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetric) String() string { +func (x *Warning) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetric) ProtoMessage() {} +func (*Warning) ProtoMessage() {} -func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[398] +func (x *Warning) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[391] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56662,110 +56843,106 @@ func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. -func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{398} +// Deprecated: Use Warning.ProtoReflect.Descriptor instead. +func (*Warning) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{391} } -func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { +func (x *Warning) GetWarnings() []string { if x != nil { - return x.Tags + return x.Warnings } return nil } -func (x *FlowTaggedMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx - } - return 0 -} +// Request for updating specific attributes of resources in traffic generator +type ConfigUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *FlowTaggedMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 + // Description missing in models + Choice *ConfigUpdate_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ConfigUpdate_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Flows *FlowsUpdate `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"` } -func (x *FlowTaggedMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx +func (x *ConfigUpdate) Reset() { + *x = ConfigUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[392] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *FlowTaggedMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 +func (x *ConfigUpdate) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *FlowTaggedMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate - } - return 0 -} +func (*ConfigUpdate) ProtoMessage() {} -func (x *FlowTaggedMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (x *ConfigUpdate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[392] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *FlowTaggedMetric) GetLoss() float32 { - if x != nil && x.Loss != nil { - return *x.Loss - } - return 0 +// Deprecated: Use ConfigUpdate.ProtoReflect.Descriptor instead. +func (*ConfigUpdate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{392} } -func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { - if x != nil { - return x.Timestamps +func (x *ConfigUpdate) GetChoice() ConfigUpdate_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return ConfigUpdate_Choice_unspecified } -func (x *FlowTaggedMetric) GetLatency() *MetricLatency { +func (x *ConfigUpdate) GetFlows() *FlowsUpdate { if x != nil { - return x.Latency + return x.Flows } return nil } -// Description missing in models -type FlowMetricTag struct { +// A container of flows with associated properties to be updated without affecting the +// flows current transmit state. +type FlowsUpdate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of packet field metric tag - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Description missing in models - Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Flow properties to be updated without affecting the transmit state. + PropertyNames []FlowsUpdate_PropertyNames_Enum `protobuf:"varint,1,rep,packed,name=property_names,json=propertyNames,proto3,enum=otg.FlowsUpdate_PropertyNames_Enum" json:"property_names,omitempty"` + // The list of configured flows for which given property will be updated. + Flows []*Flow `protobuf:"bytes,2,rep,name=flows,proto3" json:"flows,omitempty"` } -func (x *FlowMetricTag) Reset() { - *x = FlowMetricTag{} +func (x *FlowsUpdate) Reset() { + *x = FlowsUpdate{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[399] + mi := &file_otg_proto_msgTypes[393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTag) String() string { +func (x *FlowsUpdate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTag) ProtoMessage() {} +func (*FlowsUpdate) ProtoMessage() {} -func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[399] +func (x *FlowsUpdate) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[393] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56776,57 +56953,59 @@ func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. -func (*FlowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{399} +// Deprecated: Use FlowsUpdate.ProtoReflect.Descriptor instead. +func (*FlowsUpdate) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{393} } -func (x *FlowMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *FlowsUpdate) GetPropertyNames() []FlowsUpdate_PropertyNames_Enum { + if x != nil { + return x.PropertyNames } - return "" + return nil } -func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { +func (x *FlowsUpdate) GetFlows() []*Flow { if x != nil { - return x.Value + return x.Flows } return nil } -// A container for metric tag value -type FlowMetricTagValue struct { +// Request for setting operational state of configured resources. +type ControlState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Available formats for metric tag value - // default = Choice.Enum.hex - Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` - // Value represented in hexadecimal format - Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` - // Value represented in string format - Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` + // Description missing in models + // required = true + Choice *ControlState_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlState_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Port *StatePort `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` + // Description missing in models + Protocol *StateProtocol `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"` + // Description missing in models + Traffic *StateTraffic `protobuf:"bytes,4,opt,name=traffic,proto3" json:"traffic,omitempty"` } -func (x *FlowMetricTagValue) Reset() { - *x = FlowMetricTagValue{} +func (x *ControlState) Reset() { + *x = ControlState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[400] + mi := &file_otg_proto_msgTypes[394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagValue) String() string { +func (x *ControlState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagValue) ProtoMessage() {} +func (*ControlState) ProtoMessage() {} -func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[400] +func (x *ControlState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[394] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56837,63 +57016,71 @@ func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. -func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{400} +// Deprecated: Use ControlState.ProtoReflect.Descriptor instead. +func (*ControlState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{394} } -func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { +func (x *ControlState) GetChoice() ControlState_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return FlowMetricTagValue_Choice_unspecified + return ControlState_Choice_unspecified } -func (x *FlowMetricTagValue) GetHex() string { - if x != nil && x.Hex != nil { - return *x.Hex +func (x *ControlState) GetPort() *StatePort { + if x != nil { + return x.Port } - return "" + return nil } -func (x *FlowMetricTagValue) GetStr() string { - if x != nil && x.Str != nil { - return *x.Str +func (x *ControlState) GetProtocol() *StateProtocol { + if x != nil { + return x.Protocol } - return "" + return nil } -// The container for timestamp metrics. -// The container will be empty if the timestamp has not been configured for -// the flow. -type MetricTimestamp struct { +func (x *ControlState) GetTraffic() *StateTraffic { + if x != nil { + return x.Traffic + } + return nil +} + +// States associated with configured ports. +type StatePort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // First timestamp in nanoseconds - FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` - // Last timestamp in nanoseconds - LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` + // Description missing in models + // required = true + Choice *StatePort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatePort_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Link *StatePortLink `protobuf:"bytes,2,opt,name=link,proto3" json:"link,omitempty"` + // Description missing in models + Capture *StatePortCapture `protobuf:"bytes,3,opt,name=capture,proto3" json:"capture,omitempty"` } -func (x *MetricTimestamp) Reset() { - *x = MetricTimestamp{} +func (x *StatePort) Reset() { + *x = StatePort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[401] + mi := &file_otg_proto_msgTypes[395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricTimestamp) String() string { +func (x *StatePort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricTimestamp) ProtoMessage() {} +func (*StatePort) ProtoMessage() {} -func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[401] +func (x *StatePort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[395] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56904,60 +57091,62 @@ func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. -func (*MetricTimestamp) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{401} +// Deprecated: Use StatePort.ProtoReflect.Descriptor instead. +func (*StatePort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{395} } -func (x *MetricTimestamp) GetFirstTimestampNs() float64 { - if x != nil && x.FirstTimestampNs != nil { - return *x.FirstTimestampNs +func (x *StatePort) GetChoice() StatePort_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return StatePort_Choice_unspecified } -func (x *MetricTimestamp) GetLastTimestampNs() float64 { - if x != nil && x.LastTimestampNs != nil { - return *x.LastTimestampNs +func (x *StatePort) GetLink() *StatePortLink { + if x != nil { + return x.Link } - return 0 + return nil } -// The container for latency metrics. -// The min/max/avg values are dependent on the type of latency measurement -// mode that is configured. -// The container will be empty if the latency has not been configured for -// the flow. -type MetricLatency struct { +func (x *StatePort) GetCapture() *StatePortCapture { + if x != nil { + return x.Capture + } + return nil +} + +// States associated with configured flows +type StateTraffic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Minimum latency in nanoseconds - MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` - // Maximum latency in nanoseconds - MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` - // Average latency in nanoseconds - AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` + // Description missing in models + // required = true + Choice *StateTraffic_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateTraffic_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + FlowTransmit *StateTrafficFlowTransmit `protobuf:"bytes,2,opt,name=flow_transmit,json=flowTransmit,proto3" json:"flow_transmit,omitempty"` } -func (x *MetricLatency) Reset() { - *x = MetricLatency{} +func (x *StateTraffic) Reset() { + *x = StateTraffic{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[402] + mi := &file_otg_proto_msgTypes[396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricLatency) String() string { +func (x *StateTraffic) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricLatency) ProtoMessage() {} +func (*StateTraffic) ProtoMessage() {} -func (x *MetricLatency) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[402] +func (x *StateTraffic) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[396] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56968,70 +57157,63 @@ func (x *MetricLatency) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. -func (*MetricLatency) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{402} +// Deprecated: Use StateTraffic.ProtoReflect.Descriptor instead. +func (*StateTraffic) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{396} } -func (x *MetricLatency) GetMinimumNs() float64 { - if x != nil && x.MinimumNs != nil { - return *x.MinimumNs +func (x *StateTraffic) GetChoice() StateTraffic_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return StateTraffic_Choice_unspecified } -func (x *MetricLatency) GetMaximumNs() float64 { - if x != nil && x.MaximumNs != nil { - return *x.MaximumNs - } - return 0 -} - -func (x *MetricLatency) GetAverageNs() float64 { - if x != nil && x.AverageNs != nil { - return *x.AverageNs +func (x *StateTraffic) GetFlowTransmit() *StateTrafficFlowTransmit { + if x != nil { + return x.FlowTransmit } - return 0 + return nil } -// The request to retrieve BGPv4 per peer metrics/statistics. -type Bgpv4MetricsRequest struct { +// States associated with protocols on configured resources. +type StateProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv4 peers to return results for. An empty list will return results - // for all BGPv4 peers. - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - // - // x-constraint: - // - /components/schemas/Bgp.V4peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv4 peer cannot be excluded. - ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // Description missing in models + // required = true + Choice *StateProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + All *StateProtocolAll `protobuf:"bytes,2,opt,name=all,proto3" json:"all,omitempty"` + // Description missing in models + Route *StateProtocolRoute `protobuf:"bytes,3,opt,name=route,proto3" json:"route,omitempty"` + // Description missing in models + Lacp *StateProtocolLacp `protobuf:"bytes,4,opt,name=lacp,proto3" json:"lacp,omitempty"` + // Description missing in models + Bgp *StateProtocolBgp `protobuf:"bytes,5,opt,name=bgp,proto3" json:"bgp,omitempty"` + // Description missing in models + Isis *StateProtocolIsis `protobuf:"bytes,6,opt,name=isis,proto3" json:"isis,omitempty"` } -func (x *Bgpv4MetricsRequest) Reset() { - *x = Bgpv4MetricsRequest{} +func (x *StateProtocol) Reset() { + *x = StateProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[403] + mi := &file_otg_proto_msgTypes[397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest) String() string { +func (x *StateProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest) ProtoMessage() {} +func (*StateProtocol) ProtoMessage() {} -func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[403] +func (x *StateProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[397] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57042,99 +57224,89 @@ func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{403} +// Deprecated: Use StateProtocol.ProtoReflect.Descriptor instead. +func (*StateProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{397} } -func (x *Bgpv4MetricsRequest) GetPeerNames() []string { +func (x *StateProtocol) GetChoice() StateProtocol_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return StateProtocol_Choice_unspecified +} + +func (x *StateProtocol) GetAll() *StateProtocolAll { if x != nil { - return x.PeerNames + return x.All } return nil } -func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { +func (x *StateProtocol) GetRoute() *StateProtocolRoute { if x != nil { - return x.ColumnNames + return x.Route } return nil } -// BGPv4 per peer statistics information. -type Bgpv4Metric struct { +func (x *StateProtocol) GetLacp() *StateProtocolLacp { + if x != nil { + return x.Lacp + } + return nil +} + +func (x *StateProtocol) GetBgp() *StateProtocolBgp { + if x != nil { + return x.Bgp + } + return nil +} + +func (x *StateProtocol) GetIsis() *StateProtocolIsis { + if x != nil { + return x.Isis + } + return nil +} + +// Sets the link of configured ports. +type StatePortLink struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured BGPv4 peer. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` + // The names of target ports. An empty or null list will target all ports. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The link state. + // required = true + State *StatePortLink_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortLink_State_Enum,oneof" json:"state,omitempty"` } -func (x *Bgpv4Metric) Reset() { - *x = Bgpv4Metric{} +func (x *StatePortLink) Reset() { + *x = StatePortLink{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[404] + mi := &file_otg_proto_msgTypes[398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric) String() string { +func (x *StatePortLink) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric) ProtoMessage() {} +func (*StatePortLink) ProtoMessage() {} -func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[404] +func (x *StatePortLink) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[398] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57145,168 +57317,268 @@ func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. -func (*Bgpv4Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{404} +// Deprecated: Use StatePortLink.ProtoReflect.Descriptor instead. +func (*StatePortLink) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{398} } -func (x *Bgpv4Metric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *StatePortLink) GetPortNames() []string { + if x != nil { + return x.PortNames } - return "" + return nil } -func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState +func (x *StatePortLink) GetState() StatePortLink_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return Bgpv4Metric_SessionState_unspecified + return StatePortLink_State_unspecified } -func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount - } - return 0 +// Sets the capture state of configured ports +type StatePortCapture struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The names of ports to which the capture state will be applied to. If the list of + // port_names is empty or null the state will be applied to all configured ports. + // If the list is not empty any port that is not included in the list of port_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The capture state. + // required = true + State *StatePortCapture_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StatePortCapture_State_Enum,oneof" json:"state,omitempty"` } -func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised +func (x *StatePortCapture) Reset() { + *x = StatePortCapture{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[399] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv4Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived - } - return 0 +func (x *StatePortCapture) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent +func (*StatePortCapture) ProtoMessage() {} + +func (x *StatePortCapture) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[399] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived - } - return 0 +// Deprecated: Use StatePortCapture.ProtoReflect.Descriptor instead. +func (*StatePortCapture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{399} } -func (x *Bgpv4Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent +func (x *StatePortCapture) GetPortNames() []string { + if x != nil { + return x.PortNames } - return 0 + return nil } -func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived +func (x *StatePortCapture) GetState() StatePortCapture_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StatePortCapture_State_unspecified } -func (x *Bgpv4Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent - } - return 0 +// Provides state control of flow transmission. +type StateTrafficFlowTransmit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The names of flows to which the transmit state will be applied to. If the list of + // flow_names is empty or null the state will be applied to all configured flows. + // If the list is not empty any flow that is not included in the list of flow_names + // MUST be ignored and not included in the state change. + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The transmit state. + // If the value of the state property is 'start' then all flows defined by the 'flow_names' + // property will be started and the metric counters MUST be cleared prior to starting + // the flow(s). + // If the value of the state property is 'stop' then all flows defined by the 'flow_names' + // property will be stopped and the metric counters MUST NOT be cleared. + // If the value of the state property is 'pause' then all flows defined by the 'flow_names' + // property will be paused and the metric counters MUST NOT be cleared. + // If the value of the state property is 'resume' then any paused flows defined by the + // 'flow_names' property will start transmit at the point at which they were paused. + // Any flow that is stopped will start transmit at the beginning of the flow. The flow(s) + // MUST NOT have their metric counters cleared. + // required = true + State *StateTrafficFlowTransmit_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateTrafficFlowTransmit_State_Enum,oneof" json:"state,omitempty"` } -func (x *Bgpv4Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived +func (x *StateTrafficFlowTransmit) Reset() { + *x = StateTrafficFlowTransmit{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[400] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +func (x *StateTrafficFlowTransmit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateTrafficFlowTransmit) ProtoMessage() {} + +func (x *StateTrafficFlowTransmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[400] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +// Deprecated: Use StateTrafficFlowTransmit.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{400} +} + +func (x *StateTrafficFlowTransmit) GetFlowNames() []string { + if x != nil { + return x.FlowNames } - return 0 + return nil } -func (x *Bgpv4Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +func (x *StateTrafficFlowTransmit) GetState() StateTrafficFlowTransmit_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StateTrafficFlowTransmit_State_unspecified } -func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +// Sets all configured protocols to `start` or `stop` state. +// Setting protocol state to `start` shall be a no-op if preceding `set_config` API +// call was made with `config.options.protocol_options.auto_start_all` set to `true` +// or if all the configured protocols are already started. +type StateProtocolAll struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Protocol states + // required = true + State *StateProtocolAll_State_Enum `protobuf:"varint,1,opt,name=state,proto3,enum=otg.StateProtocolAll_State_Enum,oneof" json:"state,omitempty"` +} + +func (x *StateProtocolAll) Reset() { + *x = StateProtocolAll{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[401] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState +func (x *StateProtocolAll) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateProtocolAll) ProtoMessage() {} + +func (x *StateProtocolAll) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[401] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return Bgpv4Metric_FsmState_unspecified + return mi.MessageOf(x) } -func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +// Deprecated: Use StateProtocolAll.ProtoReflect.Descriptor instead. +func (*StateProtocolAll) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{401} +} + +func (x *StateProtocolAll) GetState() StateProtocolAll_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StateProtocolAll_State_unspecified } -// The request to retrieve BGPv6 per peer metrics/statistics. -type Bgpv6MetricsRequest struct { +// Sets the state of configured routes +type StateProtocolRoute struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGPv6 peers to return results for. An empty list will return results - // for all BGPv6 peers. + // The names of device route objects to control. If no names are specified then all + // route objects that match the x-constraint will be affected. // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name // // x-constraint: - // - /components/schemas/Bgp.V6peer/properties/name - PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the BGPv6 peer cannot be excluded. - ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Route states + // required = true + State *StateProtocolRoute_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolRoute_State_Enum,oneof" json:"state,omitempty"` } -func (x *Bgpv6MetricsRequest) Reset() { - *x = Bgpv6MetricsRequest{} +func (x *StateProtocolRoute) Reset() { + *x = StateProtocolRoute{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[405] + mi := &file_otg_proto_msgTypes[402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest) String() string { +func (x *StateProtocolRoute) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest) ProtoMessage() {} +func (*StateProtocolRoute) ProtoMessage() {} -func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[405] +func (x *StateProtocolRoute) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[402] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57317,99 +57589,57 @@ func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. -func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{405} +// Deprecated: Use StateProtocolRoute.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{402} } -func (x *Bgpv6MetricsRequest) GetPeerNames() []string { +func (x *StateProtocolRoute) GetNames() []string { if x != nil { - return x.PeerNames + return x.Names } return nil } -func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *StateProtocolRoute) GetState() StateProtocolRoute_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return nil + return StateProtocolRoute_State_unspecified } -// BGPv6 per peer statistics information. -type Bgpv6Metric struct { +// Sets state of configured LACP +type StateProtocolLacp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured BGPv6 peer. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Session state as up or down. Up refers to an Established state and Down refers to - // any other state. - SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` - // Number of times the session went from Up to Down state. - SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` - // Number of routes advertised. - RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` - // Number of routes received. - RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` - // Number of route withdraws sent. - RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` - // Number of route withdraws received. - RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` - // Number of Update messages sent. - UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` - // Number of Update messages received. - UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` - // Number of Open messages sent. - OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` - // Number of Open messages received. - OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` - // Number of Keepalive messages sent. - KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` - // Number of Keepalive messages received. - KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` - // Number of Notification messages sent. - NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` - // Number of Notification messages received. - NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` - // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm - // and Established. In all the states except Established the BGP session is down. Idle - // refers to the Idle state of the FSM. Connect refers to the state where the session - // is waiting for the underlying transport session to be established. Active refers - // to the state where the session is awaiting for a connection from the remote peer. - // OpenSent refers to the state where the session is in the process of being established. - // The local system has sent an OPEN message. OpenConfirm refers to the state where - // the session is in the process of being established. The local system has sent and - // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from - // remote peer. Established refers to the state where the BGP session with the peer - // is established. - FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` - // Number of End-of-RIB markers received indicating the completion of the initial routing - // update for a particular address family after the session is established. - // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with - // the minimum length. For any other address family, it is an UPDATE message that contains - // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . - EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` + // Description missing in models + // required = true + Choice *StateProtocolLacp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolLacp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Admin *StateProtocolLacpAdmin `protobuf:"bytes,2,opt,name=admin,proto3" json:"admin,omitempty"` + // Description missing in models + MemberPorts *StateProtocolLacpMemberPorts `protobuf:"bytes,3,opt,name=member_ports,json=memberPorts,proto3" json:"member_ports,omitempty"` } -func (x *Bgpv6Metric) Reset() { - *x = Bgpv6Metric{} +func (x *StateProtocolLacp) Reset() { + *x = StateProtocolLacp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[406] + mi := &file_otg_proto_msgTypes[403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric) String() string { +func (x *StateProtocolLacp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric) ProtoMessage() {} +func (*StateProtocolLacp) ProtoMessage() {} -func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[406] +func (x *StateProtocolLacp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[403] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57420,153 +57650,252 @@ func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. -func (*Bgpv6Metric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{406} +// Deprecated: Use StateProtocolLacp.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{403} } -func (x *Bgpv6Metric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *StateProtocolLacp) GetChoice() StateProtocolLacp_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StateProtocolLacp_Choice_unspecified } -func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { - if x != nil && x.SessionState != nil { - return *x.SessionState +func (x *StateProtocolLacp) GetAdmin() *StateProtocolLacpAdmin { + if x != nil { + return x.Admin } - return Bgpv6Metric_SessionState_unspecified + return nil } -func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { - if x != nil && x.SessionFlapCount != nil { - return *x.SessionFlapCount +func (x *StateProtocolLacp) GetMemberPorts() *StateProtocolLacpMemberPorts { + if x != nil { + return x.MemberPorts } - return 0 + return nil } -func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { - if x != nil && x.RoutesAdvertised != nil { - return *x.RoutesAdvertised - } - return 0 +// Sets admin state of LACP configured on LAG members +type StateProtocolLacpAdmin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The names of LAG members (ports) for which the state has to be applied. An empty + // or null list will control all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` + // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected + // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member + // ports. + // required = true + State *StateProtocolLacpAdmin_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpAdmin_State_Enum,oneof" json:"state,omitempty"` } -func (x *Bgpv6Metric) GetRoutesReceived() uint64 { - if x != nil && x.RoutesReceived != nil { - return *x.RoutesReceived +func (x *StateProtocolLacpAdmin) Reset() { + *x = StateProtocolLacpAdmin{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[404] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { - if x != nil && x.RouteWithdrawsSent != nil { - return *x.RouteWithdrawsSent - } - return 0 +func (x *StateProtocolLacpAdmin) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { - if x != nil && x.RouteWithdrawsReceived != nil { - return *x.RouteWithdrawsReceived +func (*StateProtocolLacpAdmin) ProtoMessage() {} + +func (x *StateProtocolLacpAdmin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[404] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *Bgpv6Metric) GetUpdatesSent() uint64 { - if x != nil && x.UpdatesSent != nil { - return *x.UpdatesSent +// Deprecated: Use StateProtocolLacpAdmin.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{404} +} + +func (x *StateProtocolLacpAdmin) GetLagMemberNames() []string { + if x != nil { + return x.LagMemberNames } - return 0 + return nil } -func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { - if x != nil && x.UpdatesReceived != nil { - return *x.UpdatesReceived +func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StateProtocolLacpAdmin_State_unspecified } -func (x *Bgpv6Metric) GetOpensSent() uint64 { - if x != nil && x.OpensSent != nil { - return *x.OpensSent +// Sets state of LACP member ports configured on LAG. +type StateProtocolLacpMemberPorts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The names of LAG members (ports) for which the state has to be applied. An empty + // or null list will control all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` + // The desired LACP member port state. + // required = true + State *StateProtocolLacpMemberPorts_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolLacpMemberPorts_State_Enum,oneof" json:"state,omitempty"` +} + +func (x *StateProtocolLacpMemberPorts) Reset() { + *x = StateProtocolLacpMemberPorts{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[405] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv6Metric) GetOpensReceived() uint64 { - if x != nil && x.OpensReceived != nil { - return *x.OpensReceived +func (x *StateProtocolLacpMemberPorts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateProtocolLacpMemberPorts) ProtoMessage() {} + +func (x *StateProtocolLacpMemberPorts) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[405] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { - if x != nil && x.KeepalivesSent != nil { - return *x.KeepalivesSent +// Deprecated: Use StateProtocolLacpMemberPorts.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpMemberPorts) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{405} +} + +func (x *StateProtocolLacpMemberPorts) GetLagMemberNames() []string { + if x != nil { + return x.LagMemberNames } - return 0 + return nil } -func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { - if x != nil && x.KeepalivesReceived != nil { - return *x.KeepalivesReceived +func (x *StateProtocolLacpMemberPorts) GetState() StateProtocolLacpMemberPorts_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StateProtocolLacpMemberPorts_State_unspecified } -func (x *Bgpv6Metric) GetNotificationsSent() uint64 { - if x != nil && x.NotificationsSent != nil { - return *x.NotificationsSent +// Sets state of configured BGP peers. +type StateProtocolBgp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice *StateProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolBgp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Peers *StateProtocolBgpPeers `protobuf:"bytes,2,opt,name=peers,proto3" json:"peers,omitempty"` +} + +func (x *StateProtocolBgp) Reset() { + *x = StateProtocolBgp{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[406] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { - if x != nil && x.NotificationsReceived != nil { - return *x.NotificationsReceived +func (x *StateProtocolBgp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateProtocolBgp) ProtoMessage() {} + +func (x *StateProtocolBgp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[406] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { - if x != nil && x.FsmState != nil { - return *x.FsmState +// Deprecated: Use StateProtocolBgp.ProtoReflect.Descriptor instead. +func (*StateProtocolBgp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406} +} + +func (x *StateProtocolBgp) GetChoice() StateProtocolBgp_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return Bgpv6Metric_FsmState_unspecified + return StateProtocolBgp_Choice_unspecified } -func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { - if x != nil && x.EndOfRibReceived != nil { - return *x.EndOfRibReceived +func (x *StateProtocolBgp) GetPeers() *StateProtocolBgpPeers { + if x != nil { + return x.Peers } - return 0 + return nil } -// The request to retrieve ISIS per Router metrics/statistics. -type IsisMetricsRequest struct { +// Sets state of configured BGP peers. +type StateProtocolBgpPeers struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS Routers to return results for. An empty list will return results - // for all ISIS router. + // The names of BGP peers for which the state has to be applied. An empty or null list + // will control all BGP peers. // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned except for any result_groups. The name of - // the ISIS Router cannot be excluded. - ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The desired state of BGP peer. If the desired state is 'up', underlying IP interface(s) + // would be brought up automatically (if not already up), would attempt to bring up + // the BGP session(s) and advertise route(s), if configured. If the desired state is + // 'down', BGP session(s) would be brought down. + // required = true + State *StateProtocolBgpPeers_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolBgpPeers_State_Enum,oneof" json:"state,omitempty"` } -func (x *IsisMetricsRequest) Reset() { - *x = IsisMetricsRequest{} +func (x *StateProtocolBgpPeers) Reset() { + *x = StateProtocolBgpPeers{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57574,13 +57903,13 @@ func (x *IsisMetricsRequest) Reset() { } } -func (x *IsisMetricsRequest) String() string { +func (x *StateProtocolBgpPeers) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest) ProtoMessage() {} +func (*StateProtocolBgpPeers) ProtoMessage() {} -func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { +func (x *StateProtocolBgpPeers) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[407] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57592,89 +57921,40 @@ func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. -func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolBgpPeers.ProtoReflect.Descriptor instead. +func (*StateProtocolBgpPeers) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{407} } -func (x *IsisMetricsRequest) GetRouterNames() []string { +func (x *StateProtocolBgpPeers) GetPeerNames() []string { if x != nil { - return x.RouterNames + return x.PeerNames } return nil } -func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *StateProtocolBgpPeers) GetState() StateProtocolBgpPeers_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return nil + return StateProtocolBgpPeers_State_unspecified } -// ISIS per router statistics information. -type IsisMetric struct { +// Sets state of configured ISIS routers. +type StateProtocolIsis struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured ISIS router. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of Level 1 (L1) sessions that are fully up. - L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` - // The number of Level 1 Sessions Flap. - L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` - // Number of Level 1 Hello messages sent. - L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` - // Number of Level 1 Hello messages received. - L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages sent. - L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` - // Number of Level 1 Point-to-Point(P2P) Hello messages received. - L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. - L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` - // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. - L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. - L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. - L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` - // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. - L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. - L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` - // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. - L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` - // The number of Level 2 (L2) sessions that are fully up. - L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` - // The number of Level 2 Sessions Flap. - L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` - // Number of Level 2 Hello messages sent. - L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` - // Number of Level 2 Hello messages received. - L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages sent. - L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` - // Number of Level 2 Point-to-Point(P2P) Hello messages received. - L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` - // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. - L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` - // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. - L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. - L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. - L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` - // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. - L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. - L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` - // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. - L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` + // Description missing in models + // required = true + Choice *StateProtocolIsis_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StateProtocolIsis_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Routers *StateProtocolIsisRouters `protobuf:"bytes,2,opt,name=routers,proto3" json:"routers,omitempty"` } -func (x *IsisMetric) Reset() { - *x = IsisMetric{} +func (x *StateProtocolIsis) Reset() { + *x = StateProtocolIsis{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57682,13 +57962,13 @@ func (x *IsisMetric) Reset() { } } -func (x *IsisMetric) String() string { +func (x *StateProtocolIsis) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetric) ProtoMessage() {} +func (*StateProtocolIsis) ProtoMessage() {} -func (x *IsisMetric) ProtoReflect() protoreflect.Message { +func (x *StateProtocolIsis) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[408] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -57700,237 +57980,182 @@ func (x *IsisMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. -func (*IsisMetric) Descriptor() ([]byte, []int) { +// Deprecated: Use StateProtocolIsis.ProtoReflect.Descriptor instead. +func (*StateProtocolIsis) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{408} } -func (x *IsisMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *StateProtocolIsis) GetChoice() StateProtocolIsis_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StateProtocolIsis_Choice_unspecified } -func (x *IsisMetric) GetL1SessionsUp() uint32 { - if x != nil && x.L1SessionsUp != nil { - return *x.L1SessionsUp +func (x *StateProtocolIsis) GetRouters() *StateProtocolIsisRouters { + if x != nil { + return x.Routers } - return 0 + return nil } -func (x *IsisMetric) GetL1SessionFlap() uint64 { - if x != nil && x.L1SessionFlap != nil { - return *x.L1SessionFlap - } - return 0 +// Sets state of configured ISIS routers. +type StateProtocolIsisRouters struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The names of ISIS routers for which the state has to be applied. An empty or null + // list will control all ISIS routers. + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The desired state of ISIS router. If the desired state is 'up', would attempt to + // bring up the ISIS session(s) with respective peer(s) and advertise route(s), if configured. + // If the desired state is 'down', would bring down ISIS session(s) with respective + // peer(s). + // required = true + State *StateProtocolIsisRouters_State_Enum `protobuf:"varint,2,opt,name=state,proto3,enum=otg.StateProtocolIsisRouters_State_Enum,oneof" json:"state,omitempty"` } -func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { - if x != nil && x.L1BroadcastHellosSent != nil { - return *x.L1BroadcastHellosSent +func (x *StateProtocolIsisRouters) Reset() { + *x = StateProtocolIsisRouters{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[409] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { - if x != nil && x.L1BroadcastHellosReceived != nil { - return *x.L1BroadcastHellosReceived - } - return 0 +func (x *StateProtocolIsisRouters) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { - if x != nil && x.L1PointToPointHellosSent != nil { - return *x.L1PointToPointHellosSent +func (*StateProtocolIsisRouters) ProtoMessage() {} + +func (x *StateProtocolIsisRouters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[409] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { - if x != nil && x.L1PointToPointHellosReceived != nil { - return *x.L1PointToPointHellosReceived - } - return 0 +// Deprecated: Use StateProtocolIsisRouters.ProtoReflect.Descriptor instead. +func (*StateProtocolIsisRouters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{409} } -func (x *IsisMetric) GetL1DatabaseSize() uint64 { - if x != nil && x.L1DatabaseSize != nil { - return *x.L1DatabaseSize +func (x *StateProtocolIsisRouters) GetRouterNames() []string { + if x != nil { + return x.RouterNames } - return 0 + return nil } -func (x *IsisMetric) GetL1PsnpSent() uint64 { - if x != nil && x.L1PsnpSent != nil { - return *x.L1PsnpSent +func (x *StateProtocolIsisRouters) GetState() StateProtocolIsisRouters_State_Enum { + if x != nil && x.State != nil { + return *x.State } - return 0 + return StateProtocolIsisRouters_State_unspecified } -func (x *IsisMetric) GetL1PsnpReceived() uint64 { - if x != nil && x.L1PsnpReceived != nil { - return *x.L1PsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpSent() uint64 { - if x != nil && x.L1CsnpSent != nil { - return *x.L1CsnpSent - } - return 0 -} - -func (x *IsisMetric) GetL1CsnpReceived() uint64 { - if x != nil && x.L1CsnpReceived != nil { - return *x.L1CsnpReceived - } - return 0 -} - -func (x *IsisMetric) GetL1LspSent() uint64 { - if x != nil && x.L1LspSent != nil { - return *x.L1LspSent - } - return 0 -} - -func (x *IsisMetric) GetL1LspReceived() uint64 { - if x != nil && x.L1LspReceived != nil { - return *x.L1LspReceived - } - return 0 -} - -func (x *IsisMetric) GetL2SessionsUp() uint32 { - if x != nil && x.L2SessionsUp != nil { - return *x.L2SessionsUp - } - return 0 -} - -func (x *IsisMetric) GetL2SessionFlap() uint64 { - if x != nil && x.L2SessionFlap != nil { - return *x.L2SessionFlap - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { - if x != nil && x.L2BroadcastHellosSent != nil { - return *x.L2BroadcastHellosSent - } - return 0 -} - -func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { - if x != nil && x.L2BroadcastHellosReceived != nil { - return *x.L2BroadcastHellosReceived - } - return 0 -} - -func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { - if x != nil && x.L2PointToPointHellosSent != nil { - return *x.L2PointToPointHellosSent - } - return 0 -} +// Request for triggering action against configured resources. +type ControlAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { - if x != nil && x.L2PointToPointHellosReceived != nil { - return *x.L2PointToPointHellosReceived - } - return 0 + // Description missing in models + // required = true + Choice *ControlAction_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ControlAction_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Protocol *ActionProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` } -func (x *IsisMetric) GetL2DatabaseSize() uint64 { - if x != nil && x.L2DatabaseSize != nil { - return *x.L2DatabaseSize +func (x *ControlAction) Reset() { + *x = ControlAction{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[410] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *IsisMetric) GetL2PsnpSent() uint64 { - if x != nil && x.L2PsnpSent != nil { - return *x.L2PsnpSent - } - return 0 +func (x *ControlAction) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *IsisMetric) GetL2PsnpReceived() uint64 { - if x != nil && x.L2PsnpReceived != nil { - return *x.L2PsnpReceived - } - return 0 -} +func (*ControlAction) ProtoMessage() {} -func (x *IsisMetric) GetL2CsnpSent() uint64 { - if x != nil && x.L2CsnpSent != nil { - return *x.L2CsnpSent +func (x *ControlAction) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[410] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *IsisMetric) GetL2CsnpReceived() uint64 { - if x != nil && x.L2CsnpReceived != nil { - return *x.L2CsnpReceived - } - return 0 +// Deprecated: Use ControlAction.ProtoReflect.Descriptor instead. +func (*ControlAction) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{410} } -func (x *IsisMetric) GetL2LspSent() uint64 { - if x != nil && x.L2LspSent != nil { - return *x.L2LspSent +func (x *ControlAction) GetChoice() ControlAction_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return ControlAction_Choice_unspecified } -func (x *IsisMetric) GetL2LspReceived() uint64 { - if x != nil && x.L2LspReceived != nil { - return *x.L2LspReceived +func (x *ControlAction) GetProtocol() *ActionProtocol { + if x != nil { + return x.Protocol } - return 0 + return nil } -// The request to retrieve per LAG metrics/statistics. -type LagMetricsRequest struct { +// Response for action triggered against configured resources along with warnings. +type ControlActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAGs to return results for. An empty list will return results for all - // LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the LAG cannot be excluded. - ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // List of warnings generated while triggering specified action + Warnings []string `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` + // Description missing in models + Response *ActionResponse `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"` } -func (x *LagMetricsRequest) Reset() { - *x = LagMetricsRequest{} +func (x *ControlActionResponse) Reset() { + *x = ControlActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[409] + mi := &file_otg_proto_msgTypes[411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest) String() string { +func (x *ControlActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest) ProtoMessage() {} +func (*ControlActionResponse) ProtoMessage() {} -func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[409] +func (x *ControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[411] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -57941,79 +58166,55 @@ func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. -func (*LagMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{409} +// Deprecated: Use ControlActionResponse.ProtoReflect.Descriptor instead. +func (*ControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{411} } -func (x *LagMetricsRequest) GetLagNames() []string { +func (x *ControlActionResponse) GetWarnings() []string { if x != nil { - return x.LagNames + return x.Warnings } return nil } -func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { +func (x *ControlActionResponse) GetResponse() *ActionResponse { if x != nil { - return x.ColumnNames + return x.Response } return nil } -// Description missing in models -type LagMetric struct { +// Response for action triggered against configured resources. +type ActionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured LAG - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The current operational state of the LAG. The state can be up or down. State 'up' - // indicates member_ports_up >= min_links. - OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` - // The number of LAG member ports up. - MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` - // The current total number of frames transmitted. - FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // The current total number of valid frames received. - FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // The current total number of bytes transmitted. - BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` - // The current total number of valid bytes received. - BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` - // The current rate of frames transmitted. - FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` - // The current rate of valid frames received. - FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` - // The current rate of bytes transmitted. - BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` - // The current rate of bytes received. - BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // Description missing in models + // required = true + Choice *ActionResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Protocol *ActionResponseProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` } -func (x *LagMetric) Reset() { - *x = LagMetric{} +func (x *ActionResponse) Reset() { + *x = ActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[410] + mi := &file_otg_proto_msgTypes[412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric) String() string { +func (x *ActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric) ProtoMessage() {} +func (*ActionResponse) ProtoMessage() {} -func (x *LagMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[410] +func (x *ActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[412] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58024,135 +58225,134 @@ func (x *LagMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. -func (*LagMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{410} +// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. +func (*ActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{412} } -func (x *LagMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionResponse) GetChoice() ActionResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return ActionResponse_Choice_unspecified } -func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { - if x != nil && x.OperStatus != nil { - return *x.OperStatus +func (x *ActionResponse) GetProtocol() *ActionResponseProtocol { + if x != nil { + return x.Protocol } - return LagMetric_OperStatus_unspecified + return nil } -func (x *LagMetric) GetMemberPortsUp() uint32 { - if x != nil && x.MemberPortsUp != nil { - return *x.MemberPortsUp - } - return 0 +// Actions associated with protocols on configured resources. +type ActionProtocol struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Description missing in models + // required = true + Choice *ActionProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4 *ActionProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + // Description missing in models + Ipv6 *ActionProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` + // Description missing in models + Bgp *ActionProtocolBgp `protobuf:"bytes,4,opt,name=bgp,proto3" json:"bgp,omitempty"` } -func (x *LagMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionProtocol) Reset() { + *x = ActionProtocol{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[413] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *LagMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +func (x *ActionProtocol) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LagMetric) GetBytesTx() uint64 { - if x != nil && x.BytesTx != nil { - return *x.BytesTx +func (*ActionProtocol) ProtoMessage() {} + +func (x *ActionProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[413] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *LagMetric) GetBytesRx() uint64 { - if x != nil && x.BytesRx != nil { - return *x.BytesRx - } - return 0 +// Deprecated: Use ActionProtocol.ProtoReflect.Descriptor instead. +func (*ActionProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{413} } -func (x *LagMetric) GetFramesTxRate() float32 { - if x != nil && x.FramesTxRate != nil { - return *x.FramesTxRate +func (x *ActionProtocol) GetChoice() ActionProtocol_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return ActionProtocol_Choice_unspecified } -func (x *LagMetric) GetFramesRxRate() float32 { - if x != nil && x.FramesRxRate != nil { - return *x.FramesRxRate +func (x *ActionProtocol) GetIpv4() *ActionProtocolIpv4 { + if x != nil { + return x.Ipv4 } - return 0 + return nil } -func (x *LagMetric) GetBytesTxRate() float32 { - if x != nil && x.BytesTxRate != nil { - return *x.BytesTxRate +func (x *ActionProtocol) GetIpv6() *ActionProtocolIpv6 { + if x != nil { + return x.Ipv6 } - return 0 + return nil } -func (x *LagMetric) GetBytesRxRate() float32 { - if x != nil && x.BytesRxRate != nil { - return *x.BytesRxRate +func (x *ActionProtocol) GetBgp() *ActionProtocolBgp { + if x != nil { + return x.Bgp } - return 0 + return nil } -// The request to retrieve LACP per LAG member metrics/statistics. -type LacpMetricsRequest struct { +// Response for actions associated with protocols on configured resources. +type ActionResponseProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LAG (ports group) for which LACP metrics to be returned. An empty list - // will return metrics for all LAGs. - // - // x-constraint: - // - /components/schemas/Lag/properties/name - // - // x-constraint: - // - /components/schemas/Lag/properties/name - LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` - // The names of LAG members (ports) for which LACP metrics to be returned. An empty - // list will return metrics for all LAG members. - // - // x-constraint: - // - /components/schemas/Port/properties/name - // - // x-constraint: - // - /components/schemas/Port/properties/name - LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of LAG and LAG member can not be - // excluded. - ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // Description missing in models + // required = true + Choice *ActionResponseProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4 *ActionResponseProtocolIpv4 `protobuf:"bytes,2,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + // Description missing in models + Ipv6 *ActionResponseProtocolIpv6 `protobuf:"bytes,3,opt,name=ipv6,proto3" json:"ipv6,omitempty"` } -func (x *LacpMetricsRequest) Reset() { - *x = LacpMetricsRequest{} +func (x *ActionResponseProtocol) Reset() { + *x = ActionResponseProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[411] + mi := &file_otg_proto_msgTypes[414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest) String() string { +func (x *ActionResponseProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest) ProtoMessage() {} +func (*ActionResponseProtocol) ProtoMessage() {} -func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[411] +func (x *ActionResponseProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[414] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58163,94 +58363,62 @@ func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{411} +// Deprecated: Use ActionResponseProtocol.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{414} } -func (x *LacpMetricsRequest) GetLagNames() []string { - if x != nil { - return x.LagNames +func (x *ActionResponseProtocol) GetChoice() ActionResponseProtocol_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return ActionResponseProtocol_Choice_unspecified } -func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { +func (x *ActionResponseProtocol) GetIpv4() *ActionResponseProtocolIpv4 { if x != nil { - return x.LagMemberPortNames + return x.Ipv4 } return nil } -func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { +func (x *ActionResponseProtocol) GetIpv6() *ActionResponseProtocolIpv6 { if x != nil { - return x.ColumnNames + return x.Ipv6 } return nil } -// LACP metrics (statistics) per LAG member. -type LacpMetric struct { +// Actions associated with IPv4 on configured resources. +type ActionProtocolIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a LAG (ports group) configured with LACP. - LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` - // The name of a LAG member (port) configured with LACP. - LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` - // Number of LACPDUs received. - LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` - // Number of LACPDUs transmitted. - LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` - // Number of LACPDUs receive packet errors. - LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` - // Indicates participant is active or passive. - Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` - // The timeout type (short or long) used by the participant. - Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` - // Indicates whether the participant is in-sync or out-of-sync. - Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` - // A true value indicates that the participant will allow the link to be used as part - // of the aggregate. A false value indicates the link should be used as an individual - // link. - Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` - // If true, the participant is collecting incoming frames on the link, otherwise false. - Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` - // When true, the participant is distributing outgoing frames; when false, distribution - // is disabled. - Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` - // MAC address that defines the local system ID for the aggregate interface. - SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` - // Current operational value of the key for the aggregate interface. - OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` - // MAC address representing the protocol partner's interface system ID. - PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` - // Operational value of the protocol partner's key. - PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` - // Port number of the local (actor) aggregation member. - PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` - // Port number of the partner (remote) port for this member port. - PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` + // Description missing in models + // required = true + Choice *ActionProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ping *ActionProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } -func (x *LacpMetric) Reset() { - *x = LacpMetric{} +func (x *ActionProtocolIpv4) Reset() { + *x = ActionProtocolIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[412] + mi := &file_otg_proto_msgTypes[415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric) String() string { +func (x *ActionProtocolIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric) ProtoMessage() {} +func (*ActionProtocolIpv4) ProtoMessage() {} -func (x *LacpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[412] +func (x *ActionProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[415] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58261,167 +58429,174 @@ func (x *LacpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. -func (*LacpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{412} +// Deprecated: Use ActionProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{415} } -func (x *LacpMetric) GetLagName() string { - if x != nil && x.LagName != nil { - return *x.LagName +func (x *ActionProtocolIpv4) GetChoice() ActionProtocolIpv4_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return ActionProtocolIpv4_Choice_unspecified } -func (x *LacpMetric) GetLagMemberPortName() string { - if x != nil && x.LagMemberPortName != nil { - return *x.LagMemberPortName +func (x *ActionProtocolIpv4) GetPing() *ActionProtocolIpv4Ping { + if x != nil { + return x.Ping } - return "" + return nil } -func (x *LacpMetric) GetLacpPacketsRx() uint64 { - if x != nil && x.LacpPacketsRx != nil { - return *x.LacpPacketsRx - } - return 0 -} +// Response for actions associated with IPv4 on configured resources. +type ActionResponseProtocolIpv4 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *LacpMetric) GetLacpPacketsTx() uint64 { - if x != nil && x.LacpPacketsTx != nil { - return *x.LacpPacketsTx - } - return 0 + // Description missing in models + // required = true + Choice *ActionResponseProtocolIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv4_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv4Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } -func (x *LacpMetric) GetLacpRxErrors() uint64 { - if x != nil && x.LacpRxErrors != nil { - return *x.LacpRxErrors +func (x *ActionResponseProtocolIpv4) Reset() { + *x = ActionResponseProtocolIpv4{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[416] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { - if x != nil && x.Activity != nil { - return *x.Activity - } - return LacpMetric_Activity_unspecified +func (x *ActionResponseProtocolIpv4) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { - if x != nil && x.Timeout != nil { - return *x.Timeout - } - return LacpMetric_Timeout_unspecified -} +func (*ActionResponseProtocolIpv4) ProtoMessage() {} -func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { - if x != nil && x.Synchronization != nil { - return *x.Synchronization +func (x *ActionResponseProtocolIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[416] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return LacpMetric_Synchronization_unspecified + return mi.MessageOf(x) } -func (x *LacpMetric) GetAggregatable() bool { - if x != nil && x.Aggregatable != nil { - return *x.Aggregatable - } - return false +// Deprecated: Use ActionResponseProtocolIpv4.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{416} } -func (x *LacpMetric) GetCollecting() bool { - if x != nil && x.Collecting != nil { - return *x.Collecting +func (x *ActionResponseProtocolIpv4) GetChoice() ActionResponseProtocolIpv4_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return false + return ActionResponseProtocolIpv4_Choice_unspecified } -func (x *LacpMetric) GetDistributing() bool { - if x != nil && x.Distributing != nil { - return *x.Distributing +func (x *ActionResponseProtocolIpv4) GetPing() *ActionResponseProtocolIpv4Ping { + if x != nil { + return x.Ping } - return false + return nil } -func (x *LacpMetric) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId - } - return "" +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv4Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of IPv4 ping requests. + Requests []*ActionProtocolIpv4PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *LacpMetric) GetOperKey() uint32 { - if x != nil && x.OperKey != nil { - return *x.OperKey +func (x *ActionProtocolIpv4Ping) Reset() { + *x = ActionProtocolIpv4Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[417] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *LacpMetric) GetPartnerId() string { - if x != nil && x.PartnerId != nil { - return *x.PartnerId - } - return "" +func (x *ActionProtocolIpv4Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *LacpMetric) GetPartnerKey() uint32 { - if x != nil && x.PartnerKey != nil { - return *x.PartnerKey +func (*ActionProtocolIpv4Ping) ProtoMessage() {} + +func (x *ActionProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[417] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *LacpMetric) GetPortNum() uint32 { - if x != nil && x.PortNum != nil { - return *x.PortNum - } - return 0 +// Deprecated: Use ActionProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{417} } -func (x *LacpMetric) GetPartnerPortNum() uint32 { - if x != nil && x.PartnerPortNum != nil { - return *x.PartnerPortNum +func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest { + if x != nil { + return x.Requests } - return 0 + return nil } -// The request to retrieve LLDP per instance metrics/statistics. -type LldpMetricsRequest struct { +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv4PingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances to return results for. An empty list will return results - // for all LLDP instances. + // Name of source IPv4 interface to be used. // // x-constraint: - // - /components/schemas/Lldp/properties/name + // - /components/schemas/Device.Ipv4/properties/name // // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // The requested list of column names for the result set. If the list is empty then - // metrics for all columns will be returned. The name of LLDP instance can not be excluded. - ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Device.Ipv4/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv4 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *LldpMetricsRequest) Reset() { - *x = LldpMetricsRequest{} +func (x *ActionProtocolIpv4PingRequest) Reset() { + *x = ActionProtocolIpv4PingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[413] + mi := &file_otg_proto_msgTypes[418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest) String() string { +func (x *ActionProtocolIpv4PingRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest) ProtoMessage() {} +func (*ActionProtocolIpv4PingRequest) ProtoMessage() {} -func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[413] +func (x *ActionProtocolIpv4PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[418] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58432,74 +58607,52 @@ func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. -func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{413} +// Deprecated: Use ActionProtocolIpv4PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{418} } -func (x *LldpMetricsRequest) GetLldpNames() []string { - if x != nil { - return x.LldpNames +func (x *ActionProtocolIpv4PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return nil + return "" } -func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *ActionProtocolIpv4PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return nil + return "" } -// LLDP per instance statistics information. -type LldpMetric struct { +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv4Ping struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the configured LLDP instance. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Number of LLDP frames received. - FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` - // Number of LLDP frames transmitted. - FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` - // Number of LLDP frames received with packet errors. This stat should be incremented - // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 - // AB-2005. - FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` - // Number of LLDP frames received that are discarded. This stat should be incremented - // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, - // out of order or contains an out of range information string length. This stat should - // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. - FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` - // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition - // specific for that particular TLV or if any TLV extends past the physical end of - // the frame then these TLVs will be discarded. - TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` - // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific - // TLV and/or organizationally defined subtype are not recognized,or if TLV type value - // is in the range of reserved TLV types then these TLVs will be considered as unknown - // TLVs. - TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` + // List of responses for IPv4 ping responses. + Responses []*ActionResponseProtocolIpv4PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *LldpMetric) Reset() { - *x = LldpMetric{} +func (x *ActionResponseProtocolIpv4Ping) Reset() { + *x = ActionResponseProtocolIpv4Ping{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[414] + mi := &file_otg_proto_msgTypes[419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetric) String() string { +func (x *ActionResponseProtocolIpv4Ping) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetric) ProtoMessage() {} +func (*ActionResponseProtocolIpv4Ping) ProtoMessage() {} -func (x *LldpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[414] +func (x *ActionResponseProtocolIpv4Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[419] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58510,97 +58663,125 @@ func (x *LldpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. -func (*LldpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{414} +// Deprecated: Use ActionResponseProtocolIpv4Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{419} } -func (x *LldpMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionResponseProtocolIpv4Ping) GetResponses() []*ActionResponseProtocolIpv4PingResponse { + if x != nil { + return x.Responses } - return "" + return nil } -func (x *LldpMetric) GetFramesRx() uint64 { - if x != nil && x.FramesRx != nil { - return *x.FramesRx - } - return 0 +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv4PingResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of source IPv4 interface used for ping. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv4 address used for ping. + // required = true + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result *ActionResponseProtocolIpv4PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv4PingResponse_Result_Enum,oneof" json:"result,omitempty"` } -func (x *LldpMetric) GetFramesTx() uint64 { - if x != nil && x.FramesTx != nil { - return *x.FramesTx +func (x *ActionResponseProtocolIpv4PingResponse) Reset() { + *x = ActionResponseProtocolIpv4PingResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[420] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *LldpMetric) GetFramesErrorRx() uint64 { - if x != nil && x.FramesErrorRx != nil { - return *x.FramesErrorRx +func (x *ActionResponseProtocolIpv4PingResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ActionResponseProtocolIpv4PingResponse) ProtoMessage() {} + +func (x *ActionResponseProtocolIpv4PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[420] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *LldpMetric) GetFramesDiscard() uint64 { - if x != nil && x.FramesDiscard != nil { - return *x.FramesDiscard +// Deprecated: Use ActionResponseProtocolIpv4PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{420} +} + +func (x *ActionResponseProtocolIpv4PingResponse) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return 0 + return "" } -func (x *LldpMetric) GetTlvsDiscard() uint64 { - if x != nil && x.TlvsDiscard != nil { - return *x.TlvsDiscard +func (x *ActionResponseProtocolIpv4PingResponse) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return 0 + return "" } -func (x *LldpMetric) GetTlvsUnknown() uint64 { - if x != nil && x.TlvsUnknown != nil { - return *x.TlvsUnknown +func (x *ActionResponseProtocolIpv4PingResponse) GetResult() ActionResponseProtocolIpv4PingResponse_Result_Enum { + if x != nil && x.Result != nil { + return *x.Result } - return 0 + return ActionResponseProtocolIpv4PingResponse_Result_unspecified } -// The request to retrieve RSVP-TE per Router metrics/statistics. -type RsvpMetricsRequest struct { +// Actions associated with IPv6 on configured resources. +type ActionProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of RSVP-TE Routers to return results for. An empty list as input will return - // results for all RSVP-TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` - // The list of column names that the returned result set will contain. If the input - // list is empty then all columns will be returned except for any result_groups. - ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // Description missing in models + // required = true + Choice *ActionProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ping *ActionProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } -func (x *RsvpMetricsRequest) Reset() { - *x = RsvpMetricsRequest{} +func (x *ActionProtocolIpv6) Reset() { + *x = ActionProtocolIpv6{} 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) } } -func (x *RsvpMetricsRequest) String() string { +func (x *ActionProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest) ProtoMessage() {} +func (*ActionProtocolIpv6) ProtoMessage() {} -func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[415] +func (x *ActionProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58611,119 +58792,55 @@ func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. -func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{415} +// Deprecated: Use ActionProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{421} } -func (x *RsvpMetricsRequest) GetRouterNames() []string { - if x != nil { - return x.RouterNames +func (x *ActionProtocolIpv6) GetChoice() ActionProtocolIpv6_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return nil + return ActionProtocolIpv6_Choice_unspecified } -func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { +func (x *ActionProtocolIpv6) GetPing() *ActionProtocolIpv6Ping { if x != nil { - return x.ColumnNames + return x.Ping } return nil } -// RSVP-TE per router statistics information. -type RsvpMetric struct { +// Response for actions associated with IPv6 on configured resources. +type ActionResponseProtocolIpv6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured RSVP router. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // The number of ingress point-to-point LSPs configured or transiting through the RSVP - // router which have been initated from the test port. - IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` - // The number of ingress point-to-point LSPs for which Resv has been received and is - // currently up. - IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` - // The number of egress point-to-point LSPs for which Path requests were successfully - // processed and is currently up. - EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` - // The number of times an LSP went from up to down state either because it timed out - // while waiting for Refreshes or a PathTear or ResvTear message was received which - // caused the LSP to flap. - LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` - // The number of Path messages sent by this RSVP router. - PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` - // The number of Path messages received by this RSVP router. - PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` - // The number of Resv messages sent by this RSVP router. - ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` - // The number of Resv messages received by this RSVP router. - ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` - // The number of Path Tear messages sent by this RSVP router. - PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` - // The number of Path Tear messages received by this RSVP router. - PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` - // The number of Resv Tear messages sent by this RSVP router. - ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` - // The number of Resv Tear messages received by this RSVP router. - ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` - // The number of Path Error messages sent by this RSVP router. - PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` - // The number of Path Error messages received by this RSVP router. - PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` - // The number of Resv Error messages sent by this RSVP router. - ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` - // The number of Resv Error messages received by this RSVP router. - ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` - // The number of ResvConf messages sent by this RSVP router. - ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` - // The number of ResvConf messages received by this RSVP router. - ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` - // The number of Hello messages sent by this RSVP router. - HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` - // The number of Hello messages received by this RSVP router. - HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` - // The number of Ack messages sent by this RSVP router. - AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` - // The number of Ack messages received by this RSVP router. - AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` - // The number of Nack messages sent by this RSVP router. - NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` - // The number of Nack messages received by this RSVP router. - NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` - // The number of SRefresh messages sent by this RSVP router. - SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` - // The number of SRefresh messages received by this RSVP router. - SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` - // The number of Bundle messages sent by this RSVP router. - BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` - // The number of Bundle messages received by this RSVP router. - BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` - // The number of Path messages with Path Re-evaluation Request enabled sent by this - // RSVP router. - PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` - // The number of successfully completed Make-Before-Break operations on LSPs on this - // RSVP router. - PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` + // Description missing in models + // required = true + Choice *ActionResponseProtocolIpv6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionResponseProtocolIpv6_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ping *ActionResponseProtocolIpv6Ping `protobuf:"bytes,2,opt,name=ping,proto3" json:"ping,omitempty"` } -func (x *RsvpMetric) Reset() { - *x = RsvpMetric{} +func (x *ActionResponseProtocolIpv6) Reset() { + *x = ActionResponseProtocolIpv6{} 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) } } -func (x *RsvpMetric) String() string { +func (x *ActionResponseProtocolIpv6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetric) ProtoMessage() {} +func (*ActionResponseProtocolIpv6) ProtoMessage() {} -func (x *RsvpMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[416] +func (x *ActionResponseProtocolIpv6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[422] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58734,266 +58851,234 @@ func (x *RsvpMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. -func (*RsvpMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{416} +// Deprecated: Use ActionResponseProtocolIpv6.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{422} } -func (x *RsvpMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ActionResponseProtocolIpv6) GetChoice() ActionResponseProtocolIpv6_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return ActionResponseProtocolIpv6_Choice_unspecified } -func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { - if x != nil && x.IngressP2PLspsConfigured != nil { - return *x.IngressP2PLspsConfigured +func (x *ActionResponseProtocolIpv6) GetPing() *ActionResponseProtocolIpv6Ping { + if x != nil { + return x.Ping } - return 0 + return nil } -func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { - if x != nil && x.IngressP2PLspsUp != nil { - return *x.IngressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { - if x != nil && x.EgressP2PLspsUp != nil { - return *x.EgressP2PLspsUp - } - return 0 -} - -func (x *RsvpMetric) GetLspFlapCount() uint64 { - if x != nil && x.LspFlapCount != nil { - return *x.LspFlapCount - } - return 0 -} - -func (x *RsvpMetric) GetPathsTx() uint64 { - if x != nil && x.PathsTx != nil { - return *x.PathsTx - } - return 0 -} - -func (x *RsvpMetric) GetPathsRx() uint64 { - if x != nil && x.PathsRx != nil { - return *x.PathsRx - } - return 0 -} +// Request for initiating ping between multiple source and destination pairs. +type ActionProtocolIpv6Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpMetric) GetResvsTx() uint64 { - if x != nil && x.ResvsTx != nil { - return *x.ResvsTx - } - return 0 + // List of IPv6 ping requests. + Requests []*ActionProtocolIpv6PingRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"` } -func (x *RsvpMetric) GetResvsRx() uint64 { - if x != nil && x.ResvsRx != nil { - return *x.ResvsRx +func (x *ActionProtocolIpv6Ping) Reset() { + *x = ActionProtocolIpv6Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[423] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *RsvpMetric) GetPathTearsTx() uint64 { - if x != nil && x.PathTearsTx != nil { - return *x.PathTearsTx - } - return 0 +func (x *ActionProtocolIpv6Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpMetric) GetPathTearsRx() uint64 { - if x != nil && x.PathTearsRx != nil { - return *x.PathTearsRx - } - return 0 -} +func (*ActionProtocolIpv6Ping) ProtoMessage() {} -func (x *RsvpMetric) GetResvTearsTx() uint64 { - if x != nil && x.ResvTearsTx != nil { - return *x.ResvTearsTx +func (x *ActionProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[423] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *RsvpMetric) GetResvTearsRx() uint64 { - if x != nil && x.ResvTearsRx != nil { - return *x.ResvTearsRx - } - return 0 +// Deprecated: Use ActionProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{423} } -func (x *RsvpMetric) GetPathErrorsTx() uint64 { - if x != nil && x.PathErrorsTx != nil { - return *x.PathErrorsTx +func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest { + if x != nil { + return x.Requests } - return 0 + return nil } -func (x *RsvpMetric) GetPathErrorsRx() uint64 { - if x != nil && x.PathErrorsRx != nil { - return *x.PathErrorsRx - } - return 0 -} +// Under Review: Most ping request parameters are still TBD. +// +// Under Review: Most ping request parameters are still TBD. +// +// Request for initiating ping between a single source and destination pair. +// For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response +// to either succeed or time out. The API wait timeout for each request shall be 300ms. +type ActionProtocolIpv6PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpMetric) GetResvErrorsTx() uint64 { - if x != nil && x.ResvErrorsTx != nil { - return *x.ResvErrorsTx - } - return 0 + // Name of source IPv6 interface to be used. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv6 address to ping. + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` } -func (x *RsvpMetric) GetResvErrorsRx() uint64 { - if x != nil && x.ResvErrorsRx != nil { - return *x.ResvErrorsRx +func (x *ActionProtocolIpv6PingRequest) Reset() { + *x = ActionProtocolIpv6PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[424] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *RsvpMetric) GetResvConfTx() uint64 { - if x != nil && x.ResvConfTx != nil { - return *x.ResvConfTx - } - return 0 +func (x *ActionProtocolIpv6PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpMetric) GetResvConfRx() uint64 { - if x != nil && x.ResvConfRx != nil { - return *x.ResvConfRx - } - return 0 -} +func (*ActionProtocolIpv6PingRequest) ProtoMessage() {} -func (x *RsvpMetric) GetHellosTx() uint64 { - if x != nil && x.HellosTx != nil { - return *x.HellosTx +func (x *ActionProtocolIpv6PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[424] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *RsvpMetric) GetHellosRx() uint64 { - if x != nil && x.HellosRx != nil { - return *x.HellosRx - } - return 0 +// Deprecated: Use ActionProtocolIpv6PingRequest.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6PingRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{424} } -func (x *RsvpMetric) GetAcksTx() uint64 { - if x != nil && x.AcksTx != nil { - return *x.AcksTx +func (x *ActionProtocolIpv6PingRequest) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return 0 + return "" } -func (x *RsvpMetric) GetAcksRx() uint64 { - if x != nil && x.AcksRx != nil { - return *x.AcksRx +func (x *ActionProtocolIpv6PingRequest) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return 0 + return "" } -func (x *RsvpMetric) GetNacksTx() uint64 { - if x != nil && x.NacksTx != nil { - return *x.NacksTx - } - return 0 -} +// Response for ping initiated between multiple source and destination pairs. +type ActionResponseProtocolIpv6Ping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *RsvpMetric) GetNacksRx() uint64 { - if x != nil && x.NacksRx != nil { - return *x.NacksRx - } - return 0 + // List of responses for IPv6 ping responses. + Responses []*ActionResponseProtocolIpv6PingResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"` } -func (x *RsvpMetric) GetSrefreshTx() uint64 { - if x != nil && x.SrefreshTx != nil { - return *x.SrefreshTx +func (x *ActionResponseProtocolIpv6Ping) Reset() { + *x = ActionResponseProtocolIpv6Ping{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[425] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *RsvpMetric) GetSrefreshRx() uint64 { - if x != nil && x.SrefreshRx != nil { - return *x.SrefreshRx - } - return 0 +func (x *ActionResponseProtocolIpv6Ping) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *RsvpMetric) GetBundleTx() uint64 { - if x != nil && x.BundleTx != nil { - return *x.BundleTx - } - return 0 -} +func (*ActionResponseProtocolIpv6Ping) ProtoMessage() {} -func (x *RsvpMetric) GetBundleRx() uint64 { - if x != nil && x.BundleRx != nil { - return *x.BundleRx +func (x *ActionResponseProtocolIpv6Ping) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[425] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { - if x != nil && x.PathReevaluationRequestTx != nil { - return *x.PathReevaluationRequestTx - } - return 0 +// Deprecated: Use ActionResponseProtocolIpv6Ping.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6Ping) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{425} } -func (x *RsvpMetric) GetPathReoptimizations() uint64 { - if x != nil && x.PathReoptimizations != nil { - return *x.PathReoptimizations +func (x *ActionResponseProtocolIpv6Ping) GetResponses() []*ActionResponseProtocolIpv6PingResponse { + if x != nil { + return x.Responses } - return 0 + return nil } -// The request to retrieve DHCPv4 per client metrics/statistics. -type Dhcpv4ClientMetricsRequest struct { +// Response for ping initiated between a single source and destination pair. +type ActionResponseProtocolIpv6PingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of DHCPv4 clients to return results for. An empty list will return results - // for all DHCPv4 client. + // Name of source IPv6 interface used for ping. // // x-constraint: - // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Ipv6/properties/name // // x-constraint: - // - /components/schemas/Device.Dhcpv4client/properties/name - ClientNames []string `protobuf:"bytes,1,rep,name=client_names,json=clientNames,proto3" json:"client_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the DHCPv4 client cannot be - // excluded. - ColumnNames []Dhcpv4ClientMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv4ClientMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Device.Ipv6/properties/name + // + // required = true + SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` + // Destination IPv6 address used for ping. + // required = true + DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` + // Result of the ping request. + // required = true + Result *ActionResponseProtocolIpv6PingResponse_Result_Enum `protobuf:"varint,3,opt,name=result,proto3,enum=otg.ActionResponseProtocolIpv6PingResponse_Result_Enum,oneof" json:"result,omitempty"` } -func (x *Dhcpv4ClientMetricsRequest) Reset() { - *x = Dhcpv4ClientMetricsRequest{} +func (x *ActionResponseProtocolIpv6PingResponse) Reset() { + *x = ActionResponseProtocolIpv6PingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[417] + mi := &file_otg_proto_msgTypes[426] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ClientMetricsRequest) String() string { +func (x *ActionResponseProtocolIpv6PingResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ClientMetricsRequest) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse) ProtoMessage() {} -func (x *Dhcpv4ClientMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[417] +func (x *ActionResponseProtocolIpv6PingResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[426] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59004,66 +59089,64 @@ func (x *Dhcpv4ClientMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ClientMetricsRequest.ProtoReflect.Descriptor instead. -func (*Dhcpv4ClientMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{417} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{426} } -func (x *Dhcpv4ClientMetricsRequest) GetClientNames() []string { - if x != nil { - return x.ClientNames +func (x *ActionResponseProtocolIpv6PingResponse) GetSrcName() string { + if x != nil && x.SrcName != nil { + return *x.SrcName } - return nil + return "" } -func (x *Dhcpv4ClientMetricsRequest) GetColumnNames() []Dhcpv4ClientMetricsRequest_ColumnNames_Enum { - if x != nil { - return x.ColumnNames +func (x *ActionResponseProtocolIpv6PingResponse) GetDstIp() string { + if x != nil && x.DstIp != nil { + return *x.DstIp } - return nil + return "" } -// DHCPv4 per peer statistics information. -type Dhcpv4ClientMetric struct { +func (x *ActionResponseProtocolIpv6PingResponse) GetResult() ActionResponseProtocolIpv6PingResponse_Result_Enum { + if x != nil && x.Result != nil { + return *x.Result + } + return ActionResponseProtocolIpv6PingResponse_Result_unspecified +} + +// Actions associated with BGP on configured resources. +type ActionProtocolBgp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured DHCPv4 client. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Number of DHCPDISCOVER messages sent. - DiscoversSent *uint64 `protobuf:"varint,2,opt,name=discovers_sent,json=discoversSent,proto3,oneof" json:"discovers_sent,omitempty"` - // Number of DHCPOFFER messages received. - OffersReceived *uint64 `protobuf:"varint,3,opt,name=offers_received,json=offersReceived,proto3,oneof" json:"offers_received,omitempty"` - // Number of DHCPREQUEST messages sent. - RequestsSent *uint64 `protobuf:"varint,4,opt,name=requests_sent,json=requestsSent,proto3,oneof" json:"requests_sent,omitempty"` - // Number of lease DHCPACK messages received. - AcksReceived *uint64 `protobuf:"varint,5,opt,name=acks_received,json=acksReceived,proto3,oneof" json:"acks_received,omitempty"` - // Number of negative lease DHCPNACK messages received. - NacksReceived *uint64 `protobuf:"varint,6,opt,name=nacks_received,json=nacksReceived,proto3,oneof" json:"nacks_received,omitempty"` - // Number of DHCPRELEASE messages sent. - ReleasesSent *uint64 `protobuf:"varint,7,opt,name=releases_sent,json=releasesSent,proto3,oneof" json:"releases_sent,omitempty"` - // Number of DHCPDECLINE messages sent. - DeclinesSent *uint64 `protobuf:"varint,8,opt,name=declines_sent,json=declinesSent,proto3,oneof" json:"declines_sent,omitempty"` + // Description missing in models + // required = true + Choice *ActionProtocolBgp_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ActionProtocolBgp_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Notification *ActionProtocolBgpNotification `protobuf:"bytes,2,opt,name=notification,proto3" json:"notification,omitempty"` + // Description missing in models + InitiateGracefulRestart *ActionProtocolBgpInitiateGracefulRestart `protobuf:"bytes,3,opt,name=initiate_graceful_restart,json=initiateGracefulRestart,proto3" json:"initiate_graceful_restart,omitempty"` } -func (x *Dhcpv4ClientMetric) Reset() { - *x = Dhcpv4ClientMetric{} +func (x *ActionProtocolBgp) Reset() { + *x = ActionProtocolBgp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[418] + mi := &file_otg_proto_msgTypes[427] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ClientMetric) String() string { +func (x *ActionProtocolBgp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ClientMetric) ProtoMessage() {} +func (*ActionProtocolBgp) ProtoMessage() {} -func (x *Dhcpv4ClientMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[418] +func (x *ActionProtocolBgp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[427] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59074,105 +59157,94 @@ func (x *Dhcpv4ClientMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ClientMetric.ProtoReflect.Descriptor instead. -func (*Dhcpv4ClientMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{418} -} - -func (x *Dhcpv4ClientMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *Dhcpv4ClientMetric) GetDiscoversSent() uint64 { - if x != nil && x.DiscoversSent != nil { - return *x.DiscoversSent - } - return 0 -} - -func (x *Dhcpv4ClientMetric) GetOffersReceived() uint64 { - if x != nil && x.OffersReceived != nil { - return *x.OffersReceived - } - return 0 -} - -func (x *Dhcpv4ClientMetric) GetRequestsSent() uint64 { - if x != nil && x.RequestsSent != nil { - return *x.RequestsSent - } - return 0 -} - -func (x *Dhcpv4ClientMetric) GetAcksReceived() uint64 { - if x != nil && x.AcksReceived != nil { - return *x.AcksReceived - } - return 0 +// Deprecated: Use ActionProtocolBgp.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{427} } -func (x *Dhcpv4ClientMetric) GetNacksReceived() uint64 { - if x != nil && x.NacksReceived != nil { - return *x.NacksReceived +func (x *ActionProtocolBgp) GetChoice() ActionProtocolBgp_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return ActionProtocolBgp_Choice_unspecified } -func (x *Dhcpv4ClientMetric) GetReleasesSent() uint64 { - if x != nil && x.ReleasesSent != nil { - return *x.ReleasesSent +func (x *ActionProtocolBgp) GetNotification() *ActionProtocolBgpNotification { + if x != nil { + return x.Notification } - return 0 + return nil } -func (x *Dhcpv4ClientMetric) GetDeclinesSent() uint64 { - if x != nil && x.DeclinesSent != nil { - return *x.DeclinesSent +func (x *ActionProtocolBgp) GetInitiateGracefulRestart() *ActionProtocolBgpInitiateGracefulRestart { + if x != nil { + return x.InitiateGracefulRestart } - return 0 + return nil } -// The request to retrieve DHCPv4 per Server metrics/statistics. -type Dhcpv4ServerMetricsRequest struct { +// A NOTIFICATION message is sent when an error is detected with the BGP session, such +// as hold timer expiring, misconfigured AS number or a BGP session reset is requested. +// This causes the BGP connection to close. Send explicit NOTIFICATIONs for list of +// specified BGP peers. If a user wants to send custom Error Code and Error Subcode +// the custom object should be configured. A user can send IANA defined BGP NOTIFICATIONs +// according to https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml. +type ActionProtocolBgpNotification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of DHCPv4 Servers to return results for. An empty list will return results - // for all DHCPv4 Server. + // The names of BGP Peers to send NOTIFICATION to. If no name is specified then NOTIFICATION + // will be sent to all configured BGP peers. // // x-constraint: - // - /components/schemas/Device.Dhcpv4Server/properties/name + // - /components/schemas/Device.Bgp/properties/name // // x-constraint: - // - /components/schemas/Device.Dhcpv4Server/properties/name - ServerNames []string `protobuf:"bytes,1,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"` - // The list of column names that the returned result set will contain. If the list is - // empty then all columns will be returned. The name of the DHCPv4 server cannot be - // excluded. - ColumnNames []Dhcpv4ServerMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv4ServerMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` + // - /components/schemas/Device.Bgp/properties/name + Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` + // Each BGP NOTIFICATION message includes an Error Code field indicating what type of + // problem occurred. For certain Error Codes, an Error Subcode field provides additional + // details about the specific nature of the problem. The choice value will provide + // the Error Code used in NOTIFICATION message. The Subcode can be set for each of + // the corresponding errors except for Hold Timer Expired error and BGP Finite State + // Machine error. In both of these cases Subcode 0 will be sent. If a user wants to + // use non zero Sub Code then custom choice can be used. + // default = Choice.Enum.cease + Choice *ActionProtocolBgpNotification_Choice_Enum `protobuf:"varint,2,opt,name=choice,proto3,enum=otg.ActionProtocolBgpNotification_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Cease *DeviceBgpCeaseError `protobuf:"bytes,3,opt,name=cease,proto3" json:"cease,omitempty"` + // Description missing in models + MessageHeaderError *DeviceBgpMessageHeaderError `protobuf:"bytes,4,opt,name=message_header_error,json=messageHeaderError,proto3" json:"message_header_error,omitempty"` + // Description missing in models + OpenMessageError *DeviceBgpOpenMessageError `protobuf:"bytes,5,opt,name=open_message_error,json=openMessageError,proto3" json:"open_message_error,omitempty"` + // Description missing in models + UpdateMessageError *DeviceBgpUpdateMessageError `protobuf:"bytes,6,opt,name=update_message_error,json=updateMessageError,proto3" json:"update_message_error,omitempty"` + // Description missing in models + HoldTimerExpired *DeviceBgpHoldTimerExpired `protobuf:"bytes,7,opt,name=hold_timer_expired,json=holdTimerExpired,proto3" json:"hold_timer_expired,omitempty"` + // Description missing in models + FiniteStateMachineError *DeviceBgpFiniteStateMachineError `protobuf:"bytes,8,opt,name=finite_state_machine_error,json=finiteStateMachineError,proto3" json:"finite_state_machine_error,omitempty"` + // Description missing in models + Custom *DeviceBgpCustomError `protobuf:"bytes,9,opt,name=custom,proto3" json:"custom,omitempty"` } -func (x *Dhcpv4ServerMetricsRequest) Reset() { - *x = Dhcpv4ServerMetricsRequest{} +func (x *ActionProtocolBgpNotification) Reset() { + *x = ActionProtocolBgpNotification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[419] + mi := &file_otg_proto_msgTypes[428] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ServerMetricsRequest) String() string { +func (x *ActionProtocolBgpNotification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ServerMetricsRequest) ProtoMessage() {} +func (*ActionProtocolBgpNotification) ProtoMessage() {} -func (x *Dhcpv4ServerMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[419] +func (x *ActionProtocolBgpNotification) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[428] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59183,66 +59255,113 @@ func (x *Dhcpv4ServerMetricsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ServerMetricsRequest.ProtoReflect.Descriptor instead. -func (*Dhcpv4ServerMetricsRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{419} +// Deprecated: Use ActionProtocolBgpNotification.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{428} } -func (x *Dhcpv4ServerMetricsRequest) GetServerNames() []string { +func (x *ActionProtocolBgpNotification) GetNames() []string { if x != nil { - return x.ServerNames + return x.Names } return nil } -func (x *Dhcpv4ServerMetricsRequest) GetColumnNames() []Dhcpv4ServerMetricsRequest_ColumnNames_Enum { +func (x *ActionProtocolBgpNotification) GetChoice() ActionProtocolBgpNotification_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return ActionProtocolBgpNotification_Choice_unspecified +} + +func (x *ActionProtocolBgpNotification) GetCease() *DeviceBgpCeaseError { if x != nil { - return x.ColumnNames + return x.Cease } return nil } -// DHCPv4 per peer statistics information. -type Dhcpv4ServerMetric struct { +func (x *ActionProtocolBgpNotification) GetMessageHeaderError() *DeviceBgpMessageHeaderError { + if x != nil { + return x.MessageHeaderError + } + return nil +} + +func (x *ActionProtocolBgpNotification) GetOpenMessageError() *DeviceBgpOpenMessageError { + if x != nil { + return x.OpenMessageError + } + return nil +} + +func (x *ActionProtocolBgpNotification) GetUpdateMessageError() *DeviceBgpUpdateMessageError { + if x != nil { + return x.UpdateMessageError + } + return nil +} + +func (x *ActionProtocolBgpNotification) GetHoldTimerExpired() *DeviceBgpHoldTimerExpired { + if x != nil { + return x.HoldTimerExpired + } + return nil +} + +func (x *ActionProtocolBgpNotification) GetFiniteStateMachineError() *DeviceBgpFiniteStateMachineError { + if x != nil { + return x.FiniteStateMachineError + } + return nil +} + +func (x *ActionProtocolBgpNotification) GetCustom() *DeviceBgpCustomError { + if x != nil { + return x.Custom + } + return nil +} + +// Initiates BGP Graceful Restart process for the selected BGP peers. If no name is +// specified then Graceful Restart will be sent to all configured BGP peers. +type ActionProtocolBgpInitiateGracefulRestart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a configured DHCPv4 Server. - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Number of DHCPDISCOVER messages received. - DiscoversReceived *uint64 `protobuf:"varint,2,opt,name=discovers_received,json=discoversReceived,proto3,oneof" json:"discovers_received,omitempty"` - // Number of DHCPOFFER messages sent. - OffersSent *uint64 `protobuf:"varint,3,opt,name=offers_sent,json=offersSent,proto3,oneof" json:"offers_sent,omitempty"` - // Number of DHCPOFFER messages received. - RequestsReceived *uint64 `protobuf:"varint,4,opt,name=requests_received,json=requestsReceived,proto3,oneof" json:"requests_received,omitempty"` - // Number of lease DHCPACK messages sent. - AcksSent *uint64 `protobuf:"varint,5,opt,name=acks_sent,json=acksSent,proto3,oneof" json:"acks_sent,omitempty"` - // Number of negative lease DHCPNACK messages sent. - NacksSent *uint64 `protobuf:"varint,6,opt,name=nacks_sent,json=nacksSent,proto3,oneof" json:"nacks_sent,omitempty"` - // Number of DHCPRELEASE messages received. - ReleasesReceived *uint64 `protobuf:"varint,7,opt,name=releases_received,json=releasesReceived,proto3,oneof" json:"releases_received,omitempty"` - // Number of DHCPDECLINE messages received. - DeclinesReceived *uint64 `protobuf:"varint,8,opt,name=declines_received,json=declinesReceived,proto3,oneof" json:"declines_received,omitempty"` + // The names of device BGP peers objects to control. + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // Duration (in seconds) after which selected BGP peers will initiate + // Graceful restart by sending the Open Message with Restart State bit set in the Graceful + // Restart capability. + // default = 30 + RestartDelay *uint32 `protobuf:"varint,2,opt,name=restart_delay,json=restartDelay,proto3,oneof" json:"restart_delay,omitempty"` } -func (x *Dhcpv4ServerMetric) Reset() { - *x = Dhcpv4ServerMetric{} +func (x *ActionProtocolBgpInitiateGracefulRestart) Reset() { + *x = ActionProtocolBgpInitiateGracefulRestart{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[420] + mi := &file_otg_proto_msgTypes[429] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ServerMetric) String() string { +func (x *ActionProtocolBgpInitiateGracefulRestart) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ServerMetric) ProtoMessage() {} +func (*ActionProtocolBgpInitiateGracefulRestart) ProtoMessage() {} -func (x *Dhcpv4ServerMetric) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[420] +func (x *ActionProtocolBgpInitiateGracefulRestart) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[429] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59253,111 +59372,79 @@ func (x *Dhcpv4ServerMetric) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ServerMetric.ProtoReflect.Descriptor instead. -func (*Dhcpv4ServerMetric) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{420} -} - -func (x *Dhcpv4ServerMetric) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *Dhcpv4ServerMetric) GetDiscoversReceived() uint64 { - if x != nil && x.DiscoversReceived != nil { - return *x.DiscoversReceived - } - return 0 -} - -func (x *Dhcpv4ServerMetric) GetOffersSent() uint64 { - if x != nil && x.OffersSent != nil { - return *x.OffersSent - } - return 0 -} - -func (x *Dhcpv4ServerMetric) GetRequestsReceived() uint64 { - if x != nil && x.RequestsReceived != nil { - return *x.RequestsReceived - } - return 0 -} - -func (x *Dhcpv4ServerMetric) GetAcksSent() uint64 { - if x != nil && x.AcksSent != nil { - return *x.AcksSent - } - return 0 -} - -func (x *Dhcpv4ServerMetric) GetNacksSent() uint64 { - if x != nil && x.NacksSent != nil { - return *x.NacksSent - } - return 0 +// Deprecated: Use ActionProtocolBgpInitiateGracefulRestart.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpInitiateGracefulRestart) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{429} } -func (x *Dhcpv4ServerMetric) GetReleasesReceived() uint64 { - if x != nil && x.ReleasesReceived != nil { - return *x.ReleasesReceived +func (x *ActionProtocolBgpInitiateGracefulRestart) GetPeerNames() []string { + if x != nil { + return x.PeerNames } - return 0 + return nil } -func (x *Dhcpv4ServerMetric) GetDeclinesReceived() uint64 { - if x != nil && x.DeclinesReceived != nil { - return *x.DeclinesReceived +func (x *ActionProtocolBgpInitiateGracefulRestart) GetRestartDelay() uint32 { + if x != nil && x.RestartDelay != nil { + return *x.RestartDelay } return 0 } -// Request to traffic generator for states of choice -type StatesRequest struct { +// Request to traffic generator for metrics of choice. +type MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.port + Choice *MetricsRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsRequest_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + Port *PortMetricsRequest `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"` // Description missing in models - Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + Flow *FlowMetricsRequest `protobuf:"bytes,3,opt,name=flow,proto3" json:"flow,omitempty"` // Description missing in models - BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + Bgpv4 *Bgpv4MetricsRequest `protobuf:"bytes,4,opt,name=bgpv4,proto3" json:"bgpv4,omitempty"` // Description missing in models - IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + Bgpv6 *Bgpv6MetricsRequest `protobuf:"bytes,5,opt,name=bgpv6,proto3" json:"bgpv6,omitempty"` // Description missing in models - LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + Isis *IsisMetricsRequest `protobuf:"bytes,6,opt,name=isis,proto3" json:"isis,omitempty"` // Description missing in models - RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + Lag *LagMetricsRequest `protobuf:"bytes,7,opt,name=lag,proto3" json:"lag,omitempty"` // Description missing in models - Dhcpv4Interfaces *Dhcpv4InterfaceStateRequest `protobuf:"bytes,8,opt,name=dhcpv4_interfaces,json=dhcpv4Interfaces,proto3" json:"dhcpv4_interfaces,omitempty"` + Lacp *LacpMetricsRequest `protobuf:"bytes,8,opt,name=lacp,proto3" json:"lacp,omitempty"` // Description missing in models - Dhcpv4Leases *Dhcpv4LeaseStateRequest `protobuf:"bytes,9,opt,name=dhcpv4_leases,json=dhcpv4Leases,proto3" json:"dhcpv4_leases,omitempty"` + Lldp *LldpMetricsRequest `protobuf:"bytes,9,opt,name=lldp,proto3" json:"lldp,omitempty"` + // Description missing in models + Rsvp *RsvpMetricsRequest `protobuf:"bytes,10,opt,name=rsvp,proto3" json:"rsvp,omitempty"` + // Description missing in models + Dhcpv4Client *Dhcpv4ClientMetricsRequest `protobuf:"bytes,11,opt,name=dhcpv4_client,json=dhcpv4Client,proto3" json:"dhcpv4_client,omitempty"` + // Description missing in models + Dhcpv4Server *Dhcpv4ServerMetricsRequest `protobuf:"bytes,12,opt,name=dhcpv4_server,json=dhcpv4Server,proto3" json:"dhcpv4_server,omitempty"` + // Description missing in models + Dhcpv6Client *Dhcpv6ClientMetricsRequest `protobuf:"bytes,13,opt,name=dhcpv6_client,json=dhcpv6Client,proto3" json:"dhcpv6_client,omitempty"` + // Description missing in models + Dhcpv6Server *Dhcpv6ServerMetricsRequest `protobuf:"bytes,14,opt,name=dhcpv6_server,json=dhcpv6Server,proto3" json:"dhcpv6_server,omitempty"` } -func (x *StatesRequest) Reset() { - *x = StatesRequest{} +func (x *MetricsRequest) Reset() { + *x = MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[421] + mi := &file_otg_proto_msgTypes[430] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest) String() string { +func (x *MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest) ProtoMessage() {} +func (*MetricsRequest) ProtoMessage() {} -func (x *StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[421] +func (x *MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[430] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59368,118 +59455,163 @@ func (x *StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. -func (*StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{421} +// Deprecated: Use MetricsRequest.ProtoReflect.Descriptor instead. +func (*MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{430} } -func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { +func (x *MetricsRequest) GetChoice() MetricsRequest_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return StatesRequest_Choice_unspecified + return MetricsRequest_Choice_unspecified } -func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { +func (x *MetricsRequest) GetPort() *PortMetricsRequest { if x != nil { - return x.Ipv4Neighbors + return x.Port } return nil } -func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { +func (x *MetricsRequest) GetFlow() *FlowMetricsRequest { if x != nil { - return x.Ipv6Neighbors + return x.Flow } return nil } -func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { +func (x *MetricsRequest) GetBgpv4() *Bgpv4MetricsRequest { if x != nil { - return x.BgpPrefixes + return x.Bgpv4 } return nil } -func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { +func (x *MetricsRequest) GetBgpv6() *Bgpv6MetricsRequest { if x != nil { - return x.IsisLsps + return x.Bgpv6 } return nil } -func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { +func (x *MetricsRequest) GetIsis() *IsisMetricsRequest { if x != nil { - return x.LldpNeighbors + return x.Isis } return nil } -func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { +func (x *MetricsRequest) GetLag() *LagMetricsRequest { if x != nil { - return x.RsvpLsps + return x.Lag } return nil } -func (x *StatesRequest) GetDhcpv4Interfaces() *Dhcpv4InterfaceStateRequest { +func (x *MetricsRequest) GetLacp() *LacpMetricsRequest { if x != nil { - return x.Dhcpv4Interfaces + return x.Lacp } return nil } -func (x *StatesRequest) GetDhcpv4Leases() *Dhcpv4LeaseStateRequest { +func (x *MetricsRequest) GetLldp() *LldpMetricsRequest { if x != nil { - return x.Dhcpv4Leases + return x.Lldp } return nil } -// Response containing chosen traffic generator states -type StatesResponse struct { +func (x *MetricsRequest) GetRsvp() *RsvpMetricsRequest { + if x != nil { + return x.Rsvp + } + return nil +} + +func (x *MetricsRequest) GetDhcpv4Client() *Dhcpv4ClientMetricsRequest { + if x != nil { + return x.Dhcpv4Client + } + return nil +} + +func (x *MetricsRequest) GetDhcpv4Server() *Dhcpv4ServerMetricsRequest { + if x != nil { + return x.Dhcpv4Server + } + return nil +} + +func (x *MetricsRequest) GetDhcpv6Client() *Dhcpv6ClientMetricsRequest { + if x != nil { + return x.Dhcpv6Client + } + return nil +} + +func (x *MetricsRequest) GetDhcpv6Server() *Dhcpv6ServerMetricsRequest { + if x != nil { + return x.Dhcpv6Server + } + return nil +} + +// Response containing chosen traffic generator metrics. +type MetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.ipv4_neighbors - Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.port_metrics + Choice *MetricsResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.MetricsResponse_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + PortMetrics []*PortMetric `protobuf:"bytes,2,rep,name=port_metrics,json=portMetrics,proto3" json:"port_metrics,omitempty"` // Description missing in models - Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + FlowMetrics []*FlowMetric `protobuf:"bytes,3,rep,name=flow_metrics,json=flowMetrics,proto3" json:"flow_metrics,omitempty"` // Description missing in models - BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + Bgpv4Metrics []*Bgpv4Metric `protobuf:"bytes,4,rep,name=bgpv4_metrics,json=bgpv4Metrics,proto3" json:"bgpv4_metrics,omitempty"` // Description missing in models - IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + Bgpv6Metrics []*Bgpv6Metric `protobuf:"bytes,5,rep,name=bgpv6_metrics,json=bgpv6Metrics,proto3" json:"bgpv6_metrics,omitempty"` // Description missing in models - LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + IsisMetrics []*IsisMetric `protobuf:"bytes,6,rep,name=isis_metrics,json=isisMetrics,proto3" json:"isis_metrics,omitempty"` // Description missing in models - RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + LagMetrics []*LagMetric `protobuf:"bytes,7,rep,name=lag_metrics,json=lagMetrics,proto3" json:"lag_metrics,omitempty"` // Description missing in models - Dhcpv4Interfaces []*Dhcpv4InterfaceState `protobuf:"bytes,8,rep,name=dhcpv4_interfaces,json=dhcpv4Interfaces,proto3" json:"dhcpv4_interfaces,omitempty"` + LacpMetrics []*LacpMetric `protobuf:"bytes,8,rep,name=lacp_metrics,json=lacpMetrics,proto3" json:"lacp_metrics,omitempty"` // Description missing in models - Dhcpv4Leases []*Dhcpv4LeasesState `protobuf:"bytes,9,rep,name=dhcpv4_leases,json=dhcpv4Leases,proto3" json:"dhcpv4_leases,omitempty"` + LldpMetrics []*LldpMetric `protobuf:"bytes,9,rep,name=lldp_metrics,json=lldpMetrics,proto3" json:"lldp_metrics,omitempty"` + // Description missing in models + RsvpMetrics []*RsvpMetric `protobuf:"bytes,10,rep,name=rsvp_metrics,json=rsvpMetrics,proto3" json:"rsvp_metrics,omitempty"` + // Description missing in models + Dhcpv4ClientMetrics []*Dhcpv4ClientMetric `protobuf:"bytes,11,rep,name=dhcpv4client_metrics,json=dhcpv4clientMetrics,proto3" json:"dhcpv4client_metrics,omitempty"` + // Description missing in models + Dhcpv4ServerMetrics []*Dhcpv4ServerMetric `protobuf:"bytes,12,rep,name=dhcpv4server_metrics,json=dhcpv4serverMetrics,proto3" json:"dhcpv4server_metrics,omitempty"` + // Description missing in models + Dhcpv6ClientMetrics []*Dhcpv6ClientMetric `protobuf:"bytes,13,rep,name=dhcpv6client_metrics,json=dhcpv6clientMetrics,proto3" json:"dhcpv6client_metrics,omitempty"` + // Description missing in models + Dhcpv6ServerMetrics []*Dhcpv6ServerMetric `protobuf:"bytes,14,rep,name=dhcpv6server_metrics,json=dhcpv6serverMetrics,proto3" json:"dhcpv6server_metrics,omitempty"` } -func (x *StatesResponse) Reset() { - *x = StatesResponse{} +func (x *MetricsResponse) Reset() { + *x = MetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[422] + mi := &file_otg_proto_msgTypes[431] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesResponse) String() string { +func (x *MetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesResponse) ProtoMessage() {} +func (*MetricsResponse) ProtoMessage() {} -func (x *StatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[422] +func (x *MetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[431] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59490,109 +59622,146 @@ func (x *StatesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. -func (*StatesResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{422} +// Deprecated: Use MetricsResponse.ProtoReflect.Descriptor instead. +func (*MetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{431} } -func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { +func (x *MetricsResponse) GetChoice() MetricsResponse_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return StatesResponse_Choice_unspecified + return MetricsResponse_Choice_unspecified } -func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { +func (x *MetricsResponse) GetPortMetrics() []*PortMetric { if x != nil { - return x.Ipv4Neighbors + return x.PortMetrics } return nil } -func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { +func (x *MetricsResponse) GetFlowMetrics() []*FlowMetric { if x != nil { - return x.Ipv6Neighbors + return x.FlowMetrics } return nil } -func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { +func (x *MetricsResponse) GetBgpv4Metrics() []*Bgpv4Metric { if x != nil { - return x.BgpPrefixes + return x.Bgpv4Metrics } return nil } -func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { +func (x *MetricsResponse) GetBgpv6Metrics() []*Bgpv6Metric { if x != nil { - return x.IsisLsps + return x.Bgpv6Metrics } return nil } -func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { +func (x *MetricsResponse) GetIsisMetrics() []*IsisMetric { if x != nil { - return x.LldpNeighbors + return x.IsisMetrics } return nil } -func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { +func (x *MetricsResponse) GetLagMetrics() []*LagMetric { if x != nil { - return x.RsvpLsps + return x.LagMetrics } return nil } -func (x *StatesResponse) GetDhcpv4Interfaces() []*Dhcpv4InterfaceState { +func (x *MetricsResponse) GetLacpMetrics() []*LacpMetric { if x != nil { - return x.Dhcpv4Interfaces + return x.LacpMetrics } return nil } -func (x *StatesResponse) GetDhcpv4Leases() []*Dhcpv4LeasesState { +func (x *MetricsResponse) GetLldpMetrics() []*LldpMetric { if x != nil { - return x.Dhcpv4Leases + return x.LldpMetrics } return nil } -// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). -type Neighborsv4StatesRequest struct { +func (x *MetricsResponse) GetRsvpMetrics() []*RsvpMetric { + if x != nil { + return x.RsvpMetrics + } + return nil +} + +func (x *MetricsResponse) GetDhcpv4ClientMetrics() []*Dhcpv4ClientMetric { + if x != nil { + return x.Dhcpv4ClientMetrics + } + return nil +} + +func (x *MetricsResponse) GetDhcpv4ServerMetrics() []*Dhcpv4ServerMetric { + if x != nil { + return x.Dhcpv4ServerMetrics + } + return nil +} + +func (x *MetricsResponse) GetDhcpv6ClientMetrics() []*Dhcpv6ClientMetric { + if x != nil { + return x.Dhcpv6ClientMetrics + } + return nil +} + +func (x *MetricsResponse) GetDhcpv6ServerMetrics() []*Dhcpv6ServerMetric { + if x != nil { + return x.Dhcpv6ServerMetrics + } + return nil +} + +// The port result request to the traffic generator +type PortMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (ARP cache entries) for all available Ethernet interfaces. + // The names of objects to return results for. An empty list will return all port row + // results. // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Port/properties/name // // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` + // - /components/schemas/Port/properties/name + PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the port cannot be excluded. + ColumnNames []PortMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.PortMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *Neighborsv4StatesRequest) Reset() { - *x = Neighborsv4StatesRequest{} +func (x *PortMetricsRequest) Reset() { + *x = PortMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[423] + mi := &file_otg_proto_msgTypes[432] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4StatesRequest) String() string { +func (x *PortMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4StatesRequest) ProtoMessage() {} +func (*PortMetricsRequest) ProtoMessage() {} -func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[423] +func (x *PortMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[432] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59603,52 +59772,84 @@ func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{423} +// Deprecated: Use PortMetricsRequest.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{432} } -func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { +func (x *PortMetricsRequest) GetPortNames() []string { if x != nil { - return x.EthernetNames + return x.PortNames } return nil } -// IPv4 Neighbor state (ARP cache entry). -type Neighborsv4State struct { +func (x *PortMetricsRequest) GetColumnNames() []PortMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// Description missing in models +type PortMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the Ethernet interface associated with the Neighbor state (ARP cache - // entry). - // required = true - EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` - // The IPv4 address of the neighbor. - // required = true - Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` + // The name of a configured port + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The state of the connection to the test port location. The format should be the configured + // port location along with any custom connection state message. + Location *string `protobuf:"bytes,2,opt,name=location,proto3,oneof" json:"location,omitempty"` + // The state of the test port link The string can be up, down or a custom error message. + Link *PortMetric_Link_Enum `protobuf:"varint,3,opt,name=link,proto3,enum=otg.PortMetric_Link_Enum,oneof" json:"link,omitempty"` + // The state of the test port capture infrastructure. The string can be started, stopped + // or a custom error message. + Capture *PortMetric_Capture_Enum `protobuf:"varint,4,opt,name=capture,proto3,enum=otg.PortMetric_Capture_Enum,oneof" json:"capture,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,5,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,6,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,7,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received + BytesRx *uint64 `protobuf:"varint,8,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,9,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,10,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted + BytesTxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received + BytesRxRate *float32 `protobuf:"fixed32,12,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` + // The transmit state of the flow. + Transmit *PortMetric_Transmit_Enum `protobuf:"varint,13,opt,name=transmit,proto3,enum=otg.PortMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` } -func (x *Neighborsv4State) Reset() { - *x = Neighborsv4State{} +func (x *PortMetric) Reset() { + *x = PortMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[424] + mi := &file_otg_proto_msgTypes[433] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Neighborsv4State) String() string { +func (x *PortMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Neighborsv4State) ProtoMessage() {} +func (*PortMetric) ProtoMessage() {} -func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[424] +func (x *PortMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[433] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59659,207 +59860,141 @@ func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. -func (*Neighborsv4State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{424} +// Deprecated: Use PortMetric.ProtoReflect.Descriptor instead. +func (*PortMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433} } -func (x *Neighborsv4State) GetEthernetName() string { - if x != nil && x.EthernetName != nil { - return *x.EthernetName +func (x *PortMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *Neighborsv4State) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *PortMetric) GetLocation() string { + if x != nil && x.Location != nil { + return *x.Location } return "" } -func (x *Neighborsv4State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *PortMetric) GetLink() PortMetric_Link_Enum { + if x != nil && x.Link != nil { + return *x.Link } - return "" -} - -// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). -type Neighborsv6StatesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will - // be retrieved. If no names are specified then the results will contain Neighbor state - // (NDISC cache entries) for all available Ethernet interfaces. - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - // - // x-constraint: - // - /components/schemas/Device.Ethernet/properties/name - EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` + return PortMetric_Link_unspecified } -func (x *Neighborsv6StatesRequest) Reset() { - *x = Neighborsv6StatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[425] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PortMetric) GetCapture() PortMetric_Capture_Enum { + if x != nil && x.Capture != nil { + return *x.Capture } + return PortMetric_Capture_unspecified } -func (x *Neighborsv6StatesRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Neighborsv6StatesRequest) ProtoMessage() {} - -func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[425] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PortMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } - return mi.MessageOf(x) -} - -// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. -func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{425} + return 0 } -func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { - if x != nil { - return x.EthernetNames +func (x *PortMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } - return nil -} - -// IPv6 Neighbor state (NDISC cache entry). -type Neighborsv6State struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The name of the Ethernet interface associated with the Neighbor state (NDISC cache - // entry). - // required = true - EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` - // The IPv6 address of the neighbor. - // required = true - Ipv6Address *string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The link-layer address (MAC) of the neighbor. - LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` + return 0 } -func (x *Neighborsv6State) Reset() { - *x = Neighborsv6State{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[426] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PortMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx } + return 0 } -func (x *Neighborsv6State) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PortMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx + } + return 0 } -func (*Neighborsv6State) ProtoMessage() {} - -func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[426] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PortMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. -func (*Neighborsv6State) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{426} +func (x *PortMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate + } + return 0 } -func (x *Neighborsv6State) GetEthernetName() string { - if x != nil && x.EthernetName != nil { - return *x.EthernetName +func (x *PortMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate } - return "" + return 0 } -func (x *Neighborsv6State) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *PortMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate } - return "" + return 0 } -func (x *Neighborsv6State) GetLinkLayerAddress() string { - if x != nil && x.LinkLayerAddress != nil { - return *x.LinkLayerAddress +func (x *PortMetric) GetTransmit() PortMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit } - return "" + return PortMetric_Transmit_unspecified } -// The request to retrieve BGP peer prefix information. -type BgpPrefixStateRequest struct { +// The container for a flow metric request. +type FlowMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of BGP peers for which prefix information will be retrieved. If no names - // are specified then the results will contain prefix information for all configured - // BGP peers. + // Flow metrics will be retrieved for these flow names. + // If no flow names are specified then all flows will be returned. // // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name + // - /components/schemas/Flow/properties/name // // x-constraint: - // - /components/schemas/Bgp.V4Peer/properties/name - // - /components/schemas/Bgp.V6Peer/properties/name - BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` - // Specify which prefixes to return. If the list is empty or missing then all prefixes - // will be returned. - PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` - // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will - // be returned. - Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` - // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. - // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will - // be returned. - Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` + // - /components/schemas/Flow/properties/name + FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowMetricsRequest_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowMetricsRequest_MetricNames_Enum" json:"metric_names,omitempty"` + // Description missing in models + TaggedMetrics *FlowTaggedMetricsFilter `protobuf:"bytes,4,opt,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } -func (x *BgpPrefixStateRequest) Reset() { - *x = BgpPrefixStateRequest{} +func (x *FlowMetricsRequest) Reset() { + *x = FlowMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[427] + mi := &file_otg_proto_msgTypes[434] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixStateRequest) String() string { +func (x *FlowMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixStateRequest) ProtoMessage() {} +func (*FlowMetricsRequest) ProtoMessage() {} -func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[427] +func (x *FlowMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[434] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59870,74 +60005,70 @@ func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. -func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{427} -} - -func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { - if x != nil { - return x.BgpPeerNames - } - return nil +// Deprecated: Use FlowMetricsRequest.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{434} } -func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { +func (x *FlowMetricsRequest) GetFlowNames() []string { if x != nil { - return x.PrefixFilters + return x.FlowNames } return nil } -func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { +func (x *FlowMetricsRequest) GetMetricNames() []FlowMetricsRequest_MetricNames_Enum { if x != nil { - return x.Ipv4UnicastFilters + return x.MetricNames } return nil } -func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { +func (x *FlowMetricsRequest) GetTaggedMetrics() *FlowTaggedMetricsFilter { if x != nil { - return x.Ipv6UnicastFilters + return x.TaggedMetrics } return nil } -// Description missing in models -type BgpPrefixIpv4UnicastFilter struct { +// Filter for tagged metrics +type FlowTaggedMetricsFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // Controls inclusion/exclusion of tagged metrics when fetching flow metrics. + // default = True + Include *bool `protobuf:"varint,1,opt,name=include,proto3,oneof" json:"include,omitempty"` + // Controls inclusion/exclusion of tagged metrics where each underlying attributes has + // zero value or absent value. + // default = False + IncludeEmptyMetrics *bool `protobuf:"varint,2,opt,name=include_empty_metrics,json=includeEmptyMetrics,proto3,oneof" json:"include_empty_metrics,omitempty"` + // The list of metric names that the returned result set will contain. If the list is + // empty then all metrics will be returned. + MetricNames []FlowTaggedMetricsFilter_MetricNames_Enum `protobuf:"varint,3,rep,packed,name=metric_names,json=metricNames,proto3,enum=otg.FlowTaggedMetricsFilter_MetricNames_Enum" json:"metric_names,omitempty"` + // List of filters to selectively fetch tagged metrics with certain tag and corresponding + // value. + Filters []*FlowMetricTagFilter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"` } -func (x *BgpPrefixIpv4UnicastFilter) Reset() { - *x = BgpPrefixIpv4UnicastFilter{} +func (x *FlowTaggedMetricsFilter) Reset() { + *x = FlowTaggedMetricsFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[428] + mi := &file_otg_proto_msgTypes[435] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter) String() string { +func (x *FlowTaggedMetricsFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} +func (*FlowTaggedMetricsFilter) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[428] +func (x *FlowTaggedMetricsFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[435] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -59948,74 +60079,71 @@ func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{428} +// Deprecated: Use FlowTaggedMetricsFilter.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{435} } -func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { - if x != nil { - return x.Addresses +func (x *FlowTaggedMetricsFilter) GetInclude() bool { + if x != nil && x.Include != nil { + return *x.Include } - return nil + return false } -func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *FlowTaggedMetricsFilter) GetIncludeEmptyMetrics() bool { + if x != nil && x.IncludeEmptyMetrics != nil { + return *x.IncludeEmptyMetrics } - return 0 + return false } -func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *FlowTaggedMetricsFilter) GetMetricNames() []FlowTaggedMetricsFilter_MetricNames_Enum { + if x != nil { + return x.MetricNames } - return BgpPrefixIpv4UnicastFilter_Origin_unspecified + return nil } -func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *FlowTaggedMetricsFilter) GetFilters() []*FlowMetricTagFilter { + if x != nil { + return x.Filters } - return 0 + return nil } -// Description missing in models -type BgpPrefixIpv6UnicastFilter struct { +// A container for filtering ingress and/or egress metric tags. +// The Tx stats may not be applicable in both the request and response filter. +type FlowMetricTagFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The addresses to match. If the addresses property is missing or empty then all addresses - // will match. - Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` - // The prefix length to match. If the prefix length is missing then all prefix lengths - // will match. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin to match. If the origin is missing then all origins will match. - Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id to match. If the path id is missing then all path ids will match. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // A metric tag name that MUST exist in a flow packet or + // flow egress_packet configuration + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // A list of filters that can be applied to the metric tag name. + // By default all values will be included in the flow metric results. + Values []string `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` } -func (x *BgpPrefixIpv6UnicastFilter) Reset() { - *x = BgpPrefixIpv6UnicastFilter{} +func (x *FlowMetricTagFilter) Reset() { + *x = FlowMetricTagFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[429] + mi := &file_otg_proto_msgTypes[436] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter) String() string { +func (x *FlowMetricTagFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} +func (*FlowMetricTagFilter) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[429] +func (x *FlowMetricTagFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[436] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60026,70 +60154,82 @@ func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{429} -} - -func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { - if x != nil { - return x.Addresses - } - return nil -} - -func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 +// Deprecated: Use FlowMetricTagFilter.ProtoReflect.Descriptor instead. +func (*FlowMetricTagFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{436} } -func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *FlowMetricTagFilter) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return BgpPrefixIpv6UnicastFilter_Origin_unspecified + return "" } -func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *FlowMetricTagFilter) GetValues() []string { + if x != nil { + return x.Values } - return 0 + return nil } -// BGP peer prefixes. -type BgpPrefixesState struct { +// A container for flow metrics. +// The container is keyed by the name, port_tx and port_rx. +type FlowMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a BGP peer. - BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` + // The name of the flow + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The name of the transmit port + PortTx *string `protobuf:"bytes,2,opt,name=port_tx,json=portTx,proto3,oneof" json:"port_tx,omitempty"` + // The name of the receive port + PortRx *string `protobuf:"bytes,3,opt,name=port_rx,json=portRx,proto3,oneof" json:"port_rx,omitempty"` + // The transmit state of the flow. + Transmit *FlowMetric_Transmit_Enum `protobuf:"varint,5,opt,name=transmit,proto3,enum=otg.FlowMetric_Transmit_Enum,oneof" json:"transmit,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,6,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,7,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,8,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,9,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,10,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,11,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,12,opt,name=loss,proto3,oneof" json:"loss,omitempty"` // Description missing in models - Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` + Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3" json:"timestamps,omitempty"` // Description missing in models - Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` + Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3" json:"latency,omitempty"` + // List of metrics corresponding to a set of values applicable + // for configured metric tags in ingress or egress packet header fields of corresponding + // flow. + // The container is keyed by list of tag-value pairs. + TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } -func (x *BgpPrefixesState) Reset() { - *x = BgpPrefixesState{} +func (x *FlowMetric) Reset() { + *x = FlowMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[430] + mi := &file_otg_proto_msgTypes[437] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixesState) String() string { +func (x *FlowMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixesState) ProtoMessage() {} +func (*FlowMetric) ProtoMessage() {} -func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[430] +func (x *FlowMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[437] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60100,230 +60240,156 @@ func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. -func (*BgpPrefixesState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{430} +// Deprecated: Use FlowMetric.ProtoReflect.Descriptor instead. +func (*FlowMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{437} } -func (x *BgpPrefixesState) GetBgpPeerName() string { - if x != nil && x.BgpPeerName != nil { - return *x.BgpPeerName +func (x *FlowMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { - if x != nil { - return x.Ipv4UnicastPrefixes +func (x *FlowMetric) GetPortTx() string { + if x != nil && x.PortTx != nil { + return *x.PortTx } - return nil + return "" } -func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { - if x != nil { - return x.Ipv6UnicastPrefixes +func (x *FlowMetric) GetPortRx() string { + if x != nil && x.PortRx != nil { + return *x.PortRx } - return nil -} - -// IPv4 unicast prefix. -type BgpPrefixIpv4UnicastState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // An IPv4 unicast address - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional received Extended Community attributes. Each received Extended Community - // attribute is available for retrieval in two forms. Support of the 'raw' format in - // which all 8 bytes (16 hex characters) is always present and available for use. In - // addition, if supported by the implementation, the Extended Community attribute may - // also be retrieved in the 'structured' format which is an optional field. - ExtendedCommunities []*ResultExtendedCommunity `protobuf:"bytes,11,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` - // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + return "" } -func (x *BgpPrefixIpv4UnicastState) Reset() { - *x = BgpPrefixIpv4UnicastState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[431] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *FlowMetric) GetTransmit() FlowMetric_Transmit_Enum { + if x != nil && x.Transmit != nil { + return *x.Transmit } + return FlowMetric_Transmit_unspecified } -func (x *BgpPrefixIpv4UnicastState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} - -func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[431] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *FlowMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } - return mi.MessageOf(x) -} - -// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{431} + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *FlowMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } - return "" + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *FlowMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *FlowMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx } - return BgpPrefixIpv4UnicastState_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *FlowMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate } return 0 } -func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop +func (x *FlowMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate } - return "" + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop +func (x *FlowMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss } - return "" + return 0 } -func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { +func (x *FlowMetric) GetTimestamps() *MetricTimestamp { if x != nil { - return x.Communities + return x.Timestamps } return nil } -func (x *BgpPrefixIpv4UnicastState) GetExtendedCommunities() []*ResultExtendedCommunity { +func (x *FlowMetric) GetLatency() *MetricLatency { if x != nil { - return x.ExtendedCommunities + return x.Latency } return nil } -func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { +func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { if x != nil { - return x.AsPath + return x.TaggedMetrics } return nil } -func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference - } - return 0 -} - -func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator - } - return 0 -} - -// IPv6 unicast prefix. -type BgpPrefixIpv6UnicastState struct { +// Metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. +type FlowTaggedMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast address - Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The origin of the prefix. - Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` - // The path id. - PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` - // The IPv4 address of the egress interface. - Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` - // The IPv6 address of the egress interface. - Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` - // Optional community attributes. - Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` - // Optional received Extended Community attributes. Each received Extended Community - // attribute is available for retrieval in two forms. Support of the 'raw' format in - // which all 8 bytes (16 hex characters) is always present and available for use. In - // addition, if supported by the implementation, the Extended Community attribute may - // also be retrieved in the 'structured' format which is an optional field. - ExtendedCommunities []*ResultExtendedCommunity `protobuf:"bytes,11,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` + // List of tag and value pairs + Tags []*FlowMetricTag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` + // The current total number of frames transmitted + FramesTx *uint64 `protobuf:"varint,2,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received + FramesRx *uint64 `protobuf:"varint,3,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted + BytesTx *uint64 `protobuf:"varint,4,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of bytes received + BytesRx *uint64 `protobuf:"varint,5,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted + FramesTxRate *float32 `protobuf:"fixed32,6,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received + FramesRxRate *float32 `protobuf:"fixed32,7,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The percentage of lost frames + Loss *float32 `protobuf:"fixed32,8,opt,name=loss,proto3,oneof" json:"loss,omitempty"` // Description missing in models - AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` - // The local preference is a well-known attribute and the value is used for route selection. - // The route with the highest local preference value is preferred. - LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` - // The multi exit discriminator (MED) is an optional non-transitive attribute and the - // value is used for route selection. The route with the lowest MED value is preferred. - MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` + Timestamps *MetricTimestamp `protobuf:"bytes,9,opt,name=timestamps,proto3" json:"timestamps,omitempty"` + // Description missing in models + Latency *MetricLatency `protobuf:"bytes,10,opt,name=latency,proto3" json:"latency,omitempty"` } -func (x *BgpPrefixIpv6UnicastState) Reset() { - *x = BgpPrefixIpv6UnicastState{} +func (x *FlowTaggedMetric) Reset() { + *x = FlowTaggedMetric{} 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) } } -func (x *BgpPrefixIpv6UnicastState) String() string { +func (x *FlowTaggedMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} +func (*FlowTaggedMetric) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[432] +func (x *FlowTaggedMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[438] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60334,122 +60400,110 @@ func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. -func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{432} +// Deprecated: Use FlowTaggedMetric.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{438} } -func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *FlowTaggedMetric) GetTags() []*FlowMetricTag { + if x != nil { + return x.Tags } - return "" + return nil } -func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *FlowTaggedMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } return 0 } -func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *FlowTaggedMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } - return BgpPrefixIpv6UnicastState_Origin_unspecified + return 0 } -func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { - if x != nil && x.PathId != nil { - return *x.PathId +func (x *FlowTaggedMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx } return 0 } -func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { - if x != nil && x.Ipv4NextHop != nil { - return *x.Ipv4NextHop +func (x *FlowTaggedMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx } - return "" + return 0 } -func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { - if x != nil && x.Ipv6NextHop != nil { - return *x.Ipv6NextHop +func (x *FlowTaggedMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate } - return "" + return 0 } -func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { - if x != nil { - return x.Communities +func (x *FlowTaggedMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate } - return nil + return 0 } -func (x *BgpPrefixIpv6UnicastState) GetExtendedCommunities() []*ResultExtendedCommunity { - if x != nil { - return x.ExtendedCommunities +func (x *FlowTaggedMetric) GetLoss() float32 { + if x != nil && x.Loss != nil { + return *x.Loss } - return nil + return 0 } -func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { +func (x *FlowTaggedMetric) GetTimestamps() *MetricTimestamp { if x != nil { - return x.AsPath + return x.Timestamps } return nil } -func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { - if x != nil && x.LocalPreference != nil { - return *x.LocalPreference - } - return 0 -} - -func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { - if x != nil && x.MultiExitDiscriminator != nil { - return *x.MultiExitDiscriminator +func (x *FlowTaggedMetric) GetLatency() *MetricLatency { + if x != nil { + return x.Latency } - return 0 + return nil } -// Each received Extended Community attribute is available for retrieval in two forms. -// Support of the 'raw' format in which all 8 bytes (16 hex characters) is always present -// and available for use. In addition, if supported by the implementation, the Extended -// Community attribute may also be retrieved in the 'structured' format which is an -// optional field. -type ResultExtendedCommunity struct { +// Description missing in models +type FlowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The raw byte contents of the 8 bytes received in the Extended Community as 16 hex - // characters. - Raw *string `protobuf:"bytes,1,opt,name=raw,proto3,oneof" json:"raw,omitempty"` + // Name of packet field metric tag + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Description missing in models - Structured *ResultExtendedCommunityStructured `protobuf:"bytes,2,opt,name=structured,proto3" json:"structured,omitempty"` + Value *FlowMetricTagValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *ResultExtendedCommunity) Reset() { - *x = ResultExtendedCommunity{} +func (x *FlowMetricTag) Reset() { + *x = FlowMetricTag{} 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) } } -func (x *ResultExtendedCommunity) String() string { +func (x *FlowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunity) ProtoMessage() {} +func (*FlowMetricTag) ProtoMessage() {} -func (x *ResultExtendedCommunity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[433] +func (x *FlowMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[439] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60460,70 +60514,57 @@ func (x *ResultExtendedCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunity.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunity) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{433} +// Deprecated: Use FlowMetricTag.ProtoReflect.Descriptor instead. +func (*FlowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{439} } -func (x *ResultExtendedCommunity) GetRaw() string { - if x != nil && x.Raw != nil { - return *x.Raw +func (x *FlowMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *ResultExtendedCommunity) GetStructured() *ResultExtendedCommunityStructured { +func (x *FlowMetricTag) GetValue() *FlowMetricTagValue { if x != nil { - return x.Structured + return x.Value } return nil } -// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 -// 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 optonal sub-type field. -// The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of -// data in a format defined by the type and optional sub-type field. -// Extended communities provide a larger range for grouping or categorizing communities. -type ResultExtendedCommunityStructured struct { +// A container for metric tag value +type FlowMetricTagValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Choice *ResultExtendedCommunityStructured_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityStructured_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - Transitive_2OctetAsType *ResultExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3" json:"transitive_2octet_as_type,omitempty"` - // Description missing in models - TransitiveIpv4AddressType *ResultExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3" json:"transitive_ipv4_address_type,omitempty"` - // Description missing in models - Transitive_4OctetAsType *ResultExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3" json:"transitive_4octet_as_type,omitempty"` - // Description missing in models - TransitiveOpaqueType *ResultExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3" json:"transitive_opaque_type,omitempty"` - // Description missing in models - NonTransitive_2OctetAsType *ResultExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,6,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3" json:"non_transitive_2octet_as_type,omitempty"` + // Available formats for metric tag value + // default = Choice.Enum.hex + Choice *FlowMetricTagValue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.FlowMetricTagValue_Choice_Enum,oneof" json:"choice,omitempty"` + // Value represented in hexadecimal format + Hex *string `protobuf:"bytes,2,opt,name=hex,proto3,oneof" json:"hex,omitempty"` + // Value represented in string format + Str *string `protobuf:"bytes,3,opt,name=str,proto3,oneof" json:"str,omitempty"` } -func (x *ResultExtendedCommunityStructured) Reset() { - *x = ResultExtendedCommunityStructured{} +func (x *FlowMetricTagValue) Reset() { + *x = FlowMetricTagValue{} 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) } } -func (x *ResultExtendedCommunityStructured) String() string { +func (x *FlowMetricTagValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityStructured) ProtoMessage() {} +func (*FlowMetricTagValue) ProtoMessage() {} -func (x *ResultExtendedCommunityStructured) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[434] +func (x *FlowMetricTagValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[440] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60534,86 +60575,63 @@ func (x *ResultExtendedCommunityStructured) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityStructured.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityStructured) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{434} +// Deprecated: Use FlowMetricTagValue.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{440} } -func (x *ResultExtendedCommunityStructured) GetChoice() ResultExtendedCommunityStructured_Choice_Enum { +func (x *FlowMetricTagValue) GetChoice() FlowMetricTagValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return ResultExtendedCommunityStructured_Choice_unspecified -} - -func (x *ResultExtendedCommunityStructured) GetTransitive_2OctetAsType() *ResultExtendedCommunityTransitive2OctetAsType { - if x != nil { - return x.Transitive_2OctetAsType - } - return nil -} - -func (x *ResultExtendedCommunityStructured) GetTransitiveIpv4AddressType() *ResultExtendedCommunityTransitiveIpv4AddressType { - if x != nil { - return x.TransitiveIpv4AddressType - } - return nil -} - -func (x *ResultExtendedCommunityStructured) GetTransitive_4OctetAsType() *ResultExtendedCommunityTransitive4OctetAsType { - if x != nil { - return x.Transitive_4OctetAsType - } - return nil + return FlowMetricTagValue_Choice_unspecified } -func (x *ResultExtendedCommunityStructured) GetTransitiveOpaqueType() *ResultExtendedCommunityTransitiveOpaqueType { - if x != nil { - return x.TransitiveOpaqueType +func (x *FlowMetricTagValue) GetHex() string { + if x != nil && x.Hex != nil { + return *x.Hex } - return nil + return "" } -func (x *ResultExtendedCommunityStructured) GetNonTransitive_2OctetAsType() *ResultExtendedCommunityNonTransitive2OctetAsType { - if x != nil { - return x.NonTransitive_2OctetAsType +func (x *FlowMetricTagValue) GetStr() string { + if x != nil && x.Str != nil { + return *x.Str } - return nil + return "" } -// The Route Target Community identifies one or more routers that may receive a set -// of routes (that carry this Community) carried by BGP Update message. It is sent -// with sub-type as 0x02. -type ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { +// The container for timestamp metrics. +// The container will be empty if the timestamp has not been configured for +// the flow. +type MetricTimestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The two octet IANA assigned AS value assigned to the Autonomous System. - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // 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. - Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` + // First timestamp in nanoseconds + FirstTimestampNs *float64 `protobuf:"fixed64,1,opt,name=first_timestamp_ns,json=firstTimestampNs,proto3,oneof" json:"first_timestamp_ns,omitempty"` + // Last timestamp in nanoseconds + LastTimestampNs *float64 `protobuf:"fixed64,2,opt,name=last_timestamp_ns,json=lastTimestampNs,proto3,oneof" json:"last_timestamp_ns,omitempty"` } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { - *x = ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget{} +func (x *MetricTimestamp) Reset() { + *x = MetricTimestamp{} 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) } } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { +func (x *MetricTimestamp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} +func (*MetricTimestamp) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[435] +func (x *MetricTimestamp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[441] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60624,57 +60642,60 @@ func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{435} +// Deprecated: Use MetricTimestamp.ProtoReflect.Descriptor instead. +func (*MetricTimestamp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{441} } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs +func (x *MetricTimestamp) GetFirstTimestampNs() float64 { + if x != nil && x.FirstTimestampNs != nil { + return *x.FirstTimestampNs } return 0 } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { - if x != nil && x.Local_4ByteAdmin != nil { - return *x.Local_4ByteAdmin +func (x *MetricTimestamp) GetLastTimestampNs() float64 { + if x != nil && x.LastTimestampNs != nil { + return *x.LastTimestampNs } return 0 } -// 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 ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { +// The container for latency metrics. +// The min/max/avg values are dependent on the type of latency measurement +// mode that is configured. +// The container will be empty if the latency has not been configured for +// the flow. +type MetricLatency struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The two octet IANA assigned AS value assigned to the Autonomous System. - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // 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. - Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` + // Minimum latency in nanoseconds + MinimumNs *float64 `protobuf:"fixed64,1,opt,name=minimum_ns,json=minimumNs,proto3,oneof" json:"minimum_ns,omitempty"` + // Maximum latency in nanoseconds + MaximumNs *float64 `protobuf:"fixed64,2,opt,name=maximum_ns,json=maximumNs,proto3,oneof" json:"maximum_ns,omitempty"` + // Average latency in nanoseconds + AverageNs *float64 `protobuf:"fixed64,3,opt,name=average_ns,json=averageNs,proto3,oneof" json:"average_ns,omitempty"` } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { - *x = ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} +func (x *MetricLatency) Reset() { + *x = MetricLatency{} 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) } } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { +func (x *MetricLatency) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} +func (*MetricLatency) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[436] +func (x *MetricLatency) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[442] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60685,56 +60706,70 @@ func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{436} +// Deprecated: Use MetricLatency.ProtoReflect.Descriptor instead. +func (*MetricLatency) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{442} } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs +func (x *MetricLatency) GetMinimumNs() float64 { + if x != nil && x.MinimumNs != nil { + return *x.MinimumNs } return 0 } -func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { - if x != nil && x.Local_4ByteAdmin != nil { - return *x.Local_4ByteAdmin +func (x *MetricLatency) GetMaximumNs() float64 { + if x != nil && x.MaximumNs != nil { + return *x.MaximumNs } return 0 } -// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . -type ResultExtendedCommunityTransitive2OctetAsType struct { +func (x *MetricLatency) GetAverageNs() float64 { + if x != nil && x.AverageNs != nil { + return *x.AverageNs + } + return 0 +} + +// The request to retrieve BGPv4 per peer metrics/statistics. +type Bgpv4MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Choice *ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouteTargetSubtype *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` - // Description missing in models - RouteOriginSubtype *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` + // The names of BGPv4 peers to return results for. An empty list will return results + // for all BGPv4 peers. + // + // x-constraint: + // - /components/schemas/Bgp.V4peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv4 peer cannot be excluded. + ColumnNames []Bgpv4MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv4MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultExtendedCommunityTransitive2OctetAsType) Reset() { - *x = ResultExtendedCommunityTransitive2OctetAsType{} +func (x *Bgpv4MetricsRequest) Reset() { + *x = Bgpv4MetricsRequest{} 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) } } -func (x *ResultExtendedCommunityTransitive2OctetAsType) String() string { +func (x *Bgpv4MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} +func (*Bgpv4MetricsRequest) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[437] +func (x *Bgpv4MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[443] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60745,64 +60780,99 @@ func (x *ResultExtendedCommunityTransitive2OctetAsType) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{437} -} - -func (x *ResultExtendedCommunityTransitive2OctetAsType) GetChoice() ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ResultExtendedCommunityTransitive2OctetAsType_Choice_unspecified +// Deprecated: Use Bgpv4MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{443} } -func (x *ResultExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget { +func (x *Bgpv4MetricsRequest) GetPeerNames() []string { if x != nil { - return x.RouteTargetSubtype + return x.PeerNames } return nil } -func (x *ResultExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin { +func (x *Bgpv4MetricsRequest) GetColumnNames() []Bgpv4MetricsRequest_ColumnNames_Enum { if x != nil { - return x.RouteOriginSubtype + return x.ColumnNames } return nil } -// 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 ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin struct { +// BGPv4 per peer statistics information. +type Bgpv4Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast address assigned by one of the Internet registries. - GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` - // 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. - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` + // The name of a configured BGPv4 peer. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv4Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv4Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv4Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv4Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { - *x = ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} +func (x *Bgpv4Metric) Reset() { + *x = Bgpv4Metric{} 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) } } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { +func (x *Bgpv4Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} +func (*Bgpv4Metric) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[438] +func (x *Bgpv4Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[444] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60813,118 +60883,168 @@ func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{438} +// Deprecated: Use Bgpv4Metric.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{444} } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { - if x != nil && x.GlobalIpv4Admin != nil { - return *x.GlobalIpv4Admin +func (x *Bgpv4Metric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *Bgpv4Metric) GetSessionState() Bgpv4Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState + } + return Bgpv4Metric_SessionState_unspecified +} + +func (x *Bgpv4Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount } return 0 } -// 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 ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *Bgpv4Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised + } + return 0 +} - // An IPv4 unicast address assigned by one of the Internet registries. - GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` - // 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. - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` +func (x *Bgpv4Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived + } + return 0 } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { - *x = ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[439] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Bgpv4Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } + return 0 } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Bgpv4Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived + } + return 0 } -func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} +func (x *Bgpv4Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent + } + return 0 +} -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[439] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Bgpv4Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{439} +func (x *Bgpv4Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent + } + return 0 } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { - if x != nil && x.GlobalIpv4Admin != nil { - return *x.GlobalIpv4Admin +func (x *Bgpv4Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } - return "" + return 0 } -func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *Bgpv4Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent } return 0 } -// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. -type ResultExtendedCommunityTransitiveIpv4AddressType struct { +func (x *Bgpv4Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived + } + return 0 +} + +func (x *Bgpv4Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent + } + return 0 +} + +func (x *Bgpv4Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived + } + return 0 +} + +func (x *Bgpv4Metric) GetFsmState() Bgpv4Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState + } + return Bgpv4Metric_FsmState_unspecified +} + +func (x *Bgpv4Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived + } + return 0 +} + +// The request to retrieve BGPv6 per peer metrics/statistics. +type Bgpv6MetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - Choice *ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouteTargetSubtype *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` - // Description missing in models - RouteOriginSubtype *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` + // The names of BGPv6 peers to return results for. An empty list will return results + // for all BGPv6 peers. + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the BGPv6 peer cannot be excluded. + ColumnNames []Bgpv6MetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Bgpv6MetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) Reset() { - *x = ResultExtendedCommunityTransitiveIpv4AddressType{} +func (x *Bgpv6MetricsRequest) Reset() { + *x = Bgpv6MetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[440] + mi := &file_otg_proto_msgTypes[445] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) String() string { +func (x *Bgpv6MetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} +func (*Bgpv6MetricsRequest) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[440] +func (x *Bgpv6MetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[445] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -60935,65 +61055,99 @@ func (x *ResultExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{440} -} - -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetChoice() ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return ResultExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified +// Deprecated: Use Bgpv6MetricsRequest.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{445} } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { +func (x *Bgpv6MetricsRequest) GetPeerNames() []string { if x != nil { - return x.RouteTargetSubtype + return x.PeerNames } return nil } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { +func (x *Bgpv6MetricsRequest) GetColumnNames() []Bgpv6MetricsRequest_ColumnNames_Enum { if x != nil { - return x.RouteOriginSubtype + return x.ColumnNames } return nil } -// 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 ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget struct { +// BGPv6 per peer statistics information. +type Bgpv6Metric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The four octet IANA assigned AS value assigned to the Autonomous System. - Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` - // 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. - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` + // The name of a configured BGPv6 peer. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Session state as up or down. Up refers to an Established state and Down refers to + // any other state. + SessionState *Bgpv6Metric_SessionState_Enum `protobuf:"varint,2,opt,name=session_state,json=sessionState,proto3,enum=otg.Bgpv6Metric_SessionState_Enum,oneof" json:"session_state,omitempty"` + // Number of times the session went from Up to Down state. + SessionFlapCount *uint64 `protobuf:"varint,3,opt,name=session_flap_count,json=sessionFlapCount,proto3,oneof" json:"session_flap_count,omitempty"` + // Number of routes advertised. + RoutesAdvertised *uint64 `protobuf:"varint,4,opt,name=routes_advertised,json=routesAdvertised,proto3,oneof" json:"routes_advertised,omitempty"` + // Number of routes received. + RoutesReceived *uint64 `protobuf:"varint,5,opt,name=routes_received,json=routesReceived,proto3,oneof" json:"routes_received,omitempty"` + // Number of route withdraws sent. + RouteWithdrawsSent *uint64 `protobuf:"varint,6,opt,name=route_withdraws_sent,json=routeWithdrawsSent,proto3,oneof" json:"route_withdraws_sent,omitempty"` + // Number of route withdraws received. + RouteWithdrawsReceived *uint64 `protobuf:"varint,7,opt,name=route_withdraws_received,json=routeWithdrawsReceived,proto3,oneof" json:"route_withdraws_received,omitempty"` + // Number of Update messages sent. + UpdatesSent *uint64 `protobuf:"varint,8,opt,name=updates_sent,json=updatesSent,proto3,oneof" json:"updates_sent,omitempty"` + // Number of Update messages received. + UpdatesReceived *uint64 `protobuf:"varint,9,opt,name=updates_received,json=updatesReceived,proto3,oneof" json:"updates_received,omitempty"` + // Number of Open messages sent. + OpensSent *uint64 `protobuf:"varint,10,opt,name=opens_sent,json=opensSent,proto3,oneof" json:"opens_sent,omitempty"` + // Number of Open messages received. + OpensReceived *uint64 `protobuf:"varint,11,opt,name=opens_received,json=opensReceived,proto3,oneof" json:"opens_received,omitempty"` + // Number of Keepalive messages sent. + KeepalivesSent *uint64 `protobuf:"varint,12,opt,name=keepalives_sent,json=keepalivesSent,proto3,oneof" json:"keepalives_sent,omitempty"` + // Number of Keepalive messages received. + KeepalivesReceived *uint64 `protobuf:"varint,13,opt,name=keepalives_received,json=keepalivesReceived,proto3,oneof" json:"keepalives_received,omitempty"` + // Number of Notification messages sent. + NotificationsSent *uint64 `protobuf:"varint,14,opt,name=notifications_sent,json=notificationsSent,proto3,oneof" json:"notifications_sent,omitempty"` + // Number of Notification messages received. + NotificationsReceived *uint64 `protobuf:"varint,15,opt,name=notifications_received,json=notificationsReceived,proto3,oneof" json:"notifications_received,omitempty"` + // BGP peer FSM (Finite State Machine) state as Idle, Connect, Active, OpenSent, OpenConfirm + // and Established. In all the states except Established the BGP session is down. Idle + // refers to the Idle state of the FSM. Connect refers to the state where the session + // is waiting for the underlying transport session to be established. Active refers + // to the state where the session is awaiting for a connection from the remote peer. + // OpenSent refers to the state where the session is in the process of being established. + // The local system has sent an OPEN message. OpenConfirm refers to the state where + // the session is in the process of being established. The local system has sent and + // received an OPEN message and is awaiting a NOTIFICATION or KEEPALIVE message from + // remote peer. Established refers to the state where the BGP session with the peer + // is established. + FsmState *Bgpv6Metric_FsmState_Enum `protobuf:"varint,16,opt,name=fsm_state,json=fsmState,proto3,enum=otg.Bgpv6Metric_FsmState_Enum,oneof" json:"fsm_state,omitempty"` + // Number of End-of-RIB markers received indicating the completion of the initial routing + // update for a particular address family after the session is established. + // For the IPv4 unicast address family, the End-of-RIB marker is an UPDATE message with + // the minimum length. For any other address family, it is an UPDATE message that contains + // only the MP_UNREACH_NLRI attribute with no withdrawn routes for that . + EndOfRibReceived *uint64 `protobuf:"varint,17,opt,name=end_of_rib_received,json=endOfRibReceived,proto3,oneof" json:"end_of_rib_received,omitempty"` } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { - *x = ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget{} +func (x *Bgpv6Metric) Reset() { + *x = Bgpv6Metric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[441] + mi := &file_otg_proto_msgTypes[446] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { +func (x *Bgpv6Metric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} +func (*Bgpv6Metric) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[441] +func (x *Bgpv6Metric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[446] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61004,188 +61158,168 @@ func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{441} +// Deprecated: Use Bgpv6Metric.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{446} } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { - if x != nil && x.Global_4ByteAs != nil { - return *x.Global_4ByteAs +func (x *Bgpv6Metric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *Bgpv6Metric) GetSessionState() Bgpv6Metric_SessionState_Enum { + if x != nil && x.SessionState != nil { + return *x.SessionState } - return 0 + return Bgpv6Metric_SessionState_unspecified } -// 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 ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The four octet IANA assigned AS value assigned to the Autonomous System. - Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` - // 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. - Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` +func (x *Bgpv6Metric) GetSessionFlapCount() uint64 { + if x != nil && x.SessionFlapCount != nil { + return *x.SessionFlapCount + } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { - *x = ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[442] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Bgpv6Metric) GetRoutesAdvertised() uint64 { + if x != nil && x.RoutesAdvertised != nil { + return *x.RoutesAdvertised } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Bgpv6Metric) GetRoutesReceived() uint64 { + if x != nil && x.RoutesReceived != nil { + return *x.RoutesReceived + } + return 0 } -func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} - -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[442] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Bgpv6Metric) GetRouteWithdrawsSent() uint64 { + if x != nil && x.RouteWithdrawsSent != nil { + return *x.RouteWithdrawsSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{442} +func (x *Bgpv6Metric) GetRouteWithdrawsReceived() uint64 { + if x != nil && x.RouteWithdrawsReceived != nil { + return *x.RouteWithdrawsReceived + } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { - if x != nil && x.Global_4ByteAs != nil { - return *x.Global_4ByteAs +func (x *Bgpv6Metric) GetUpdatesSent() uint64 { + if x != nil && x.UpdatesSent != nil { + return *x.UpdatesSent } return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { - if x != nil && x.Local_2ByteAdmin != nil { - return *x.Local_2ByteAdmin +func (x *Bgpv6Metric) GetUpdatesReceived() uint64 { + if x != nil && x.UpdatesReceived != nil { + return *x.UpdatesReceived } return 0 } -// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It -// is defined in RFC 5668. -type ResultExtendedCommunityTransitive4OctetAsType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Choice *ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - RouteTargetSubtype *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` - // Description missing in models - RouteOriginSubtype *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` +func (x *Bgpv6Metric) GetOpensSent() uint64 { + if x != nil && x.OpensSent != nil { + return *x.OpensSent + } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsType) Reset() { - *x = ResultExtendedCommunityTransitive4OctetAsType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[443] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Bgpv6Metric) GetOpensReceived() uint64 { + if x != nil && x.OpensReceived != nil { + return *x.OpensReceived } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Bgpv6Metric) GetKeepalivesSent() uint64 { + if x != nil && x.KeepalivesSent != nil { + return *x.KeepalivesSent + } + return 0 } -func (*ResultExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} - -func (x *ResultExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[443] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Bgpv6Metric) GetKeepalivesReceived() uint64 { + if x != nil && x.KeepalivesReceived != nil { + return *x.KeepalivesReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{443} +func (x *Bgpv6Metric) GetNotificationsSent() uint64 { + if x != nil && x.NotificationsSent != nil { + return *x.NotificationsSent + } + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsType) GetChoice() ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Bgpv6Metric) GetNotificationsReceived() uint64 { + if x != nil && x.NotificationsReceived != nil { + return *x.NotificationsReceived } - return ResultExtendedCommunityTransitive4OctetAsType_Choice_unspecified + return 0 } -func (x *ResultExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget { - if x != nil { - return x.RouteTargetSubtype +func (x *Bgpv6Metric) GetFsmState() Bgpv6Metric_FsmState_Enum { + if x != nil && x.FsmState != nil { + return *x.FsmState } - return nil + return Bgpv6Metric_FsmState_unspecified } -func (x *ResultExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin { - if x != nil { - return x.RouteOriginSubtype +func (x *Bgpv6Metric) GetEndOfRibReceived() uint64 { + if x != nil && x.EndOfRibReceived != nil { + return *x.EndOfRibReceived } - return nil + return 0 } -// 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 ResultExtendedCommunityTransitiveOpaqueTypeColor struct { +// The request to retrieve ISIS per Router metrics/statistics. +type IsisMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Two octet flag values. - Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` - // 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 *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` + // The names of ISIS Routers to return results for. An empty list will return results + // for all ISIS router. + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the ISIS Router cannot be excluded. + ColumnNames []IsisMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.IsisMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) Reset() { - *x = ResultExtendedCommunityTransitiveOpaqueTypeColor{} +func (x *IsisMetricsRequest) Reset() { + *x = IsisMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[444] + mi := &file_otg_proto_msgTypes[447] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) String() string { +func (x *IsisMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} +func (*IsisMetricsRequest) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[444] +func (x *IsisMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[447] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61196,65 +61330,104 @@ func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{444} +// Deprecated: Use IsisMetricsRequest.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{447} } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { - if x != nil && x.Flags != nil { - return *x.Flags +func (x *IsisMetricsRequest) GetRouterNames() []string { + if x != nil { + return x.RouterNames } - return 0 + return nil } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { - if x != nil && x.Color != nil { - return *x.Color +func (x *IsisMetricsRequest) GetColumnNames() []IsisMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } -// This identifies the type of tunneling technology being signalled. It is defined in -// RFC9012 and sent with sub-type as 0x0c. -type ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { +// ISIS per router statistics information. +type IsisMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. - Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` - // 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 *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` + // The name of a configured ISIS router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of Level 1 (L1) sessions that are fully up. + L1SessionsUp *uint32 `protobuf:"varint,2,opt,name=l1_sessions_up,json=l1SessionsUp,proto3,oneof" json:"l1_sessions_up,omitempty"` + // The number of Level 1 Sessions Flap. + L1SessionFlap *uint64 `protobuf:"varint,3,opt,name=l1_session_flap,json=l1SessionFlap,proto3,oneof" json:"l1_session_flap,omitempty"` + // Number of Level 1 Hello messages sent. + L1BroadcastHellosSent *uint64 `protobuf:"varint,4,opt,name=l1_broadcast_hellos_sent,json=l1BroadcastHellosSent,proto3,oneof" json:"l1_broadcast_hellos_sent,omitempty"` + // Number of Level 1 Hello messages received. + L1BroadcastHellosReceived *uint64 `protobuf:"varint,5,opt,name=l1_broadcast_hellos_received,json=l1BroadcastHellosReceived,proto3,oneof" json:"l1_broadcast_hellos_received,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages sent. + L1PointToPointHellosSent *uint64 `protobuf:"varint,6,opt,name=l1_point_to_point_hellos_sent,json=l1PointToPointHellosSent,proto3,oneof" json:"l1_point_to_point_hellos_sent,omitempty"` + // Number of Level 1 Point-to-Point(P2P) Hello messages received. + L1PointToPointHellosReceived *uint64 `protobuf:"varint,7,opt,name=l1_point_to_point_hellos_received,json=l1PointToPointHellosReceived,proto3,oneof" json:"l1_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 1 LSP Databases. + L1DatabaseSize *uint64 `protobuf:"varint,8,opt,name=l1_database_size,json=l1DatabaseSize,proto3,oneof" json:"l1_database_size,omitempty"` + // Number of Level 1 (L1) Partial Sequence Number Packet (PSNPs) sent. + L1PsnpSent *uint64 `protobuf:"varint,9,opt,name=l1_psnp_sent,json=l1PsnpSent,proto3,oneof" json:"l1_psnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (PSNPs) received. + L1PsnpReceived *uint64 `protobuf:"varint,10,opt,name=l1_psnp_received,json=l1PsnpReceived,proto3,oneof" json:"l1_psnp_received,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) sent. + L1CsnpSent *uint64 `protobuf:"varint,11,opt,name=l1_csnp_sent,json=l1CsnpSent,proto3,oneof" json:"l1_csnp_sent,omitempty"` + // Number of Level 1 (L1) Complete Sequence Number Packet (CSNPs) received. + L1CsnpReceived *uint64 `protobuf:"varint,12,opt,name=l1_csnp_received,json=l1CsnpReceived,proto3,oneof" json:"l1_csnp_received,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) sent. + L1LspSent *uint64 `protobuf:"varint,13,opt,name=l1_lsp_sent,json=l1LspSent,proto3,oneof" json:"l1_lsp_sent,omitempty"` + // Number of Level 1 (L1) Link State Protocol Data Units (LSPs) received. + L1LspReceived *uint64 `protobuf:"varint,14,opt,name=l1_lsp_received,json=l1LspReceived,proto3,oneof" json:"l1_lsp_received,omitempty"` + // The number of Level 2 (L2) sessions that are fully up. + L2SessionsUp *uint32 `protobuf:"varint,15,opt,name=l2_sessions_up,json=l2SessionsUp,proto3,oneof" json:"l2_sessions_up,omitempty"` + // The number of Level 2 Sessions Flap. + L2SessionFlap *uint64 `protobuf:"varint,16,opt,name=l2_session_flap,json=l2SessionFlap,proto3,oneof" json:"l2_session_flap,omitempty"` + // Number of Level 2 Hello messages sent. + L2BroadcastHellosSent *uint64 `protobuf:"varint,17,opt,name=l2_broadcast_hellos_sent,json=l2BroadcastHellosSent,proto3,oneof" json:"l2_broadcast_hellos_sent,omitempty"` + // Number of Level 2 Hello messages received. + L2BroadcastHellosReceived *uint64 `protobuf:"varint,18,opt,name=l2_broadcast_hellos_received,json=l2BroadcastHellosReceived,proto3,oneof" json:"l2_broadcast_hellos_received,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages sent. + L2PointToPointHellosSent *uint64 `protobuf:"varint,19,opt,name=l2_point_to_point_hellos_sent,json=l2PointToPointHellosSent,proto3,oneof" json:"l2_point_to_point_hellos_sent,omitempty"` + // Number of Level 2 Point-to-Point(P2P) Hello messages received. + L2PointToPointHellosReceived *uint64 `protobuf:"varint,20,opt,name=l2_point_to_point_hellos_received,json=l2PointToPointHellosReceived,proto3,oneof" json:"l2_point_to_point_hellos_received,omitempty"` + // Number of Link State Updates (LSPs) in the Level 2 LSP Databases. + L2DatabaseSize *uint64 `protobuf:"varint,21,opt,name=l2_database_size,json=l2DatabaseSize,proto3,oneof" json:"l2_database_size,omitempty"` + // Number of Level 2 (L2) Partial Sequence Number Packet (PSNPs) sent. + L2PsnpSent *uint64 `protobuf:"varint,22,opt,name=l2_psnp_sent,json=l2PsnpSent,proto3,oneof" json:"l2_psnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (PSNPs) received. + L2PsnpReceived *uint64 `protobuf:"varint,23,opt,name=l2_psnp_received,json=l2PsnpReceived,proto3,oneof" json:"l2_psnp_received,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) sent. + L2CsnpSent *uint64 `protobuf:"varint,24,opt,name=l2_csnp_sent,json=l2CsnpSent,proto3,oneof" json:"l2_csnp_sent,omitempty"` + // Number of Level 2 (L2) Complete Sequence Number Packet (CSNPs) received. + L2CsnpReceived *uint64 `protobuf:"varint,25,opt,name=l2_csnp_received,json=l2CsnpReceived,proto3,oneof" json:"l2_csnp_received,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) sent. + L2LspSent *uint64 `protobuf:"varint,26,opt,name=l2_lsp_sent,json=l2LspSent,proto3,oneof" json:"l2_lsp_sent,omitempty"` + // Number of Level 2 (L2) Link State Protocol Data Units (LSPs) received. + L2LspReceived *uint64 `protobuf:"varint,27,opt,name=l2_lsp_received,json=l2LspReceived,proto3,oneof" json:"l2_lsp_received,omitempty"` } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { - *x = ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation{} +func (x *IsisMetric) Reset() { + *x = IsisMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[445] + mi := &file_otg_proto_msgTypes[448] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { +func (x *IsisMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} +func (*IsisMetric) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[445] +func (x *IsisMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[448] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61265,231 +61438,222 @@ func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{445} +// Deprecated: Use IsisMetric.ProtoReflect.Descriptor instead. +func (*IsisMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{448} } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { - if x != nil && x.Reserved != nil { - return *x.Reserved +func (x *IsisMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { - if x != nil && x.TunnelType != nil { - return *x.TunnelType +func (x *IsisMetric) GetL1SessionsUp() uint32 { + if x != nil && x.L1SessionsUp != nil { + return *x.L1SessionsUp } return 0 } -// The Transitive Opaque Extended Community is sent as type 0x03. -type ResultExtendedCommunityTransitiveOpaqueType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - Choice *ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - ColorSubtype *ResultExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3" json:"color_subtype,omitempty"` - // Description missing in models - EncapsulationSubtype *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3" json:"encapsulation_subtype,omitempty"` +func (x *IsisMetric) GetL1SessionFlap() uint64 { + if x != nil && x.L1SessionFlap != nil { + return *x.L1SessionFlap + } + return 0 } -func (x *ResultExtendedCommunityTransitiveOpaqueType) Reset() { - *x = ResultExtendedCommunityTransitiveOpaqueType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[446] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1BroadcastHellosSent() uint64 { + if x != nil && x.L1BroadcastHellosSent != nil { + return *x.L1BroadcastHellosSent } + return 0 } -func (x *ResultExtendedCommunityTransitiveOpaqueType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1BroadcastHellosReceived() uint64 { + if x != nil && x.L1BroadcastHellosReceived != nil { + return *x.L1BroadcastHellosReceived + } + return 0 } -func (*ResultExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} - -func (x *ResultExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[446] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL1PointToPointHellosSent() uint64 { + if x != nil && x.L1PointToPointHellosSent != nil { + return *x.L1PointToPointHellosSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{446} +func (x *IsisMetric) GetL1PointToPointHellosReceived() uint64 { + if x != nil && x.L1PointToPointHellosReceived != nil { + return *x.L1PointToPointHellosReceived + } + return 0 } -func (x *ResultExtendedCommunityTransitiveOpaqueType) GetChoice() ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisMetric) GetL1DatabaseSize() uint64 { + if x != nil && x.L1DatabaseSize != nil { + return *x.L1DatabaseSize } - return ResultExtendedCommunityTransitiveOpaqueType_Choice_unspecified + return 0 } -func (x *ResultExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *ResultExtendedCommunityTransitiveOpaqueTypeColor { - if x != nil { - return x.ColorSubtype +func (x *IsisMetric) GetL1PsnpSent() uint64 { + if x != nil && x.L1PsnpSent != nil { + return *x.L1PsnpSent } - return nil + return 0 } -func (x *ResultExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation { - if x != nil { - return x.EncapsulationSubtype +func (x *IsisMetric) GetL1PsnpReceived() uint64 { + if x != nil && x.L1PsnpReceived != nil { + return *x.L1PsnpReceived } - return nil + return 0 } -// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. -// It is sent with sub-type as 0x04. -type ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // 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. - Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` - // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and - // 1 Mbps is 1000 Kbps per second ) - Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` +func (x *IsisMetric) GetL1CsnpSent() uint64 { + if x != nil && x.L1CsnpSent != nil { + return *x.L1CsnpSent + } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { - *x = ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[447] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL1CsnpReceived() uint64 { + if x != nil && x.L1CsnpReceived != nil { + return *x.L1CsnpReceived } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL1LspSent() uint64 { + if x != nil && x.L1LspSent != nil { + return *x.L1LspSent + } + return 0 } -func (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} +func (x *IsisMetric) GetL1LspReceived() uint64 { + if x != nil && x.L1LspReceived != nil { + return *x.L1LspReceived + } + return 0 +} -func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[447] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL2SessionsUp() uint32 { + if x != nil && x.L2SessionsUp != nil { + return *x.L2SessionsUp } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{447} +func (x *IsisMetric) GetL2SessionFlap() uint64 { + if x != nil && x.L2SessionFlap != nil { + return *x.L2SessionFlap + } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { - if x != nil && x.Global_2ByteAs != nil { - return *x.Global_2ByteAs +func (x *IsisMetric) GetL2BroadcastHellosSent() uint64 { + if x != nil && x.L2BroadcastHellosSent != nil { + return *x.L2BroadcastHellosSent } return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { - if x != nil && x.Bandwidth != nil { - return *x.Bandwidth +func (x *IsisMetric) GetL2BroadcastHellosReceived() uint64 { + if x != nil && x.L2BroadcastHellosReceived != nil { + return *x.L2BroadcastHellosReceived } return 0 } -// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. -type ResultExtendedCommunityNonTransitive2OctetAsType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *IsisMetric) GetL2PointToPointHellosSent() uint64 { + if x != nil && x.L2PointToPointHellosSent != nil { + return *x.L2PointToPointHellosSent + } + return 0 +} - // Description missing in models - Choice *ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - LinkBandwidthSubtype *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3" json:"link_bandwidth_subtype,omitempty"` +func (x *IsisMetric) GetL2PointToPointHellosReceived() uint64 { + if x != nil && x.L2PointToPointHellosReceived != nil { + return *x.L2PointToPointHellosReceived + } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType) Reset() { - *x = ResultExtendedCommunityNonTransitive2OctetAsType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[448] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *IsisMetric) GetL2DatabaseSize() uint64 { + if x != nil && x.L2DatabaseSize != nil { + return *x.L2DatabaseSize } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *IsisMetric) GetL2PsnpSent() uint64 { + if x != nil && x.L2PsnpSent != nil { + return *x.L2PsnpSent + } + return 0 } -func (*ResultExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} +func (x *IsisMetric) GetL2PsnpReceived() uint64 { + if x != nil && x.L2PsnpReceived != nil { + return *x.L2PsnpReceived + } + return 0 +} -func (x *ResultExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[448] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *IsisMetric) GetL2CsnpSent() uint64 { + if x != nil && x.L2CsnpSent != nil { + return *x.L2CsnpSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448} +func (x *IsisMetric) GetL2CsnpReceived() uint64 { + if x != nil && x.L2CsnpReceived != nil { + return *x.L2CsnpReceived + } + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType) GetChoice() ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisMetric) GetL2LspSent() uint64 { + if x != nil && x.L2LspSent != nil { + return *x.L2LspSent } - return ResultExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified + return 0 } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { - if x != nil { - return x.LinkBandwidthSubtype +func (x *IsisMetric) GetL2LspReceived() uint64 { + if x != nil && x.L2LspReceived != nil { + return *x.L2LspReceived } - return nil + return 0 } -// BGP communities provide additional capability for tagging routes and for modifying -// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit -// number which is broken into 16-bit AS number and a 16-bit custom value. -type ResultBgpCommunity struct { +// The request to retrieve per LAG metrics/statistics. +type LagMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The type of community AS number. If community type is manual_as_number then as_number - // and as_custom will be available. - Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` - // First two octets of 32 bit community AS number. - AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` - // Last two octets of the community value. - AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` + // The names of LAGs to return results for. An empty list will return results for all + // LAGs. + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the LAG cannot be excluded. + ColumnNames []LagMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LagMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *ResultBgpCommunity) Reset() { - *x = ResultBgpCommunity{} +func (x *LagMetricsRequest) Reset() { + *x = LagMetricsRequest{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[449] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61497,13 +61661,13 @@ func (x *ResultBgpCommunity) Reset() { } } -func (x *ResultBgpCommunity) String() string { +func (x *LagMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity) ProtoMessage() {} +func (*LagMetricsRequest) ProtoMessage() {} -func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { +func (x *LagMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[449] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61515,45 +61679,64 @@ func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. -func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { +// Deprecated: Use LagMetricsRequest.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{449} } -func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *LagMetricsRequest) GetLagNames() []string { + if x != nil { + return x.LagNames } - return ResultBgpCommunity_Type_unspecified + return nil } -func (x *ResultBgpCommunity) GetAsNumber() uint32 { - if x != nil && x.AsNumber != nil { - return *x.AsNumber +func (x *LagMetricsRequest) GetColumnNames() []LagMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return 0 + return nil } -func (x *ResultBgpCommunity) GetAsCustom() uint32 { - if x != nil && x.AsCustom != nil { - return *x.AsCustom - } - return 0 -} - -// This attribute identifies the autonomous systems through which routing information -// carried in this UPDATE message has passed. -type ResultBgpAsPath struct { +// Description missing in models +type LagMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // AS Path segments present in the received AS Path attribute. - Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` + // The name of a configured LAG + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The current operational state of the LAG. The state can be up or down. State 'up' + // indicates member_ports_up >= min_links. + OperStatus *LagMetric_OperStatus_Enum `protobuf:"varint,2,opt,name=oper_status,json=operStatus,proto3,enum=otg.LagMetric_OperStatus_Enum,oneof" json:"oper_status,omitempty"` + // The number of LAG member ports up. + MemberPortsUp *uint32 `protobuf:"varint,3,opt,name=member_ports_up,json=memberPortsUp,proto3,oneof" json:"member_ports_up,omitempty"` + // The current total number of frames transmitted. + FramesTx *uint64 `protobuf:"varint,4,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // The current total number of valid frames received. + FramesRx *uint64 `protobuf:"varint,5,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // The current total number of bytes transmitted. + BytesTx *uint64 `protobuf:"varint,6,opt,name=bytes_tx,json=bytesTx,proto3,oneof" json:"bytes_tx,omitempty"` + // The current total number of valid bytes received. + BytesRx *uint64 `protobuf:"varint,7,opt,name=bytes_rx,json=bytesRx,proto3,oneof" json:"bytes_rx,omitempty"` + // The current rate of frames transmitted. + FramesTxRate *float32 `protobuf:"fixed32,8,opt,name=frames_tx_rate,json=framesTxRate,proto3,oneof" json:"frames_tx_rate,omitempty"` + // The current rate of valid frames received. + FramesRxRate *float32 `protobuf:"fixed32,9,opt,name=frames_rx_rate,json=framesRxRate,proto3,oneof" json:"frames_rx_rate,omitempty"` + // The current rate of bytes transmitted. + BytesTxRate *float32 `protobuf:"fixed32,10,opt,name=bytes_tx_rate,json=bytesTxRate,proto3,oneof" json:"bytes_tx_rate,omitempty"` + // The current rate of bytes received. + BytesRxRate *float32 `protobuf:"fixed32,11,opt,name=bytes_rx_rate,json=bytesRxRate,proto3,oneof" json:"bytes_rx_rate,omitempty"` } -func (x *ResultBgpAsPath) Reset() { - *x = ResultBgpAsPath{} +func (x *LagMetric) Reset() { + *x = LagMetric{} if protoimpl.UnsafeEnabled { mi := &file_otg_proto_msgTypes[450] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61561,13 +61744,13 @@ func (x *ResultBgpAsPath) Reset() { } } -func (x *ResultBgpAsPath) String() string { +func (x *LagMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPath) ProtoMessage() {} +func (*LagMetric) ProtoMessage() {} -func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { +func (x *LagMetric) ProtoReflect() protoreflect.Message { mi := &file_otg_proto_msgTypes[450] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -61579,117 +61762,135 @@ func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { +// Deprecated: Use LagMetric.ProtoReflect.Descriptor instead. +func (*LagMetric) Descriptor() ([]byte, []int) { return file_otg_proto_rawDescGZIP(), []int{450} } -func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { - if x != nil { - return x.Segments +func (x *LagMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// Configuration for a single BGP AS path segment -type ResultBgpAsPathSegment struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *LagMetric) GetOperStatus() LagMetric_OperStatus_Enum { + if x != nil && x.OperStatus != nil { + return *x.OperStatus + } + return LagMetric_OperStatus_unspecified +} - // 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 *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` - // The AS numbers in this AS path segment. - AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` +func (x *LagMetric) GetMemberPortsUp() uint32 { + if x != nil && x.MemberPortsUp != nil { + return *x.MemberPortsUp + } + return 0 } -func (x *ResultBgpAsPathSegment) Reset() { - *x = ResultBgpAsPathSegment{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[451] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LagMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } + return 0 } -func (x *ResultBgpAsPathSegment) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *LagMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx + } + return 0 } -func (*ResultBgpAsPathSegment) ProtoMessage() {} +func (x *LagMetric) GetBytesTx() uint64 { + if x != nil && x.BytesTx != nil { + return *x.BytesTx + } + return 0 +} -func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[451] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LagMetric) GetBytesRx() uint64 { + if x != nil && x.BytesRx != nil { + return *x.BytesRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. -func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{451} +func (x *LagMetric) GetFramesTxRate() float32 { + if x != nil && x.FramesTxRate != nil { + return *x.FramesTxRate + } + return 0 } -func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *LagMetric) GetFramesRxRate() float32 { + if x != nil && x.FramesRxRate != nil { + return *x.FramesRxRate } - return ResultBgpAsPathSegment_Type_unspecified + return 0 } -func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { - if x != nil { - return x.AsNumbers +func (x *LagMetric) GetBytesTxRate() float32 { + if x != nil && x.BytesTxRate != nil { + return *x.BytesTxRate } - return nil + return 0 } -// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. -type IsisLspsStateRequest struct { +func (x *LagMetric) GetBytesRxRate() float32 { + if x != nil && x.BytesRxRate != nil { + return *x.BytesRxRate + } + return 0 +} + +// The request to retrieve LACP per LAG member metrics/statistics. +type LacpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of ISIS routers for which learned information is requested. An empty list - // will return results for all ISIS routers. + // The names of LAG (ports group) for which LACP metrics to be returned. An empty list + // will return metrics for all LAGs. // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name + // - /components/schemas/Lag/properties/name // // x-constraint: - // - /components/schemas/Device.IsisRouter/properties/name - IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` + // - /components/schemas/Lag/properties/name + LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` + // The names of LAG members (ports) for which LACP metrics to be returned. An empty + // list will return metrics for all LAG members. + // + // x-constraint: + // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of LAG and LAG member can not be + // excluded. + ColumnNames []LacpMetricsRequest_ColumnNames_Enum `protobuf:"varint,3,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LacpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *IsisLspsStateRequest) Reset() { - *x = IsisLspsStateRequest{} +func (x *LacpMetricsRequest) Reset() { + *x = LacpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[452] + mi := &file_otg_proto_msgTypes[451] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspsStateRequest) String() string { +func (x *LacpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspsStateRequest) ProtoMessage() {} +func (*LacpMetricsRequest) ProtoMessage() {} -func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[452] +func (x *LacpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[451] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61700,127 +61901,94 @@ func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. -func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{452} +// Deprecated: Use LacpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{451} } -func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { +func (x *LacpMetricsRequest) GetLagNames() []string { if x != nil { - return x.IsisRouterNames + return x.LagNames } return nil } -// The result of ISIS LSP information that are retrieved. -type IsisLspsState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The name of the ISIS Router. - IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` - // One or more LSPs that are learned by this ISIS router. - Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` -} - -func (x *IsisLspsState) Reset() { - *x = IsisLspsState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[453] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsisLspsState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsisLspsState) ProtoMessage() {} - -func (x *IsisLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[453] - 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 IsisLspsState.ProtoReflect.Descriptor instead. -func (*IsisLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{453} -} - -func (x *IsisLspsState) GetIsisRouterName() string { - if x != nil && x.IsisRouterName != nil { - return *x.IsisRouterName +func (x *LacpMetricsRequest) GetLagMemberPortNames() []string { + if x != nil { + return x.LagMemberPortNames } - return "" + return nil } -func (x *IsisLspsState) GetLsps() []*IsisLspState { +func (x *LacpMetricsRequest) GetColumnNames() []LacpMetricsRequest_ColumnNames_Enum { if x != nil { - return x.Lsps + return x.ColumnNames } return nil } -// ISIS LSP. -type IsisLspState struct { +// LACP metrics (statistics) per LAG member. +type LacpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID - // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent - // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation - // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN - // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with - // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. - // Then the sequence number is incremented by 1. - // required = true - LspId *string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // Link State PDU type. - PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` - // Remaining lifetime in seconds before LSP expires. - RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` - // Sequence number of the LSP. - SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` - // Total length of the LSP. - PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` - // LSP Type-Block flags. - Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3" json:"flags,omitempty"` - // IS Type - bits 1 and 2 indicate the type of Intermediate System. - // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. - // 2 - Unused value. - // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. - IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` - // It refers to Link State PDU State TLVs container. - Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3" json:"tlvs,omitempty"` + // The name of a LAG (ports group) configured with LACP. + LagName *string `protobuf:"bytes,1,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` + // The name of a LAG member (port) configured with LACP. + LagMemberPortName *string `protobuf:"bytes,2,opt,name=lag_member_port_name,json=lagMemberPortName,proto3,oneof" json:"lag_member_port_name,omitempty"` + // Number of LACPDUs received. + LacpPacketsRx *uint64 `protobuf:"varint,3,opt,name=lacp_packets_rx,json=lacpPacketsRx,proto3,oneof" json:"lacp_packets_rx,omitempty"` + // Number of LACPDUs transmitted. + LacpPacketsTx *uint64 `protobuf:"varint,4,opt,name=lacp_packets_tx,json=lacpPacketsTx,proto3,oneof" json:"lacp_packets_tx,omitempty"` + // Number of LACPDUs receive packet errors. + LacpRxErrors *uint64 `protobuf:"varint,5,opt,name=lacp_rx_errors,json=lacpRxErrors,proto3,oneof" json:"lacp_rx_errors,omitempty"` + // Indicates participant is active or passive. + Activity *LacpMetric_Activity_Enum `protobuf:"varint,6,opt,name=activity,proto3,enum=otg.LacpMetric_Activity_Enum,oneof" json:"activity,omitempty"` + // The timeout type (short or long) used by the participant. + Timeout *LacpMetric_Timeout_Enum `protobuf:"varint,7,opt,name=timeout,proto3,enum=otg.LacpMetric_Timeout_Enum,oneof" json:"timeout,omitempty"` + // Indicates whether the participant is in-sync or out-of-sync. + Synchronization *LacpMetric_Synchronization_Enum `protobuf:"varint,8,opt,name=synchronization,proto3,enum=otg.LacpMetric_Synchronization_Enum,oneof" json:"synchronization,omitempty"` + // A true value indicates that the participant will allow the link to be used as part + // of the aggregate. A false value indicates the link should be used as an individual + // link. + Aggregatable *bool `protobuf:"varint,9,opt,name=aggregatable,proto3,oneof" json:"aggregatable,omitempty"` + // If true, the participant is collecting incoming frames on the link, otherwise false. + Collecting *bool `protobuf:"varint,10,opt,name=collecting,proto3,oneof" json:"collecting,omitempty"` + // When true, the participant is distributing outgoing frames; when false, distribution + // is disabled. + Distributing *bool `protobuf:"varint,11,opt,name=distributing,proto3,oneof" json:"distributing,omitempty"` + // MAC address that defines the local system ID for the aggregate interface. + SystemId *string `protobuf:"bytes,12,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` + // Current operational value of the key for the aggregate interface. + OperKey *uint32 `protobuf:"varint,13,opt,name=oper_key,json=operKey,proto3,oneof" json:"oper_key,omitempty"` + // MAC address representing the protocol partner's interface system ID. + PartnerId *string `protobuf:"bytes,14,opt,name=partner_id,json=partnerId,proto3,oneof" json:"partner_id,omitempty"` + // Operational value of the protocol partner's key. + PartnerKey *uint32 `protobuf:"varint,15,opt,name=partner_key,json=partnerKey,proto3,oneof" json:"partner_key,omitempty"` + // Port number of the local (actor) aggregation member. + PortNum *uint32 `protobuf:"varint,16,opt,name=port_num,json=portNum,proto3,oneof" json:"port_num,omitempty"` + // Port number of the partner (remote) port for this member port. + PartnerPortNum *uint32 `protobuf:"varint,17,opt,name=partner_port_num,json=partnerPortNum,proto3,oneof" json:"partner_port_num,omitempty"` } -func (x *IsisLspState) Reset() { - *x = IsisLspState{} +func (x *LacpMetric) Reset() { + *x = LacpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[454] + mi := &file_otg_proto_msgTypes[452] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspState) String() string { +func (x *LacpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspState) ProtoMessage() {} +func (*LacpMetric) ProtoMessage() {} -func (x *IsisLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[454] +func (x *LacpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[452] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61831,197 +61999,167 @@ func (x *IsisLspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. -func (*IsisLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{454} +// Deprecated: Use LacpMetric.ProtoReflect.Descriptor instead. +func (*LacpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{452} } -func (x *IsisLspState) GetLspId() string { - if x != nil && x.LspId != nil { - return *x.LspId +func (x *LacpMetric) GetLagName() string { + if x != nil && x.LagName != nil { + return *x.LagName } return "" } -func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { - if x != nil && x.PduType != nil { - return *x.PduType +func (x *LacpMetric) GetLagMemberPortName() string { + if x != nil && x.LagMemberPortName != nil { + return *x.LagMemberPortName } - return IsisLspState_PduType_unspecified + return "" } -func (x *IsisLspState) GetRemainingLifetime() uint32 { - if x != nil && x.RemainingLifetime != nil { - return *x.RemainingLifetime +func (x *LacpMetric) GetLacpPacketsRx() uint64 { + if x != nil && x.LacpPacketsRx != nil { + return *x.LacpPacketsRx } return 0 } -func (x *IsisLspState) GetSequenceNumber() uint64 { - if x != nil && x.SequenceNumber != nil { - return *x.SequenceNumber +func (x *LacpMetric) GetLacpPacketsTx() uint64 { + if x != nil && x.LacpPacketsTx != nil { + return *x.LacpPacketsTx } return 0 } -func (x *IsisLspState) GetPduLength() uint32 { - if x != nil && x.PduLength != nil { - return *x.PduLength +func (x *LacpMetric) GetLacpRxErrors() uint64 { + if x != nil && x.LacpRxErrors != nil { + return *x.LacpRxErrors } return 0 } -func (x *IsisLspState) GetFlags() *IsisLspFlags { - if x != nil { - return x.Flags +func (x *LacpMetric) GetActivity() LacpMetric_Activity_Enum { + if x != nil && x.Activity != nil { + return *x.Activity } - return nil + return LacpMetric_Activity_unspecified } -func (x *IsisLspState) GetIsType() uint32 { - if x != nil && x.IsType != nil { - return *x.IsType +func (x *LacpMetric) GetTimeout() LacpMetric_Timeout_Enum { + if x != nil && x.Timeout != nil { + return *x.Timeout } - return 0 + return LacpMetric_Timeout_unspecified } -func (x *IsisLspState) GetTlvs() *IsisLspTlvs { - if x != nil { - return x.Tlvs +func (x *LacpMetric) GetSynchronization() LacpMetric_Synchronization_Enum { + if x != nil && x.Synchronization != nil { + return *x.Synchronization } - return nil -} - -// This contains the list of TLVs present in one LSP. -type IsisLspTlvs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Array of Hostname TLVs ( type 137) present in this LSP. - HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` - // Array of IS-Reachability TLVs (type 2) present in this LSP. - IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` - // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. - ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` - // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. - Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` - // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. - Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` - // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. - ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` - // Array of IPv6 Reachability TLVs (type 236) present in this LSP. - Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` + return LacpMetric_Synchronization_unspecified } -func (x *IsisLspTlvs) Reset() { - *x = IsisLspTlvs{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[455] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *LacpMetric) GetAggregatable() bool { + if x != nil && x.Aggregatable != nil { + return *x.Aggregatable } + return false } -func (x *IsisLspTlvs) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsisLspTlvs) ProtoMessage() {} - -func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[455] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *LacpMetric) GetCollecting() bool { + if x != nil && x.Collecting != nil { + return *x.Collecting } - return mi.MessageOf(x) -} - -// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. -func (*IsisLspTlvs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{455} + return false } -func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { - if x != nil { - return x.HostnameTlvs +func (x *LacpMetric) GetDistributing() bool { + if x != nil && x.Distributing != nil { + return *x.Distributing } - return nil + return false } -func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { - if x != nil { - return x.IsReachabilityTlvs +func (x *LacpMetric) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } - return nil + return "" } -func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { - if x != nil { - return x.ExtendedIsReachabilityTlvs +func (x *LacpMetric) GetOperKey() uint32 { + if x != nil && x.OperKey != nil { + return *x.OperKey } - return nil + return 0 } -func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { - if x != nil { - return x.Ipv4InternalReachabilityTlvs +func (x *LacpMetric) GetPartnerId() string { + if x != nil && x.PartnerId != nil { + return *x.PartnerId } - return nil + return "" } -func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { - if x != nil { - return x.Ipv4ExternalReachabilityTlvs +func (x *LacpMetric) GetPartnerKey() uint32 { + if x != nil && x.PartnerKey != nil { + return *x.PartnerKey } - return nil + return 0 } -func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { - if x != nil { - return x.ExtendedIpv4ReachabilityTlvs +func (x *LacpMetric) GetPortNum() uint32 { + if x != nil && x.PortNum != nil { + return *x.PortNum } - return nil + return 0 } -func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { - if x != nil { - return x.Ipv6ReachabilityTlvs +func (x *LacpMetric) GetPartnerPortNum() uint32 { + if x != nil && x.PartnerPortNum != nil { + return *x.PartnerPortNum } - return nil + return 0 } -// It contains Hostname for the TLV 137. -type IsisLspHostname struct { +// The request to retrieve LLDP per instance metrics/statistics. +type LldpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Hostname for an ISIS router. - Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + // The names of LLDP instances to return results for. An empty list will return results + // for all LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // The requested list of column names for the result set. If the list is empty then + // metrics for all columns will be returned. The name of LLDP instance can not be excluded. + ColumnNames []LldpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.LldpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *IsisLspHostname) Reset() { - *x = IsisLspHostname{} +func (x *LldpMetricsRequest) Reset() { + *x = LldpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[456] + mi := &file_otg_proto_msgTypes[453] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspHostname) String() string { +func (x *LldpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspHostname) ProtoMessage() {} +func (*LldpMetricsRequest) ProtoMessage() {} -func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[456] +func (x *LldpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[453] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62032,59 +62170,74 @@ func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. -func (*IsisLspHostname) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{456} +// Deprecated: Use LldpMetricsRequest.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{453} } -func (x *IsisLspHostname) GetHostname() string { - if x != nil && x.Hostname != nil { - return *x.Hostname +func (x *LldpMetricsRequest) GetLldpNames() []string { + if x != nil { + return x.LldpNames } - return "" + return nil } -// LSP Type flags. -type IsisLspFlags struct { +func (x *LldpMetricsRequest) GetColumnNames() []LldpMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// LLDP per instance statistics information. +type LldpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // When set, the originator supports partition repair. - PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` - // When set, the originator is attached to another area using the referred metric. - AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` - // When set, the originator is attached to another - // area using the referred metric. - AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` - // Delay Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` - // Default Metric - when set, the originator is attached to another - // area using the referred metric. - AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` - // Overload bit - when set, the originator is overloaded, and must - // be avoided in path calculation. - Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` + // The name of the configured LLDP instance. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of LLDP frames received. + FramesRx *uint64 `protobuf:"varint,2,opt,name=frames_rx,json=framesRx,proto3,oneof" json:"frames_rx,omitempty"` + // Number of LLDP frames transmitted. + FramesTx *uint64 `protobuf:"varint,3,opt,name=frames_tx,json=framesTx,proto3,oneof" json:"frames_tx,omitempty"` + // Number of LLDP frames received with packet errors. This stat should be incremented + // based on statsFramesInErrorsTotal increment rule in section 10.3.2 of IEEE Std 802.1 + // AB-2005. + FramesErrorRx *uint64 `protobuf:"varint,4,opt,name=frames_error_rx,json=framesErrorRx,proto3,oneof" json:"frames_error_rx,omitempty"` + // Number of LLDP frames received that are discarded. This stat should be incremented + // when one or more of the three mandatory TLVs at the beginning of the LLDPDU is missing, + // out of order or contains an out of range information string length. This stat should + // follow the validation rules in section 10.3.2 of IEEE Std 802.1 AB-2005. + FramesDiscard *uint64 `protobuf:"varint,5,opt,name=frames_discard,json=framesDiscard,proto3,oneof" json:"frames_discard,omitempty"` + // Number of LLDP tlvs received that are discarded. If any TLV contains an error condition + // specific for that particular TLV or if any TLV extends past the physical end of + // the frame then these TLVs will be discarded. + TlvsDiscard *uint64 `protobuf:"varint,6,opt,name=tlvs_discard,json=tlvsDiscard,proto3,oneof" json:"tlvs_discard,omitempty"` + // Number of LLDP unknown tlvs received. If the OUI of the organizationlly specific + // TLV and/or organizationally defined subtype are not recognized,or if TLV type value + // is in the range of reserved TLV types then these TLVs will be considered as unknown + // TLVs. + TlvsUnknown *uint64 `protobuf:"varint,7,opt,name=tlvs_unknown,json=tlvsUnknown,proto3,oneof" json:"tlvs_unknown,omitempty"` } -func (x *IsisLspFlags) Reset() { - *x = IsisLspFlags{} +func (x *LldpMetric) Reset() { + *x = LldpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[457] + mi := &file_otg_proto_msgTypes[454] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspFlags) String() string { +func (x *LldpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspFlags) ProtoMessage() {} +func (*LldpMetric) ProtoMessage() {} -func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[457] +func (x *LldpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[454] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62095,81 +62248,97 @@ func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. -func (*IsisLspFlags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{457} +// Deprecated: Use LldpMetric.ProtoReflect.Descriptor instead. +func (*LldpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{454} } -func (x *IsisLspFlags) GetPartitionRepair() bool { - if x != nil && x.PartitionRepair != nil { - return *x.PartitionRepair +func (x *LldpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return false + return "" } -func (x *IsisLspFlags) GetAttachedError() bool { - if x != nil && x.AttachedError != nil { - return *x.AttachedError +func (x *LldpMetric) GetFramesRx() uint64 { + if x != nil && x.FramesRx != nil { + return *x.FramesRx } - return false + return 0 } -func (x *IsisLspFlags) GetAttachedExpense() bool { - if x != nil && x.AttachedExpense != nil { - return *x.AttachedExpense +func (x *LldpMetric) GetFramesTx() uint64 { + if x != nil && x.FramesTx != nil { + return *x.FramesTx } - return false + return 0 } -func (x *IsisLspFlags) GetAttachedDelay() bool { - if x != nil && x.AttachedDelay != nil { - return *x.AttachedDelay +func (x *LldpMetric) GetFramesErrorRx() uint64 { + if x != nil && x.FramesErrorRx != nil { + return *x.FramesErrorRx } - return false + return 0 } -func (x *IsisLspFlags) GetAttachedDefault() bool { - if x != nil && x.AttachedDefault != nil { - return *x.AttachedDefault +func (x *LldpMetric) GetFramesDiscard() uint64 { + if x != nil && x.FramesDiscard != nil { + return *x.FramesDiscard } - return false + return 0 } -func (x *IsisLspFlags) GetOverload() bool { - if x != nil && x.Overload != nil { - return *x.Overload +func (x *LldpMetric) GetTlvsDiscard() uint64 { + if x != nil && x.TlvsDiscard != nil { + return *x.TlvsDiscard } - return false + return 0 } -// This container describes list of ISIS neighbors and attributes in IS-Reachability -// TLV (type 2). -type IsisLspIsReachabilityTlv struct { +func (x *LldpMetric) GetTlvsUnknown() uint64 { + if x != nil && x.TlvsUnknown != nil { + return *x.TlvsUnknown + } + return 0 +} + +// The request to retrieve RSVP-TE per Router metrics/statistics. +type RsvpMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes Intermediate System (IS) neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The names of RSVP-TE Routers to return results for. An empty list as input will return + // results for all RSVP-TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` + // The list of column names that the returned result set will contain. If the input + // list is empty then all columns will be returned except for any result_groups. + ColumnNames []RsvpMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.RsvpMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *IsisLspIsReachabilityTlv) Reset() { - *x = IsisLspIsReachabilityTlv{} +func (x *RsvpMetricsRequest) Reset() { + *x = RsvpMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[458] + mi := &file_otg_proto_msgTypes[455] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspIsReachabilityTlv) String() string { +func (x *RsvpMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIsReachabilityTlv) ProtoMessage() {} +func (*RsvpMetricsRequest) ProtoMessage() {} -func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[458] +func (x *RsvpMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[455] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62180,46 +62349,119 @@ func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{458} +// Deprecated: Use RsvpMetricsRequest.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{455} } -func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { +func (x *RsvpMetricsRequest) GetRouterNames() []string { if x != nil { - return x.Neighbors + return x.RouterNames } return nil } -// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type -// 22). -type IsisLspExtendedIsReachabilityTlv struct { +func (x *RsvpMetricsRequest) GetColumnNames() []RsvpMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// RSVP-TE per router statistics information. +type RsvpMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This container describes IS neighbors. - Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` + // The name of a configured RSVP router. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // The number of ingress point-to-point LSPs configured or transiting through the RSVP + // router which have been initated from the test port. + IngressP2PLspsConfigured *uint32 `protobuf:"varint,2,opt,name=ingress_p2p_lsps_configured,json=ingressP2pLspsConfigured,proto3,oneof" json:"ingress_p2p_lsps_configured,omitempty"` + // The number of ingress point-to-point LSPs for which Resv has been received and is + // currently up. + IngressP2PLspsUp *uint32 `protobuf:"varint,3,opt,name=ingress_p2p_lsps_up,json=ingressP2pLspsUp,proto3,oneof" json:"ingress_p2p_lsps_up,omitempty"` + // The number of egress point-to-point LSPs for which Path requests were successfully + // processed and is currently up. + EgressP2PLspsUp *uint32 `protobuf:"varint,4,opt,name=egress_p2p_lsps_up,json=egressP2pLspsUp,proto3,oneof" json:"egress_p2p_lsps_up,omitempty"` + // The number of times an LSP went from up to down state either because it timed out + // while waiting for Refreshes or a PathTear or ResvTear message was received which + // caused the LSP to flap. + LspFlapCount *uint64 `protobuf:"varint,5,opt,name=lsp_flap_count,json=lspFlapCount,proto3,oneof" json:"lsp_flap_count,omitempty"` + // The number of Path messages sent by this RSVP router. + PathsTx *uint64 `protobuf:"varint,6,opt,name=paths_tx,json=pathsTx,proto3,oneof" json:"paths_tx,omitempty"` + // The number of Path messages received by this RSVP router. + PathsRx *uint64 `protobuf:"varint,7,opt,name=paths_rx,json=pathsRx,proto3,oneof" json:"paths_rx,omitempty"` + // The number of Resv messages sent by this RSVP router. + ResvsTx *uint64 `protobuf:"varint,8,opt,name=resvs_tx,json=resvsTx,proto3,oneof" json:"resvs_tx,omitempty"` + // The number of Resv messages received by this RSVP router. + ResvsRx *uint64 `protobuf:"varint,9,opt,name=resvs_rx,json=resvsRx,proto3,oneof" json:"resvs_rx,omitempty"` + // The number of Path Tear messages sent by this RSVP router. + PathTearsTx *uint64 `protobuf:"varint,10,opt,name=path_tears_tx,json=pathTearsTx,proto3,oneof" json:"path_tears_tx,omitempty"` + // The number of Path Tear messages received by this RSVP router. + PathTearsRx *uint64 `protobuf:"varint,11,opt,name=path_tears_rx,json=pathTearsRx,proto3,oneof" json:"path_tears_rx,omitempty"` + // The number of Resv Tear messages sent by this RSVP router. + ResvTearsTx *uint64 `protobuf:"varint,12,opt,name=resv_tears_tx,json=resvTearsTx,proto3,oneof" json:"resv_tears_tx,omitempty"` + // The number of Resv Tear messages received by this RSVP router. + ResvTearsRx *uint64 `protobuf:"varint,13,opt,name=resv_tears_rx,json=resvTearsRx,proto3,oneof" json:"resv_tears_rx,omitempty"` + // The number of Path Error messages sent by this RSVP router. + PathErrorsTx *uint64 `protobuf:"varint,14,opt,name=path_errors_tx,json=pathErrorsTx,proto3,oneof" json:"path_errors_tx,omitempty"` + // The number of Path Error messages received by this RSVP router. + PathErrorsRx *uint64 `protobuf:"varint,15,opt,name=path_errors_rx,json=pathErrorsRx,proto3,oneof" json:"path_errors_rx,omitempty"` + // The number of Resv Error messages sent by this RSVP router. + ResvErrorsTx *uint64 `protobuf:"varint,16,opt,name=resv_errors_tx,json=resvErrorsTx,proto3,oneof" json:"resv_errors_tx,omitempty"` + // The number of Resv Error messages received by this RSVP router. + ResvErrorsRx *uint64 `protobuf:"varint,17,opt,name=resv_errors_rx,json=resvErrorsRx,proto3,oneof" json:"resv_errors_rx,omitempty"` + // The number of ResvConf messages sent by this RSVP router. + ResvConfTx *uint64 `protobuf:"varint,18,opt,name=resv_conf_tx,json=resvConfTx,proto3,oneof" json:"resv_conf_tx,omitempty"` + // The number of ResvConf messages received by this RSVP router. + ResvConfRx *uint64 `protobuf:"varint,19,opt,name=resv_conf_rx,json=resvConfRx,proto3,oneof" json:"resv_conf_rx,omitempty"` + // The number of Hello messages sent by this RSVP router. + HellosTx *uint64 `protobuf:"varint,20,opt,name=hellos_tx,json=hellosTx,proto3,oneof" json:"hellos_tx,omitempty"` + // The number of Hello messages received by this RSVP router. + HellosRx *uint64 `protobuf:"varint,21,opt,name=hellos_rx,json=hellosRx,proto3,oneof" json:"hellos_rx,omitempty"` + // The number of Ack messages sent by this RSVP router. + AcksTx *uint64 `protobuf:"varint,22,opt,name=acks_tx,json=acksTx,proto3,oneof" json:"acks_tx,omitempty"` + // The number of Ack messages received by this RSVP router. + AcksRx *uint64 `protobuf:"varint,23,opt,name=acks_rx,json=acksRx,proto3,oneof" json:"acks_rx,omitempty"` + // The number of Nack messages sent by this RSVP router. + NacksTx *uint64 `protobuf:"varint,24,opt,name=nacks_tx,json=nacksTx,proto3,oneof" json:"nacks_tx,omitempty"` + // The number of Nack messages received by this RSVP router. + NacksRx *uint64 `protobuf:"varint,25,opt,name=nacks_rx,json=nacksRx,proto3,oneof" json:"nacks_rx,omitempty"` + // The number of SRefresh messages sent by this RSVP router. + SrefreshTx *uint64 `protobuf:"varint,26,opt,name=srefresh_tx,json=srefreshTx,proto3,oneof" json:"srefresh_tx,omitempty"` + // The number of SRefresh messages received by this RSVP router. + SrefreshRx *uint64 `protobuf:"varint,27,opt,name=srefresh_rx,json=srefreshRx,proto3,oneof" json:"srefresh_rx,omitempty"` + // The number of Bundle messages sent by this RSVP router. + BundleTx *uint64 `protobuf:"varint,28,opt,name=bundle_tx,json=bundleTx,proto3,oneof" json:"bundle_tx,omitempty"` + // The number of Bundle messages received by this RSVP router. + BundleRx *uint64 `protobuf:"varint,29,opt,name=bundle_rx,json=bundleRx,proto3,oneof" json:"bundle_rx,omitempty"` + // The number of Path messages with Path Re-evaluation Request enabled sent by this + // RSVP router. + PathReevaluationRequestTx *uint64 `protobuf:"varint,30,opt,name=path_reevaluation_request_tx,json=pathReevaluationRequestTx,proto3,oneof" json:"path_reevaluation_request_tx,omitempty"` + // The number of successfully completed Make-Before-Break operations on LSPs on this + // RSVP router. + PathReoptimizations *uint64 `protobuf:"varint,31,opt,name=path_reoptimizations,json=pathReoptimizations,proto3,oneof" json:"path_reoptimizations,omitempty"` } -func (x *IsisLspExtendedIsReachabilityTlv) Reset() { - *x = IsisLspExtendedIsReachabilityTlv{} +func (x *RsvpMetric) Reset() { + *x = RsvpMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[459] + mi := &file_otg_proto_msgTypes[456] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedIsReachabilityTlv) String() string { +func (x *RsvpMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} +func (*RsvpMetric) ProtoMessage() {} -func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[459] +func (x *RsvpMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[456] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62230,291 +62472,266 @@ func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{459} +// Deprecated: Use RsvpMetric.ProtoReflect.Descriptor instead. +func (*RsvpMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{456} } -func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { - if x != nil { - return x.Neighbors +func (x *RsvpMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return nil + return "" } -// This contains IS neighbors. -type IsisLspneighbor struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The System ID for this emulated ISIS router, e.g. 640100010000. - SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` +func (x *RsvpMetric) GetIngressP2PLspsConfigured() uint32 { + if x != nil && x.IngressP2PLspsConfigured != nil { + return *x.IngressP2PLspsConfigured + } + return 0 } -func (x *IsisLspneighbor) Reset() { - *x = IsisLspneighbor{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[460] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetIngressP2PLspsUp() uint32 { + if x != nil && x.IngressP2PLspsUp != nil { + return *x.IngressP2PLspsUp } + return 0 } -func (x *IsisLspneighbor) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetEgressP2PLspsUp() uint32 { + if x != nil && x.EgressP2PLspsUp != nil { + return *x.EgressP2PLspsUp + } + return 0 } -func (*IsisLspneighbor) ProtoMessage() {} - -func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[460] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetLspFlapCount() uint64 { + if x != nil && x.LspFlapCount != nil { + return *x.LspFlapCount } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. -func (*IsisLspneighbor) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{460} +func (x *RsvpMetric) GetPathsTx() uint64 { + if x != nil && x.PathsTx != nil { + return *x.PathsTx + } + return 0 } -func (x *IsisLspneighbor) GetSystemId() string { - if x != nil && x.SystemId != nil { - return *x.SystemId +func (x *RsvpMetric) GetPathsRx() uint64 { + if x != nil && x.PathsRx != nil { + return *x.PathsRx } - return "" + return 0 } -// This container defines list of IPv4 internal reachability information in one IPv4 -// internal reachability TLV. -// This is advertised when the origin-type is set 'internal' in route range configurations. -type IsisLspIpv4InternalReachabilityTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Describes list of IPv4 prefixes in this TLV. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` +func (x *RsvpMetric) GetResvsTx() uint64 { + if x != nil && x.ResvsTx != nil { + return *x.ResvsTx + } + return 0 } -func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { - *x = IsisLspIpv4InternalReachabilityTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[461] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetResvsRx() uint64 { + if x != nil && x.ResvsRx != nil { + return *x.ResvsRx } + return 0 } -func (x *IsisLspIpv4InternalReachabilityTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetPathTearsTx() uint64 { + if x != nil && x.PathTearsTx != nil { + return *x.PathTearsTx + } + return 0 } -func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} - -func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[461] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetPathTearsRx() uint64 { + if x != nil && x.PathTearsRx != nil { + return *x.PathTearsRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{461} +func (x *RsvpMetric) GetResvTearsTx() uint64 { + if x != nil && x.ResvTearsTx != nil { + return *x.ResvTearsTx + } + return 0 } -func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { - if x != nil { - return x.Prefixes +func (x *RsvpMetric) GetResvTearsRx() uint64 { + if x != nil && x.ResvTearsRx != nil { + return *x.ResvTearsRx } - return nil + return 0 } -// This container defines list of IPv4 external reachability information in one IPv4 -// external reachability TLV. -// This is advertised when the origin-type is set 'external' in route range configurations. -type IsisLspIpv4ExternalReachabilityTlv struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Describes list of IPv4 prefixes in this TLV.. - Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` +func (x *RsvpMetric) GetPathErrorsTx() uint64 { + if x != nil && x.PathErrorsTx != nil { + return *x.PathErrorsTx + } + return 0 } -func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { - *x = IsisLspIpv4ExternalReachabilityTlv{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[462] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetPathErrorsRx() uint64 { + if x != nil && x.PathErrorsRx != nil { + return *x.PathErrorsRx } + return 0 } -func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetResvErrorsTx() uint64 { + if x != nil && x.ResvErrorsTx != nil { + return *x.ResvErrorsTx + } + return 0 } -func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} - -func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[462] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetResvErrorsRx() uint64 { + if x != nil && x.ResvErrorsRx != nil { + return *x.ResvErrorsRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{462} +func (x *RsvpMetric) GetResvConfTx() uint64 { + if x != nil && x.ResvConfTx != nil { + return *x.ResvConfTx + } + return 0 } -func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { - if x != nil { - return x.Prefixes +func (x *RsvpMetric) GetResvConfRx() uint64 { + if x != nil && x.ResvConfRx != nil { + return *x.ResvConfRx } - return nil + return 0 } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspV4Prefix struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *RsvpMetric) GetHellosTx() uint64 { + if x != nil && x.HellosTx != nil { + return *x.HellosTx + } + return 0 +} - // An IPv4 unicast prefix reachable via the originator of this LSP. - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // 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 *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // ISIS default metric value. - DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` - // 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 *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` +func (x *RsvpMetric) GetHellosRx() uint64 { + if x != nil && x.HellosRx != nil { + return *x.HellosRx + } + return 0 } -func (x *IsisLspV4Prefix) Reset() { - *x = IsisLspV4Prefix{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[463] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *RsvpMetric) GetAcksTx() uint64 { + if x != nil && x.AcksTx != nil { + return *x.AcksTx } + return 0 } -func (x *IsisLspV4Prefix) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *RsvpMetric) GetAcksRx() uint64 { + if x != nil && x.AcksRx != nil { + return *x.AcksRx + } + return 0 } -func (*IsisLspV4Prefix) ProtoMessage() {} +func (x *RsvpMetric) GetNacksTx() uint64 { + if x != nil && x.NacksTx != nil { + return *x.NacksTx + } + return 0 +} -func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[463] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *RsvpMetric) GetNacksRx() uint64 { + if x != nil && x.NacksRx != nil { + return *x.NacksRx } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{463} +func (x *RsvpMetric) GetSrefreshTx() uint64 { + if x != nil && x.SrefreshTx != nil { + return *x.SrefreshTx + } + return 0 } -func (x *IsisLspV4Prefix) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *RsvpMetric) GetSrefreshRx() uint64 { + if x != nil && x.SrefreshRx != nil { + return *x.SrefreshRx } - return "" + return 0 } -func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *RsvpMetric) GetBundleTx() uint64 { + if x != nil && x.BundleTx != nil { + return *x.BundleTx } return 0 } -func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *RsvpMetric) GetBundleRx() uint64 { + if x != nil && x.BundleRx != nil { + return *x.BundleRx } - return IsisLspV4Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { - if x != nil && x.DefaultMetric != nil { - return *x.DefaultMetric +func (x *RsvpMetric) GetPathReevaluationRequestTx() uint64 { + if x != nil && x.PathReevaluationRequestTx != nil { + return *x.PathReevaluationRequestTx } return 0 } -func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType +func (x *RsvpMetric) GetPathReoptimizations() uint64 { + if x != nil && x.PathReoptimizations != nil { + return *x.PathReoptimizations } - return IsisLspV4Prefix_OriginType_unspecified + return 0 } -// This container defines list of IPv4 extended reachability information in one Extended -// IPv4 External Reachability TLV. -// It is advertised when the 'wide metric' is enabled. -type IsisLspExtendedIpv4ReachabilityTlv struct { +// The request to retrieve DHCPv4 per client metrics/statistics. +type Dhcpv4ClientMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv4 prefix contained within extended reachability TLVs. - Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The names of DHCPv4 clients to return results for. An empty list will return results + // for all DHCPv4 client. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4client/properties/name + ClientNames []string `protobuf:"bytes,1,rep,name=client_names,json=clientNames,proto3" json:"client_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the DHCPv4 client cannot be + // excluded. + ColumnNames []Dhcpv4ClientMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv4ClientMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { - *x = IsisLspExtendedIpv4ReachabilityTlv{} +func (x *Dhcpv4ClientMetricsRequest) Reset() { + *x = Dhcpv4ClientMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[464] + mi := &file_otg_proto_msgTypes[457] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { +func (x *Dhcpv4ClientMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} +func (*Dhcpv4ClientMetricsRequest) ProtoMessage() {} -func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[464] +func (x *Dhcpv4ClientMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[457] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62525,57 +62742,66 @@ func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{464} +// Deprecated: Use Dhcpv4ClientMetricsRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv4ClientMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{457} } -func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { +func (x *Dhcpv4ClientMetricsRequest) GetClientNames() []string { if x != nil { - return x.Prefixes + return x.ClientNames } return nil } -// This group defines attributes of an IPv4 standard prefix. -type IsisLspExtendedV4Prefix struct { +func (x *Dhcpv4ClientMetricsRequest) GetColumnNames() []Dhcpv4ClientMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// DHCPv4 per peer statistics information. +type Dhcpv4ClientMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv4 unicast prefix reachable via the originator of this LSP. - Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the IPv4 prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // 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 *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` + // The name of a configured DHCPv4 client. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of DHCPDISCOVER messages sent. + DiscoversSent *uint64 `protobuf:"varint,2,opt,name=discovers_sent,json=discoversSent,proto3,oneof" json:"discovers_sent,omitempty"` + // Number of DHCPOFFER messages received. + OffersReceived *uint64 `protobuf:"varint,3,opt,name=offers_received,json=offersReceived,proto3,oneof" json:"offers_received,omitempty"` + // Number of DHCPREQUEST messages sent. + RequestsSent *uint64 `protobuf:"varint,4,opt,name=requests_sent,json=requestsSent,proto3,oneof" json:"requests_sent,omitempty"` + // Number of lease DHCPACK messages received. + AcksReceived *uint64 `protobuf:"varint,5,opt,name=acks_received,json=acksReceived,proto3,oneof" json:"acks_received,omitempty"` + // Number of negative lease DHCPNACK messages received. + NacksReceived *uint64 `protobuf:"varint,6,opt,name=nacks_received,json=nacksReceived,proto3,oneof" json:"nacks_received,omitempty"` + // Number of DHCPRELEASE messages sent. + ReleasesSent *uint64 `protobuf:"varint,7,opt,name=releases_sent,json=releasesSent,proto3,oneof" json:"releases_sent,omitempty"` + // Number of DHCPDECLINE messages sent. + DeclinesSent *uint64 `protobuf:"varint,8,opt,name=declines_sent,json=declinesSent,proto3,oneof" json:"declines_sent,omitempty"` } -func (x *IsisLspExtendedV4Prefix) Reset() { - *x = IsisLspExtendedV4Prefix{} +func (x *Dhcpv4ClientMetric) Reset() { + *x = Dhcpv4ClientMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[465] + mi := &file_otg_proto_msgTypes[458] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedV4Prefix) String() string { +func (x *Dhcpv4ClientMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix) ProtoMessage() {} +func (*Dhcpv4ClientMetric) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[465] +func (x *Dhcpv4ClientMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[458] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62586,74 +62812,105 @@ func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{465} +// Deprecated: Use Dhcpv4ClientMetric.ProtoReflect.Descriptor instead. +func (*Dhcpv4ClientMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{458} } -func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { - if x != nil && x.Ipv4Address != nil { - return *x.Ipv4Address +func (x *Dhcpv4ClientMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *Dhcpv4ClientMetric) GetDiscoversSent() uint64 { + if x != nil && x.DiscoversSent != nil { + return *x.DiscoversSent } return 0 } -func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *Dhcpv4ClientMetric) GetOffersReceived() uint64 { + if x != nil && x.OffersReceived != nil { + return *x.OffersReceived } return 0 } -func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType +func (x *Dhcpv4ClientMetric) GetRequestsSent() uint64 { + if x != nil && x.RequestsSent != nil { + return *x.RequestsSent } - return IsisLspExtendedV4Prefix_RedistributionType_unspecified + return 0 } -func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { - if x != nil { - return x.PrefixAttributes +func (x *Dhcpv4ClientMetric) GetAcksReceived() uint64 { + if x != nil && x.AcksReceived != nil { + return *x.AcksReceived } - return nil + return 0 } -// It defines list of IPv6 extended reachability information in one IPv6 Reachability -// TLV. -type IsisLspIpv6ReachabilityTlv struct { +func (x *Dhcpv4ClientMetric) GetNacksReceived() uint64 { + if x != nil && x.NacksReceived != nil { + return *x.NacksReceived + } + return 0 +} + +func (x *Dhcpv4ClientMetric) GetReleasesSent() uint64 { + if x != nil && x.ReleasesSent != nil { + return *x.ReleasesSent + } + return 0 +} + +func (x *Dhcpv4ClientMetric) GetDeclinesSent() uint64 { + if x != nil && x.DeclinesSent != nil { + return *x.DeclinesSent + } + return 0 +} + +// The request to retrieve DHCPv4 per Server metrics/statistics. +type Dhcpv4ServerMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // IPv6 prefix contained within reachability TLVs. - Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` + // The names of DHCPv4 Servers to return results for. An empty list will return results + // for all DHCPv4 Server. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4Server/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4Server/properties/name + ServerNames []string `protobuf:"bytes,1,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned. The name of the DHCPv4 server cannot be + // excluded. + ColumnNames []Dhcpv4ServerMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv4ServerMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *IsisLspIpv6ReachabilityTlv) Reset() { - *x = IsisLspIpv6ReachabilityTlv{} +func (x *Dhcpv4ServerMetricsRequest) Reset() { + *x = Dhcpv4ServerMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[466] + mi := &file_otg_proto_msgTypes[459] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspIpv6ReachabilityTlv) String() string { +func (x *Dhcpv4ServerMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} +func (*Dhcpv4ServerMetricsRequest) ProtoMessage() {} -func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[466] +func (x *Dhcpv4ServerMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[459] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62664,63 +62921,66 @@ func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. -func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{466} +// Deprecated: Use Dhcpv4ServerMetricsRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv4ServerMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{459} } -func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { +func (x *Dhcpv4ServerMetricsRequest) GetServerNames() []string { if x != nil { - return x.Prefixes + return x.ServerNames } return nil } -// It defines attributes of an IPv6 standard prefix. -type IsisLspV6Prefix struct { +func (x *Dhcpv4ServerMetricsRequest) GetColumnNames() []Dhcpv4ServerMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames + } + return nil +} + +// DHCPv4 per peer statistics information. +type Dhcpv4ServerMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // An IPv6 unicast prefix reachable via the originator of this LSP. - Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` - // The length of the IPv6 prefix. - PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // ISIS wide metric. - Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` - // 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 *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` - // 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 *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` - // Description missing in models - PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` + // The name of a configured DHCPv4 Server. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of DHCPDISCOVER messages received. + DiscoversReceived *uint64 `protobuf:"varint,2,opt,name=discovers_received,json=discoversReceived,proto3,oneof" json:"discovers_received,omitempty"` + // Number of DHCPOFFER messages sent. + OffersSent *uint64 `protobuf:"varint,3,opt,name=offers_sent,json=offersSent,proto3,oneof" json:"offers_sent,omitempty"` + // Number of DHCPOFFER messages received. + RequestsReceived *uint64 `protobuf:"varint,4,opt,name=requests_received,json=requestsReceived,proto3,oneof" json:"requests_received,omitempty"` + // Number of lease DHCPACK messages sent. + AcksSent *uint64 `protobuf:"varint,5,opt,name=acks_sent,json=acksSent,proto3,oneof" json:"acks_sent,omitempty"` + // Number of negative lease DHCPNACK messages sent. + NacksSent *uint64 `protobuf:"varint,6,opt,name=nacks_sent,json=nacksSent,proto3,oneof" json:"nacks_sent,omitempty"` + // Number of DHCPRELEASE messages received. + ReleasesReceived *uint64 `protobuf:"varint,7,opt,name=releases_received,json=releasesReceived,proto3,oneof" json:"releases_received,omitempty"` + // Number of DHCPDECLINE messages received. + DeclinesReceived *uint64 `protobuf:"varint,8,opt,name=declines_received,json=declinesReceived,proto3,oneof" json:"declines_received,omitempty"` } -func (x *IsisLspV6Prefix) Reset() { - *x = IsisLspV6Prefix{} +func (x *Dhcpv4ServerMetric) Reset() { + *x = Dhcpv4ServerMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[467] + mi := &file_otg_proto_msgTypes[460] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix) String() string { +func (x *Dhcpv4ServerMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix) ProtoMessage() {} +func (*Dhcpv4ServerMetric) ProtoMessage() {} -func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[467] +func (x *Dhcpv4ServerMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[460] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62731,159 +62991,105 @@ func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. -func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{467} +// Deprecated: Use Dhcpv4ServerMetric.ProtoReflect.Descriptor instead. +func (*Dhcpv4ServerMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{460} } -func (x *IsisLspV6Prefix) GetIpv6Address() string { - if x != nil && x.Ipv6Address != nil { - return *x.Ipv6Address +func (x *Dhcpv4ServerMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength +func (x *Dhcpv4ServerMetric) GetDiscoversReceived() uint64 { + if x != nil && x.DiscoversReceived != nil { + return *x.DiscoversReceived } return 0 } -func (x *IsisLspV6Prefix) GetMetric() uint32 { - if x != nil && x.Metric != nil { - return *x.Metric +func (x *Dhcpv4ServerMetric) GetOffersSent() uint64 { + if x != nil && x.OffersSent != nil { + return *x.OffersSent } return 0 } -func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { - if x != nil && x.RedistributionType != nil { - return *x.RedistributionType - } - return IsisLspV6Prefix_RedistributionType_unspecified -} - -func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { - if x != nil && x.OriginType != nil { - return *x.OriginType - } - return IsisLspV6Prefix_OriginType_unspecified -} - -func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { - if x != nil { - return x.PrefixAttributes - } - return nil -} - -// 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 struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // External Prefix Flag (Bit 0) - XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` - // Re-advertisement Flag (Bit 1) - RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` - // Node Flag (Bit 2) - NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` -} - -func (x *IsisLspPrefixAttributes) Reset() { - *x = IsisLspPrefixAttributes{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[468] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Dhcpv4ServerMetric) GetRequestsReceived() uint64 { + if x != nil && x.RequestsReceived != nil { + return *x.RequestsReceived } + return 0 } -func (x *IsisLspPrefixAttributes) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsisLspPrefixAttributes) ProtoMessage() {} - -func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[468] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Dhcpv4ServerMetric) GetAcksSent() uint64 { + if x != nil && x.AcksSent != nil { + return *x.AcksSent } - return mi.MessageOf(x) -} - -// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. -func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{468} + return 0 } -func (x *IsisLspPrefixAttributes) GetXFlag() bool { - if x != nil && x.XFlag != nil { - return *x.XFlag +func (x *Dhcpv4ServerMetric) GetNacksSent() uint64 { + if x != nil && x.NacksSent != nil { + return *x.NacksSent } - return false + return 0 } -func (x *IsisLspPrefixAttributes) GetRFlag() bool { - if x != nil && x.RFlag != nil { - return *x.RFlag +func (x *Dhcpv4ServerMetric) GetReleasesReceived() uint64 { + if x != nil && x.ReleasesReceived != nil { + return *x.ReleasesReceived } - return false + return 0 } -func (x *IsisLspPrefixAttributes) GetNFlag() bool { - if x != nil && x.NFlag != nil { - return *x.NFlag +func (x *Dhcpv4ServerMetric) GetDeclinesReceived() uint64 { + if x != nil && x.DeclinesReceived != nil { + return *x.DeclinesReceived } - return false + return 0 } -// The request to retrieve LLDP neighbor information for a given instance. -type LldpNeighborsStateRequest struct { +// The request to retrieve DHCPv6 per client metrics/statistics. +type Dhcpv6ClientMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of LLDP instances for which neighbor information will be retrieved. If - // no names are specified then the results will contain neighbor information for all - // configured LLDP instances. + // The names of DHCPv6 clients to return results for. An empty list will return results + // for all DHCPv6 client. // // x-constraint: - // - /components/schemas/Lldp/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // // x-constraint: - // - /components/schemas/Lldp/properties/name - LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` - // Specify the neighbors for which information will be returned. If empty or missing - // then information for all neighbors will be returned. - NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` + // - /components/schemas/Device.Dhcpv6client/properties/name + ClientNames []string `protobuf:"bytes,1,rep,name=client_names,json=clientNames,proto3" json:"client_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the DHCPv6 client cannot be excluded. + ColumnNames []Dhcpv6ClientMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv6ClientMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *LldpNeighborsStateRequest) Reset() { - *x = LldpNeighborsStateRequest{} +func (x *Dhcpv6ClientMetricsRequest) Reset() { + *x = Dhcpv6ClientMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[469] + mi := &file_otg_proto_msgTypes[461] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsStateRequest) String() string { +func (x *Dhcpv6ClientMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsStateRequest) ProtoMessage() {} +func (*Dhcpv6ClientMetricsRequest) ProtoMessage() {} -func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[469] +func (x *Dhcpv6ClientMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[461] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62894,101 +63100,78 @@ func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. -func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{469} +// Deprecated: Use Dhcpv6ClientMetricsRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{461} } -func (x *LldpNeighborsStateRequest) GetLldpNames() []string { +func (x *Dhcpv6ClientMetricsRequest) GetClientNames() []string { if x != nil { - return x.LldpNames + return x.ClientNames } return nil } -func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { +func (x *Dhcpv6ClientMetricsRequest) GetColumnNames() []Dhcpv6ClientMetricsRequest_ColumnNames_Enum { if x != nil { - return x.NeighborIdFilters + return x.ColumnNames } return nil } -// LLDP neighbor information. -type LldpNeighborsState struct { +// DHCPv6 per peer statistics information. +type Dhcpv6ClientMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the LLDP instance. - LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` - // The system name field shall contain an alpha-numeric string that indicates the system's - // administratively assigned name. The system name should be the system's fully qualified - // domain name. If implementations support IETF RFC 3418, the sysName object should - // be used for this field. - SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` - // The system description field shall contain an alpha-numeric string that is the textual - // description of the network entity. The system description should include the full - // name and version identification of the system's hardware type, software operating - // system, and networking software. If implementations support IETF RFC 3418, the sysDescr - // object should be used for this field. - SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` - // The Chassis ID is a mandatory TLV which identifies the chassis component of the - // endpoint identifier associated with the transmitting LLDP agent. - ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` - // This field identifies the format and source of the chassis identifier string. It - // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. - ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` - // System generated identifier for the neighbor on the LLDP instance. - NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` - // Age since discovery in seconds. - Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` - // Seconds since last update received. - LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` - // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information - // from the neighbor should be considered valid. - Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` - // The Port ID is a mandatory TLV which identifies the port component of the endpoint - // identifier associated with the transmitting LLDP agent. If the specified port is - // an IEEE 802.3 Repeater port, then this TLV is optional. - PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` - // This field identifies the format and source of the port identifier string. It is - // an enumerator defined by the PtopoPortIdType object from RFC2922. - PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` - // The binary string containing the actual port identifier for the port which this LLDP - // PDU was transmitted. The source and format of this field is defined by PtopoPortId - // from RFC2922. - PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` - // The Management Address is a mandatory TLV which identifies a network address associated - // with the local LLDP agent, which can be used to reach the agent on the port identified - // in the Port ID TLV. - ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` - // The enumerated value for the network address type identified in this TLV. This enumeration - // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers - // object. - ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` - // Description missing in models - CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` - // Description missing in models - Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` -} - -func (x *LldpNeighborsState) Reset() { - *x = LldpNeighborsState{} + // The name of a configured DHCPv6 client. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of DHCPSOLICIT messages sent. + SolicitsSent *uint64 `protobuf:"varint,2,opt,name=solicits_sent,json=solicitsSent,proto3,oneof" json:"solicits_sent,omitempty"` + // Number of DHCPADVERTISE messages received. + AdvertisementsReceived *uint64 `protobuf:"varint,3,opt,name=advertisements_received,json=advertisementsReceived,proto3,oneof" json:"advertisements_received,omitempty"` + // Number of DHCPADVERTISE messages ignored. + AdvertisementsIgnored *uint64 `protobuf:"varint,4,opt,name=advertisements_ignored,json=advertisementsIgnored,proto3,oneof" json:"advertisements_ignored,omitempty"` + // Number of DHCPREQUEST messages sent. + RequestsSent *uint64 `protobuf:"varint,5,opt,name=requests_sent,json=requestsSent,proto3,oneof" json:"requests_sent,omitempty"` + // Number of negative lease DHCPNACK messages received. + NacksReceived *uint64 `protobuf:"varint,6,opt,name=nacks_received,json=nacksReceived,proto3,oneof" json:"nacks_received,omitempty"` + // Number of DHCPOFFER messages received. + RepliesReceived *uint64 `protobuf:"varint,7,opt,name=replies_received,json=repliesReceived,proto3,oneof" json:"replies_received,omitempty"` + // Number of DHCP Inform requests sent. + InformationRequestsSent *uint64 `protobuf:"varint,8,opt,name=information_requests_sent,json=informationRequestsSent,proto3,oneof" json:"information_requests_sent,omitempty"` + // Number of DHCP renew messages sent. + RenewsSent *uint64 `protobuf:"varint,9,opt,name=renews_sent,json=renewsSent,proto3,oneof" json:"renews_sent,omitempty"` + // Number of DHCP rebind messages sent. + RebindsSent *uint64 `protobuf:"varint,10,opt,name=rebinds_sent,json=rebindsSent,proto3,oneof" json:"rebinds_sent,omitempty"` + // Number of DHCP Release messages sent. + ReleasesSent *uint64 `protobuf:"varint,11,opt,name=releases_sent,json=releasesSent,proto3,oneof" json:"releases_sent,omitempty"` + // Number of DHCP Reconfigure messages received. + ReconfiguresReceived *uint64 `protobuf:"varint,12,opt,name=reconfigures_received,json=reconfiguresReceived,proto3,oneof" json:"reconfigures_received,omitempty"` + // Number of rapid commit DHCPSOLICIT messages sent. + RapidCommitSolicitsSent *uint64 `protobuf:"varint,13,opt,name=rapid_commit_solicits_sent,json=rapidCommitSolicitsSent,proto3,oneof" json:"rapid_commit_solicits_sent,omitempty"` + // Number of rapid commit DHCP Reply messages received. + RapidCommitRepliesReceived *uint64 `protobuf:"varint,14,opt,name=rapid_commit_replies_received,json=rapidCommitRepliesReceived,proto3,oneof" json:"rapid_commit_replies_received,omitempty"` +} + +func (x *Dhcpv6ClientMetric) Reset() { + *x = Dhcpv6ClientMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[470] + mi := &file_otg_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState) String() string { +func (x *Dhcpv6ClientMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState) ProtoMessage() {} +func (*Dhcpv6ClientMetric) ProtoMessage() {} -func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[470] +func (x *Dhcpv6ClientMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[462] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62999,159 +63182,147 @@ func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. -func (*LldpNeighborsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{470} -} - -func (x *LldpNeighborsState) GetLldpName() string { - if x != nil && x.LldpName != nil { - return *x.LldpName - } - return "" -} - -func (x *LldpNeighborsState) GetSystemName() string { - if x != nil && x.SystemName != nil { - return *x.SystemName - } - return "" +// Deprecated: Use Dhcpv6ClientMetric.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{462} } -func (x *LldpNeighborsState) GetSystemDescription() string { - if x != nil && x.SystemDescription != nil { - return *x.SystemDescription +func (x *Dhcpv6ClientMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *LldpNeighborsState) GetChassisId() string { - if x != nil && x.ChassisId != nil { - return *x.ChassisId +func (x *Dhcpv6ClientMetric) GetSolicitsSent() uint64 { + if x != nil && x.SolicitsSent != nil { + return *x.SolicitsSent } - return "" + return 0 } -func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { - if x != nil && x.ChassisIdType != nil { - return *x.ChassisIdType +func (x *Dhcpv6ClientMetric) GetAdvertisementsReceived() uint64 { + if x != nil && x.AdvertisementsReceived != nil { + return *x.AdvertisementsReceived } - return LldpNeighborsState_ChassisIdType_unspecified + return 0 } -func (x *LldpNeighborsState) GetNeighborId() string { - if x != nil && x.NeighborId != nil { - return *x.NeighborId +func (x *Dhcpv6ClientMetric) GetAdvertisementsIgnored() uint64 { + if x != nil && x.AdvertisementsIgnored != nil { + return *x.AdvertisementsIgnored } - return "" + return 0 } -func (x *LldpNeighborsState) GetAge() uint32 { - if x != nil && x.Age != nil { - return *x.Age +func (x *Dhcpv6ClientMetric) GetRequestsSent() uint64 { + if x != nil && x.RequestsSent != nil { + return *x.RequestsSent } return 0 } -func (x *LldpNeighborsState) GetLastUpdate() uint32 { - if x != nil && x.LastUpdate != nil { - return *x.LastUpdate +func (x *Dhcpv6ClientMetric) GetNacksReceived() uint64 { + if x != nil && x.NacksReceived != nil { + return *x.NacksReceived } return 0 } -func (x *LldpNeighborsState) GetTtl() uint32 { - if x != nil && x.Ttl != nil { - return *x.Ttl +func (x *Dhcpv6ClientMetric) GetRepliesReceived() uint64 { + if x != nil && x.RepliesReceived != nil { + return *x.RepliesReceived } return 0 } -func (x *LldpNeighborsState) GetPortId() string { - if x != nil && x.PortId != nil { - return *x.PortId +func (x *Dhcpv6ClientMetric) GetInformationRequestsSent() uint64 { + if x != nil && x.InformationRequestsSent != nil { + return *x.InformationRequestsSent } - return "" + return 0 } -func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { - if x != nil && x.PortIdType != nil { - return *x.PortIdType +func (x *Dhcpv6ClientMetric) GetRenewsSent() uint64 { + if x != nil && x.RenewsSent != nil { + return *x.RenewsSent } - return LldpNeighborsState_PortIdType_unspecified + return 0 } -func (x *LldpNeighborsState) GetPortDescription() string { - if x != nil && x.PortDescription != nil { - return *x.PortDescription +func (x *Dhcpv6ClientMetric) GetRebindsSent() uint64 { + if x != nil && x.RebindsSent != nil { + return *x.RebindsSent } - return "" + return 0 } -func (x *LldpNeighborsState) GetManagementAddress() string { - if x != nil && x.ManagementAddress != nil { - return *x.ManagementAddress +func (x *Dhcpv6ClientMetric) GetReleasesSent() uint64 { + if x != nil && x.ReleasesSent != nil { + return *x.ReleasesSent } - return "" + return 0 } -func (x *LldpNeighborsState) GetManagementAddressType() string { - if x != nil && x.ManagementAddressType != nil { - return *x.ManagementAddressType +func (x *Dhcpv6ClientMetric) GetReconfiguresReceived() uint64 { + if x != nil && x.ReconfiguresReceived != nil { + return *x.ReconfiguresReceived } - return "" + return 0 } -func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { - if x != nil { - return x.CustomTlvs +func (x *Dhcpv6ClientMetric) GetRapidCommitSolicitsSent() uint64 { + if x != nil && x.RapidCommitSolicitsSent != nil { + return *x.RapidCommitSolicitsSent } - return nil + return 0 } -func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { - if x != nil { - return x.Capabilities +func (x *Dhcpv6ClientMetric) GetRapidCommitRepliesReceived() uint64 { + if x != nil && x.RapidCommitRepliesReceived != nil { + return *x.RapidCommitRepliesReceived } - return nil + return 0 } -// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised -// with TLV type 127. -type LldpCustomTLVState struct { +// The request to retrieve DHCPv6 per Server metrics/statistics. +type Dhcpv6ServerMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The integer value identifying the type of information contained in the value field. - CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` - // The organizationally unique identifier field shall contain the organization's OUI - // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order - // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in - // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. - Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` - // The organizationally defined subtype field shall contain a unique subtype value assigned - // by the defining organization. - OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` + // The names of DHCPv6 Servers to return results for. An empty list will return results + // for all DHCPv6 Server. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6Server/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6Server/properties/name + ServerNames []string `protobuf:"bytes,1,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"` + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the DHCPv6 server cannot be excluded. + ColumnNames []Dhcpv6ServerMetricsRequest_ColumnNames_Enum `protobuf:"varint,2,rep,packed,name=column_names,json=columnNames,proto3,enum=otg.Dhcpv6ServerMetricsRequest_ColumnNames_Enum" json:"column_names,omitempty"` } -func (x *LldpCustomTLVState) Reset() { - *x = LldpCustomTLVState{} +func (x *Dhcpv6ServerMetricsRequest) Reset() { + *x = Dhcpv6ServerMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[471] + mi := &file_otg_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpCustomTLVState) String() string { +func (x *Dhcpv6ServerMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCustomTLVState) ProtoMessage() {} +func (*Dhcpv6ServerMetricsRequest) ProtoMessage() {} -func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[471] +func (x *Dhcpv6ServerMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[463] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63162,63 +63333,82 @@ func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. -func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{471} -} - -func (x *LldpCustomTLVState) GetCustomType() uint32 { - if x != nil && x.CustomType != nil { - return *x.CustomType - } - return 0 +// Deprecated: Use Dhcpv6ServerMetricsRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463} } -func (x *LldpCustomTLVState) GetOui() string { - if x != nil && x.Oui != nil { - return *x.Oui +func (x *Dhcpv6ServerMetricsRequest) GetServerNames() []string { + if x != nil { + return x.ServerNames } - return "" + return nil } -func (x *LldpCustomTLVState) GetOuiSubtype() string { - if x != nil && x.OuiSubtype != nil { - return *x.OuiSubtype +func (x *Dhcpv6ServerMetricsRequest) GetColumnNames() []Dhcpv6ServerMetricsRequest_ColumnNames_Enum { + if x != nil { + return x.ColumnNames } - return "" + return nil } -// LLDP system capability advertised by the neighbor -type LldpCapabilityState struct { +// DHCPv6 per server statistics information. +type Dhcpv6ServerMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name of the system capability advertised by the neighbor. Capabilities are represented - // in a bitmap that defines the primary functions of the system. The capabilities are - // defined in IEEE 802.1AB. - CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` - // Indicates whether the corresponding system capability is enabled on the neighbor. - CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` -} - -func (x *LldpCapabilityState) Reset() { - *x = LldpCapabilityState{} + // The name of a configured DHCPv6 Server. + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Number of DHCPSOLICIT messages received. + SolicitsReceived *uint64 `protobuf:"varint,2,opt,name=solicits_received,json=solicitsReceived,proto3,oneof" json:"solicits_received,omitempty"` + // Number of DHCPSOLICIT messages ignored. + SolicitsIgnored *uint64 `protobuf:"varint,3,opt,name=solicits_ignored,json=solicitsIgnored,proto3,oneof" json:"solicits_ignored,omitempty"` + // Number of DHCP Advertise messages sent. + AdvertisementsSent *uint64 `protobuf:"varint,4,opt,name=advertisements_sent,json=advertisementsSent,proto3,oneof" json:"advertisements_sent,omitempty"` + // Number of DHCPREQUEST messages received. + RequestsReceived *uint64 `protobuf:"varint,5,opt,name=requests_received,json=requestsReceived,proto3,oneof" json:"requests_received,omitempty"` + // Number of naks sent for DHCPREQUEST messages. + NacksSent *uint64 `protobuf:"varint,6,opt,name=nacks_sent,json=nacksSent,proto3,oneof" json:"nacks_sent,omitempty"` + // Number of DHCP Confirm messages received. + ConfirmsReceived *uint64 `protobuf:"varint,7,opt,name=confirms_received,json=confirmsReceived,proto3,oneof" json:"confirms_received,omitempty"` + // Number of DHCP Renewal messages received. + RenewalsReceived *uint64 `protobuf:"varint,8,opt,name=renewals_received,json=renewalsReceived,proto3,oneof" json:"renewals_received,omitempty"` + // Number of DHCP Rebind messages received. + RebindsReceived *uint64 `protobuf:"varint,9,opt,name=rebinds_received,json=rebindsReceived,proto3,oneof" json:"rebinds_received,omitempty"` + // Number of DHCP Reply messages sent. + RepliesSent *uint64 `protobuf:"varint,10,opt,name=replies_sent,json=repliesSent,proto3,oneof" json:"replies_sent,omitempty"` + // Number of DHCP Release messages received. + ReleasesReceived *uint64 `protobuf:"varint,11,opt,name=releases_received,json=releasesReceived,proto3,oneof" json:"releases_received,omitempty"` + // Number of DHCP Decline messages received. + DeclinesReceived *uint64 `protobuf:"varint,12,opt,name=declines_received,json=declinesReceived,proto3,oneof" json:"declines_received,omitempty"` + // Number of DHCP Information Request messages received. + InformationRequestsReceived *uint64 `protobuf:"varint,13,opt,name=information_requests_received,json=informationRequestsReceived,proto3,oneof" json:"information_requests_received,omitempty"` + // Number of DHCP Relay agent forward messages received. + RelayForwardsReceived *uint64 `protobuf:"varint,14,opt,name=relay_forwards_received,json=relayForwardsReceived,proto3,oneof" json:"relay_forwards_received,omitempty"` + // Number of DHCP reply messages sent to Relay agent. + RelayRepliesSent *uint64 `protobuf:"varint,15,opt,name=relay_replies_sent,json=relayRepliesSent,proto3,oneof" json:"relay_replies_sent,omitempty"` + // Number of DHCP Reconfigure messages sent. + ReconfiguresSent *uint64 `protobuf:"varint,16,opt,name=reconfigures_sent,json=reconfiguresSent,proto3,oneof" json:"reconfigures_sent,omitempty"` +} + +func (x *Dhcpv6ServerMetric) Reset() { + *x = Dhcpv6ServerMetric{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[472] + mi := &file_otg_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpCapabilityState) String() string { +func (x *Dhcpv6ServerMetric) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState) ProtoMessage() {} +func (*Dhcpv6ServerMetric) ProtoMessage() {} -func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[472] +func (x *Dhcpv6ServerMetric) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[464] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63229,175 +63419,171 @@ func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. -func (*LldpCapabilityState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{472} +// Deprecated: Use Dhcpv6ServerMetric.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerMetric) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{464} } -func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { - if x != nil && x.CapabilityName != nil { - return *x.CapabilityName +func (x *Dhcpv6ServerMetric) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return LldpCapabilityState_CapabilityName_unspecified + return "" } -func (x *LldpCapabilityState) GetCapabilityEnabled() bool { - if x != nil && x.CapabilityEnabled != nil { - return *x.CapabilityEnabled +func (x *Dhcpv6ServerMetric) GetSolicitsReceived() uint64 { + if x != nil && x.SolicitsReceived != nil { + return *x.SolicitsReceived } - return false + return 0 } -// The request to retrieve RSVP Label Switched Path (LSP) information learned by the -// router. -type RsvpLspsStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The names of RSVP-TE routers for which learned information is requested. An empty - // list will return results for all RSVP=TE routers. - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - // - // x-constraint: - // - /components/schemas/Device.Rsvp/properties/name - RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` +func (x *Dhcpv6ServerMetric) GetSolicitsIgnored() uint64 { + if x != nil && x.SolicitsIgnored != nil { + return *x.SolicitsIgnored + } + return 0 } -func (x *RsvpLspsStateRequest) Reset() { - *x = RsvpLspsStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[473] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Dhcpv6ServerMetric) GetAdvertisementsSent() uint64 { + if x != nil && x.AdvertisementsSent != nil { + return *x.AdvertisementsSent } + return 0 } -func (x *RsvpLspsStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Dhcpv6ServerMetric) GetRequestsReceived() uint64 { + if x != nil && x.RequestsReceived != nil { + return *x.RequestsReceived + } + return 0 } -func (*RsvpLspsStateRequest) ProtoMessage() {} - -func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[473] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Dhcpv6ServerMetric) GetNacksSent() uint64 { + if x != nil && x.NacksSent != nil { + return *x.NacksSent } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. -func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{473} +func (x *Dhcpv6ServerMetric) GetConfirmsReceived() uint64 { + if x != nil && x.ConfirmsReceived != nil { + return *x.ConfirmsReceived + } + return 0 } -func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { - if x != nil { - return x.RsvpRouterNames +func (x *Dhcpv6ServerMetric) GetRenewalsReceived() uint64 { + if x != nil && x.RenewalsReceived != nil { + return *x.RenewalsReceived } - return nil + return 0 } -// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. -type RsvpLspsState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The name of the RSVP-TE Router. - RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` - // IPv4 Point-to-Point RSVP-TE Discovered LSPs. - Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` +func (x *Dhcpv6ServerMetric) GetRebindsReceived() uint64 { + if x != nil && x.RebindsReceived != nil { + return *x.RebindsReceived + } + return 0 } -func (x *RsvpLspsState) Reset() { - *x = RsvpLspsState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[474] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Dhcpv6ServerMetric) GetRepliesSent() uint64 { + if x != nil && x.RepliesSent != nil { + return *x.RepliesSent } + return 0 } -func (x *RsvpLspsState) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Dhcpv6ServerMetric) GetReleasesReceived() uint64 { + if x != nil && x.ReleasesReceived != nil { + return *x.ReleasesReceived + } + return 0 } -func (*RsvpLspsState) ProtoMessage() {} +func (x *Dhcpv6ServerMetric) GetDeclinesReceived() uint64 { + if x != nil && x.DeclinesReceived != nil { + return *x.DeclinesReceived + } + return 0 +} -func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[474] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Dhcpv6ServerMetric) GetInformationRequestsReceived() uint64 { + if x != nil && x.InformationRequestsReceived != nil { + return *x.InformationRequestsReceived } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. -func (*RsvpLspsState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{474} +func (x *Dhcpv6ServerMetric) GetRelayForwardsReceived() uint64 { + if x != nil && x.RelayForwardsReceived != nil { + return *x.RelayForwardsReceived + } + return 0 } -func (x *RsvpLspsState) GetRsvpRouterName() string { - if x != nil && x.RsvpRouterName != nil { - return *x.RsvpRouterName +func (x *Dhcpv6ServerMetric) GetRelayRepliesSent() uint64 { + if x != nil && x.RelayRepliesSent != nil { + return *x.RelayRepliesSent } - return "" + return 0 } -func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { - if x != nil { - return x.Ipv4Lsps +func (x *Dhcpv6ServerMetric) GetReconfiguresSent() uint64 { + if x != nil && x.ReconfiguresSent != nil { + return *x.ReconfiguresSent } - return nil + return 0 } -// IPv4 RSVP-TE Discovered LSPs. -type RsvpIPv4LspState struct { +// Request to traffic generator for states of choice +type StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The origin IPv4 address of RSVP session. - SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` - // The IPv4 destination address of RSVP session. - DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` - // It refers to the RSVP LSP properties. - Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3" json:"lsp,omitempty"` - // It refers to RSVP RRO objects container. - Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` - // It refers to RSVP ERO objects container. - Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesRequest_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesRequest_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors *Neighborsv4StatesRequest `protobuf:"bytes,2,opt,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors *Neighborsv6StatesRequest `protobuf:"bytes,3,opt,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes *BgpPrefixStateRequest `protobuf:"bytes,4,opt,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps *IsisLspsStateRequest `protobuf:"bytes,5,opt,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors *LldpNeighborsStateRequest `protobuf:"bytes,6,opt,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps *RsvpLspsStateRequest `protobuf:"bytes,7,opt,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + // Description missing in models + Dhcpv4Interfaces *Dhcpv4InterfaceStateRequest `protobuf:"bytes,8,opt,name=dhcpv4_interfaces,json=dhcpv4Interfaces,proto3" json:"dhcpv4_interfaces,omitempty"` + // Description missing in models + Dhcpv4Leases *Dhcpv4LeaseStateRequest `protobuf:"bytes,9,opt,name=dhcpv4_leases,json=dhcpv4Leases,proto3" json:"dhcpv4_leases,omitempty"` + // Description missing in models + Dhcpv6Interfaces *Dhcpv6InterfaceStateRequest `protobuf:"bytes,10,opt,name=dhcpv6_interfaces,json=dhcpv6Interfaces,proto3" json:"dhcpv6_interfaces,omitempty"` + // Description missing in models + Dhcpv6Leases *Dhcpv6LeaseStateRequest `protobuf:"bytes,11,opt,name=dhcpv6_leases,json=dhcpv6Leases,proto3" json:"dhcpv6_leases,omitempty"` } -func (x *RsvpIPv4LspState) Reset() { - *x = RsvpIPv4LspState{} +func (x *StatesRequest) Reset() { + *x = StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[475] + mi := &file_otg_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpIPv4LspState) String() string { +func (x *StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpIPv4LspState) ProtoMessage() {} +func (*StatesRequest) ProtoMessage() {} -func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[475] +func (x *StatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[465] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63408,198 +63594,136 @@ func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. -func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{475} +// Deprecated: Use StatesRequest.ProtoReflect.Descriptor instead. +func (*StatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{465} } -func (x *RsvpIPv4LspState) GetSourceAddress() string { - if x != nil && x.SourceAddress != nil { - return *x.SourceAddress +func (x *StatesRequest) GetChoice() StatesRequest_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StatesRequest_Choice_unspecified } -func (x *RsvpIPv4LspState) GetDestinationAddress() string { - if x != nil && x.DestinationAddress != nil { - return *x.DestinationAddress +func (x *StatesRequest) GetIpv4Neighbors() *Neighborsv4StatesRequest { + if x != nil { + return x.Ipv4Neighbors } - return "" + return nil } -func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { +func (x *StatesRequest) GetIpv6Neighbors() *Neighborsv6StatesRequest { if x != nil { - return x.Lsp + return x.Ipv6Neighbors } return nil } -func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { +func (x *StatesRequest) GetBgpPrefixes() *BgpPrefixStateRequest { if x != nil { - return x.Rros + return x.BgpPrefixes } return nil } -func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { +func (x *StatesRequest) GetIsisLsps() *IsisLspsStateRequest { if x != nil { - return x.Eros + return x.IsisLsps } return nil } -// IPv4 RSVP-TE Discovered LSPs. -type RsvpLspState struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The tunnel id of RSVP session which acts as an identifier that remains constant over - // the life of the tunnel. - TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` - // The lsp-id of RSVP session which acts as a differentiator for two lsps originating - // from the same headend, commonly used to distinguish RSVP sessions during make before - // break operations. - LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` - // The value of RSVP-TE Session Name field of the Session Attribute object. - SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` - // The label received by RSVP-TE ingress. - LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` - // The label assigned by RSVP-TE egress. - LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` - // Operational state of the RSVP LSP. - SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` - // The reason for the last flap of this RSVP session. - LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` - // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. - UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` +func (x *StatesRequest) GetLldpNeighbors() *LldpNeighborsStateRequest { + if x != nil { + return x.LldpNeighbors + } + return nil } -func (x *RsvpLspState) Reset() { - *x = RsvpLspState{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[476] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *StatesRequest) GetRsvpLsps() *RsvpLspsStateRequest { + if x != nil { + return x.RsvpLsps } + return nil } -func (x *RsvpLspState) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RsvpLspState) ProtoMessage() {} - -func (x *RsvpLspState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[476] - 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 RsvpLspState.ProtoReflect.Descriptor instead. -func (*RsvpLspState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{476} -} - -func (x *RsvpLspState) GetTunnelId() uint32 { - if x != nil && x.TunnelId != nil { - return *x.TunnelId - } - return 0 -} - -func (x *RsvpLspState) GetLspId() uint32 { - if x != nil && x.LspId != nil { - return *x.LspId - } - return 0 -} - -func (x *RsvpLspState) GetSessionName() string { - if x != nil && x.SessionName != nil { - return *x.SessionName - } - return "" -} - -func (x *RsvpLspState) GetLabelIn() uint32 { - if x != nil && x.LabelIn != nil { - return *x.LabelIn - } - return 0 -} - -func (x *RsvpLspState) GetLabelOut() uint32 { - if x != nil && x.LabelOut != nil { - return *x.LabelOut +func (x *StatesRequest) GetDhcpv4Interfaces() *Dhcpv4InterfaceStateRequest { + if x != nil { + return x.Dhcpv4Interfaces } - return 0 + return nil } -func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { - if x != nil && x.SessionStatus != nil { - return *x.SessionStatus +func (x *StatesRequest) GetDhcpv4Leases() *Dhcpv4LeaseStateRequest { + if x != nil { + return x.Dhcpv4Leases } - return RsvpLspState_SessionStatus_unspecified + return nil } -func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { - if x != nil && x.LastFlapReason != nil { - return *x.LastFlapReason +func (x *StatesRequest) GetDhcpv6Interfaces() *Dhcpv6InterfaceStateRequest { + if x != nil { + return x.Dhcpv6Interfaces } - return RsvpLspState_LastFlapReason_unspecified + return nil } -func (x *RsvpLspState) GetUpTime() uint64 { - if x != nil && x.UpTime != nil { - return *x.UpTime +func (x *StatesRequest) GetDhcpv6Leases() *Dhcpv6LeaseStateRequest { + if x != nil { + return x.Dhcpv6Leases } - return 0 + return nil } -// This contains the list of Record Route Object(RRO) objects associated with the traffic -// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the -// route traversed by the LSP. The RRO might be present in both Path message and Resv -// message, the RRO stores the IP addresses of the routers that the traffic engineering -// tunnel traversed and also the label generated and distributed by the routers. The -// RROs in the Resv message mirrors that of the Path message, the only difference is -// that the RRO in a Resv message records the path information in the reverse direction. -type RsvpLspIpv4Rro struct { +// Response containing chosen traffic generator states +type StatesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute - // object, nodes doing route recording should include the Label Record subobject containing - // the reported label. - ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` + // Description missing in models + // default = Choice.Enum.ipv4_neighbors + Choice *StatesResponse_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.StatesResponse_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + Ipv4Neighbors []*Neighborsv4State `protobuf:"bytes,2,rep,name=ipv4_neighbors,json=ipv4Neighbors,proto3" json:"ipv4_neighbors,omitempty"` + // Description missing in models + Ipv6Neighbors []*Neighborsv6State `protobuf:"bytes,3,rep,name=ipv6_neighbors,json=ipv6Neighbors,proto3" json:"ipv6_neighbors,omitempty"` + // Description missing in models + BgpPrefixes []*BgpPrefixesState `protobuf:"bytes,4,rep,name=bgp_prefixes,json=bgpPrefixes,proto3" json:"bgp_prefixes,omitempty"` + // Description missing in models + IsisLsps []*IsisLspsState `protobuf:"bytes,5,rep,name=isis_lsps,json=isisLsps,proto3" json:"isis_lsps,omitempty"` + // Description missing in models + LldpNeighbors []*LldpNeighborsState `protobuf:"bytes,6,rep,name=lldp_neighbors,json=lldpNeighbors,proto3" json:"lldp_neighbors,omitempty"` + // Description missing in models + RsvpLsps []*RsvpLspsState `protobuf:"bytes,7,rep,name=rsvp_lsps,json=rsvpLsps,proto3" json:"rsvp_lsps,omitempty"` + // Description missing in models + Dhcpv4Interfaces []*Dhcpv4InterfaceState `protobuf:"bytes,8,rep,name=dhcpv4_interfaces,json=dhcpv4Interfaces,proto3" json:"dhcpv4_interfaces,omitempty"` + // Description missing in models + Dhcpv4Leases []*Dhcpv4LeasesState `protobuf:"bytes,9,rep,name=dhcpv4_leases,json=dhcpv4Leases,proto3" json:"dhcpv4_leases,omitempty"` + // Description missing in models + Dhcpv6Interfaces []*Dhcpv6InterfaceState `protobuf:"bytes,10,rep,name=dhcpv6_interfaces,json=dhcpv6Interfaces,proto3" json:"dhcpv6_interfaces,omitempty"` + // Description missing in models + Dhcpv6Leases []*Dhcpv6LeasesState `protobuf:"bytes,11,rep,name=dhcpv6_leases,json=dhcpv6Leases,proto3" json:"dhcpv6_leases,omitempty"` } -func (x *RsvpLspIpv4Rro) Reset() { - *x = RsvpLspIpv4Rro{} +func (x *StatesResponse) Reset() { + *x = StatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[477] + mi := &file_otg_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Rro) String() string { +func (x *StatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Rro) ProtoMessage() {} +func (*StatesResponse) ProtoMessage() {} -func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[477] +func (x *StatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[466] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63610,130 +63734,123 @@ func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{477} +// Deprecated: Use StatesResponse.ProtoReflect.Descriptor instead. +func (*StatesResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{466} } -func (x *RsvpLspIpv4Rro) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address +func (x *StatesResponse) GetChoice() StatesResponse_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return StatesResponse_Choice_unspecified } -func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { - if x != nil && x.ReportedLabel != nil { - return *x.ReportedLabel +func (x *StatesResponse) GetIpv4Neighbors() []*Neighborsv4State { + if x != nil { + return x.Ipv4Neighbors } - return 0 + return nil } -// This contains the list of sub-objects included in the Explicit Route Object(ERO) -// object send in the PATH message from the ingress. These sub-objects contain the intermediate -// hops to be traversed by the LSP while being forwarded towards the egress endpoint. -type RsvpLspIpv4Ero struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 - // prefix. - Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - // The autonomous system number indicated by the ERO. Specified only when the ERO hop - // is an 2 or 4-byte AS number. - Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` - // The type indicated by the ERO. - Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` +func (x *StatesResponse) GetIpv6Neighbors() []*Neighborsv6State { + if x != nil { + return x.Ipv6Neighbors + } + return nil } -func (x *RsvpLspIpv4Ero) Reset() { - *x = RsvpLspIpv4Ero{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[478] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *StatesResponse) GetBgpPrefixes() []*BgpPrefixesState { + if x != nil { + return x.BgpPrefixes } + return nil } -func (x *RsvpLspIpv4Ero) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *StatesResponse) GetIsisLsps() []*IsisLspsState { + if x != nil { + return x.IsisLsps + } + return nil } -func (*RsvpLspIpv4Ero) ProtoMessage() {} +func (x *StatesResponse) GetLldpNeighbors() []*LldpNeighborsState { + if x != nil { + return x.LldpNeighbors + } + return nil +} -func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[478] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *StatesResponse) GetRsvpLsps() []*RsvpLspsState { + if x != nil { + return x.RsvpLsps } - return mi.MessageOf(x) + return nil } -// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. -func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{478} +func (x *StatesResponse) GetDhcpv4Interfaces() []*Dhcpv4InterfaceState { + if x != nil { + return x.Dhcpv4Interfaces + } + return nil } -func (x *RsvpLspIpv4Ero) GetPrefix() string { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *StatesResponse) GetDhcpv4Leases() []*Dhcpv4LeasesState { + if x != nil { + return x.Dhcpv4Leases } - return "" + return nil } -func (x *RsvpLspIpv4Ero) GetAsn() uint32 { - if x != nil && x.Asn != nil { - return *x.Asn +func (x *StatesResponse) GetDhcpv6Interfaces() []*Dhcpv6InterfaceState { + if x != nil { + return x.Dhcpv6Interfaces } - return 0 + return nil } -func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { - if x != nil && x.Type != nil { - return *x.Type +func (x *StatesResponse) GetDhcpv6Leases() []*Dhcpv6LeasesState { + if x != nil { + return x.Dhcpv6Leases } - return RsvpLspIpv4Ero_Type_unspecified + return nil } -// The request for assigned IPv4 address information associated with DHCP Client sessions. -type Dhcpv4InterfaceStateRequest struct { +// The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). +type Neighborsv4StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of DHCPv4 client to return results for. An empty list will return results - // for all DHCPv4 Client address information. + // The names of Ethernet interfaces for which Neighbor state (ARP cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (ARP cache entries) for all available Ethernet interfaces. // // x-constraint: - // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Ethernet/properties/name // // x-constraint: - // - /components/schemas/Device.Dhcpv4client/properties/name - DhcpClientNames []string `protobuf:"bytes,1,rep,name=dhcp_client_names,json=dhcpClientNames,proto3" json:"dhcp_client_names,omitempty"` + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *Dhcpv4InterfaceStateRequest) Reset() { - *x = Dhcpv4InterfaceStateRequest{} +func (x *Neighborsv4StatesRequest) Reset() { + *x = Neighborsv4StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[479] + mi := &file_otg_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4InterfaceStateRequest) String() string { +func (x *Neighborsv4StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4InterfaceStateRequest) ProtoMessage() {} +func (*Neighborsv4StatesRequest) ProtoMessage() {} -func (x *Dhcpv4InterfaceStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[479] +func (x *Neighborsv4StatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[467] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63744,57 +63861,52 @@ func (x *Dhcpv4InterfaceStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4InterfaceStateRequest.ProtoReflect.Descriptor instead. -func (*Dhcpv4InterfaceStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{479} +// Deprecated: Use Neighborsv4StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv4StatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{467} } -func (x *Dhcpv4InterfaceStateRequest) GetDhcpClientNames() []string { +func (x *Neighborsv4StatesRequest) GetEthernetNames() []string { if x != nil { - return x.DhcpClientNames + return x.EthernetNames } return nil } -// The IPv4 address associated with this DHCP Client session. -type Dhcpv4InterfaceState struct { +// IPv4 Neighbor state (ARP cache entry). +type Neighborsv4State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a DHCPv4 Client. - DhcpClientName *string `protobuf:"bytes,1,opt,name=dhcp_client_name,json=dhcpClientName,proto3,oneof" json:"dhcp_client_name,omitempty"` - // The IPv4 address associated with this DHCP Client session. + // The name of the Ethernet interface associated with the Neighbor state (ARP cache + // entry). + // required = true + EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` + // The IPv4 address of the neighbor. + // required = true Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` - // The length of the prefix. - PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` - // The Gateway Ipv4 address associated with this DHCP Client session. - GatewayAddress *string `protobuf:"bytes,4,opt,name=gateway_address,json=gatewayAddress,proto3,oneof" json:"gateway_address,omitempty"` - // The duration of the IPv4 address lease, in seconds. - LeaseTime *uint32 `protobuf:"varint,5,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` - // Time in seconds until the DHCPv4 client starts renewing the lease. - RenewTime *uint32 `protobuf:"varint,6,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` - // Time in seconds until the DHCPv4 client starts rebinding. - RebindTime *uint32 `protobuf:"varint,7,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *Dhcpv4InterfaceState) Reset() { - *x = Dhcpv4InterfaceState{} +func (x *Neighborsv4State) Reset() { + *x = Neighborsv4State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[480] + mi := &file_otg_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4InterfaceState) String() string { +func (x *Neighborsv4State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4InterfaceState) ProtoMessage() {} +func (*Neighborsv4State) ProtoMessage() {} -func (x *Dhcpv4InterfaceState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[480] +func (x *Neighborsv4State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[468] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63805,94 +63917,67 @@ func (x *Dhcpv4InterfaceState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4InterfaceState.ProtoReflect.Descriptor instead. -func (*Dhcpv4InterfaceState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{480} +// Deprecated: Use Neighborsv4State.ProtoReflect.Descriptor instead. +func (*Neighborsv4State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{468} } -func (x *Dhcpv4InterfaceState) GetDhcpClientName() string { - if x != nil && x.DhcpClientName != nil { - return *x.DhcpClientName +func (x *Neighborsv4State) GetEthernetName() string { + if x != nil && x.EthernetName != nil { + return *x.EthernetName } return "" } -func (x *Dhcpv4InterfaceState) GetIpv4Address() string { +func (x *Neighborsv4State) GetIpv4Address() string { if x != nil && x.Ipv4Address != nil { return *x.Ipv4Address } return "" } -func (x *Dhcpv4InterfaceState) GetPrefixLength() uint32 { - if x != nil && x.PrefixLength != nil { - return *x.PrefixLength - } - return 0 -} - -func (x *Dhcpv4InterfaceState) GetGatewayAddress() string { - if x != nil && x.GatewayAddress != nil { - return *x.GatewayAddress +func (x *Neighborsv4State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress } return "" } -func (x *Dhcpv4InterfaceState) GetLeaseTime() uint32 { - if x != nil && x.LeaseTime != nil { - return *x.LeaseTime - } - return 0 -} - -func (x *Dhcpv4InterfaceState) GetRenewTime() uint32 { - if x != nil && x.RenewTime != nil { - return *x.RenewTime - } - return 0 -} - -func (x *Dhcpv4InterfaceState) GetRebindTime() uint32 { - if x != nil && x.RebindTime != nil { - return *x.RebindTime - } - return 0 -} - -// The request to retrieve DHCP Server host allocated status. -type Dhcpv4LeaseStateRequest struct { +// The request to retrieve IPv6 Neighbor state (NDISC cache entries) of a network interface(s). +type Neighborsv6StatesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The names of DHCPv4 server to return results for. An empty list will return results - // for all DHCPv4 servers. + // The names of Ethernet interfaces for which Neighbor state (NDISC cache entries) will + // be retrieved. If no names are specified then the results will contain Neighbor state + // (NDISC cache entries) for all available Ethernet interfaces. // // x-constraint: - // - /components/schemas/Device.Dhcpv4server/properties/name + // - /components/schemas/Device.Ethernet/properties/name // // x-constraint: - // - /components/schemas/Device.Dhcpv4server/properties/name - DhcpServerNames []string `protobuf:"bytes,1,rep,name=dhcp_server_names,json=dhcpServerNames,proto3" json:"dhcp_server_names,omitempty"` + // - /components/schemas/Device.Ethernet/properties/name + EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } -func (x *Dhcpv4LeaseStateRequest) Reset() { - *x = Dhcpv4LeaseStateRequest{} +func (x *Neighborsv6StatesRequest) Reset() { + *x = Neighborsv6StatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[481] + mi := &file_otg_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4LeaseStateRequest) String() string { +func (x *Neighborsv6StatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4LeaseStateRequest) ProtoMessage() {} +func (*Neighborsv6StatesRequest) ProtoMessage() {} -func (x *Dhcpv4LeaseStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[481] +func (x *Neighborsv6StatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[469] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63903,47 +63988,52 @@ func (x *Dhcpv4LeaseStateRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4LeaseStateRequest.ProtoReflect.Descriptor instead. -func (*Dhcpv4LeaseStateRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{481} +// Deprecated: Use Neighborsv6StatesRequest.ProtoReflect.Descriptor instead. +func (*Neighborsv6StatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{469} } -func (x *Dhcpv4LeaseStateRequest) GetDhcpServerNames() []string { +func (x *Neighborsv6StatesRequest) GetEthernetNames() []string { if x != nil { - return x.DhcpServerNames + return x.EthernetNames } return nil } -// Lease information of DHCP Server. -type Dhcpv4LeasesState struct { +// IPv6 Neighbor state (NDISC cache entry). +type Neighborsv6State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a DHCP Server. - DhcpServerName *string `protobuf:"bytes,1,opt,name=dhcp_server_name,json=dhcpServerName,proto3,oneof" json:"dhcp_server_name,omitempty"` - // Description missing in models - Leases []*Dhcpv4LeaseState `protobuf:"bytes,2,rep,name=leases,proto3" json:"leases,omitempty"` + // The name of the Ethernet interface associated with the Neighbor state (NDISC cache + // entry). + // required = true + EthernetName *string `protobuf:"bytes,1,opt,name=ethernet_name,json=ethernetName,proto3,oneof" json:"ethernet_name,omitempty"` + // The IPv6 address of the neighbor. + // required = true + Ipv6Address *string `protobuf:"bytes,2,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The link-layer address (MAC) of the neighbor. + LinkLayerAddress *string `protobuf:"bytes,3,opt,name=link_layer_address,json=linkLayerAddress,proto3,oneof" json:"link_layer_address,omitempty"` } -func (x *Dhcpv4LeasesState) Reset() { - *x = Dhcpv4LeasesState{} +func (x *Neighborsv6State) Reset() { + *x = Neighborsv6State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[482] + mi := &file_otg_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4LeasesState) String() string { +func (x *Neighborsv6State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4LeasesState) ProtoMessage() {} +func (*Neighborsv6State) ProtoMessage() {} -func (x *Dhcpv4LeasesState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[482] +func (x *Neighborsv6State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[470] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63954,66 +64044,80 @@ func (x *Dhcpv4LeasesState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4LeasesState.ProtoReflect.Descriptor instead. -func (*Dhcpv4LeasesState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{482} +// Deprecated: Use Neighborsv6State.ProtoReflect.Descriptor instead. +func (*Neighborsv6State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{470} } -func (x *Dhcpv4LeasesState) GetDhcpServerName() string { - if x != nil && x.DhcpServerName != nil { - return *x.DhcpServerName +func (x *Neighborsv6State) GetEthernetName() string { + if x != nil && x.EthernetName != nil { + return *x.EthernetName } return "" } -func (x *Dhcpv4LeasesState) GetLeases() []*Dhcpv4LeaseState { - if x != nil { - return x.Leases +func (x *Neighborsv6State) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return nil + return "" } -// IPv4 address lease state. -type Dhcpv4LeaseState struct { +func (x *Neighborsv6State) GetLinkLayerAddress() string { + if x != nil && x.LinkLayerAddress != nil { + return *x.LinkLayerAddress + } + return "" +} + +// The request to retrieve BGP peer prefix information. +type BgpPrefixStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The IPv4 address associated with this lease. - Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` - // The time in seconds after which the IPv4 address lease will expire. - ValidTime *uint32 `protobuf:"varint,2,opt,name=valid_time,json=validTime,proto3,oneof" json:"valid_time,omitempty"` - // The elapsed time in seconds since the address has been renewed. - PreferredTime *uint32 `protobuf:"varint,3,opt,name=preferred_time,json=preferredTime,proto3,oneof" json:"preferred_time,omitempty"` - // Time in seconds until the DHCPv4 client starts renewing the lease. - RenewTime *uint32 `protobuf:"varint,4,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` - // Time in seconds until the DHCPv4 client starts rebinding. - RebindTime *uint32 `protobuf:"varint,5,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` - // The ID of the DHCPv4 client holding this lease. - ClientId *string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3,oneof" json:"client_id,omitempty"` - // The Circuit ID option found in the last request message. - CircuitId *string `protobuf:"bytes,7,opt,name=circuit_id,json=circuitId,proto3,oneof" json:"circuit_id,omitempty"` - // The Remote ID option found in the last request message. - RemoteId *string `protobuf:"bytes,8,opt,name=remote_id,json=remoteId,proto3,oneof" json:"remote_id,omitempty"` + // The names of BGP peers for which prefix information will be retrieved. If no names + // are specified then the results will contain prefix information for all configured + // BGP peers. + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` + // Specify which prefixes to return. If the list is empty or missing then all prefixes + // will be returned. + PrefixFilters []BgpPrefixStateRequest_PrefixFilters_Enum `protobuf:"varint,2,rep,packed,name=prefix_filters,json=prefixFilters,proto3,enum=otg.BgpPrefixStateRequest_PrefixFilters_Enum" json:"prefix_filters,omitempty"` + // The IPv4 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv4_unicast_filters property is missing or empty then all IPv4 prefixes will + // be returned. + Ipv4UnicastFilters []*BgpPrefixIpv4UnicastFilter `protobuf:"bytes,3,rep,name=ipv4_unicast_filters,json=ipv4UnicastFilters,proto3" json:"ipv4_unicast_filters,omitempty"` + // The IPv6 unicast results can be filtered by specifying additional prefix search criteria. + // If the ipv6_unicast_filters property is missing or empty then all IPv6 prefixes will + // be returned. + Ipv6UnicastFilters []*BgpPrefixIpv6UnicastFilter `protobuf:"bytes,4,rep,name=ipv6_unicast_filters,json=ipv6UnicastFilters,proto3" json:"ipv6_unicast_filters,omitempty"` } -func (x *Dhcpv4LeaseState) Reset() { - *x = Dhcpv4LeaseState{} +func (x *BgpPrefixStateRequest) Reset() { + *x = BgpPrefixStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[483] + mi := &file_otg_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4LeaseState) String() string { +func (x *BgpPrefixStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4LeaseState) ProtoMessage() {} +func (*BgpPrefixStateRequest) ProtoMessage() {} -func (x *Dhcpv4LeaseState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[483] +func (x *BgpPrefixStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[471] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64024,103 +64128,74 @@ func (x *Dhcpv4LeaseState) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4LeaseState.ProtoReflect.Descriptor instead. -func (*Dhcpv4LeaseState) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{483} -} - -func (x *Dhcpv4LeaseState) GetAddress() string { - if x != nil && x.Address != nil { - return *x.Address - } - return "" -} - -func (x *Dhcpv4LeaseState) GetValidTime() uint32 { - if x != nil && x.ValidTime != nil { - return *x.ValidTime - } - return 0 -} - -func (x *Dhcpv4LeaseState) GetPreferredTime() uint32 { - if x != nil && x.PreferredTime != nil { - return *x.PreferredTime - } - return 0 -} - -func (x *Dhcpv4LeaseState) GetRenewTime() uint32 { - if x != nil && x.RenewTime != nil { - return *x.RenewTime - } - return 0 +// Deprecated: Use BgpPrefixStateRequest.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{471} } -func (x *Dhcpv4LeaseState) GetRebindTime() uint32 { - if x != nil && x.RebindTime != nil { - return *x.RebindTime +func (x *BgpPrefixStateRequest) GetBgpPeerNames() []string { + if x != nil { + return x.BgpPeerNames } - return 0 + return nil } -func (x *Dhcpv4LeaseState) GetClientId() string { - if x != nil && x.ClientId != nil { - return *x.ClientId +func (x *BgpPrefixStateRequest) GetPrefixFilters() []BgpPrefixStateRequest_PrefixFilters_Enum { + if x != nil { + return x.PrefixFilters } - return "" + return nil } -func (x *Dhcpv4LeaseState) GetCircuitId() string { - if x != nil && x.CircuitId != nil { - return *x.CircuitId +func (x *BgpPrefixStateRequest) GetIpv4UnicastFilters() []*BgpPrefixIpv4UnicastFilter { + if x != nil { + return x.Ipv4UnicastFilters } - return "" + return nil } -func (x *Dhcpv4LeaseState) GetRemoteId() string { - if x != nil && x.RemoteId != nil { - return *x.RemoteId +func (x *BgpPrefixStateRequest) GetIpv6UnicastFilters() []*BgpPrefixIpv6UnicastFilter { + if x != nil { + return x.Ipv6UnicastFilters } - return "" + return nil } -// The capture result request to the traffic generator. Stops the port capture on the -// port_name and returns the capture. -type CaptureRequest struct { +// Description missing in models +type BgpPrefixIpv4UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of a port a capture is started on. - // - // 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 addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv4UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *CaptureRequest) Reset() { - *x = CaptureRequest{} +func (x *BgpPrefixIpv4UnicastFilter) Reset() { + *x = BgpPrefixIpv4UnicastFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[484] + mi := &file_otg_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureRequest) String() string { +func (x *BgpPrefixIpv4UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureRequest) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter) ProtoMessage() {} -func (x *CaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[484] +func (x *BgpPrefixIpv4UnicastFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[472] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64131,52 +64206,74 @@ func (x *CaptureRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CaptureRequest.ProtoReflect.Descriptor instead. -func (*CaptureRequest) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{484} +// Deprecated: Use BgpPrefixIpv4UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{472} } -func (x *CaptureRequest) GetPortName() string { - if x != nil && x.PortName != nil { - return *x.PortName +func (x *BgpPrefixIpv4UnicastFilter) GetAddresses() []string { + if x != nil { + return x.Addresses } - return "" + return nil } -// mac counter pattern -type PatternFlowEthernetDstCounter struct { +func (x *BgpPrefixIpv4UnicastFilter) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength + } + return 0 +} + +func (x *BgpPrefixIpv4UnicastFilter) GetOrigin() BgpPrefixIpv4UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpPrefixIpv4UnicastFilter_Origin_unspecified +} + +func (x *BgpPrefixIpv4UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId + } + return 0 +} + +// Description missing in models +type BgpPrefixIpv6UnicastFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - 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"` + // The addresses to match. If the addresses property is missing or empty then all addresses + // will match. + Addresses []string `protobuf:"bytes,1,rep,name=addresses,proto3" json:"addresses,omitempty"` + // The prefix length to match. If the prefix length is missing then all prefix lengths + // will match. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin to match. If the origin is missing then all origins will match. + Origin *BgpPrefixIpv6UnicastFilter_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastFilter_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id to match. If the path id is missing then all path ids will match. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` } -func (x *PatternFlowEthernetDstCounter) Reset() { - *x = PatternFlowEthernetDstCounter{} +func (x *BgpPrefixIpv6UnicastFilter) Reset() { + *x = BgpPrefixIpv6UnicastFilter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[485] + mi := &file_otg_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDstCounter) String() string { +func (x *BgpPrefixIpv6UnicastFilter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstCounter) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter) ProtoMessage() {} -func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[485] +func (x *BgpPrefixIpv6UnicastFilter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[473] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64187,70 +64284,70 @@ func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{485} +// Deprecated: Use BgpPrefixIpv6UnicastFilter.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{473} } -func (x *PatternFlowEthernetDstCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *BgpPrefixIpv6UnicastFilter) GetAddresses() []string { + if x != nil { + return x.Addresses } - return "" + return nil } -func (x *PatternFlowEthernetDstCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *BgpPrefixIpv6UnicastFilter) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *BgpPrefixIpv6UnicastFilter) GetOrigin() BgpPrefixIpv6UnicastFilter_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpPrefixIpv6UnicastFilter_Origin_unspecified +} + +func (x *BgpPrefixIpv6UnicastFilter) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } return 0 } -// 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 PatternFlowEthernetDstMetricTag struct { +// BGP peer prefixes. +type BgpPrefixesState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The name of a BGP peer. + BgpPeerName *string `protobuf:"bytes,1,opt,name=bgp_peer_name,json=bgpPeerName,proto3,oneof" json:"bgp_peer_name,omitempty"` + // Description missing in models + Ipv4UnicastPrefixes []*BgpPrefixIpv4UnicastState `protobuf:"bytes,2,rep,name=ipv4_unicast_prefixes,json=ipv4UnicastPrefixes,proto3" json:"ipv4_unicast_prefixes,omitempty"` + // Description missing in models + Ipv6UnicastPrefixes []*BgpPrefixIpv6UnicastState `protobuf:"bytes,3,rep,name=ipv6_unicast_prefixes,json=ipv6UnicastPrefixes,proto3" json:"ipv6_unicast_prefixes,omitempty"` } -func (x *PatternFlowEthernetDstMetricTag) Reset() { - *x = PatternFlowEthernetDstMetricTag{} +func (x *BgpPrefixesState) Reset() { + *x = BgpPrefixesState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[486] + mi := &file_otg_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDstMetricTag) String() string { +func (x *BgpPrefixesState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} +func (*BgpPrefixesState) ProtoMessage() {} -func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[486] +func (x *BgpPrefixesState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[474] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64261,79 +64358,85 @@ func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{486} +// Deprecated: Use BgpPrefixesState.ProtoReflect.Descriptor instead. +func (*BgpPrefixesState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{474} } -func (x *PatternFlowEthernetDstMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *BgpPrefixesState) GetBgpPeerName() string { + if x != nil && x.BgpPeerName != nil { + return *x.BgpPeerName } return "" } -func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *BgpPrefixesState) GetIpv4UnicastPrefixes() []*BgpPrefixIpv4UnicastState { + if x != nil { + return x.Ipv4UnicastPrefixes } - return 0 + return nil } -func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *BgpPrefixesState) GetIpv6UnicastPrefixes() []*BgpPrefixIpv6UnicastState { + if x != nil { + return x.Ipv6UnicastPrefixes } - return 0 + return nil } -// Destination MAC address -type PatternFlowEthernetDst struct { +// IPv4 unicast prefix. +type BgpPrefixIpv4UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv4 unicast address + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv4UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv4UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional received Extended Community attributes. Each received Extended Community + // attribute is available for retrieval in two forms. Support of the 'raw' format in + // which all 8 bytes (16 hex characters) is always present and available for use. In + // addition, if supported by the implementation, the Extended Community attribute may + // also be retrieved in the 'structured' format which is an optional field. + ExtendedCommunities []*ResultExtendedCommunity `protobuf:"bytes,11,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 00:00:00:00:00:00 - Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *PatternFlowEthernetDst) Reset() { - *x = PatternFlowEthernetDst{} +func (x *BgpPrefixIpv4UnicastState) Reset() { + *x = BgpPrefixIpv4UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[487] + mi := &file_otg_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDst) String() string { +func (x *BgpPrefixIpv4UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState) ProtoMessage() {} -func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[487] +func (x *BgpPrefixIpv4UnicastState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[475] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64344,94 +64447,141 @@ func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{487} +// Deprecated: Use BgpPrefixIpv4UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{475} } -func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *BgpPrefixIpv4UnicastState) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return PatternFlowEthernetDst_Choice_unspecified + return "" } -func (x *PatternFlowEthernetDst) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *BgpPrefixIpv4UnicastState) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetDst) GetValues() []string { - if x != nil { - return x.Values +func (x *BgpPrefixIpv4UnicastState) GetOrigin() BgpPrefixIpv4UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin } - return nil + return BgpPrefixIpv4UnicastState_Origin_unspecified } -func (x *PatternFlowEthernetDst) GetAuto() string { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *BgpPrefixIpv4UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId + } + return 0 +} + +func (x *BgpPrefixIpv4UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop } return "" } -func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { +func (x *BgpPrefixIpv4UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop + } + return "" +} + +func (x *BgpPrefixIpv4UnicastState) GetCommunities() []*ResultBgpCommunity { if x != nil { - return x.Increment + return x.Communities } return nil } -func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { +func (x *BgpPrefixIpv4UnicastState) GetExtendedCommunities() []*ResultExtendedCommunity { if x != nil { - return x.Decrement + return x.ExtendedCommunities } return nil } -func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { +func (x *BgpPrefixIpv4UnicastState) GetAsPath() *ResultBgpAsPath { if x != nil { - return x.MetricTags + return x.AsPath } return nil } -// mac counter pattern -type PatternFlowEthernetSrcCounter struct { +func (x *BgpPrefixIpv4UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 +} + +func (x *BgpPrefixIpv4UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator + } + return 0 +} + +// IPv6 unicast prefix. +type BgpPrefixIpv6UnicastState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv6 unicast address + Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The length of the prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The origin of the prefix. + Origin *BgpPrefixIpv6UnicastState_Origin_Enum `protobuf:"varint,3,opt,name=origin,proto3,enum=otg.BgpPrefixIpv6UnicastState_Origin_Enum,oneof" json:"origin,omitempty"` + // The path id. + PathId *uint32 `protobuf:"varint,4,opt,name=path_id,json=pathId,proto3,oneof" json:"path_id,omitempty"` + // The IPv4 address of the egress interface. + Ipv4NextHop *string `protobuf:"bytes,5,opt,name=ipv4_next_hop,json=ipv4NextHop,proto3,oneof" json:"ipv4_next_hop,omitempty"` + // The IPv6 address of the egress interface. + Ipv6NextHop *string `protobuf:"bytes,6,opt,name=ipv6_next_hop,json=ipv6NextHop,proto3,oneof" json:"ipv6_next_hop,omitempty"` + // Optional community attributes. + Communities []*ResultBgpCommunity `protobuf:"bytes,7,rep,name=communities,proto3" json:"communities,omitempty"` + // Optional received Extended Community attributes. Each received Extended Community + // attribute is available for retrieval in two forms. Support of the 'raw' format in + // which all 8 bytes (16 hex characters) is always present and available for use. In + // addition, if supported by the implementation, the Extended Community attribute may + // also be retrieved in the 'structured' format which is an optional field. + ExtendedCommunities []*ResultExtendedCommunity `protobuf:"bytes,11,rep,name=extended_communities,json=extendedCommunities,proto3" json:"extended_communities,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` - // Description missing in models - // default = 00:00:00:00:00:01 - 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"` + AsPath *ResultBgpAsPath `protobuf:"bytes,8,opt,name=as_path,json=asPath,proto3" json:"as_path,omitempty"` + // The local preference is a well-known attribute and the value is used for route selection. + // The route with the highest local preference value is preferred. + LocalPreference *uint32 `protobuf:"varint,9,opt,name=local_preference,json=localPreference,proto3,oneof" json:"local_preference,omitempty"` + // The multi exit discriminator (MED) is an optional non-transitive attribute and the + // value is used for route selection. The route with the lowest MED value is preferred. + MultiExitDiscriminator *uint32 `protobuf:"varint,10,opt,name=multi_exit_discriminator,json=multiExitDiscriminator,proto3,oneof" json:"multi_exit_discriminator,omitempty"` } -func (x *PatternFlowEthernetSrcCounter) Reset() { - *x = PatternFlowEthernetSrcCounter{} +func (x *BgpPrefixIpv6UnicastState) Reset() { + *x = BgpPrefixIpv6UnicastState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[488] + mi := &file_otg_proto_msgTypes[476] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrcCounter) String() string { +func (x *BgpPrefixIpv6UnicastState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState) ProtoMessage() {} -func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[488] +func (x *BgpPrefixIpv6UnicastState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[476] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64442,70 +64592,122 @@ func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{488} +// Deprecated: Use BgpPrefixIpv6UnicastState.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{476} } -func (x *PatternFlowEthernetSrcCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *BgpPrefixIpv6UnicastState) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } return "" } -func (x *PatternFlowEthernetSrcCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *BgpPrefixIpv6UnicastState) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } - return "" + return 0 } -func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *BgpPrefixIpv6UnicastState) GetOrigin() BgpPrefixIpv6UnicastState_Origin_Enum { + if x != nil && x.Origin != nil { + return *x.Origin + } + return BgpPrefixIpv6UnicastState_Origin_unspecified +} + +func (x *BgpPrefixIpv6UnicastState) GetPathId() uint32 { + if x != nil && x.PathId != nil { + return *x.PathId } return 0 } -// 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 PatternFlowEthernetSrcMetricTag struct { +func (x *BgpPrefixIpv6UnicastState) GetIpv4NextHop() string { + if x != nil && x.Ipv4NextHop != nil { + return *x.Ipv4NextHop + } + return "" +} + +func (x *BgpPrefixIpv6UnicastState) GetIpv6NextHop() string { + if x != nil && x.Ipv6NextHop != nil { + return *x.Ipv6NextHop + } + return "" +} + +func (x *BgpPrefixIpv6UnicastState) GetCommunities() []*ResultBgpCommunity { + if x != nil { + return x.Communities + } + return nil +} + +func (x *BgpPrefixIpv6UnicastState) GetExtendedCommunities() []*ResultExtendedCommunity { + if x != nil { + return x.ExtendedCommunities + } + return nil +} + +func (x *BgpPrefixIpv6UnicastState) GetAsPath() *ResultBgpAsPath { + if x != nil { + return x.AsPath + } + return nil +} + +func (x *BgpPrefixIpv6UnicastState) GetLocalPreference() uint32 { + if x != nil && x.LocalPreference != nil { + return *x.LocalPreference + } + return 0 +} + +func (x *BgpPrefixIpv6UnicastState) GetMultiExitDiscriminator() uint32 { + if x != nil && x.MultiExitDiscriminator != nil { + return *x.MultiExitDiscriminator + } + return 0 +} + +// Each received Extended Community attribute is available for retrieval in two forms. +// Support of the 'raw' format in which all 8 bytes (16 hex characters) is always present +// and available for use. In addition, if supported by the implementation, the Extended +// Community attribute may also be retrieved in the 'structured' format which is an +// optional field. +type ResultExtendedCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The raw byte contents of the 8 bytes received in the Extended Community as 16 hex + // characters. + Raw *string `protobuf:"bytes,1,opt,name=raw,proto3,oneof" json:"raw,omitempty"` + // Description missing in models + Structured *ResultExtendedCommunityStructured `protobuf:"bytes,2,opt,name=structured,proto3" json:"structured,omitempty"` } -func (x *PatternFlowEthernetSrcMetricTag) Reset() { - *x = PatternFlowEthernetSrcMetricTag{} +func (x *ResultExtendedCommunity) Reset() { + *x = ResultExtendedCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[489] + mi := &file_otg_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrcMetricTag) String() string { +func (x *ResultExtendedCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunity) ProtoMessage() {} -func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[489] +func (x *ResultExtendedCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[477] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64516,74 +64718,70 @@ func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{489} +// Deprecated: Use ResultExtendedCommunity.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{477} } -func (x *PatternFlowEthernetSrcMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ResultExtendedCommunity) GetRaw() string { + if x != nil && x.Raw != nil { + return *x.Raw } return "" } -func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunity) GetStructured() *ResultExtendedCommunityStructured { + if x != nil { + return x.Structured } - return 0 + return nil } -// Source MAC address -type PatternFlowEthernetSrc struct { +// The Extended Communities Attribute is a optional BGP attribute,defined in RFC4360 +// 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 optonal sub-type field. +// The last 6 bytes (or 7 bytes for types without a sub-type) carry a unique set of +// data in a format defined by the type and optional sub-type field. +// Extended communities provide a larger range for grouping or categorizing communities. +type ResultExtendedCommunityStructured struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *ResultExtendedCommunityStructured_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityStructured_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Transitive_2OctetAsType *ResultExtendedCommunityTransitive2OctetAsType `protobuf:"bytes,2,opt,name=transitive_2octet_as_type,json=transitive2octetAsType,proto3" json:"transitive_2octet_as_type,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + TransitiveIpv4AddressType *ResultExtendedCommunityTransitiveIpv4AddressType `protobuf:"bytes,3,opt,name=transitive_ipv4_address_type,json=transitiveIpv4AddressType,proto3" json:"transitive_ipv4_address_type,omitempty"` // Description missing in models - Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Transitive_4OctetAsType *ResultExtendedCommunityTransitive4OctetAsType `protobuf:"bytes,4,opt,name=transitive_4octet_as_type,json=transitive4octetAsType,proto3" json:"transitive_4octet_as_type,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + TransitiveOpaqueType *ResultExtendedCommunityTransitiveOpaqueType `protobuf:"bytes,5,opt,name=transitive_opaque_type,json=transitiveOpaqueType,proto3" json:"transitive_opaque_type,omitempty"` + // Description missing in models + NonTransitive_2OctetAsType *ResultExtendedCommunityNonTransitive2OctetAsType `protobuf:"bytes,6,opt,name=non_transitive_2octet_as_type,json=nonTransitive2octetAsType,proto3" json:"non_transitive_2octet_as_type,omitempty"` } -func (x *PatternFlowEthernetSrc) Reset() { - *x = PatternFlowEthernetSrc{} +func (x *ResultExtendedCommunityStructured) Reset() { + *x = ResultExtendedCommunityStructured{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[490] + mi := &file_otg_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrc) String() string { +func (x *ResultExtendedCommunityStructured) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc) ProtoMessage() {} +func (*ResultExtendedCommunityStructured) ProtoMessage() {} -func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[490] +func (x *ResultExtendedCommunityStructured) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[478] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64594,87 +64792,86 @@ func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{490} +// Deprecated: Use ResultExtendedCommunityStructured.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityStructured) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{478} } -func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { +func (x *ResultExtendedCommunityStructured) GetChoice() ResultExtendedCommunityStructured_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetSrc_Choice_unspecified + return ResultExtendedCommunityStructured_Choice_unspecified } -func (x *PatternFlowEthernetSrc) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *ResultExtendedCommunityStructured) GetTransitive_2OctetAsType() *ResultExtendedCommunityTransitive2OctetAsType { + if x != nil { + return x.Transitive_2OctetAsType } - return "" + return nil } -func (x *PatternFlowEthernetSrc) GetValues() []string { +func (x *ResultExtendedCommunityStructured) GetTransitiveIpv4AddressType() *ResultExtendedCommunityTransitiveIpv4AddressType { if x != nil { - return x.Values + return x.TransitiveIpv4AddressType } return nil } -func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { +func (x *ResultExtendedCommunityStructured) GetTransitive_4OctetAsType() *ResultExtendedCommunityTransitive4OctetAsType { if x != nil { - return x.Increment + return x.Transitive_4OctetAsType } return nil } -func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { +func (x *ResultExtendedCommunityStructured) GetTransitiveOpaqueType() *ResultExtendedCommunityTransitiveOpaqueType { if x != nil { - return x.Decrement + return x.TransitiveOpaqueType } return nil } -func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { +func (x *ResultExtendedCommunityStructured) GetNonTransitive_2OctetAsType() *ResultExtendedCommunityNonTransitive2OctetAsType { if x != nil { - return x.MetricTags + return x.NonTransitive_2OctetAsType } return nil } -// integer counter pattern -type PatternFlowEthernetEtherTypeCounter struct { +// The Route Target Community identifies one or more routers that may receive a set +// of routes (that carry this Community) carried by BGP Update message. It is sent +// with sub-type as 0x02. +type ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 65535 - 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"` + // The two octet IANA assigned AS value assigned to the Autonomous System. + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // 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. + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *PatternFlowEthernetEtherTypeCounter) Reset() { - *x = PatternFlowEthernetEtherTypeCounter{} +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) Reset() { + *x = ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[491] + mi := &file_otg_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherTypeCounter) String() string { +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[491] +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[479] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64685,70 +64882,57 @@ func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{491} -} - -func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{479} } -func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -// 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 PatternFlowEthernetEtherTypeMetricTag struct { +// 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 ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The two octet IANA assigned AS value assigned to the Autonomous System. + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // 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. + Local_4ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_4byte_admin,json=local4byteAdmin,proto3,oneof" json:"local_4byte_admin,omitempty"` } -func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetEtherTypeMetricTag{} +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Reset() { + *x = ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[492] + mi := &file_otg_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[492] +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[480] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64759,79 +64943,56 @@ func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{492} -} - -func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{480} } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin) GetLocal_4ByteAdmin() uint32 { + if x != nil && x.Local_4ByteAdmin != nil { + return *x.Local_4ByteAdmin } return 0 } -// Ethernet type -type PatternFlowEthernetEtherType struct { +// The Transitive Two-Octet AS-Specific Extended Community is sent as type 0x00 . +type ResultExtendedCommunityTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 65535 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [65535] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 65535 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + Choice *ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + RouteTargetSubtype *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + RouteOriginSubtype *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *PatternFlowEthernetEtherType) Reset() { - *x = PatternFlowEthernetEtherType{} +func (x *ResultExtendedCommunityTransitive2OctetAsType) Reset() { + *x = ResultExtendedCommunityTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[493] + mi := &file_otg_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherType) String() string { +func (x *ResultExtendedCommunityTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive2OctetAsType) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[493] +func (x *ResultExtendedCommunityTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[481] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64842,94 +65003,64 @@ func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{493} +// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{481} } -func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { +func (x *ResultExtendedCommunityTransitive2OctetAsType) GetChoice() ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetEtherType_Choice_unspecified -} - -func (x *PatternFlowEthernetEtherType) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { - if x != nil { - return x.Increment - } - return nil + return ResultExtendedCommunityTransitive2OctetAsType_Choice_unspecified } -func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { +func (x *ResultExtendedCommunityTransitive2OctetAsType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget { if x != nil { - return x.Decrement + return x.RouteTargetSubtype } return nil } -func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { +func (x *ResultExtendedCommunityTransitive2OctetAsType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin { if x != nil { - return x.MetricTags + return x.RouteOriginSubtype } return nil } -// integer counter pattern -type PatternFlowEthernetPfcQueueCounter struct { +// 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 ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin 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"` + // An IPv4 unicast address assigned by one of the Internet registries. + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // 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. + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *PatternFlowEthernetPfcQueueCounter) Reset() { - *x = PatternFlowEthernetPfcQueueCounter{} +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Reset() { + *x = ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[494] + mi := &file_otg_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueueCounter) String() string { +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[494] +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[482] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64940,70 +65071,58 @@ func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{494} -} - -func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{482} } -func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } - return 0 + return "" } -func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -// 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 PatternFlowEthernetPfcQueueMetricTag struct { +// 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 ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // An IPv4 unicast address assigned by one of the Internet registries. + GlobalIpv4Admin *string `protobuf:"bytes,1,opt,name=global_ipv4_admin,json=globalIpv4Admin,proto3,oneof" json:"global_ipv4_admin,omitempty"` + // 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. + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { - *x = PatternFlowEthernetPfcQueueMetricTag{} +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Reset() { + *x = ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[495] + mi := &file_otg_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[495] +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[483] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65014,74 +65133,56 @@ func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{495} +// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{483} } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetGlobalIpv4Admin() string { + if x != nil && x.GlobalIpv4Admin != nil { + return *x.GlobalIpv4Admin } return "" } -func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -// Priority flow control queue -type PatternFlowEthernetPfcQueue struct { +// The Transitive IPv4 Address Specific Extended Community is sent as type 0x01. +type ResultExtendedCommunityTransitiveIpv4AddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_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"` + Choice *ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + RouteTargetSubtype *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + RouteOriginSubtype *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *PatternFlowEthernetPfcQueue) Reset() { - *x = PatternFlowEthernetPfcQueue{} +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) Reset() { + *x = ResultExtendedCommunityTransitiveIpv4AddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[496] + mi := &file_otg_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueue) String() string { +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveIpv4AddressType) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[496] +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[484] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65092,87 +65193,65 @@ func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{496} +// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressType.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveIpv4AddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{484} } -func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetChoice() ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPfcQueue_Choice_unspecified -} - -func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { - if x != nil { - return x.Increment - } - return nil + return ResultExtendedCommunityTransitiveIpv4AddressType_Choice_unspecified } -func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget { if x != nil { - return x.Decrement + return x.RouteTargetSubtype } return nil } -func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { +func (x *ResultExtendedCommunityTransitiveIpv4AddressType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin { if x != nil { - return x.MetricTags + return x.RouteOriginSubtype } return nil } -// integer counter pattern -type PatternFlowVlanPriorityCounter struct { +// 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 ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget 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"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // 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. + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *PatternFlowVlanPriorityCounter) Reset() { - *x = PatternFlowVlanPriorityCounter{} +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) Reset() { + *x = ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[497] + mi := &file_otg_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriorityCounter) String() string { +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoMessage() {} -func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[497] +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[485] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65183,70 +65262,57 @@ func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{497} -} - -func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{485} } -func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -// 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 PatternFlowVlanPriorityMetricTag struct { +// 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 ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 3 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The four octet IANA assigned AS value assigned to the Autonomous System. + Global_4ByteAs *uint32 `protobuf:"varint,1,opt,name=global_4byte_as,json=global4byteAs,proto3,oneof" json:"global_4byte_as,omitempty"` + // 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. + Local_2ByteAdmin *uint32 `protobuf:"varint,2,opt,name=local_2byte_admin,json=local2byteAdmin,proto3,oneof" json:"local_2byte_admin,omitempty"` } -func (x *PatternFlowVlanPriorityMetricTag) Reset() { - *x = PatternFlowVlanPriorityMetricTag{} +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Reset() { + *x = ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[498] + mi := &file_otg_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriorityMetricTag) String() string { +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoMessage() {} -func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[498] +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[486] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65257,74 +65323,57 @@ func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{498} -} - -func (x *PatternFlowVlanPriorityMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{486} } -func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetGlobal_4ByteAs() uint32 { + if x != nil && x.Global_4ByteAs != nil { + return *x.Global_4ByteAs } return 0 } -func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin) GetLocal_2ByteAdmin() uint32 { + if x != nil && x.Local_2ByteAdmin != nil { + return *x.Local_2ByteAdmin } return 0 } -// Priority code point -type PatternFlowVlanPriority struct { +// The Transitive Four-Octet AS-Specific Extended Community is sent as type 0x02. It +// is defined in RFC 5668. +type ResultExtendedCommunityTransitive4OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_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"` + Choice *ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + RouteTargetSubtype *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget `protobuf:"bytes,2,opt,name=route_target_subtype,json=routeTargetSubtype,proto3" json:"route_target_subtype,omitempty"` // Description missing in models - Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + RouteOriginSubtype *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin `protobuf:"bytes,3,opt,name=route_origin_subtype,json=routeOriginSubtype,proto3" json:"route_origin_subtype,omitempty"` } -func (x *PatternFlowVlanPriority) Reset() { - *x = PatternFlowVlanPriority{} +func (x *ResultExtendedCommunityTransitive4OctetAsType) Reset() { + *x = ResultExtendedCommunityTransitive4OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[499] + mi := &file_otg_proto_msgTypes[487] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriority) String() string { +func (x *ResultExtendedCommunityTransitive4OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive4OctetAsType) ProtoMessage() {} -func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[499] +func (x *ResultExtendedCommunityTransitive4OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[487] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65335,87 +65384,66 @@ func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{499} +// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsType.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive4OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{487} } -func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { +func (x *ResultExtendedCommunityTransitive4OctetAsType) GetChoice() ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanPriority_Choice_unspecified -} - -func (x *PatternFlowVlanPriority) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVlanPriority) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { - if x != nil { - return x.Increment - } - return nil + return ResultExtendedCommunityTransitive4OctetAsType_Choice_unspecified } -func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { +func (x *ResultExtendedCommunityTransitive4OctetAsType) GetRouteTargetSubtype() *ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget { if x != nil { - return x.Decrement + return x.RouteTargetSubtype } return nil } -func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { +func (x *ResultExtendedCommunityTransitive4OctetAsType) GetRouteOriginSubtype() *ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin { if x != nil { - return x.MetricTags + return x.RouteOriginSubtype } return nil } -// integer counter pattern -type PatternFlowVlanCfiCounter struct { +// 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 ResultExtendedCommunityTransitiveOpaqueTypeColor 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"` + // Two octet flag values. + Flags *uint32 `protobuf:"varint,1,opt,name=flags,proto3,oneof" json:"flags,omitempty"` + // 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 *uint32 `protobuf:"varint,2,opt,name=color,proto3,oneof" json:"color,omitempty"` } -func (x *PatternFlowVlanCfiCounter) Reset() { - *x = PatternFlowVlanCfiCounter{} +func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) Reset() { + *x = ResultExtendedCommunityTransitiveOpaqueTypeColor{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[500] + mi := &file_otg_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfiCounter) String() string { +func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiCounter) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveOpaqueTypeColor) ProtoMessage() {} -func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[500] +func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[488] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65426,70 +65454,65 @@ func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{500} -} - -func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueTypeColor.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveOpaqueTypeColor) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{488} } -func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) GetFlags() uint32 { + if x != nil && x.Flags != nil { + return *x.Flags } return 0 } -func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultExtendedCommunityTransitiveOpaqueTypeColor) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color } return 0 } -// 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 PatternFlowVlanCfiMetricTag struct { +// This identifies the type of tunneling technology being signalled. It is defined in +// RFC9012 and sent with sub-type as 0x0c. +type ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Four bytes of reserved values. Normally set to 0 on transmit and ignored on receive. + Reserved *uint32 `protobuf:"varint,1,opt,name=reserved,proto3,oneof" json:"reserved,omitempty"` + // 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 *uint32 `protobuf:"varint,2,opt,name=tunnel_type,json=tunnelType,proto3,oneof" json:"tunnel_type,omitempty"` } -func (x *PatternFlowVlanCfiMetricTag) Reset() { - *x = PatternFlowVlanCfiMetricTag{} +func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) Reset() { + *x = ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[501] + mi := &file_otg_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfiMetricTag) String() string { +func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoMessage() {} -func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[501] +func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[489] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65500,74 +65523,56 @@ func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{501} -} - -func (x *PatternFlowVlanCfiMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{489} } -func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetReserved() uint32 { + if x != nil && x.Reserved != nil { + return *x.Reserved } return 0 } -func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation) GetTunnelType() uint32 { + if x != nil && x.TunnelType != nil { + return *x.TunnelType } return 0 } -// Canonical format indicator or drop elegible indicator -type PatternFlowVlanCfi struct { +// The Transitive Opaque Extended Community is sent as type 0x03. +type ResultExtendedCommunityTransitiveOpaqueType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_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"` + Choice *ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + ColorSubtype *ResultExtendedCommunityTransitiveOpaqueTypeColor `protobuf:"bytes,2,opt,name=color_subtype,json=colorSubtype,proto3" json:"color_subtype,omitempty"` // Description missing in models - Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + EncapsulationSubtype *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation `protobuf:"bytes,3,opt,name=encapsulation_subtype,json=encapsulationSubtype,proto3" json:"encapsulation_subtype,omitempty"` } -func (x *PatternFlowVlanCfi) Reset() { - *x = PatternFlowVlanCfi{} +func (x *ResultExtendedCommunityTransitiveOpaqueType) Reset() { + *x = ResultExtendedCommunityTransitiveOpaqueType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[502] + mi := &file_otg_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfi) String() string { +func (x *ResultExtendedCommunityTransitiveOpaqueType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveOpaqueType) ProtoMessage() {} -func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[502] +func (x *ResultExtendedCommunityTransitiveOpaqueType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[490] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65578,87 +65583,65 @@ func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{502} +// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueType.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveOpaqueType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{490} } -func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { +func (x *ResultExtendedCommunityTransitiveOpaqueType) GetChoice() ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowVlanCfi_Choice_unspecified -} - -func (x *PatternFlowVlanCfi) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVlanCfi) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { - if x != nil { - return x.Increment - } - return nil + return ResultExtendedCommunityTransitiveOpaqueType_Choice_unspecified } -func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { +func (x *ResultExtendedCommunityTransitiveOpaqueType) GetColorSubtype() *ResultExtendedCommunityTransitiveOpaqueTypeColor { if x != nil { - return x.Decrement + return x.ColorSubtype } return nil } -func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { +func (x *ResultExtendedCommunityTransitiveOpaqueType) GetEncapsulationSubtype() *ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation { if x != nil { - return x.MetricTags + return x.EncapsulationSubtype } return nil } -// integer counter pattern -type PatternFlowVlanIdCounter struct { +// The Link Bandwidth Extended Community attribute is defined in draft-ietf-idr-link-bandwidth. +// It is sent with sub-type as 0x04. +type ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth 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"` + // 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. + Global_2ByteAs *uint32 `protobuf:"varint,1,opt,name=global_2byte_as,json=global2byteAs,proto3,oneof" json:"global_2byte_as,omitempty"` + // Bandwidth of the link in bytes per second. ( 1 Kbps is 1000 bytes per second and + // 1 Mbps is 1000 Kbps per second ) + Bandwidth *float32 `protobuf:"fixed32,2,opt,name=bandwidth,proto3,oneof" json:"bandwidth,omitempty"` } -func (x *PatternFlowVlanIdCounter) Reset() { - *x = PatternFlowVlanIdCounter{} +func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Reset() { + *x = ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[503] + mi := &file_otg_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanIdCounter) String() string { +func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdCounter) ProtoMessage() {} +func (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoMessage() {} -func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[503] +func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[491] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65669,70 +65652,54 @@ func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{503} -} - -func (x *PatternFlowVlanIdCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{491} } -func (x *PatternFlowVlanIdCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetGlobal_2ByteAs() uint32 { + if x != nil && x.Global_2ByteAs != nil { + return *x.Global_2ByteAs } return 0 } -func (x *PatternFlowVlanIdCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth) GetBandwidth() float32 { + if x != nil && x.Bandwidth != nil { + return *x.Bandwidth } return 0 } -// 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 PatternFlowVlanIdMetricTag struct { +// The Non-Transitive Two-Octet AS-Specific Extended Community is sent as type 0x40. +type ResultExtendedCommunityNonTransitive2OctetAsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 12 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Description missing in models + Choice *ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + LinkBandwidthSubtype *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth `protobuf:"bytes,2,opt,name=link_bandwidth_subtype,json=linkBandwidthSubtype,proto3" json:"link_bandwidth_subtype,omitempty"` } -func (x *PatternFlowVlanIdMetricTag) Reset() { - *x = PatternFlowVlanIdMetricTag{} +func (x *ResultExtendedCommunityNonTransitive2OctetAsType) Reset() { + *x = ResultExtendedCommunityNonTransitive2OctetAsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[504] + mi := &file_otg_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanIdMetricTag) String() string { +func (x *ResultExtendedCommunityNonTransitive2OctetAsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} +func (*ResultExtendedCommunityNonTransitive2OctetAsType) ProtoMessage() {} -func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[504] +func (x *ResultExtendedCommunityNonTransitive2OctetAsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[492] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65743,74 +65710,59 @@ func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{504} -} - -func (x *PatternFlowVlanIdMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsType.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityNonTransitive2OctetAsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{492} } -func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *ResultExtendedCommunityNonTransitive2OctetAsType) GetChoice() ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return ResultExtendedCommunityNonTransitive2OctetAsType_Choice_unspecified } -func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultExtendedCommunityNonTransitive2OctetAsType) GetLinkBandwidthSubtype() *ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth { + if x != nil { + return x.LinkBandwidthSubtype } - return 0 + return nil } -// Vlan identifier -type PatternFlowVlanId struct { +// BGP communities provide additional capability for tagging routes and for modifying +// BGP routing policy on upstream and downstream routers. BGP community is a 32-bit +// number which is broken into 16-bit AS number and a 16-bit custom value. +type ResultBgpCommunity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_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 *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The type of community AS number. If community type is manual_as_number then as_number + // and as_custom will be available. + Type *ResultBgpCommunity_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpCommunity_Type_Enum,oneof" json:"type,omitempty"` + // First two octets of 32 bit community AS number. + AsNumber *uint32 `protobuf:"varint,2,opt,name=as_number,json=asNumber,proto3,oneof" json:"as_number,omitempty"` + // Last two octets of the community value. + AsCustom *uint32 `protobuf:"varint,3,opt,name=as_custom,json=asCustom,proto3,oneof" json:"as_custom,omitempty"` } -func (x *PatternFlowVlanId) Reset() { - *x = PatternFlowVlanId{} +func (x *ResultBgpCommunity) Reset() { + *x = ResultBgpCommunity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[505] + mi := &file_otg_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanId) String() string { +func (x *ResultBgpCommunity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId) ProtoMessage() {} +func (*ResultBgpCommunity) ProtoMessage() {} -func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[505] +func (x *ResultBgpCommunity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[493] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65821,87 +65773,60 @@ func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{505} +// Deprecated: Use ResultBgpCommunity.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{493} } -func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *ResultBgpCommunity) GetType() ResultBgpCommunity_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return PatternFlowVlanId_Choice_unspecified + return ResultBgpCommunity_Type_unspecified } -func (x *PatternFlowVlanId) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *ResultBgpCommunity) GetAsNumber() uint32 { + if x != nil && x.AsNumber != nil { + return *x.AsNumber } return 0 } -func (x *PatternFlowVlanId) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { - if x != nil { - return x.MetricTags +func (x *ResultBgpCommunity) GetAsCustom() uint32 { + if x != nil && x.AsCustom != nil { + return *x.AsCustom } - return nil + return 0 } -// integer counter pattern -type PatternFlowVlanTpidCounter struct { +// This attribute identifies the autonomous systems through which routing information +// carried in this UPDATE message has passed. +type ResultBgpAsPath struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 65535 - 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"` + // AS Path segments present in the received AS Path attribute. + Segments []*ResultBgpAsPathSegment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"` } -func (x *PatternFlowVlanTpidCounter) Reset() { - *x = PatternFlowVlanTpidCounter{} +func (x *ResultBgpAsPath) Reset() { + *x = ResultBgpAsPath{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[506] + mi := &file_otg_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpidCounter) String() string { +func (x *ResultBgpAsPath) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidCounter) ProtoMessage() {} +func (*ResultBgpAsPath) ProtoMessage() {} -func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[506] +func (x *ResultBgpAsPath) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[494] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65912,70 +65837,54 @@ func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{506} -} - -func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use ResultBgpAsPath.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPath) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{494} } -func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *ResultBgpAsPath) GetSegments() []*ResultBgpAsPathSegment { + if x != nil { + return x.Segments } - return 0 + return nil } -// 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 PatternFlowVlanTpidMetricTag struct { +// Configuration for a single BGP AS path segment +type ResultBgpAsPathSegment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // 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 *ResultBgpAsPathSegment_Type_Enum `protobuf:"varint,1,opt,name=type,proto3,enum=otg.ResultBgpAsPathSegment_Type_Enum,oneof" json:"type,omitempty"` + // The AS numbers in this AS path segment. + AsNumbers []uint32 `protobuf:"varint,2,rep,packed,name=as_numbers,json=asNumbers,proto3" json:"as_numbers,omitempty"` } -func (x *PatternFlowVlanTpidMetricTag) Reset() { - *x = PatternFlowVlanTpidMetricTag{} +func (x *ResultBgpAsPathSegment) Reset() { + *x = ResultBgpAsPathSegment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[507] + mi := &file_otg_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpidMetricTag) String() string { +func (x *ResultBgpAsPathSegment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} +func (*ResultBgpAsPathSegment) ProtoMessage() {} -func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[507] +func (x *ResultBgpAsPathSegment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[495] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -65986,74 +65895,59 @@ func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{507} -} - -func (x *PatternFlowVlanTpidMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use ResultBgpAsPathSegment.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{495} } -func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *ResultBgpAsPathSegment) GetType() ResultBgpAsPathSegment_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return ResultBgpAsPathSegment_Type_unspecified } -func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *ResultBgpAsPathSegment) GetAsNumbers() []uint32 { + if x != nil { + return x.AsNumbers } - return 0 + return nil } -// Protocol identifier -type PatternFlowVlanTpid struct { +// The request to retrieve ISIS Link State PDU (LSP) information learned by the router. +type IsisLspsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 65535 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [65535] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The names of ISIS routers for which learned information is requested. An empty list + // will return results for all ISIS routers. + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` } -func (x *PatternFlowVlanTpid) Reset() { - *x = PatternFlowVlanTpid{} +func (x *IsisLspsStateRequest) Reset() { + *x = IsisLspsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[508] + mi := &file_otg_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpid) String() string { +func (x *IsisLspsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid) ProtoMessage() {} +func (*IsisLspsStateRequest) ProtoMessage() {} -func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[508] +func (x *IsisLspsStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[496] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66064,87 +65958,47 @@ func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. -func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{508} -} - -func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVlanTpid_Choice_unspecified -} - -func (x *PatternFlowVlanTpid) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVlanTpid) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { - if x != nil { - return x.Decrement - } - return nil +// Deprecated: Use IsisLspsStateRequest.ProtoReflect.Descriptor instead. +func (*IsisLspsStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{496} } -func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { +func (x *IsisLspsStateRequest) GetIsisRouterNames() []string { if x != nil { - return x.MetricTags + return x.IsisRouterNames } return nil } -// integer counter pattern -type PatternFlowVxlanFlagsCounter struct { +// The result of ISIS LSP information that are retrieved. +type IsisLspsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 8 - 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"` + // The name of the ISIS Router. + IsisRouterName *string `protobuf:"bytes,1,opt,name=isis_router_name,json=isisRouterName,proto3,oneof" json:"isis_router_name,omitempty"` + // One or more LSPs that are learned by this ISIS router. + Lsps []*IsisLspState `protobuf:"bytes,2,rep,name=lsps,proto3" json:"lsps,omitempty"` } -func (x *PatternFlowVxlanFlagsCounter) Reset() { - *x = PatternFlowVxlanFlagsCounter{} +func (x *IsisLspsState) Reset() { + *x = IsisLspsState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[509] + mi := &file_otg_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlagsCounter) String() string { +func (x *IsisLspsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} +func (*IsisLspsState) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[509] +func (x *IsisLspsState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[497] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66155,70 +66009,76 @@ func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{509} -} - -func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 +// Deprecated: Use IsisLspsState.ProtoReflect.Descriptor instead. +func (*IsisLspsState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{497} } -func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspsState) GetIsisRouterName() string { + if x != nil && x.IsisRouterName != nil { + return *x.IsisRouterName } - return 0 + return "" } -func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspsState) GetLsps() []*IsisLspState { + if x != nil { + return x.Lsps } - return 0 + return nil } -// 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 PatternFlowVxlanFlagsMetricTag struct { +// ISIS LSP. +type IsisLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field + // LSP ID in the format, e.g. '640000000001-00-00'. LSP ID consists of the System ID + // of a neighbor, the Pseudonode ID, and the LSP number. The last two bytes represent + // Pseudonode ID and LSP number respectively. A pseudonode is a logical representation + // of the LAN which is generated by a Designated Intermediate System (DIS) on a LAN + // segment. If one LSP exceeds the maximum LSP size then it is sent in another LSP with + // the LSP number incremented by one. A router's learned LSP gets refreshed by 'remaining_lifetime'. + // Then the sequence number is incremented by 1. // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 8 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + LspId *string `protobuf:"bytes,1,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // Link State PDU type. + PduType *IsisLspState_PduType_Enum `protobuf:"varint,2,opt,name=pdu_type,json=pduType,proto3,enum=otg.IsisLspState_PduType_Enum,oneof" json:"pdu_type,omitempty"` + // Remaining lifetime in seconds before LSP expires. + RemainingLifetime *uint32 `protobuf:"varint,3,opt,name=remaining_lifetime,json=remainingLifetime,proto3,oneof" json:"remaining_lifetime,omitempty"` + // Sequence number of the LSP. + SequenceNumber *uint64 `protobuf:"varint,4,opt,name=sequence_number,json=sequenceNumber,proto3,oneof" json:"sequence_number,omitempty"` + // Total length of the LSP. + PduLength *uint32 `protobuf:"varint,5,opt,name=pdu_length,json=pduLength,proto3,oneof" json:"pdu_length,omitempty"` + // LSP Type-Block flags. + Flags *IsisLspFlags `protobuf:"bytes,6,opt,name=flags,proto3" json:"flags,omitempty"` + // IS Type - bits 1 and 2 indicate the type of Intermediate System. + // 1 - ( i.e. bit 1 set) Level 1 Intermediate system. + // 2 - Unused value. + // 3 - (i.e. bits 1 and 2 set) Level 2 Intermediate system. + IsType *uint32 `protobuf:"varint,7,opt,name=is_type,json=isType,proto3,oneof" json:"is_type,omitempty"` + // It refers to Link State PDU State TLVs container. + Tlvs *IsisLspTlvs `protobuf:"bytes,8,opt,name=tlvs,proto3" json:"tlvs,omitempty"` } -func (x *PatternFlowVxlanFlagsMetricTag) Reset() { - *x = PatternFlowVxlanFlagsMetricTag{} +func (x *IsisLspState) Reset() { + *x = IsisLspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[510] + mi := &file_otg_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlagsMetricTag) String() string { +func (x *IsisLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} +func (*IsisLspState) ProtoMessage() {} -func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[510] +func (x *IsisLspState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[498] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66229,76 +66089,106 @@ func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{510} +// Deprecated: Use IsisLspState.ProtoReflect.Descriptor instead. +func (*IsisLspState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{498} } -func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *IsisLspState) GetLspId() string { + if x != nil && x.LspId != nil { + return *x.LspId } return "" } -func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *IsisLspState) GetPduType() IsisLspState_PduType_Enum { + if x != nil && x.PduType != nil { + return *x.PduType + } + return IsisLspState_PduType_unspecified +} + +func (x *IsisLspState) GetRemainingLifetime() uint32 { + if x != nil && x.RemainingLifetime != nil { + return *x.RemainingLifetime } return 0 } -func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspState) GetSequenceNumber() uint64 { + if x != nil && x.SequenceNumber != nil { + return *x.SequenceNumber } return 0 } -// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid -// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and -// MUST be set to zero on transmission and ignored on receipt. -type PatternFlowVxlanFlags struct { +func (x *IsisLspState) GetPduLength() uint32 { + if x != nil && x.PduLength != nil { + return *x.PduLength + } + return 0 +} + +func (x *IsisLspState) GetFlags() *IsisLspFlags { + if x != nil { + return x.Flags + } + return nil +} + +func (x *IsisLspState) GetIsType() uint32 { + if x != nil && x.IsType != nil { + return *x.IsType + } + return 0 +} + +func (x *IsisLspState) GetTlvs() *IsisLspTlvs { + if x != nil { + return x.Tlvs + } + return nil +} + +// This contains the list of TLVs present in one LSP. +type IsisLspTlvs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 8 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [8] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Array of Hostname TLVs ( type 137) present in this LSP. + HostnameTlvs []*IsisLspHostname `protobuf:"bytes,1,rep,name=hostname_tlvs,json=hostnameTlvs,proto3" json:"hostname_tlvs,omitempty"` + // Array of IS-Reachability TLVs (type 2) present in this LSP. + IsReachabilityTlvs []*IsisLspIsReachabilityTlv `protobuf:"bytes,2,rep,name=is_reachability_tlvs,json=isReachabilityTlvs,proto3" json:"is_reachability_tlvs,omitempty"` + // Array of Extended IS-Reachability TLVs (type 22) present in this LSP. + ExtendedIsReachabilityTlvs []*IsisLspExtendedIsReachabilityTlv `protobuf:"bytes,3,rep,name=extended_is_reachability_tlvs,json=extendedIsReachabilityTlvs,proto3" json:"extended_is_reachability_tlvs,omitempty"` + // Array of IPv4 Internal Reachability TLVs (type 128) present in this LSP. + Ipv4InternalReachabilityTlvs []*IsisLspIpv4InternalReachabilityTlv `protobuf:"bytes,4,rep,name=ipv4_internal_reachability_tlvs,json=ipv4InternalReachabilityTlvs,proto3" json:"ipv4_internal_reachability_tlvs,omitempty"` + // Array of IPv4 External Reachability TLVs (type 130) present in this LSP. + Ipv4ExternalReachabilityTlvs []*IsisLspIpv4ExternalReachabilityTlv `protobuf:"bytes,5,rep,name=ipv4_external_reachability_tlvs,json=ipv4ExternalReachabilityTlvs,proto3" json:"ipv4_external_reachability_tlvs,omitempty"` + // Array of IPv4 Extended Reachability TLVs (type 135) present in this LSP. + ExtendedIpv4ReachabilityTlvs []*IsisLspExtendedIpv4ReachabilityTlv `protobuf:"bytes,6,rep,name=extended_ipv4_reachability_tlvs,json=extendedIpv4ReachabilityTlvs,proto3" json:"extended_ipv4_reachability_tlvs,omitempty"` + // Array of IPv6 Reachability TLVs (type 236) present in this LSP. + Ipv6ReachabilityTlvs []*IsisLspIpv6ReachabilityTlv `protobuf:"bytes,7,rep,name=ipv6_reachability_tlvs,json=ipv6ReachabilityTlvs,proto3" json:"ipv6_reachability_tlvs,omitempty"` } -func (x *PatternFlowVxlanFlags) Reset() { - *x = PatternFlowVxlanFlags{} +func (x *IsisLspTlvs) Reset() { + *x = IsisLspTlvs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[511] + mi := &file_otg_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlags) String() string { +func (x *IsisLspTlvs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags) ProtoMessage() {} +func (*IsisLspTlvs) ProtoMessage() {} -func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[511] +func (x *IsisLspTlvs) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[499] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66309,87 +66199,87 @@ func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{511} +// Deprecated: Use IsisLspTlvs.ProtoReflect.Descriptor instead. +func (*IsisLspTlvs) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{499} } -func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisLspTlvs) GetHostnameTlvs() []*IsisLspHostname { + if x != nil { + return x.HostnameTlvs } - return PatternFlowVxlanFlags_Choice_unspecified + return nil } -func (x *PatternFlowVxlanFlags) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *IsisLspTlvs) GetIsReachabilityTlvs() []*IsisLspIsReachabilityTlv { + if x != nil { + return x.IsReachabilityTlvs } - return 0 + return nil } -func (x *PatternFlowVxlanFlags) GetValues() []uint32 { +func (x *IsisLspTlvs) GetExtendedIsReachabilityTlvs() []*IsisLspExtendedIsReachabilityTlv { if x != nil { - return x.Values + return x.ExtendedIsReachabilityTlvs } return nil } -func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { +func (x *IsisLspTlvs) GetIpv4InternalReachabilityTlvs() []*IsisLspIpv4InternalReachabilityTlv { if x != nil { - return x.Increment + return x.Ipv4InternalReachabilityTlvs } return nil } -func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { +func (x *IsisLspTlvs) GetIpv4ExternalReachabilityTlvs() []*IsisLspIpv4ExternalReachabilityTlv { if x != nil { - return x.Decrement + return x.Ipv4ExternalReachabilityTlvs } return nil } -func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { +func (x *IsisLspTlvs) GetExtendedIpv4ReachabilityTlvs() []*IsisLspExtendedIpv4ReachabilityTlv { if x != nil { - return x.MetricTags + return x.ExtendedIpv4ReachabilityTlvs } return nil } -// integer counter pattern -type PatternFlowVxlanReserved0Counter struct { +func (x *IsisLspTlvs) GetIpv6ReachabilityTlvs() []*IsisLspIpv6ReachabilityTlv { + if x != nil { + return x.Ipv6ReachabilityTlvs + } + return nil +} + +// It contains Hostname for the TLV 137. +type IsisLspHostname 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"` + // Hostname for an ISIS router. + Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` } -func (x *PatternFlowVxlanReserved0Counter) Reset() { - *x = PatternFlowVxlanReserved0Counter{} +func (x *IsisLspHostname) Reset() { + *x = IsisLspHostname{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[512] + mi := &file_otg_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0Counter) String() string { +func (x *IsisLspHostname) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} +func (*IsisLspHostname) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[512] +func (x *IsisLspHostname) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[500] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66400,70 +66290,59 @@ func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{512} -} - -func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use IsisLspHostname.ProtoReflect.Descriptor instead. +func (*IsisLspHostname) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{500} } -func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspHostname) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname } - return 0 + return "" } -// 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 PatternFlowVxlanReserved0MetricTag struct { +// LSP Type flags. +type IsisLspFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 24 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // When set, the originator supports partition repair. + PartitionRepair *bool `protobuf:"varint,1,opt,name=partition_repair,json=partitionRepair,proto3,oneof" json:"partition_repair,omitempty"` + // When set, the originator is attached to another area using the referred metric. + AttachedError *bool `protobuf:"varint,2,opt,name=attached_error,json=attachedError,proto3,oneof" json:"attached_error,omitempty"` + // When set, the originator is attached to another + // area using the referred metric. + AttachedExpense *bool `protobuf:"varint,3,opt,name=attached_expense,json=attachedExpense,proto3,oneof" json:"attached_expense,omitempty"` + // Delay Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDelay *bool `protobuf:"varint,4,opt,name=attached_delay,json=attachedDelay,proto3,oneof" json:"attached_delay,omitempty"` + // Default Metric - when set, the originator is attached to another + // area using the referred metric. + AttachedDefault *bool `protobuf:"varint,5,opt,name=attached_default,json=attachedDefault,proto3,oneof" json:"attached_default,omitempty"` + // Overload bit - when set, the originator is overloaded, and must + // be avoided in path calculation. + Overload *bool `protobuf:"varint,6,opt,name=overload,proto3,oneof" json:"overload,omitempty"` } -func (x *PatternFlowVxlanReserved0MetricTag) Reset() { - *x = PatternFlowVxlanReserved0MetricTag{} +func (x *IsisLspFlags) Reset() { + *x = IsisLspFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[513] + mi := &file_otg_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0MetricTag) String() string { +func (x *IsisLspFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} +func (*IsisLspFlags) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[513] +func (x *IsisLspFlags) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[501] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66474,74 +66353,81 @@ func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{513} +// Deprecated: Use IsisLspFlags.ProtoReflect.Descriptor instead. +func (*IsisLspFlags) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{501} } -func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *IsisLspFlags) GetPartitionRepair() bool { + if x != nil && x.PartitionRepair != nil { + return *x.PartitionRepair } - return "" + return false } -func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *IsisLspFlags) GetAttachedError() bool { + if x != nil && x.AttachedError != nil { + return *x.AttachedError } - return 0 + return false } -func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspFlags) GetAttachedExpense() bool { + if x != nil && x.AttachedExpense != nil { + return *x.AttachedExpense } - return 0 + return false } -// Reserved field -type PatternFlowVxlanReserved0 struct { +func (x *IsisLspFlags) GetAttachedDelay() bool { + if x != nil && x.AttachedDelay != nil { + return *x.AttachedDelay + } + return false +} + +func (x *IsisLspFlags) GetAttachedDefault() bool { + if x != nil && x.AttachedDefault != nil { + return *x.AttachedDefault + } + return false +} + +func (x *IsisLspFlags) GetOverload() bool { + if x != nil && x.Overload != nil { + return *x.Overload + } + return false +} + +// This container describes list of ISIS neighbors and attributes in IS-Reachability +// TLV (type 2). +type IsisLspIsReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_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 *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // This container describes Intermediate System (IS) neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *PatternFlowVxlanReserved0) Reset() { - *x = PatternFlowVxlanReserved0{} +func (x *IsisLspIsReachabilityTlv) Reset() { + *x = IsisLspIsReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[514] + mi := &file_otg_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0) String() string { +func (x *IsisLspIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0) ProtoMessage() {} +func (*IsisLspIsReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[514] +func (x *IsisLspIsReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[502] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66552,87 +66438,46 @@ func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{514} -} - -func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVxlanReserved0_Choice_unspecified -} - -func (x *PatternFlowVxlanReserved0) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { - if x != nil { - return x.Decrement - } - return nil +// Deprecated: Use IsisLspIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIsReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{502} } -func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { +func (x *IsisLspIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { if x != nil { - return x.MetricTags + return x.Neighbors } return nil } -// integer counter pattern -type PatternFlowVxlanVniCounter struct { +// This is list of ISIS neighbors and attributes in Extended-IS-Reachability TLV (type +// 22). +type IsisLspExtendedIsReachabilityTlv 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"` + // This container describes IS neighbors. + Neighbors []*IsisLspneighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"` } -func (x *PatternFlowVxlanVniCounter) Reset() { - *x = PatternFlowVxlanVniCounter{} +func (x *IsisLspExtendedIsReachabilityTlv) Reset() { + *x = IsisLspExtendedIsReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[515] + mi := &file_otg_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVniCounter) String() string { +func (x *IsisLspExtendedIsReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniCounter) ProtoMessage() {} +func (*IsisLspExtendedIsReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[515] +func (x *IsisLspExtendedIsReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[503] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66643,70 +66488,45 @@ func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{515} -} - -func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use IsisLspExtendedIsReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIsReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{503} } -func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspExtendedIsReachabilityTlv) GetNeighbors() []*IsisLspneighbor { + if x != nil { + return x.Neighbors } - return 0 + return nil } -// 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 PatternFlowVxlanVniMetricTag struct { +// This contains IS neighbors. +type IsisLspneighbor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 24 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The System ID for this emulated ISIS router, e.g. 640100010000. + SystemId *string `protobuf:"bytes,1,opt,name=system_id,json=systemId,proto3,oneof" json:"system_id,omitempty"` } -func (x *PatternFlowVxlanVniMetricTag) Reset() { - *x = PatternFlowVxlanVniMetricTag{} +func (x *IsisLspneighbor) Reset() { + *x = IsisLspneighbor{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[516] + mi := &file_otg_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVniMetricTag) String() string { +func (x *IsisLspneighbor) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} +func (*IsisLspneighbor) ProtoMessage() {} -func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[516] +func (x *IsisLspneighbor) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[504] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66717,79 +66537,47 @@ func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{516} +// Deprecated: Use IsisLspneighbor.ProtoReflect.Descriptor instead. +func (*IsisLspneighbor) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{504} } -func (x *PatternFlowVxlanVniMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspneighbor) GetSystemId() string { + if x != nil && x.SystemId != nil { + return *x.SystemId } - return 0 + return "" } -// VXLAN network id -type PatternFlowVxlanVni struct { +// This container defines list of IPv4 internal reachability information in one IPv4 +// internal reachability TLV. +// This is advertised when the origin-type is set 'internal' in route range configurations. +type IsisLspIpv4InternalReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_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"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Describes list of IPv4 prefixes in this TLV. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowVxlanVni) Reset() { - *x = PatternFlowVxlanVni{} +func (x *IsisLspIpv4InternalReachabilityTlv) Reset() { + *x = IsisLspIpv4InternalReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[517] + mi := &file_otg_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVni) String() string { +func (x *IsisLspIpv4InternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni) ProtoMessage() {} +func (*IsisLspIpv4InternalReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[517] +func (x *IsisLspIpv4InternalReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[505] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66800,94 +66588,47 @@ func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{517} -} - -func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVxlanVni_Choice_unspecified -} - -func (x *PatternFlowVxlanVni) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVxlanVni) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVxlanVni) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { - if x != nil { - return x.Decrement - } - return nil +// Deprecated: Use IsisLspIpv4InternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4InternalReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{505} } -func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { +func (x *IsisLspIpv4InternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { if x != nil { - return x.MetricTags + return x.Prefixes } return nil } -// integer counter pattern -type PatternFlowVxlanReserved1Counter struct { +// This container defines list of IPv4 external reachability information in one IPv4 +// external reachability TLV. +// This is advertised when the origin-type is set 'external' in route range configurations. +type IsisLspIpv4ExternalReachabilityTlv 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"` + // Describes list of IPv4 prefixes in this TLV.. + Prefixes []*IsisLspV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowVxlanReserved1Counter) Reset() { - *x = PatternFlowVxlanReserved1Counter{} +func (x *IsisLspIpv4ExternalReachabilityTlv) Reset() { + *x = IsisLspIpv4ExternalReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[518] + mi := &file_otg_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1Counter) String() string { +func (x *IsisLspIpv4ExternalReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} +func (*IsisLspIpv4ExternalReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[518] +func (x *IsisLspIpv4ExternalReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[506] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66898,70 +66639,61 @@ func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{518} -} - -func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use IsisLspIpv4ExternalReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv4ExternalReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{506} } -func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspIpv4ExternalReachabilityTlv) GetPrefixes() []*IsisLspV4Prefix { + if x != nil { + return x.Prefixes } - return 0 + return nil } -// 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 PatternFlowVxlanReserved1MetricTag struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 8 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // 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 *IsisLspV4Prefix_RedistributionType_Enum `protobuf:"varint,3,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // ISIS default metric value. + DefaultMetric *uint32 `protobuf:"varint,4,opt,name=default_metric,json=defaultMetric,proto3,oneof" json:"default_metric,omitempty"` + // 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 *IsisLspV4Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV4Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` } -func (x *PatternFlowVxlanReserved1MetricTag) Reset() { - *x = PatternFlowVxlanReserved1MetricTag{} +func (x *IsisLspV4Prefix) Reset() { + *x = IsisLspV4Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[519] + mi := &file_otg_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1MetricTag) String() string { +func (x *IsisLspV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} +func (*IsisLspV4Prefix) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[519] +func (x *IsisLspV4Prefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[507] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66972,74 +66704,75 @@ func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{519} +// Deprecated: Use IsisLspV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{507} } -func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *IsisLspV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } return "" } -func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *IsisLspV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspV4Prefix) GetRedistributionType() IsisLspV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspV4Prefix) GetDefaultMetric() uint32 { + if x != nil && x.DefaultMetric != nil { + return *x.DefaultMetric } return 0 } -// Reserved field -type PatternFlowVxlanReserved1 struct { +func (x *IsisLspV4Prefix) GetOriginType() IsisLspV4Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType + } + return IsisLspV4Prefix_OriginType_unspecified +} + +// This container defines list of IPv4 extended reachability information in one Extended +// IPv4 External Reachability TLV. +// It is advertised when the 'wide metric' is enabled. +type IsisLspExtendedIpv4ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_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 *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // IPv4 prefix contained within extended reachability TLVs. + Prefixes []*IsisLspExtendedV4Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowVxlanReserved1) Reset() { - *x = PatternFlowVxlanReserved1{} +func (x *IsisLspExtendedIpv4ReachabilityTlv) Reset() { + *x = IsisLspExtendedIpv4ReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[520] + mi := &file_otg_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1) String() string { +func (x *IsisLspExtendedIpv4ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1) ProtoMessage() {} +func (*IsisLspExtendedIpv4ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[520] +func (x *IsisLspExtendedIpv4ReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[508] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67050,87 +66783,57 @@ func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{520} -} - -func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowVxlanReserved1_Choice_unspecified -} - -func (x *PatternFlowVxlanReserved1) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { - if x != nil { - return x.Decrement - } - return nil +// Deprecated: Use IsisLspExtendedIpv4ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedIpv4ReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{508} } -func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { +func (x *IsisLspExtendedIpv4ReachabilityTlv) GetPrefixes() []*IsisLspExtendedV4Prefix { if x != nil { - return x.MetricTags + return x.Prefixes } return nil } -// integer counter pattern -type PatternFlowIpv4VersionCounter struct { +// This group defines attributes of an IPv4 standard prefix. +type IsisLspExtendedV4Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv4 unicast prefix reachable via the originator of this LSP. + Ipv4Address *string `protobuf:"bytes,1,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the IPv4 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // 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 *IsisLspExtendedV4Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspExtendedV4Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` // Description missing in models - // default = 4 - 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"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,5,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowIpv4VersionCounter) Reset() { - *x = PatternFlowIpv4VersionCounter{} +func (x *IsisLspExtendedV4Prefix) Reset() { + *x = IsisLspExtendedV4Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[521] + mi := &file_otg_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4VersionCounter) String() string { +func (x *IsisLspExtendedV4Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix) ProtoMessage() {} -func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[521] +func (x *IsisLspExtendedV4Prefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[509] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67141,70 +66844,74 @@ func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{521} +// Deprecated: Use IsisLspExtendedV4Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{509} } -func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspExtendedV4Prefix) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address } - return 0 + return "" } -func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspExtendedV4Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspExtendedV4Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } return 0 } -// 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 PatternFlowIpv4VersionMetricTag struct { +func (x *IsisLspExtendedV4Prefix) GetRedistributionType() IsisLspExtendedV4Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType + } + return IsisLspExtendedV4Prefix_RedistributionType_unspecified +} + +func (x *IsisLspExtendedV4Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { + if x != nil { + return x.PrefixAttributes + } + return nil +} + +// It defines list of IPv6 extended reachability information in one IPv6 Reachability +// TLV. +type IsisLspIpv6ReachabilityTlv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 4 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // IPv6 prefix contained within reachability TLVs. + Prefixes []*IsisLspV6Prefix `protobuf:"bytes,1,rep,name=prefixes,proto3" json:"prefixes,omitempty"` } -func (x *PatternFlowIpv4VersionMetricTag) Reset() { - *x = PatternFlowIpv4VersionMetricTag{} +func (x *IsisLspIpv6ReachabilityTlv) Reset() { + *x = IsisLspIpv6ReachabilityTlv{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[522] + mi := &file_otg_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4VersionMetricTag) String() string { +func (x *IsisLspIpv6ReachabilityTlv) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} +func (*IsisLspIpv6ReachabilityTlv) ProtoMessage() {} -func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[522] +func (x *IsisLspIpv6ReachabilityTlv) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[510] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67215,74 +66922,63 @@ func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{522} -} - -func (x *PatternFlowIpv4VersionMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 +// Deprecated: Use IsisLspIpv6ReachabilityTlv.ProtoReflect.Descriptor instead. +func (*IsisLspIpv6ReachabilityTlv) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{510} } -func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *IsisLspIpv6ReachabilityTlv) GetPrefixes() []*IsisLspV6Prefix { + if x != nil { + return x.Prefixes } - return 0 + return nil } -// Version -type PatternFlowIpv4Version struct { +// It defines attributes of an IPv6 standard prefix. +type IsisLspV6Prefix struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // An IPv6 unicast prefix reachable via the originator of this LSP. + Ipv6Address *string `protobuf:"bytes,1,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The length of the IPv6 prefix. + PrefixLength *uint32 `protobuf:"varint,2,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // ISIS wide metric. + Metric *uint32 `protobuf:"varint,3,opt,name=metric,proto3,oneof" json:"metric,omitempty"` + // 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 *IsisLspV6Prefix_RedistributionType_Enum `protobuf:"varint,4,opt,name=redistribution_type,json=redistributionType,proto3,enum=otg.IsisLspV6Prefix_RedistributionType_Enum,oneof" json:"redistribution_type,omitempty"` + // 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 *IsisLspV6Prefix_OriginType_Enum `protobuf:"varint,5,opt,name=origin_type,json=originType,proto3,enum=otg.IsisLspV6Prefix_OriginType_Enum,oneof" json:"origin_type,omitempty"` // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 4 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [4] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models - Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + PrefixAttributes *IsisLspPrefixAttributes `protobuf:"bytes,6,opt,name=prefix_attributes,json=prefixAttributes,proto3" json:"prefix_attributes,omitempty"` } -func (x *PatternFlowIpv4Version) Reset() { - *x = PatternFlowIpv4Version{} +func (x *IsisLspV6Prefix) Reset() { + *x = IsisLspV6Prefix{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[523] + mi := &file_otg_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Version) String() string { +func (x *IsisLspV6Prefix) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version) ProtoMessage() {} +func (*IsisLspV6Prefix) ProtoMessage() {} -func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[523] +func (x *IsisLspV6Prefix) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[511] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67293,87 +66989,85 @@ func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{523} +// Deprecated: Use IsisLspV6Prefix.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511} } -func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *IsisLspV6Prefix) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address } - return PatternFlowIpv4Version_Choice_unspecified + return "" } -func (x *PatternFlowIpv4Version) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *IsisLspV6Prefix) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowIpv4Version) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *IsisLspV6Prefix) GetMetric() uint32 { + if x != nil && x.Metric != nil { + return *x.Metric } - return nil + return 0 } -func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { - if x != nil { - return x.Increment +func (x *IsisLspV6Prefix) GetRedistributionType() IsisLspV6Prefix_RedistributionType_Enum { + if x != nil && x.RedistributionType != nil { + return *x.RedistributionType } - return nil + return IsisLspV6Prefix_RedistributionType_unspecified } -func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { - if x != nil { - return x.Decrement +func (x *IsisLspV6Prefix) GetOriginType() IsisLspV6Prefix_OriginType_Enum { + if x != nil && x.OriginType != nil { + return *x.OriginType } - return nil + return IsisLspV6Prefix_OriginType_unspecified } -func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { +func (x *IsisLspV6Prefix) GetPrefixAttributes() *IsisLspPrefixAttributes { if x != nil { - return x.MetricTags + return x.PrefixAttributes } return nil } -// integer counter pattern -type PatternFlowIpv4HeaderLengthCounter struct { +// 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 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 5 - 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"` + // External Prefix Flag (Bit 0) + XFlag *bool `protobuf:"varint,1,opt,name=x_flag,json=xFlag,proto3,oneof" json:"x_flag,omitempty"` + // Re-advertisement Flag (Bit 1) + RFlag *bool `protobuf:"varint,2,opt,name=r_flag,json=rFlag,proto3,oneof" json:"r_flag,omitempty"` + // Node Flag (Bit 2) + NFlag *bool `protobuf:"varint,3,opt,name=n_flag,json=nFlag,proto3,oneof" json:"n_flag,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { - *x = PatternFlowIpv4HeaderLengthCounter{} +func (x *IsisLspPrefixAttributes) Reset() { + *x = IsisLspPrefixAttributes{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[524] + mi := &file_otg_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLengthCounter) String() string { +func (x *IsisLspPrefixAttributes) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} +func (*IsisLspPrefixAttributes) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[524] +func (x *IsisLspPrefixAttributes) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[512] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67384,70 +67078,70 @@ func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{524} +// Deprecated: Use IsisLspPrefixAttributes.ProtoReflect.Descriptor instead. +func (*IsisLspPrefixAttributes) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{512} } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *IsisLspPrefixAttributes) GetXFlag() bool { + if x != nil && x.XFlag != nil { + return *x.XFlag } - return 0 + return false } -func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *IsisLspPrefixAttributes) GetRFlag() bool { + if x != nil && x.RFlag != nil { + return *x.RFlag } - return 0 + return false } -func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *IsisLspPrefixAttributes) GetNFlag() bool { + if x != nil && x.NFlag != nil { + return *x.NFlag } - return 0 + return false } -// 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 PatternFlowIpv4HeaderLengthMetricTag struct { +// The request to retrieve LLDP neighbor information for a given instance. +type LldpNeighborsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 4 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The names of LLDP instances for which neighbor information will be retrieved. If + // no names are specified then the results will contain neighbor information for all + // configured LLDP instances. + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` + // Specify the neighbors for which information will be returned. If empty or missing + // then information for all neighbors will be returned. + NeighborIdFilters []string `protobuf:"bytes,2,rep,name=neighbor_id_filters,json=neighborIdFilters,proto3" json:"neighbor_id_filters,omitempty"` } -func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { - *x = PatternFlowIpv4HeaderLengthMetricTag{} +func (x *LldpNeighborsStateRequest) Reset() { + *x = LldpNeighborsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[525] + mi := &file_otg_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { +func (x *LldpNeighborsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} +func (*LldpNeighborsStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[525] +func (x *LldpNeighborsStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[513] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67458,79 +67152,101 @@ func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{525} -} - -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use LldpNeighborsStateRequest.ProtoReflect.Descriptor instead. +func (*LldpNeighborsStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{513} } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *LldpNeighborsStateRequest) GetLldpNames() []string { + if x != nil { + return x.LldpNames } - return 0 + return nil } -func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpNeighborsStateRequest) GetNeighborIdFilters() []string { + if x != nil { + return x.NeighborIdFilters } - return 0 + return nil } -// Header length -type PatternFlowIpv4HeaderLength struct { +// LLDP neighbor information. +type LldpNeighborsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The name of the LLDP instance. + LldpName *string `protobuf:"bytes,1,opt,name=lldp_name,json=lldpName,proto3,oneof" json:"lldp_name,omitempty"` + // The system name field shall contain an alpha-numeric string that indicates the system's + // administratively assigned name. The system name should be the system's fully qualified + // domain name. If implementations support IETF RFC 3418, the sysName object should + // be used for this field. + SystemName *string `protobuf:"bytes,2,opt,name=system_name,json=systemName,proto3,oneof" json:"system_name,omitempty"` + // The system description field shall contain an alpha-numeric string that is the textual + // description of the network entity. The system description should include the full + // name and version identification of the system's hardware type, software operating + // system, and networking software. If implementations support IETF RFC 3418, the sysDescr + // object should be used for this field. + SystemDescription *string `protobuf:"bytes,3,opt,name=system_description,json=systemDescription,proto3,oneof" json:"system_description,omitempty"` + // The Chassis ID is a mandatory TLV which identifies the chassis component of the + // endpoint identifier associated with the transmitting LLDP agent. + ChassisId *string `protobuf:"bytes,4,opt,name=chassis_id,json=chassisId,proto3,oneof" json:"chassis_id,omitempty"` + // This field identifies the format and source of the chassis identifier string. It + // is an enumerator defined by the LldpChassisIdSubtype object from IEEE 802.1AB MIB. + ChassisIdType *LldpNeighborsState_ChassisIdType_Enum `protobuf:"varint,5,opt,name=chassis_id_type,json=chassisIdType,proto3,enum=otg.LldpNeighborsState_ChassisIdType_Enum,oneof" json:"chassis_id_type,omitempty"` + // System generated identifier for the neighbor on the LLDP instance. + NeighborId *string `protobuf:"bytes,6,opt,name=neighbor_id,json=neighborId,proto3,oneof" json:"neighbor_id,omitempty"` + // Age since discovery in seconds. + Age *uint32 `protobuf:"varint,7,opt,name=age,proto3,oneof" json:"age,omitempty"` + // Seconds since last update received. + LastUpdate *uint32 `protobuf:"varint,8,opt,name=last_update,json=lastUpdate,proto3,oneof" json:"last_update,omitempty"` + // The time-to-live (TTL) in seconds is a mandatory TLV which indicates how long information + // from the neighbor should be considered valid. + Ttl *uint32 `protobuf:"varint,9,opt,name=ttl,proto3,oneof" json:"ttl,omitempty"` + // The Port ID is a mandatory TLV which identifies the port component of the endpoint + // identifier associated with the transmitting LLDP agent. If the specified port is + // an IEEE 802.3 Repeater port, then this TLV is optional. + PortId *string `protobuf:"bytes,10,opt,name=port_id,json=portId,proto3,oneof" json:"port_id,omitempty"` + // This field identifies the format and source of the port identifier string. It is + // an enumerator defined by the PtopoPortIdType object from RFC2922. + PortIdType *LldpNeighborsState_PortIdType_Enum `protobuf:"varint,11,opt,name=port_id_type,json=portIdType,proto3,enum=otg.LldpNeighborsState_PortIdType_Enum,oneof" json:"port_id_type,omitempty"` + // The binary string containing the actual port identifier for the port which this LLDP + // PDU was transmitted. The source and format of this field is defined by PtopoPortId + // from RFC2922. + PortDescription *string `protobuf:"bytes,12,opt,name=port_description,json=portDescription,proto3,oneof" json:"port_description,omitempty"` + // The Management Address is a mandatory TLV which identifies a network address associated + // with the local LLDP agent, which can be used to reach the agent on the port identified + // in the Port ID TLV. + ManagementAddress *string `protobuf:"bytes,13,opt,name=management_address,json=managementAddress,proto3,oneof" json:"management_address,omitempty"` + // The enumerated value for the network address type identified in this TLV. This enumeration + // is defined in the 'Assigned Numbers' RFC [RFC3232] and the ianaAddressFamilyNumbers + // object. + ManagementAddressType *string `protobuf:"bytes,14,opt,name=management_address_type,json=managementAddressType,proto3,oneof" json:"management_address_type,omitempty"` // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 5 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [5] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 5 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + CustomTlvs []*LldpCustomTLVState `protobuf:"bytes,15,rep,name=custom_tlvs,json=customTlvs,proto3" json:"custom_tlvs,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Capabilities []*LldpCapabilityState `protobuf:"bytes,16,rep,name=capabilities,proto3" json:"capabilities,omitempty"` } -func (x *PatternFlowIpv4HeaderLength) Reset() { - *x = PatternFlowIpv4HeaderLength{} +func (x *LldpNeighborsState) Reset() { + *x = LldpNeighborsState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[526] + mi := &file_otg_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLength) String() string { +func (x *LldpNeighborsState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} +func (*LldpNeighborsState) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[526] +func (x *LldpNeighborsState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[514] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67541,94 +67257,159 @@ func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{526} +// Deprecated: Use LldpNeighborsState.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514} } -func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *LldpNeighborsState) GetLldpName() string { + if x != nil && x.LldpName != nil { + return *x.LldpName } - return PatternFlowIpv4HeaderLength_Choice_unspecified + return "" } -func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *LldpNeighborsState) GetSystemName() string { + if x != nil && x.SystemName != nil { + return *x.SystemName + } + return "" +} + +func (x *LldpNeighborsState) GetSystemDescription() string { + if x != nil && x.SystemDescription != nil { + return *x.SystemDescription + } + return "" +} + +func (x *LldpNeighborsState) GetChassisId() string { + if x != nil && x.ChassisId != nil { + return *x.ChassisId + } + return "" +} + +func (x *LldpNeighborsState) GetChassisIdType() LldpNeighborsState_ChassisIdType_Enum { + if x != nil && x.ChassisIdType != nil { + return *x.ChassisIdType + } + return LldpNeighborsState_ChassisIdType_unspecified +} + +func (x *LldpNeighborsState) GetNeighborId() string { + if x != nil && x.NeighborId != nil { + return *x.NeighborId + } + return "" +} + +func (x *LldpNeighborsState) GetAge() uint32 { + if x != nil && x.Age != nil { + return *x.Age } return 0 } -func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *LldpNeighborsState) GetLastUpdate() uint32 { + if x != nil && x.LastUpdate != nil { + return *x.LastUpdate } - return nil + return 0 } -func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto +func (x *LldpNeighborsState) GetTtl() uint32 { + if x != nil && x.Ttl != nil { + return *x.Ttl } return 0 } -func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { - if x != nil { - return x.Increment +func (x *LldpNeighborsState) GetPortId() string { + if x != nil && x.PortId != nil { + return *x.PortId } - return nil + return "" } -func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { +func (x *LldpNeighborsState) GetPortIdType() LldpNeighborsState_PortIdType_Enum { + if x != nil && x.PortIdType != nil { + return *x.PortIdType + } + return LldpNeighborsState_PortIdType_unspecified +} + +func (x *LldpNeighborsState) GetPortDescription() string { + if x != nil && x.PortDescription != nil { + return *x.PortDescription + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddress() string { + if x != nil && x.ManagementAddress != nil { + return *x.ManagementAddress + } + return "" +} + +func (x *LldpNeighborsState) GetManagementAddressType() string { + if x != nil && x.ManagementAddressType != nil { + return *x.ManagementAddressType + } + return "" +} + +func (x *LldpNeighborsState) GetCustomTlvs() []*LldpCustomTLVState { if x != nil { - return x.Decrement + return x.CustomTlvs } return nil } -func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { +func (x *LldpNeighborsState) GetCapabilities() []*LldpCapabilityState { if x != nil { - return x.MetricTags + return x.Capabilities } return nil } -// integer counter pattern -type PatternFlowIpv4TotalLengthCounter struct { +// Custom TLV received from a neighbor.Custom TLVs are organization specific TLVs advertised +// with TLV type 127. +type LldpCustomTLVState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = 46 - 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"` + // The integer value identifying the type of information contained in the value field. + CustomType *uint32 `protobuf:"varint,1,opt,name=custom_type,json=customType,proto3,oneof" json:"custom_type,omitempty"` + // The organizationally unique identifier field shall contain the organization's OUI + // as defined in Clause 9 of IEEE Std 802. The high-order octet is 0 and the low-order + // 3 octets are the SMI Network Management Private Enterprise Code of the Vendor in + // network byte order, as defined in the 'Assigned Numbers' RFC [RFC3232]. + Oui *string `protobuf:"bytes,2,opt,name=oui,proto3,oneof" json:"oui,omitempty"` + // The organizationally defined subtype field shall contain a unique subtype value assigned + // by the defining organization. + OuiSubtype *string `protobuf:"bytes,3,opt,name=oui_subtype,json=ouiSubtype,proto3,oneof" json:"oui_subtype,omitempty"` } -func (x *PatternFlowIpv4TotalLengthCounter) Reset() { - *x = PatternFlowIpv4TotalLengthCounter{} +func (x *LldpCustomTLVState) Reset() { + *x = LldpCustomTLVState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[527] + mi := &file_otg_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLengthCounter) String() string { +func (x *LldpCustomTLVState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} +func (*LldpCustomTLVState) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[527] +func (x *LldpCustomTLVState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[515] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67639,71 +67420,64 @@ func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{527} +// Deprecated: Use LldpCustomTLVState.ProtoReflect.Descriptor instead. +func (*LldpCustomTLVState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{515} } -func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *LldpCustomTLVState) GetCustomType() uint32 { + if x != nil && x.CustomType != nil { + return *x.CustomType } return 0 } -func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *LldpCustomTLVState) GetOui() string { + if x != nil && x.Oui != nil { + return *x.Oui } - return 0 + return "" } -func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *LldpCustomTLVState) GetOuiSubtype() string { + if x != nil && x.OuiSubtype != nil { + return *x.OuiSubtype } - return 0 + return "" } -// 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 PatternFlowIpv4TotalLengthMetricTag struct { +// LLDP system capability advertised by the neighbor +type LldpCapabilityState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // Name of the system capability advertised by the neighbor. Capabilities are represented + // in a bitmap that defines the primary functions of the system. The capabilities are + // defined in IEEE 802.1AB. + CapabilityName *LldpCapabilityState_CapabilityName_Enum `protobuf:"varint,1,opt,name=capability_name,json=capabilityName,proto3,enum=otg.LldpCapabilityState_CapabilityName_Enum,oneof" json:"capability_name,omitempty"` + // Indicates whether the corresponding system capability is enabled on the neighbor. + CapabilityEnabled *bool `protobuf:"varint,2,opt,name=capability_enabled,json=capabilityEnabled,proto3,oneof" json:"capability_enabled,omitempty"` } -func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { - *x = PatternFlowIpv4TotalLengthMetricTag{} +func (x *LldpCapabilityState) Reset() { + *x = LldpCapabilityState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[528] + mi := &file_otg_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { +func (x *LldpCapabilityState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} +func (*LldpCapabilityState) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[528] - if protoimpl.UnsafeEnabled && x != nil { +func (x *LldpCapabilityState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[516] + if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -67713,79 +67487,60 @@ func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{528} -} - -func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" +// Deprecated: Use LldpCapabilityState.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{516} } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *LldpCapabilityState) GetCapabilityName() LldpCapabilityState_CapabilityName_Enum { + if x != nil && x.CapabilityName != nil { + return *x.CapabilityName } - return 0 + return LldpCapabilityState_CapabilityName_unspecified } -func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *LldpCapabilityState) GetCapabilityEnabled() bool { + if x != nil && x.CapabilityEnabled != nil { + return *x.CapabilityEnabled } - return 0 + return false } -// Total length -type PatternFlowIpv4TotalLength struct { +// The request to retrieve RSVP Label Switched Path (LSP) information learned by the +// router. +type RsvpLspsStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 46 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [46] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 46 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models - Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The names of RSVP-TE routers for which learned information is requested. An empty + // list will return results for all RSVP=TE routers. + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` } -func (x *PatternFlowIpv4TotalLength) Reset() { - *x = PatternFlowIpv4TotalLength{} +func (x *RsvpLspsStateRequest) Reset() { + *x = RsvpLspsStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[529] + mi := &file_otg_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLength) String() string { +func (x *RsvpLspsStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength) ProtoMessage() {} +func (*RsvpLspsStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[529] +func (x *RsvpLspsStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[517] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67796,94 +67551,111 @@ func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{529} +// Deprecated: Use RsvpLspsStateRequest.ProtoReflect.Descriptor instead. +func (*RsvpLspsStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{517} } -func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspsStateRequest) GetRsvpRouterNames() []string { + if x != nil { + return x.RsvpRouterNames } - return PatternFlowIpv4TotalLength_Choice_unspecified + return nil } -func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 +// Discovered IPv4 Point-to-Point LSPs of a RSVP-TE router. +type RsvpLspsState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the RSVP-TE Router. + RsvpRouterName *string `protobuf:"bytes,1,opt,name=rsvp_router_name,json=rsvpRouterName,proto3,oneof" json:"rsvp_router_name,omitempty"` + // IPv4 Point-to-Point RSVP-TE Discovered LSPs. + Ipv4Lsps []*RsvpIPv4LspState `protobuf:"bytes,2,rep,name=ipv4_lsps,json=ipv4Lsps,proto3" json:"ipv4_lsps,omitempty"` } -func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *RsvpLspsState) Reset() { + *x = RsvpLspsState{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[518] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 +func (x *RsvpLspsState) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { - if x != nil { - return x.Increment +func (*RsvpLspsState) ProtoMessage() {} + +func (x *RsvpLspsState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[518] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { - if x != nil { - return x.Decrement +// Deprecated: Use RsvpLspsState.ProtoReflect.Descriptor instead. +func (*RsvpLspsState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{518} +} + +func (x *RsvpLspsState) GetRsvpRouterName() string { + if x != nil && x.RsvpRouterName != nil { + return *x.RsvpRouterName } - return nil + return "" } -func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { +func (x *RsvpLspsState) GetIpv4Lsps() []*RsvpIPv4LspState { if x != nil { - return x.MetricTags + return x.Ipv4Lsps } return nil } -// integer counter pattern -type PatternFlowIpv4IdentificationCounter struct { +// IPv4 RSVP-TE Discovered LSPs. +type RsvpIPv4LspState 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"` + // The origin IPv4 address of RSVP session. + SourceAddress *string `protobuf:"bytes,1,opt,name=source_address,json=sourceAddress,proto3,oneof" json:"source_address,omitempty"` + // The IPv4 destination address of RSVP session. + DestinationAddress *string `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3,oneof" json:"destination_address,omitempty"` + // It refers to the RSVP LSP properties. + Lsp *RsvpLspState `protobuf:"bytes,3,opt,name=lsp,proto3" json:"lsp,omitempty"` + // It refers to RSVP RRO objects container. + Rros []*RsvpLspIpv4Rro `protobuf:"bytes,4,rep,name=rros,proto3" json:"rros,omitempty"` + // It refers to RSVP ERO objects container. + Eros []*RsvpLspIpv4Ero `protobuf:"bytes,5,rep,name=eros,proto3" json:"eros,omitempty"` } -func (x *PatternFlowIpv4IdentificationCounter) Reset() { - *x = PatternFlowIpv4IdentificationCounter{} +func (x *RsvpIPv4LspState) Reset() { + *x = RsvpIPv4LspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[530] + mi := &file_otg_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4IdentificationCounter) String() string { +func (x *RsvpIPv4LspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} +func (*RsvpIPv4LspState) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[530] +func (x *RsvpIPv4LspState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[519] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67894,70 +67666,90 @@ func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{530} +// Deprecated: Use RsvpIPv4LspState.ProtoReflect.Descriptor instead. +func (*RsvpIPv4LspState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{519} } -func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *RsvpIPv4LspState) GetSourceAddress() string { + if x != nil && x.SourceAddress != nil { + return *x.SourceAddress } - return 0 + return "" } -func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *RsvpIPv4LspState) GetDestinationAddress() string { + if x != nil && x.DestinationAddress != nil { + return *x.DestinationAddress } - return 0 + return "" } -func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *RsvpIPv4LspState) GetLsp() *RsvpLspState { + if x != nil { + return x.Lsp } - return 0 + return nil } -// 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 PatternFlowIpv4IdentificationMetricTag struct { +func (x *RsvpIPv4LspState) GetRros() []*RsvpLspIpv4Rro { + if x != nil { + return x.Rros + } + return nil +} + +func (x *RsvpIPv4LspState) GetEros() []*RsvpLspIpv4Ero { + if x != nil { + return x.Eros + } + return nil +} + +// IPv4 RSVP-TE Discovered LSPs. +type RsvpLspState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 16 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The tunnel id of RSVP session which acts as an identifier that remains constant over + // the life of the tunnel. + TunnelId *uint32 `protobuf:"varint,1,opt,name=tunnel_id,json=tunnelId,proto3,oneof" json:"tunnel_id,omitempty"` + // The lsp-id of RSVP session which acts as a differentiator for two lsps originating + // from the same headend, commonly used to distinguish RSVP sessions during make before + // break operations. + LspId *uint32 `protobuf:"varint,2,opt,name=lsp_id,json=lspId,proto3,oneof" json:"lsp_id,omitempty"` + // The value of RSVP-TE Session Name field of the Session Attribute object. + SessionName *string `protobuf:"bytes,3,opt,name=session_name,json=sessionName,proto3,oneof" json:"session_name,omitempty"` + // The label received by RSVP-TE ingress. + LabelIn *uint32 `protobuf:"varint,4,opt,name=label_in,json=labelIn,proto3,oneof" json:"label_in,omitempty"` + // The label assigned by RSVP-TE egress. + LabelOut *uint32 `protobuf:"varint,5,opt,name=label_out,json=labelOut,proto3,oneof" json:"label_out,omitempty"` + // Operational state of the RSVP LSP. + SessionStatus *RsvpLspState_SessionStatus_Enum `protobuf:"varint,6,opt,name=session_status,json=sessionStatus,proto3,enum=otg.RsvpLspState_SessionStatus_Enum,oneof" json:"session_status,omitempty"` + // The reason for the last flap of this RSVP session. + LastFlapReason *RsvpLspState_LastFlapReason_Enum `protobuf:"varint,7,opt,name=last_flap_reason,json=lastFlapReason,proto3,enum=otg.RsvpLspState_LastFlapReason_Enum,oneof" json:"last_flap_reason,omitempty"` + // The tunnel UP time in milli seconds. If the tunnel is DOWN the UP time will be zero. + UpTime *uint64 `protobuf:"varint,8,opt,name=up_time,json=upTime,proto3,oneof" json:"up_time,omitempty"` } -func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { - *x = PatternFlowIpv4IdentificationMetricTag{} +func (x *RsvpLspState) Reset() { + *x = RsvpLspState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[531] + mi := &file_otg_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4IdentificationMetricTag) String() string { +func (x *RsvpLspState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} +func (*RsvpLspState) ProtoMessage() {} -func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[531] +func (x *RsvpLspState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[520] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -67968,74 +67760,104 @@ func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{531} +// Deprecated: Use RsvpLspState.ProtoReflect.Descriptor instead. +func (*RsvpLspState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520} } -func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *RsvpLspState) GetTunnelId() uint32 { + if x != nil && x.TunnelId != nil { + return *x.TunnelId + } + return 0 +} + +func (x *RsvpLspState) GetLspId() uint32 { + if x != nil && x.LspId != nil { + return *x.LspId + } + return 0 +} + +func (x *RsvpLspState) GetSessionName() string { + if x != nil && x.SessionName != nil { + return *x.SessionName } return "" } -func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *RsvpLspState) GetLabelIn() uint32 { + if x != nil && x.LabelIn != nil { + return *x.LabelIn } return 0 } -func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *RsvpLspState) GetLabelOut() uint32 { + if x != nil && x.LabelOut != nil { + return *x.LabelOut } return 0 } -// Identification -type PatternFlowIpv4Identification struct { +func (x *RsvpLspState) GetSessionStatus() RsvpLspState_SessionStatus_Enum { + if x != nil && x.SessionStatus != nil { + return *x.SessionStatus + } + return RsvpLspState_SessionStatus_unspecified +} + +func (x *RsvpLspState) GetLastFlapReason() RsvpLspState_LastFlapReason_Enum { + if x != nil && x.LastFlapReason != nil { + return *x.LastFlapReason + } + return RsvpLspState_LastFlapReason_unspecified +} + +func (x *RsvpLspState) GetUpTime() uint64 { + if x != nil && x.UpTime != nil { + return *x.UpTime + } + return 0 +} + +// This contains the list of Record Route Object(RRO) objects associated with the traffic +// engineering tunnel. The Record Route Object(RRO) is used in RSVP-TE to record the +// route traversed by the LSP. The RRO might be present in both Path message and Resv +// message, the RRO stores the IP addresses of the routers that the traffic engineering +// tunnel traversed and also the label generated and distributed by the routers. The +// RROs in the Resv message mirrors that of the Path message, the only difference is +// that the RRO in a Resv message records the path information in the reverse direction. +type RsvpLspIpv4Rro struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_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 *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The IPv4 addresses of the routers that the traffic engineering tunnel traversed. + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // Label reported for RRO hop. When the Label_Recording flag is set in the Session Attribute + // object, nodes doing route recording should include the Label Record subobject containing + // the reported label. + ReportedLabel *uint32 `protobuf:"varint,2,opt,name=reported_label,json=reportedLabel,proto3,oneof" json:"reported_label,omitempty"` } -func (x *PatternFlowIpv4Identification) Reset() { - *x = PatternFlowIpv4Identification{} +func (x *RsvpLspIpv4Rro) Reset() { + *x = RsvpLspIpv4Rro{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[532] + mi := &file_otg_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Identification) String() string { +func (x *RsvpLspIpv4Rro) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification) ProtoMessage() {} +func (*RsvpLspIpv4Rro) ProtoMessage() {} -func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[532] +func (x *RsvpLspIpv4Rro) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[521] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68046,87 +67868,60 @@ func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{532} +// Deprecated: Use RsvpLspIpv4Rro.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Rro) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{521} } -func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *RsvpLspIpv4Rro) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return PatternFlowIpv4Identification_Choice_unspecified + return "" } -func (x *PatternFlowIpv4Identification) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *RsvpLspIpv4Rro) GetReportedLabel() uint32 { + if x != nil && x.ReportedLabel != nil { + return *x.ReportedLabel } return 0 } -func (x *PatternFlowIpv4Identification) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { - if x != nil { - return x.Decrement - } - return nil -} - -func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { - if x != nil { - return x.MetricTags - } - return nil -} - -// integer counter pattern -type PatternFlowIpv4ReservedCounter struct { +// This contains the list of sub-objects included in the Explicit Route Object(ERO) +// object send in the PATH message from the ingress. These sub-objects contain the intermediate +// hops to be traversed by the LSP while being forwarded towards the egress endpoint. +type RsvpLspIpv4Ero 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"` + // The IPv4 prefix indicated by the ERO. Specified only when the ERO hop is an IPv4 + // prefix. + Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + // The autonomous system number indicated by the ERO. Specified only when the ERO hop + // is an 2 or 4-byte AS number. + Asn *uint32 `protobuf:"varint,2,opt,name=asn,proto3,oneof" json:"asn,omitempty"` + // The type indicated by the ERO. + Type *RsvpLspIpv4Ero_Type_Enum `protobuf:"varint,3,opt,name=type,proto3,enum=otg.RsvpLspIpv4Ero_Type_Enum,oneof" json:"type,omitempty"` } -func (x *PatternFlowIpv4ReservedCounter) Reset() { - *x = PatternFlowIpv4ReservedCounter{} +func (x *RsvpLspIpv4Ero) Reset() { + *x = RsvpLspIpv4Ero{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[533] + mi := &file_otg_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4ReservedCounter) String() string { +func (x *RsvpLspIpv4Ero) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} +func (*RsvpLspIpv4Ero) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[533] +func (x *RsvpLspIpv4Ero) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[522] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68137,70 +67932,66 @@ func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{533} +// Deprecated: Use RsvpLspIpv4Ero.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{522} } -func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *RsvpLspIpv4Ero) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix } - return 0 + return "" } -func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *RsvpLspIpv4Ero) GetAsn() uint32 { + if x != nil && x.Asn != nil { + return *x.Asn } return 0 } -func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *RsvpLspIpv4Ero) GetType() RsvpLspIpv4Ero_Type_Enum { + if x != nil && x.Type != nil { + return *x.Type } - return 0 + return RsvpLspIpv4Ero_Type_unspecified } -// 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 PatternFlowIpv4ReservedMetricTag struct { +// The request for assigned IPv4 address information associated with DHCP Client sessions. +type Dhcpv4InterfaceStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The names of DHCPv4 client to return results for. An empty list will return results + // for all DHCPv4 Client address information. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4client/properties/name + DhcpClientNames []string `protobuf:"bytes,1,rep,name=dhcp_client_names,json=dhcpClientNames,proto3" json:"dhcp_client_names,omitempty"` } -func (x *PatternFlowIpv4ReservedMetricTag) Reset() { - *x = PatternFlowIpv4ReservedMetricTag{} +func (x *Dhcpv4InterfaceStateRequest) Reset() { + *x = Dhcpv4InterfaceStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[534] + mi := &file_otg_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4ReservedMetricTag) String() string { +func (x *Dhcpv4InterfaceStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} +func (*Dhcpv4InterfaceStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[534] +func (x *Dhcpv4InterfaceStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[523] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68211,74 +68002,57 @@ func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{534} -} - -func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 +// Deprecated: Use Dhcpv4InterfaceStateRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv4InterfaceStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{523} } -func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *Dhcpv4InterfaceStateRequest) GetDhcpClientNames() []string { + if x != nil { + return x.DhcpClientNames } - return 0 + return nil } -// Reserved flag. -type PatternFlowIpv4Reserved struct { +// The IPv4 address associated with this DHCP Client session. +type Dhcpv4InterfaceState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_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 *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The name of a DHCPv4 Client. + DhcpClientName *string `protobuf:"bytes,1,opt,name=dhcp_client_name,json=dhcpClientName,proto3,oneof" json:"dhcp_client_name,omitempty"` + // The IPv4 address associated with this DHCP Client session. + Ipv4Address *string `protobuf:"bytes,2,opt,name=ipv4_address,json=ipv4Address,proto3,oneof" json:"ipv4_address,omitempty"` + // The length of the prefix. + PrefixLength *uint32 `protobuf:"varint,3,opt,name=prefix_length,json=prefixLength,proto3,oneof" json:"prefix_length,omitempty"` + // The Gateway Ipv4 address associated with this DHCP Client session. + GatewayAddress *string `protobuf:"bytes,4,opt,name=gateway_address,json=gatewayAddress,proto3,oneof" json:"gateway_address,omitempty"` + // The duration of the IPv4 address lease, in seconds. + LeaseTime *uint32 `protobuf:"varint,5,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` + // Time in seconds until the DHCPv4 client starts renewing the lease. + RenewTime *uint32 `protobuf:"varint,6,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` + // Time in seconds until the DHCPv4 client starts rebinding. + RebindTime *uint32 `protobuf:"varint,7,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` } -func (x *PatternFlowIpv4Reserved) Reset() { - *x = PatternFlowIpv4Reserved{} +func (x *Dhcpv4InterfaceState) Reset() { + *x = Dhcpv4InterfaceState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[535] + mi := &file_otg_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Reserved) String() string { +func (x *Dhcpv4InterfaceState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved) ProtoMessage() {} +func (*Dhcpv4InterfaceState) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[535] +func (x *Dhcpv4InterfaceState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[524] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68289,87 +68063,94 @@ func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{535} +// Deprecated: Use Dhcpv4InterfaceState.ProtoReflect.Descriptor instead. +func (*Dhcpv4InterfaceState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{524} } -func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Dhcpv4InterfaceState) GetDhcpClientName() string { + if x != nil && x.DhcpClientName != nil { + return *x.DhcpClientName } - return PatternFlowIpv4Reserved_Choice_unspecified + return "" } -func (x *PatternFlowIpv4Reserved) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *Dhcpv4InterfaceState) GetIpv4Address() string { + if x != nil && x.Ipv4Address != nil { + return *x.Ipv4Address + } + return "" +} + +func (x *Dhcpv4InterfaceState) GetPrefixLength() uint32 { + if x != nil && x.PrefixLength != nil { + return *x.PrefixLength } return 0 } -func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *Dhcpv4InterfaceState) GetGatewayAddress() string { + if x != nil && x.GatewayAddress != nil { + return *x.GatewayAddress } - return nil + return "" } -func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { - if x != nil { - return x.Increment +func (x *Dhcpv4InterfaceState) GetLeaseTime() uint32 { + if x != nil && x.LeaseTime != nil { + return *x.LeaseTime } - return nil + return 0 } -func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { - if x != nil { - return x.Decrement +func (x *Dhcpv4InterfaceState) GetRenewTime() uint32 { + if x != nil && x.RenewTime != nil { + return *x.RenewTime } - return nil + return 0 } -func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { - if x != nil { - return x.MetricTags +func (x *Dhcpv4InterfaceState) GetRebindTime() uint32 { + if x != nil && x.RebindTime != nil { + return *x.RebindTime } - return nil + return 0 } -// integer counter pattern -type PatternFlowIpv4DontFragmentCounter struct { +// The request to retrieve DHCP Server host allocated status. +type Dhcpv4LeaseStateRequest 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"` + // The names of DHCPv4 server to return results for. An empty list will return results + // for all DHCPv4 servers. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4server/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv4server/properties/name + DhcpServerNames []string `protobuf:"bytes,1,rep,name=dhcp_server_names,json=dhcpServerNames,proto3" json:"dhcp_server_names,omitempty"` } -func (x *PatternFlowIpv4DontFragmentCounter) Reset() { - *x = PatternFlowIpv4DontFragmentCounter{} +func (x *Dhcpv4LeaseStateRequest) Reset() { + *x = Dhcpv4LeaseStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[536] + mi := &file_otg_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragmentCounter) String() string { +func (x *Dhcpv4LeaseStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} +func (*Dhcpv4LeaseStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[536] +func (x *Dhcpv4LeaseStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[525] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68380,70 +68161,47 @@ func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{536} -} - -func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use Dhcpv4LeaseStateRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv4LeaseStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{525} } -func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *Dhcpv4LeaseStateRequest) GetDhcpServerNames() []string { + if x != nil { + return x.DhcpServerNames } - return 0 + return nil } -// 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 PatternFlowIpv4DontFragmentMetricTag struct { +// Lease information of DHCP Server. +type Dhcpv4LeasesState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The name of a DHCP Server. + DhcpServerName *string `protobuf:"bytes,1,opt,name=dhcp_server_name,json=dhcpServerName,proto3,oneof" json:"dhcp_server_name,omitempty"` + // Description missing in models + Leases []*Dhcpv4LeaseState `protobuf:"bytes,2,rep,name=leases,proto3" json:"leases,omitempty"` } -func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { - *x = PatternFlowIpv4DontFragmentMetricTag{} +func (x *Dhcpv4LeasesState) Reset() { + *x = Dhcpv4LeasesState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[537] + mi := &file_otg_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { +func (x *Dhcpv4LeasesState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} +func (*Dhcpv4LeasesState) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[537] +func (x *Dhcpv4LeasesState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[526] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68454,75 +68212,66 @@ func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{537} +// Deprecated: Use Dhcpv4LeasesState.ProtoReflect.Descriptor instead. +func (*Dhcpv4LeasesState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{526} } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *Dhcpv4LeasesState) GetDhcpServerName() string { + if x != nil && x.DhcpServerName != nil { + return *x.DhcpServerName } return "" } -func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *Dhcpv4LeasesState) GetLeases() []*Dhcpv4LeaseState { + if x != nil { + return x.Leases } - return 0 + return nil } -// Dont fragment flag If the dont_fragment flag is set and fragmentation is required -// to route the packet then the packet is dropped. -type PatternFlowIpv4DontFragment struct { +// IPv4 address lease state. +type Dhcpv4LeaseState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_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 *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The IPv4 address associated with this lease. + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The time in seconds after which the IPv4 address lease will expire. + ValidTime *uint32 `protobuf:"varint,2,opt,name=valid_time,json=validTime,proto3,oneof" json:"valid_time,omitempty"` + // The elapsed time in seconds since the address has been renewed. + PreferredTime *uint32 `protobuf:"varint,3,opt,name=preferred_time,json=preferredTime,proto3,oneof" json:"preferred_time,omitempty"` + // Time in seconds until the DHCPv4 client starts renewing the lease. + RenewTime *uint32 `protobuf:"varint,4,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` + // Time in seconds until the DHCPv4 client starts rebinding. + RebindTime *uint32 `protobuf:"varint,5,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` + // The ID of the DHCPv4 client holding this lease. + ClientId *string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3,oneof" json:"client_id,omitempty"` + // The Circuit ID option found in the last request message. + CircuitId *string `protobuf:"bytes,7,opt,name=circuit_id,json=circuitId,proto3,oneof" json:"circuit_id,omitempty"` + // The Remote ID option found in the last request message. + RemoteId *string `protobuf:"bytes,8,opt,name=remote_id,json=remoteId,proto3,oneof" json:"remote_id,omitempty"` } -func (x *PatternFlowIpv4DontFragment) Reset() { - *x = PatternFlowIpv4DontFragment{} +func (x *Dhcpv4LeaseState) Reset() { + *x = Dhcpv4LeaseState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[538] + mi := &file_otg_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragment) String() string { +func (x *Dhcpv4LeaseState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment) ProtoMessage() {} +func (*Dhcpv4LeaseState) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[538] +func (x *Dhcpv4LeaseState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[527] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68533,87 +68282,101 @@ func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{538} +// Deprecated: Use Dhcpv4LeaseState.ProtoReflect.Descriptor instead. +func (*Dhcpv4LeaseState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{527} } -func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Dhcpv4LeaseState) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address } - return PatternFlowIpv4DontFragment_Choice_unspecified + return "" } -func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *Dhcpv4LeaseState) GetValidTime() uint32 { + if x != nil && x.ValidTime != nil { + return *x.ValidTime } return 0 } -func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *Dhcpv4LeaseState) GetPreferredTime() uint32 { + if x != nil && x.PreferredTime != nil { + return *x.PreferredTime } - return nil + return 0 } -func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { - if x != nil { - return x.Increment +func (x *Dhcpv4LeaseState) GetRenewTime() uint32 { + if x != nil && x.RenewTime != nil { + return *x.RenewTime } - return nil + return 0 } -func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { - if x != nil { - return x.Decrement +func (x *Dhcpv4LeaseState) GetRebindTime() uint32 { + if x != nil && x.RebindTime != nil { + return *x.RebindTime } - return nil + return 0 } -func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { - if x != nil { - return x.MetricTags +func (x *Dhcpv4LeaseState) GetClientId() string { + if x != nil && x.ClientId != nil { + return *x.ClientId } - return nil + return "" } -// integer counter pattern -type PatternFlowIpv4MoreFragmentsCounter struct { +func (x *Dhcpv4LeaseState) GetCircuitId() string { + if x != nil && x.CircuitId != nil { + return *x.CircuitId + } + return "" +} + +func (x *Dhcpv4LeaseState) GetRemoteId() string { + if x != nil && x.RemoteId != nil { + return *x.RemoteId + } + return "" +} + +// The request for assigned IPv6 address information associated with DHCP Client sessions. +type Dhcpv6InterfaceStateRequest 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"` + // The names of DHCPv6 client to return results for. An empty list will return results + // for all DHCPv6 Client address information. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + DhcpClientNames []string `protobuf:"bytes,1,rep,name=dhcp_client_names,json=dhcpClientNames,proto3" json:"dhcp_client_names,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { - *x = PatternFlowIpv4MoreFragmentsCounter{} +func (x *Dhcpv6InterfaceStateRequest) Reset() { + *x = Dhcpv6InterfaceStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[539] + mi := &file_otg_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { +func (x *Dhcpv6InterfaceStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} +func (*Dhcpv6InterfaceStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[539] +func (x *Dhcpv6InterfaceStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[528] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68624,70 +68387,59 @@ func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{539} -} - -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 +// Deprecated: Use Dhcpv6InterfaceStateRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv6InterfaceStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{528} } -func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *Dhcpv6InterfaceStateRequest) GetDhcpClientNames() []string { + if x != nil { + return x.DhcpClientNames } - return 0 + return nil } -// 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 PatternFlowIpv4MoreFragmentsMetricTag struct { +// The IPv6 address associated with this DHCP Client session. +type Dhcpv6InterfaceState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 1 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // The name of a DHCPv6 Client. + DhcpClientName *string `protobuf:"bytes,1,opt,name=dhcp_client_name,json=dhcpClientName,proto3,oneof" json:"dhcp_client_name,omitempty"` + // The IPv6 IAPD address associated with this DHCP Client session. + Ipv6IapdAddress *string `protobuf:"bytes,2,opt,name=ipv6_iapd_address,json=ipv6IapdAddress,proto3,oneof" json:"ipv6_iapd_address,omitempty"` + // The prefix length of the IPv6 IAPD address associated with this DHCP Client session. + IapdPrefixLength *uint32 `protobuf:"varint,3,opt,name=iapd_prefix_length,json=iapdPrefixLength,proto3,oneof" json:"iapd_prefix_length,omitempty"` + // The IPv6 address associated with this DHCP Client session. + Ipv6Address *string `protobuf:"bytes,4,opt,name=ipv6_address,json=ipv6Address,proto3,oneof" json:"ipv6_address,omitempty"` + // The Gateway IPV6 address associated with this DHCP Client session. + GatewayAddress *string `protobuf:"bytes,5,opt,name=gateway_address,json=gatewayAddress,proto3,oneof" json:"gateway_address,omitempty"` + // The duration of the IPv6 address lease, in seconds. + LeaseTime *uint32 `protobuf:"varint,6,opt,name=lease_time,json=leaseTime,proto3,oneof" json:"lease_time,omitempty"` + // Time in seconds until the DHCPv6 client starts renewing the lease. + RenewTime *uint32 `protobuf:"varint,7,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` + // Time in seconds until the DHCPv6 client starts rebinding. + RebindTime *uint32 `protobuf:"varint,8,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { - *x = PatternFlowIpv4MoreFragmentsMetricTag{} +func (x *Dhcpv6InterfaceState) Reset() { + *x = Dhcpv6InterfaceState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[540] + mi := &file_otg_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { +func (x *Dhcpv6InterfaceState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} +func (*Dhcpv6InterfaceState) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[540] +func (x *Dhcpv6InterfaceState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[529] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68698,74 +68450,101 @@ func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{540} +// Deprecated: Use Dhcpv6InterfaceState.ProtoReflect.Descriptor instead. +func (*Dhcpv6InterfaceState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{529} } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *Dhcpv6InterfaceState) GetDhcpClientName() string { + if x != nil && x.DhcpClientName != nil { + return *x.DhcpClientName } return "" } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *Dhcpv6InterfaceState) GetIpv6IapdAddress() string { + if x != nil && x.Ipv6IapdAddress != nil { + return *x.Ipv6IapdAddress } - return 0 + return "" } -func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *Dhcpv6InterfaceState) GetIapdPrefixLength() uint32 { + if x != nil && x.IapdPrefixLength != nil { + return *x.IapdPrefixLength } return 0 } -// More fragments flag -type PatternFlowIpv4MoreFragments struct { +func (x *Dhcpv6InterfaceState) GetIpv6Address() string { + if x != nil && x.Ipv6Address != nil { + return *x.Ipv6Address + } + return "" +} + +func (x *Dhcpv6InterfaceState) GetGatewayAddress() string { + if x != nil && x.GatewayAddress != nil { + return *x.GatewayAddress + } + return "" +} + +func (x *Dhcpv6InterfaceState) GetLeaseTime() uint32 { + if x != nil && x.LeaseTime != nil { + return *x.LeaseTime + } + return 0 +} + +func (x *Dhcpv6InterfaceState) GetRenewTime() uint32 { + if x != nil && x.RenewTime != nil { + return *x.RenewTime + } + return 0 +} + +func (x *Dhcpv6InterfaceState) GetRebindTime() uint32 { + if x != nil && x.RebindTime != nil { + return *x.RebindTime + } + return 0 +} + +// The request to retrieve DHCP Server host allocated status. +type Dhcpv6LeaseStateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_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 *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // The names of DHCPv6 server to return results for. An empty list will return results + // for all DHCPv6 servers. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6server/properties/name + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6server/properties/name + DhcpServerNames []string `protobuf:"bytes,1,rep,name=dhcp_server_names,json=dhcpServerNames,proto3" json:"dhcp_server_names,omitempty"` } -func (x *PatternFlowIpv4MoreFragments) Reset() { - *x = PatternFlowIpv4MoreFragments{} +func (x *Dhcpv6LeaseStateRequest) Reset() { + *x = Dhcpv6LeaseStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[541] + mi := &file_otg_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragments) String() string { +func (x *Dhcpv6LeaseStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} +func (*Dhcpv6LeaseStateRequest) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[541] +func (x *Dhcpv6LeaseStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[530] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68776,87 +68555,280 @@ func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{541} +// Deprecated: Use Dhcpv6LeaseStateRequest.ProtoReflect.Descriptor instead. +func (*Dhcpv6LeaseStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{530} } -func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *Dhcpv6LeaseStateRequest) GetDhcpServerNames() []string { + if x != nil { + return x.DhcpServerNames } - return PatternFlowIpv4MoreFragments_Choice_unspecified + return nil } -func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +// Lease information of DHCP Server. +type Dhcpv6LeasesState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of a DHCP Server. + DhcpServerName *string `protobuf:"bytes,1,opt,name=dhcp_server_name,json=dhcpServerName,proto3,oneof" json:"dhcp_server_name,omitempty"` + // Description missing in models + Leases []*Dhcpv6ServerLeaseState `protobuf:"bytes,2,rep,name=leases,proto3" json:"leases,omitempty"` +} + +func (x *Dhcpv6LeasesState) Reset() { + *x = Dhcpv6LeasesState{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[531] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *Dhcpv6LeasesState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Dhcpv6LeasesState) ProtoMessage() {} + +func (x *Dhcpv6LeasesState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[531] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { - if x != nil { - return x.Increment +// Deprecated: Use Dhcpv6LeasesState.ProtoReflect.Descriptor instead. +func (*Dhcpv6LeasesState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{531} +} + +func (x *Dhcpv6LeasesState) GetDhcpServerName() string { + if x != nil && x.DhcpServerName != nil { + return *x.DhcpServerName } - return nil + return "" } -func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { +func (x *Dhcpv6LeasesState) GetLeases() []*Dhcpv6ServerLeaseState { if x != nil { - return x.Decrement + return x.Leases } return nil } -func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { - if x != nil { - return x.MetricTags +// IPv6 unicast prefix. +type Dhcpv6ServerLeaseState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The IPv6 address associated with this lease. + Address *string `protobuf:"bytes,1,opt,name=address,proto3,oneof" json:"address,omitempty"` + // The time in seconds, IP address lease will expire. + ValidTime *uint32 `protobuf:"varint,2,opt,name=valid_time,json=validTime,proto3,oneof" json:"valid_time,omitempty"` + // The time in seconds, elapsed time since address has been renewed. + PreferredTime *uint32 `protobuf:"varint,3,opt,name=preferred_time,json=preferredTime,proto3,oneof" json:"preferred_time,omitempty"` + // Time in seconds until the DHCPv6 client starts renewing the lease. + RenewTime *uint32 `protobuf:"varint,4,opt,name=renew_time,json=renewTime,proto3,oneof" json:"renew_time,omitempty"` + // Time in seconds until the DHCPv6 client starts rebinding. + RebindTime *uint32 `protobuf:"varint,5,opt,name=rebind_time,json=rebindTime,proto3,oneof" json:"rebind_time,omitempty"` + // The ID of the DHCPv6 client holding this lease. + ClientId *string `protobuf:"bytes,6,opt,name=client_id,json=clientId,proto3,oneof" json:"client_id,omitempty"` + // The Remote ID option found in the last request message. + RemoteId *string `protobuf:"bytes,7,opt,name=remote_id,json=remoteId,proto3,oneof" json:"remote_id,omitempty"` + // The Interface ID option found in the last request message. + InterfaceId *string `protobuf:"bytes,8,opt,name=interface_id,json=interfaceId,proto3,oneof" json:"interface_id,omitempty"` +} + +func (x *Dhcpv6ServerLeaseState) Reset() { + *x = Dhcpv6ServerLeaseState{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[532] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -// integer counter pattern -type PatternFlowIpv4FragmentOffsetCounter struct { +func (x *Dhcpv6ServerLeaseState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Dhcpv6ServerLeaseState) ProtoMessage() {} + +func (x *Dhcpv6ServerLeaseState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[532] + 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 Dhcpv6ServerLeaseState.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerLeaseState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{532} +} + +func (x *Dhcpv6ServerLeaseState) GetAddress() string { + if x != nil && x.Address != nil { + return *x.Address + } + return "" +} + +func (x *Dhcpv6ServerLeaseState) GetValidTime() uint32 { + if x != nil && x.ValidTime != nil { + return *x.ValidTime + } + return 0 +} + +func (x *Dhcpv6ServerLeaseState) GetPreferredTime() uint32 { + if x != nil && x.PreferredTime != nil { + return *x.PreferredTime + } + return 0 +} + +func (x *Dhcpv6ServerLeaseState) GetRenewTime() uint32 { + if x != nil && x.RenewTime != nil { + return *x.RenewTime + } + return 0 +} + +func (x *Dhcpv6ServerLeaseState) GetRebindTime() uint32 { + if x != nil && x.RebindTime != nil { + return *x.RebindTime + } + return 0 +} + +func (x *Dhcpv6ServerLeaseState) GetClientId() string { + if x != nil && x.ClientId != nil { + return *x.ClientId + } + return "" +} + +func (x *Dhcpv6ServerLeaseState) GetRemoteId() string { + if x != nil && x.RemoteId != nil { + return *x.RemoteId + } + return "" +} + +func (x *Dhcpv6ServerLeaseState) GetInterfaceId() string { + if x != nil && x.InterfaceId != nil { + return *x.InterfaceId + } + return "" +} + +// The capture result request to the traffic generator. Stops the port capture on the +// port_name and returns the capture. +type CaptureRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of a port a capture is started on. + // + // 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"` +} + +func (x *CaptureRequest) Reset() { + *x = CaptureRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[533] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CaptureRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CaptureRequest) ProtoMessage() {} + +func (x *CaptureRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[533] + 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 CaptureRequest.ProtoReflect.Descriptor instead. +func (*CaptureRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{533} +} + +func (x *CaptureRequest) GetPortName() string { + if x != nil && x.PortName != nil { + return *x.PortName + } + return "" +} + +// mac counter pattern +type PatternFlowEthernetDstCounter 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"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowIpv4FragmentOffsetCounter) Reset() { - *x = PatternFlowIpv4FragmentOffsetCounter{} +func (x *PatternFlowEthernetDstCounter) Reset() { + *x = PatternFlowEthernetDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[542] + mi := &file_otg_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { +func (x *PatternFlowEthernetDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} +func (*PatternFlowEthernetDstCounter) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[542] +func (x *PatternFlowEthernetDstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[534] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68867,26 +68839,26 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{542} +// Deprecated: Use PatternFlowEthernetDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{534} } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { +func (x *PatternFlowEthernetDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { +func (x *PatternFlowEthernetDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -68896,7 +68868,7 @@ func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { // 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 PatternFlowIpv4FragmentOffsetMetricTag struct { +type PatternFlowEthernetDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -68910,27 +68882,27 @@ type PatternFlowIpv4FragmentOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 5 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { - *x = PatternFlowIpv4FragmentOffsetMetricTag{} +func (x *PatternFlowEthernetDstMetricTag) Reset() { + *x = PatternFlowEthernetDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[543] + mi := &file_otg_proto_msgTypes[535] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { +func (x *PatternFlowEthernetDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetDstMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[543] +func (x *PatternFlowEthernetDstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[535] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -68941,74 +68913,79 @@ func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{543} +// Deprecated: Use PatternFlowEthernetDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{535} } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { +func (x *PatternFlowEthernetDstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Fragment offset -type PatternFlowIpv4FragmentOffset struct { +// Destination MAC address +type PatternFlowEthernetDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowEthernetDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetDst_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"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,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"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 00:00:00:00:00:00 + Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4FragmentOffset) Reset() { - *x = PatternFlowIpv4FragmentOffset{} +func (x *PatternFlowEthernetDst) Reset() { + *x = PatternFlowEthernetDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[544] + mi := &file_otg_proto_msgTypes[536] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffset) String() string { +func (x *PatternFlowEthernetDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} +func (*PatternFlowEthernetDst) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[544] +func (x *PatternFlowEthernetDst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[536] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69019,87 +68996,94 @@ func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{544} +// Deprecated: Use PatternFlowEthernetDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{536} } -func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { +func (x *PatternFlowEthernetDst) GetChoice() PatternFlowEthernetDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4FragmentOffset_Choice_unspecified + return PatternFlowEthernetDst_Choice_unspecified } -func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { +func (x *PatternFlowEthernetDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { +func (x *PatternFlowEthernetDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowEthernetDst) GetAuto() string { + if x != nil && x.Auto != nil { + return *x.Auto + } + return "" +} + +func (x *PatternFlowEthernetDst) GetIncrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { +func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { +func (x *PatternFlowEthernetDst) GetMetricTags() []*PatternFlowEthernetDstMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIpv4TimeToLiveCounter struct { +// mac counter pattern +type PatternFlowEthernetSrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowIpv4TimeToLiveCounter) Reset() { - *x = PatternFlowIpv4TimeToLiveCounter{} +func (x *PatternFlowEthernetSrcCounter) Reset() { + *x = PatternFlowEthernetSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[545] + mi := &file_otg_proto_msgTypes[537] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLiveCounter) String() string { +func (x *PatternFlowEthernetSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowEthernetSrcCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[545] +func (x *PatternFlowEthernetSrcCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[537] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69110,26 +69094,26 @@ func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{545} +// Deprecated: Use PatternFlowEthernetSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{537} } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowEthernetSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69139,7 +69123,7 @@ func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { // 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 PatternFlowIpv4TimeToLiveMetricTag struct { +type PatternFlowEthernetSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69153,27 +69137,27 @@ type PatternFlowIpv4TimeToLiveMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { - *x = PatternFlowIpv4TimeToLiveMetricTag{} +func (x *PatternFlowEthernetSrcMetricTag) Reset() { + *x = PatternFlowEthernetSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[546] + mi := &file_otg_proto_msgTypes[538] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { +func (x *PatternFlowEthernetSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[546] +func (x *PatternFlowEthernetSrcMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[538] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69184,74 +69168,74 @@ func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{546} +// Deprecated: Use PatternFlowEthernetSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrcMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{538} } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { +func (x *PatternFlowEthernetSrcMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowIpv4TimeToLive struct { +// Source MAC address +type PatternFlowEthernetSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetSrc_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TimeToLive) Reset() { - *x = PatternFlowIpv4TimeToLive{} +func (x *PatternFlowEthernetSrc) Reset() { + *x = PatternFlowEthernetSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[547] + mi := &file_otg_proto_msgTypes[539] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLive) String() string { +func (x *PatternFlowEthernetSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} +func (*PatternFlowEthernetSrc) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[547] +func (x *PatternFlowEthernetSrc) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[539] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69262,47 +69246,47 @@ func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{547} +// Deprecated: Use PatternFlowEthernetSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{539} } -func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { +func (x *PatternFlowEthernetSrc) GetChoice() PatternFlowEthernetSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TimeToLive_Choice_unspecified + return PatternFlowEthernetSrc_Choice_unspecified } -func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { +func (x *PatternFlowEthernetSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { +func (x *PatternFlowEthernetSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowEthernetSrc) GetIncrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { +func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { +func (x *PatternFlowEthernetSrc) GetMetricTags() []*PatternFlowEthernetSrcMetricTag { if x != nil { return x.MetricTags } @@ -69310,13 +69294,13 @@ func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLive } // integer counter pattern -type PatternFlowIpv4ProtocolCounter struct { +type PatternFlowEthernetEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 61 + // default = 65535 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -69326,23 +69310,23 @@ type PatternFlowIpv4ProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4ProtocolCounter) Reset() { - *x = PatternFlowIpv4ProtocolCounter{} +func (x *PatternFlowEthernetEtherTypeCounter) Reset() { + *x = PatternFlowEthernetEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[548] + mi := &file_otg_proto_msgTypes[540] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4ProtocolCounter) String() string { +func (x *PatternFlowEthernetEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[548] +func (x *PatternFlowEthernetEtherTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[540] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69353,26 +69337,26 @@ func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{548} +// Deprecated: Use PatternFlowEthernetEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{540} } -func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { +func (x *PatternFlowEthernetEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69382,7 +69366,7 @@ func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { // 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 PatternFlowIpv4ProtocolMetricTag struct { +type PatternFlowEthernetEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69396,27 +69380,27 @@ type PatternFlowIpv4ProtocolMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { - *x = PatternFlowIpv4ProtocolMetricTag{} +func (x *PatternFlowEthernetEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[549] + mi := &file_otg_proto_msgTypes[541] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4ProtocolMetricTag) String() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[549] +func (x *PatternFlowEthernetEtherTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[541] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69427,79 +69411,79 @@ func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{549} +// Deprecated: Use PatternFlowEthernetEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{541} } -func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol, default is 61 any host internal protocol -type PatternFlowIpv4Protocol struct { +// Ethernet type +type PatternFlowEthernetEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.auto - Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 61 + // default = 65535 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [61] + // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // The OTG implementation can provide a system generated // value for this property. If the OTG is unable to generate a value // the default value must be used. - // default = 61 + // default = 65535 Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Protocol) Reset() { - *x = PatternFlowIpv4Protocol{} +func (x *PatternFlowEthernetEtherType) Reset() { + *x = PatternFlowEthernetEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[550] + mi := &file_otg_proto_msgTypes[542] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Protocol) String() string { +func (x *PatternFlowEthernetEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol) ProtoMessage() {} +func (*PatternFlowEthernetEtherType) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[550] +func (x *PatternFlowEthernetEtherType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[542] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69510,163 +69494,94 @@ func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{550} +// Deprecated: Use PatternFlowEthernetEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{542} } -func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { +func (x *PatternFlowEthernetEtherType) GetChoice() PatternFlowEthernetEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Protocol_Choice_unspecified + return PatternFlowEthernetEtherType_Choice_unspecified } -func (x *PatternFlowIpv4Protocol) GetValue() uint32 { +func (x *PatternFlowEthernetEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { +func (x *PatternFlowEthernetEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { +func (x *PatternFlowEthernetEtherType) GetAuto() uint32 { if x != nil && x.Auto != nil { return *x.Auto } return 0 } -func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowEthernetEtherType) GetIncrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { +func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { +func (x *PatternFlowEthernetEtherType) GetMetricTags() []*PatternFlowEthernetEtherTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// Header checksum -type PatternFlowIpv4HeaderChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIpv4HeaderChecksum) Reset() { - *x = PatternFlowIpv4HeaderChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[551] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4HeaderChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} - -func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[551] - 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 PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{551} -} - -func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIpv4HeaderChecksum_Choice_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIpv4HeaderChecksum_Generated_unspecified -} - -func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ipv4 counter pattern -type PatternFlowIpv4SrcCounter struct { +// integer counter pattern +type PatternFlowEthernetPfcQueueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowIpv4SrcCounter) Reset() { - *x = PatternFlowIpv4SrcCounter{} +func (x *PatternFlowEthernetPfcQueueCounter) Reset() { + *x = PatternFlowEthernetPfcQueueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[552] + mi := &file_otg_proto_msgTypes[543] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4SrcCounter) String() string { +func (x *PatternFlowEthernetPfcQueueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueCounter) ProtoMessage() {} -func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[552] +func (x *PatternFlowEthernetPfcQueueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[543] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69677,26 +69592,26 @@ func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{552} +// Deprecated: Use PatternFlowEthernetPfcQueueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{543} } -func (x *PatternFlowIpv4SrcCounter) GetStart() string { +func (x *PatternFlowEthernetPfcQueueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetStep() string { +func (x *PatternFlowEthernetPfcQueueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPfcQueueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -69706,7 +69621,7 @@ func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { // 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 PatternFlowIpv4SrcMetricTag struct { +type PatternFlowEthernetPfcQueueMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69720,27 +69635,27 @@ type PatternFlowIpv4SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4SrcMetricTag) Reset() { - *x = PatternFlowIpv4SrcMetricTag{} +func (x *PatternFlowEthernetPfcQueueMetricTag) Reset() { + *x = PatternFlowEthernetPfcQueueMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[553] + mi := &file_otg_proto_msgTypes[544] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4SrcMetricTag) String() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueueMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[553] +func (x *PatternFlowEthernetPfcQueueMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[544] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69751,161 +69666,74 @@ func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{553} +// Deprecated: Use PatternFlowEthernetPfcQueueMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueueMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{544} } -func (x *PatternFlowIpv4SrcMetricTag) GetName() string { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPfcQueueMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ipv4 random pattern -type PatternFlowIpv4SrcRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0.0.0.0 - Min *string `protobuf:"bytes,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 255.255.255.255 - Max *string `protobuf:"bytes,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowIpv4SrcRandom) Reset() { - *x = PatternFlowIpv4SrcRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[554] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4SrcRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4SrcRandom) ProtoMessage() {} - -func (x *PatternFlowIpv4SrcRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[554] - 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 PatternFlowIpv4SrcRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4SrcRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{554} -} - -func (x *PatternFlowIpv4SrcRandom) GetMin() string { - if x != nil && x.Min != nil { - return *x.Min - } - return "" -} - -func (x *PatternFlowIpv4SrcRandom) GetMax() string { - if x != nil && x.Max != nil { - return *x.Max - } - return "" -} - -func (x *PatternFlowIpv4SrcRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowIpv4SrcRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Source address -type PatternFlowIpv4Src struct { +// Priority flow control queue +type PatternFlowEthernetPfcQueue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPfcQueue_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPfcQueue_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"` + // default = 0 + Value *uint32 `protobuf:"varint,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"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Auto *FlowIpv4Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` - // Description missing in models - Random *PatternFlowIpv4SrcRandom `protobuf:"bytes,9,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Src) Reset() { - *x = PatternFlowIpv4Src{} +func (x *PatternFlowEthernetPfcQueue) Reset() { + *x = PatternFlowEthernetPfcQueue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[555] + mi := &file_otg_proto_msgTypes[545] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src) String() string { +func (x *PatternFlowEthernetPfcQueue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue) ProtoMessage() {} -func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[555] +func (x *PatternFlowEthernetPfcQueue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[545] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69916,101 +69744,87 @@ func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{555} +// Deprecated: Use PatternFlowEthernetPfcQueue.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{545} } -func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { +func (x *PatternFlowEthernetPfcQueue) GetChoice() PatternFlowEthernetPfcQueue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Src_Choice_unspecified + return PatternFlowEthernetPfcQueue_Choice_unspecified } -func (x *PatternFlowIpv4Src) GetValue() string { +func (x *PatternFlowEthernetPfcQueue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Src) GetValues() []string { +func (x *PatternFlowEthernetPfcQueue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowEthernetPfcQueue) GetIncrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { +func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueueCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { +func (x *PatternFlowEthernetPfcQueue) GetMetricTags() []*PatternFlowEthernetPfcQueueMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowIpv4Src) GetAuto() *FlowIpv4Auto { - if x != nil { - return x.Auto - } - return nil -} - -func (x *PatternFlowIpv4Src) GetRandom() *PatternFlowIpv4SrcRandom { - if x != nil { - return x.Random - } - return nil -} - -// ipv4 counter pattern -type PatternFlowIpv4DstCounter struct { +// integer counter pattern +type PatternFlowVlanPriorityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowIpv4DstCounter) Reset() { - *x = PatternFlowIpv4DstCounter{} +func (x *PatternFlowVlanPriorityCounter) Reset() { + *x = PatternFlowVlanPriorityCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[556] + mi := &file_otg_proto_msgTypes[546] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstCounter) String() string { +func (x *PatternFlowVlanPriorityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstCounter) ProtoMessage() {} +func (*PatternFlowVlanPriorityCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[556] +func (x *PatternFlowVlanPriorityCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[546] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70021,26 +69835,26 @@ func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{556} +// Deprecated: Use PatternFlowVlanPriorityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{546} } -func (x *PatternFlowIpv4DstCounter) GetStart() string { +func (x *PatternFlowVlanPriorityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetStep() string { +func (x *PatternFlowVlanPriorityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { +func (x *PatternFlowVlanPriorityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70050,7 +69864,7 @@ func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { // 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 PatternFlowIpv4DstMetricTag struct { +type PatternFlowVlanPriorityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70064,27 +69878,27 @@ type PatternFlowIpv4DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DstMetricTag) Reset() { - *x = PatternFlowIpv4DstMetricTag{} +func (x *PatternFlowVlanPriorityMetricTag) Reset() { + *x = PatternFlowVlanPriorityMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[557] + mi := &file_otg_proto_msgTypes[547] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DstMetricTag) String() string { +func (x *PatternFlowVlanPriorityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} +func (*PatternFlowVlanPriorityMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[557] +func (x *PatternFlowVlanPriorityMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[547] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70095,161 +69909,74 @@ func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{557} +// Deprecated: Use PatternFlowVlanPriorityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriorityMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{547} } -func (x *PatternFlowIpv4DstMetricTag) GetName() string { +func (x *PatternFlowVlanPriorityMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanPriorityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ipv4 random pattern -type PatternFlowIpv4DstRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0.0.0.0 - Min *string `protobuf:"bytes,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 255.255.255.255 - Max *string `protobuf:"bytes,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowIpv4DstRandom) Reset() { - *x = PatternFlowIpv4DstRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[558] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4DstRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4DstRandom) ProtoMessage() {} - -func (x *PatternFlowIpv4DstRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[558] - 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 PatternFlowIpv4DstRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DstRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{558} -} - -func (x *PatternFlowIpv4DstRandom) GetMin() string { - if x != nil && x.Min != nil { - return *x.Min - } - return "" -} - -func (x *PatternFlowIpv4DstRandom) GetMax() string { - if x != nil && x.Max != nil { - return *x.Max - } - return "" -} - -func (x *PatternFlowIpv4DstRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowIpv4DstRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Destination address -type PatternFlowIpv4Dst struct { +// Priority code point +type PatternFlowVlanPriority struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanPriority_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanPriority_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"` + // default = 0 + Value *uint32 `protobuf:"varint,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"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Auto *FlowIpv4Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` - // Description missing in models - Random *PatternFlowIpv4DstRandom `protobuf:"bytes,9,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4Dst) Reset() { - *x = PatternFlowIpv4Dst{} +func (x *PatternFlowVlanPriority) Reset() { + *x = PatternFlowVlanPriority{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[559] + mi := &file_otg_proto_msgTypes[548] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst) String() string { +func (x *PatternFlowVlanPriority) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst) ProtoMessage() {} +func (*PatternFlowVlanPriority) ProtoMessage() {} -func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[559] +func (x *PatternFlowVlanPriority) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[548] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70260,69 +69987,55 @@ func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{559} +// Deprecated: Use PatternFlowVlanPriority.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{548} } -func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { +func (x *PatternFlowVlanPriority) GetChoice() PatternFlowVlanPriority_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4Dst_Choice_unspecified + return PatternFlowVlanPriority_Choice_unspecified } -func (x *PatternFlowIpv4Dst) GetValue() string { +func (x *PatternFlowVlanPriority) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowIpv4Dst) GetValues() []string { +func (x *PatternFlowVlanPriority) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowVlanPriority) GetIncrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { +func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { +func (x *PatternFlowVlanPriority) GetMetricTags() []*PatternFlowVlanPriorityMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowIpv4Dst) GetAuto() *FlowIpv4Auto { - if x != nil { - return x.Auto - } - return nil -} - -func (x *PatternFlowIpv4Dst) GetRandom() *PatternFlowIpv4DstRandom { - if x != nil { - return x.Random - } - return nil -} - // integer counter pattern -type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { +type PatternFlowVlanCfiCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70338,23 +70051,23 @@ type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{} +func (x *PatternFlowVlanCfiCounter) Reset() { + *x = PatternFlowVlanCfiCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[560] + mi := &file_otg_proto_msgTypes[549] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { +func (x *PatternFlowVlanCfiCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoMessage() {} +func (*PatternFlowVlanCfiCounter) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[560] +func (x *PatternFlowVlanCfiCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[549] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70365,154 +70078,70 @@ func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{560} +// Deprecated: Use PatternFlowVlanCfiCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{549} } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetStart() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetStep() uint32 { +func (x *PatternFlowVlanCfiCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetCount() uint32 { +func (x *PatternFlowVlanCfiCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// This flag indicates this option is copied to all fragments on fragmentations. -type PatternFlowIpv4OptionsCustomTypeCopiedFlag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_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 *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[561] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoMessage() {} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[561] - 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 PatternFlowIpv4OptionsCustomTypeCopiedFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{561} -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetChoice() PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_unspecified -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetIncrement() *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetDecrement() *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { - if x != nil { - return x.Decrement - } - return nil -} - -// integer counter pattern -type PatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { +// 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 PatternFlowVlanCfiMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionClassCounter{} +func (x *PatternFlowVlanCfiMetricTag) Reset() { + *x = PatternFlowVlanCfiMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[562] + mi := &file_otg_proto_msgTypes[550] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { +func (x *PatternFlowVlanCfiMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoMessage() {} +func (*PatternFlowVlanCfiMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[562] +func (x *PatternFlowVlanCfiMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[550] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70523,41 +70152,41 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{562} +// Deprecated: Use PatternFlowVlanCfiMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfiMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{550} } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowVlanCfiMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowVlanCfiMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowVlanCfiMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } return 0 } -// Option class [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. -type PatternFlowIpv4OptionsCustomTypeOptionClass struct { +// Canonical format indicator or drop elegible indicator +type PatternFlowVlanCfi struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanCfi_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanCfi_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"` @@ -70565,28 +70194,32 @@ type PatternFlowIpv4OptionsCustomTypeOptionClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4OptionsCustomTypeOptionClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4OptionsCustomTypeOptionClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionClass{} +func (x *PatternFlowVlanCfi) Reset() { + *x = PatternFlowVlanCfi{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[563] + mi := &file_otg_proto_msgTypes[551] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) String() string { +func (x *PatternFlowVlanCfi) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoMessage() {} +func (*PatternFlowVlanCfi) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[563] +func (x *PatternFlowVlanCfi) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[551] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70597,48 +70230,55 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{563} +// Deprecated: Use PatternFlowVlanCfi.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{551} } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum { +func (x *PatternFlowVlanCfi) GetChoice() PatternFlowVlanCfi_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_unspecified + return PatternFlowVlanCfi_Choice_unspecified } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetValue() uint32 { +func (x *PatternFlowVlanCfi) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetValues() []uint32 { +func (x *PatternFlowVlanCfi) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetIncrement() *PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +func (x *PatternFlowVlanCfi) GetIncrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetDecrement() *PatternFlowIpv4OptionsCustomTypeOptionClassCounter { +func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowVlanCfi) GetMetricTags() []*PatternFlowVlanCfiMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { +type PatternFlowVlanIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70654,23 +70294,23 @@ type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionNumberCounter{} +func (x *PatternFlowVlanIdCounter) Reset() { + *x = PatternFlowVlanIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[564] + mi := &file_otg_proto_msgTypes[552] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string { +func (x *PatternFlowVlanIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoMessage() {} +func (*PatternFlowVlanIdCounter) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[564] +func (x *PatternFlowVlanIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[552] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70681,41 +70321,115 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{564} +// Deprecated: Use PatternFlowVlanIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{552} } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetStart() uint32 { +func (x *PatternFlowVlanIdCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetStep() uint32 { +func (x *PatternFlowVlanIdCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetCount() uint32 { +func (x *PatternFlowVlanIdCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Option Number [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. -type PatternFlowIpv4OptionsCustomTypeOptionNumber struct { +// 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 PatternFlowVlanIdMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 12 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowVlanIdMetricTag) Reset() { + *x = PatternFlowVlanIdMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[553] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowVlanIdMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowVlanIdMetricTag) ProtoMessage() {} + +func (x *PatternFlowVlanIdMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[553] + 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 PatternFlowVlanIdMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanIdMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{553} +} + +func (x *PatternFlowVlanIdMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowVlanIdMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowVlanIdMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Vlan identifier +type PatternFlowVlanId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanId_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"` @@ -70723,28 +70437,32 @@ type PatternFlowIpv4OptionsCustomTypeOptionNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVlanIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionNumber{} +func (x *PatternFlowVlanId) Reset() { + *x = PatternFlowVlanId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[565] + mi := &file_otg_proto_msgTypes[554] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) String() string { +func (x *PatternFlowVlanId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoMessage() {} +func (*PatternFlowVlanId) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[565] +func (x *PatternFlowVlanId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[554] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70755,54 +70473,61 @@ func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{565} +// Deprecated: Use PatternFlowVlanId.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{554} } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum { +func (x *PatternFlowVlanId) GetChoice() PatternFlowVlanId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_unspecified + return PatternFlowVlanId_Choice_unspecified } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetValue() uint32 { +func (x *PatternFlowVlanId) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetValues() []uint32 { +func (x *PatternFlowVlanId) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetIncrement() *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +func (x *PatternFlowVlanId) GetIncrement() *PatternFlowVlanIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetDecrement() *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { +func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowVlanId) GetMetricTags() []*PatternFlowVlanIdMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowIpv4PriorityRawCounter struct { +type PatternFlowVlanTpidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 65535 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -70812,23 +70537,23 @@ type PatternFlowIpv4PriorityRawCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4PriorityRawCounter) Reset() { - *x = PatternFlowIpv4PriorityRawCounter{} +func (x *PatternFlowVlanTpidCounter) Reset() { + *x = PatternFlowVlanTpidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[566] + mi := &file_otg_proto_msgTypes[555] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawCounter) String() string { +func (x *PatternFlowVlanTpidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} +func (*PatternFlowVlanTpidCounter) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[566] +func (x *PatternFlowVlanTpidCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[555] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70839,26 +70564,26 @@ func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{566} +// Deprecated: Use PatternFlowVlanTpidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{555} } -func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { +func (x *PatternFlowVlanTpidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { +func (x *PatternFlowVlanTpidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -70868,7 +70593,7 @@ func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { // 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 PatternFlowIpv4PriorityRawMetricTag struct { +type PatternFlowVlanTpidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70882,27 +70607,27 @@ type PatternFlowIpv4PriorityRawMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { - *x = PatternFlowIpv4PriorityRawMetricTag{} +func (x *PatternFlowVlanTpidMetricTag) Reset() { + *x = PatternFlowVlanTpidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[567] + mi := &file_otg_proto_msgTypes[556] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { +func (x *PatternFlowVlanTpidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} +func (*PatternFlowVlanTpidMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[567] +func (x *PatternFlowVlanTpidMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[556] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70913,74 +70638,74 @@ func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{567} +// Deprecated: Use PatternFlowVlanTpidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpidMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{556} } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { +func (x *PatternFlowVlanTpidMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { +func (x *PatternFlowVlanTpidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Raw priority -type PatternFlowIpv4PriorityRaw struct { +// Protocol identifier +type PatternFlowVlanTpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVlanTpid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVlanTpid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 65535 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [65535] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4PriorityRaw) Reset() { - *x = PatternFlowIpv4PriorityRaw{} +func (x *PatternFlowVlanTpid) Reset() { + *x = PatternFlowVlanTpid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[568] + mi := &file_otg_proto_msgTypes[557] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw) String() string { +func (x *PatternFlowVlanTpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} +func (*PatternFlowVlanTpid) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[568] +func (x *PatternFlowVlanTpid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[557] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -70991,47 +70716,47 @@ func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{568} +// Deprecated: Use PatternFlowVlanTpid.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557} } -func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { +func (x *PatternFlowVlanTpid) GetChoice() PatternFlowVlanTpid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4PriorityRaw_Choice_unspecified + return PatternFlowVlanTpid_Choice_unspecified } -func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { +func (x *PatternFlowVlanTpid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { +func (x *PatternFlowVlanTpid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowVlanTpid) GetIncrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { +func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { +func (x *PatternFlowVlanTpid) GetMetricTags() []*PatternFlowVlanTpidMetricTag { if x != nil { return x.MetricTags } @@ -71039,13 +70764,13 @@ func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityR } // integer counter pattern -type PatternFlowIpv4DscpPhbCounter struct { +type PatternFlowVxlanFlagsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -71055,23 +70780,23 @@ type PatternFlowIpv4DscpPhbCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpPhbCounter) Reset() { - *x = PatternFlowIpv4DscpPhbCounter{} +func (x *PatternFlowVxlanFlagsCounter) Reset() { + *x = PatternFlowVxlanFlagsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[569] + mi := &file_otg_proto_msgTypes[558] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbCounter) String() string { +func (x *PatternFlowVxlanFlagsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} +func (*PatternFlowVxlanFlagsCounter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[569] +func (x *PatternFlowVxlanFlagsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[558] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71082,26 +70807,26 @@ func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{569} +// Deprecated: Use PatternFlowVxlanFlagsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{558} } -func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { +func (x *PatternFlowVxlanFlagsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71111,7 +70836,7 @@ func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { // 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 struct { +type PatternFlowVxlanFlagsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71125,27 +70850,27 @@ type PatternFlowIpv4DscpPhbMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 6 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { - *x = PatternFlowIpv4DscpPhbMetricTag{} +func (x *PatternFlowVxlanFlagsMetricTag) Reset() { + *x = PatternFlowVxlanFlagsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[570] + mi := &file_otg_proto_msgTypes[559] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { +func (x *PatternFlowVxlanFlagsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanFlagsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[570] +func (x *PatternFlowVxlanFlagsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[559] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71156,74 +70881,76 @@ func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{570} +// Deprecated: Use PatternFlowVxlanFlagsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlagsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{559} } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { +func (x *PatternFlowVxlanFlagsMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanFlagsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Per hop behavior -type PatternFlowIpv4DscpPhb struct { +// Flags field with a bit format of RRRRIRRR. The I flag MUST be set to 1 for a valid +// vxlan network id (VNI). The other 7 bits (designated R) are reserved fields and +// MUST be set to zero on transmission and ignored on receipt. +type PatternFlowVxlanFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanFlags_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpPhb) Reset() { - *x = PatternFlowIpv4DscpPhb{} +func (x *PatternFlowVxlanFlags) Reset() { + *x = PatternFlowVxlanFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[571] + mi := &file_otg_proto_msgTypes[560] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb) String() string { +func (x *PatternFlowVxlanFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} +func (*PatternFlowVxlanFlags) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[571] +func (x *PatternFlowVxlanFlags) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[560] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71234,47 +70961,47 @@ func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{571} +// Deprecated: Use PatternFlowVxlanFlags.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560} } -func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { +func (x *PatternFlowVxlanFlags) GetChoice() PatternFlowVxlanFlags_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpPhb_Choice_unspecified + return PatternFlowVxlanFlags_Choice_unspecified } -func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { +func (x *PatternFlowVxlanFlags) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { +func (x *PatternFlowVxlanFlags) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowVxlanFlags) GetIncrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { +func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { +func (x *PatternFlowVxlanFlags) GetMetricTags() []*PatternFlowVxlanFlagsMetricTag { if x != nil { return x.MetricTags } @@ -71282,7 +71009,7 @@ func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetric } // integer counter pattern -type PatternFlowIpv4DscpEcnCounter struct { +type PatternFlowVxlanReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71298,23 +71025,23 @@ type PatternFlowIpv4DscpEcnCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4DscpEcnCounter) Reset() { - *x = PatternFlowIpv4DscpEcnCounter{} +func (x *PatternFlowVxlanReserved0Counter) Reset() { + *x = PatternFlowVxlanReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[572] + mi := &file_otg_proto_msgTypes[561] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnCounter) String() string { +func (x *PatternFlowVxlanReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved0Counter) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[572] +func (x *PatternFlowVxlanReserved0Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[561] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71325,26 +71052,26 @@ func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{572} +// Deprecated: Use PatternFlowVxlanReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{561} } -func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71354,7 +71081,7 @@ func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { // 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 struct { +type PatternFlowVxlanReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71368,27 +71095,27 @@ type PatternFlowIpv4DscpEcnMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 2 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { - *x = PatternFlowIpv4DscpEcnMetricTag{} +func (x *PatternFlowVxlanReserved0MetricTag) Reset() { + *x = PatternFlowVxlanReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[573] + mi := &file_otg_proto_msgTypes[562] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { +func (x *PatternFlowVxlanReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[573] +func (x *PatternFlowVxlanReserved0MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[562] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71399,41 +71126,41 @@ func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{573} +// Deprecated: Use PatternFlowVxlanReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{562} } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved0MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification -type PatternFlowIpv4DscpEcn struct { +// Reserved field +type PatternFlowVxlanReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved0_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"` @@ -71441,32 +71168,32 @@ type PatternFlowIpv4DscpEcn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4DscpEcn) Reset() { - *x = PatternFlowIpv4DscpEcn{} +func (x *PatternFlowVxlanReserved0) Reset() { + *x = PatternFlowVxlanReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[574] + mi := &file_otg_proto_msgTypes[563] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn) String() string { +func (x *PatternFlowVxlanReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} +func (*PatternFlowVxlanReserved0) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[574] +func (x *PatternFlowVxlanReserved0) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[563] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71477,47 +71204,47 @@ func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{574} +// Deprecated: Use PatternFlowVxlanReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563} } -func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { +func (x *PatternFlowVxlanReserved0) GetChoice() PatternFlowVxlanReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4DscpEcn_Choice_unspecified + return PatternFlowVxlanReserved0_Choice_unspecified } -func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { +func (x *PatternFlowVxlanReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowVxlanReserved0) GetIncrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { +func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { +func (x *PatternFlowVxlanReserved0) GetMetricTags() []*PatternFlowVxlanReserved0MetricTag { if x != nil { return x.MetricTags } @@ -71525,7 +71252,7 @@ func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetric } // integer counter pattern -type PatternFlowIpv4TosPrecedenceCounter struct { +type PatternFlowVxlanVniCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71541,23 +71268,23 @@ type PatternFlowIpv4TosPrecedenceCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { - *x = PatternFlowIpv4TosPrecedenceCounter{} +func (x *PatternFlowVxlanVniCounter) Reset() { + *x = PatternFlowVxlanVniCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[575] + mi := &file_otg_proto_msgTypes[564] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { +func (x *PatternFlowVxlanVniCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} +func (*PatternFlowVxlanVniCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[575] +func (x *PatternFlowVxlanVniCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[564] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71568,26 +71295,26 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{575} +// Deprecated: Use PatternFlowVxlanVniCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{564} } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { +func (x *PatternFlowVxlanVniCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { +func (x *PatternFlowVxlanVniCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71597,7 +71324,7 @@ func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { // 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 struct { +type PatternFlowVxlanVniMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71611,27 +71338,27 @@ type PatternFlowIpv4TosPrecedenceMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { - *x = PatternFlowIpv4TosPrecedenceMetricTag{} +func (x *PatternFlowVxlanVniMetricTag) Reset() { + *x = PatternFlowVxlanVniMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[576] + mi := &file_otg_proto_msgTypes[565] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { +func (x *PatternFlowVxlanVniMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanVniMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[576] +func (x *PatternFlowVxlanVniMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[565] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71642,74 +71369,79 @@ func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{576} +// Deprecated: Use PatternFlowVxlanVniMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVniMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{565} } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { +func (x *PatternFlowVxlanVniMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanVniMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Precedence -type PatternFlowIpv4TosPrecedence struct { +// VXLAN network id +type PatternFlowVxlanVni struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowVxlanVni_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanVni_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"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosPrecedence) Reset() { - *x = PatternFlowIpv4TosPrecedence{} +func (x *PatternFlowVxlanVni) Reset() { + *x = PatternFlowVxlanVni{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[577] + mi := &file_otg_proto_msgTypes[566] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence) String() string { +func (x *PatternFlowVxlanVni) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} +func (*PatternFlowVxlanVni) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[577] +func (x *PatternFlowVxlanVni) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[566] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71720,47 +71452,54 @@ func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{577} +// Deprecated: Use PatternFlowVxlanVni.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566} } -func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { +func (x *PatternFlowVxlanVni) GetChoice() PatternFlowVxlanVni_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosPrecedence_Choice_unspecified + return PatternFlowVxlanVni_Choice_unspecified } -func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { +func (x *PatternFlowVxlanVni) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { +func (x *PatternFlowVxlanVni) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowVxlanVni) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowVxlanVni) GetIncrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { +func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { +func (x *PatternFlowVxlanVni) GetMetricTags() []*PatternFlowVxlanVniMetricTag { if x != nil { return x.MetricTags } @@ -71768,7 +71507,7 @@ func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrec } // integer counter pattern -type PatternFlowIpv4TosDelayCounter struct { +type PatternFlowVxlanReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71784,23 +71523,23 @@ type PatternFlowIpv4TosDelayCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosDelayCounter) Reset() { - *x = PatternFlowIpv4TosDelayCounter{} +func (x *PatternFlowVxlanReserved1Counter) Reset() { + *x = PatternFlowVxlanReserved1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[578] + mi := &file_otg_proto_msgTypes[567] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelayCounter) String() string { +func (x *PatternFlowVxlanReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} +func (*PatternFlowVxlanReserved1Counter) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[578] +func (x *PatternFlowVxlanReserved1Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[567] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71811,26 +71550,26 @@ func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{578} +// Deprecated: Use PatternFlowVxlanReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{567} } -func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { +func (x *PatternFlowVxlanReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -71840,7 +71579,7 @@ func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { // 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 struct { +type PatternFlowVxlanReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -71854,27 +71593,27 @@ type PatternFlowIpv4TosDelayMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { - *x = PatternFlowIpv4TosDelayMetricTag{} +func (x *PatternFlowVxlanReserved1MetricTag) Reset() { + *x = PatternFlowVxlanReserved1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[579] + mi := &file_otg_proto_msgTypes[568] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelayMetricTag) String() string { +func (x *PatternFlowVxlanReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} +func (*PatternFlowVxlanReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[579] +func (x *PatternFlowVxlanReserved1MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[568] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71885,41 +71624,41 @@ func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{579} +// Deprecated: Use PatternFlowVxlanReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{568} } -func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { +func (x *PatternFlowVxlanReserved1MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { +func (x *PatternFlowVxlanReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Delay -type PatternFlowIpv4TosDelay struct { +// Reserved field +type PatternFlowVxlanReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowVxlanReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowVxlanReserved1_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"` @@ -71927,32 +71666,32 @@ type PatternFlowIpv4TosDelay struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosDelay) Reset() { - *x = PatternFlowIpv4TosDelay{} +func (x *PatternFlowVxlanReserved1) Reset() { + *x = PatternFlowVxlanReserved1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[580] + mi := &file_otg_proto_msgTypes[569] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelay) String() string { +func (x *PatternFlowVxlanReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay) ProtoMessage() {} +func (*PatternFlowVxlanReserved1) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[580] +func (x *PatternFlowVxlanReserved1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[569] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -71963,47 +71702,47 @@ func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{580} +// Deprecated: Use PatternFlowVxlanReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569} } -func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { +func (x *PatternFlowVxlanReserved1) GetChoice() PatternFlowVxlanReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosDelay_Choice_unspecified + return PatternFlowVxlanReserved1_Choice_unspecified } -func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { +func (x *PatternFlowVxlanReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { +func (x *PatternFlowVxlanReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowVxlanReserved1) GetIncrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { +func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { +func (x *PatternFlowVxlanReserved1) GetMetricTags() []*PatternFlowVxlanReserved1MetricTag { if x != nil { return x.MetricTags } @@ -72011,13 +71750,13 @@ func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetr } // integer counter pattern -type PatternFlowIpv4TosThroughputCounter struct { +type PatternFlowIpv4VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72027,23 +71766,23 @@ type PatternFlowIpv4TosThroughputCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosThroughputCounter) Reset() { - *x = PatternFlowIpv4TosThroughputCounter{} +func (x *PatternFlowIpv4VersionCounter) Reset() { + *x = PatternFlowIpv4VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[581] + mi := &file_otg_proto_msgTypes[570] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughputCounter) String() string { +func (x *PatternFlowIpv4VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} +func (*PatternFlowIpv4VersionCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[581] +func (x *PatternFlowIpv4VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[570] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72054,26 +71793,26 @@ func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{581} +// Deprecated: Use PatternFlowIpv4VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{570} } -func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { +func (x *PatternFlowIpv4VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72083,7 +71822,7 @@ func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { // 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 struct { +type PatternFlowIpv4VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72097,27 +71836,27 @@ type PatternFlowIpv4TosThroughputMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { - *x = PatternFlowIpv4TosThroughputMetricTag{} +func (x *PatternFlowIpv4VersionMetricTag) Reset() { + *x = PatternFlowIpv4VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[582] + mi := &file_otg_proto_msgTypes[571] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { +func (x *PatternFlowIpv4VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[582] +func (x *PatternFlowIpv4VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[571] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72128,74 +71867,74 @@ func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{582} +// Deprecated: Use PatternFlowIpv4VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{571} } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { +func (x *PatternFlowIpv4VersionMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Throughput -type PatternFlowIpv4TosThroughput struct { +// Version +type PatternFlowIpv4Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosThroughput) Reset() { - *x = PatternFlowIpv4TosThroughput{} +func (x *PatternFlowIpv4Version) Reset() { + *x = PatternFlowIpv4Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[583] + mi := &file_otg_proto_msgTypes[572] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughput) String() string { +func (x *PatternFlowIpv4Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} +func (*PatternFlowIpv4Version) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[583] +func (x *PatternFlowIpv4Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[572] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72206,47 +71945,47 @@ func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{583} +// Deprecated: Use PatternFlowIpv4Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{572} } -func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { +func (x *PatternFlowIpv4Version) GetChoice() PatternFlowIpv4Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosThroughput_Choice_unspecified + return PatternFlowIpv4Version_Choice_unspecified } -func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { +func (x *PatternFlowIpv4Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { +func (x *PatternFlowIpv4Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Version) GetIncrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { +func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { +func (x *PatternFlowIpv4Version) GetMetricTags() []*PatternFlowIpv4VersionMetricTag { if x != nil { return x.MetricTags } @@ -72254,13 +71993,13 @@ func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThro } // integer counter pattern -type PatternFlowIpv4TosReliabilityCounter struct { +type PatternFlowIpv4HeaderLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 5 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72270,23 +72009,23 @@ type PatternFlowIpv4TosReliabilityCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { - *x = PatternFlowIpv4TosReliabilityCounter{} +func (x *PatternFlowIpv4HeaderLengthCounter) Reset() { + *x = PatternFlowIpv4HeaderLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[584] + mi := &file_otg_proto_msgTypes[573] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliabilityCounter) String() string { +func (x *PatternFlowIpv4HeaderLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[584] +func (x *PatternFlowIpv4HeaderLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[573] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72297,26 +72036,26 @@ func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{584} +// Deprecated: Use PatternFlowIpv4HeaderLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{573} } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { +func (x *PatternFlowIpv4HeaderLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72326,7 +72065,7 @@ func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { // 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 struct { +type PatternFlowIpv4HeaderLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72340,27 +72079,27 @@ type PatternFlowIpv4TosReliabilityMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { - *x = PatternFlowIpv4TosReliabilityMetricTag{} +func (x *PatternFlowIpv4HeaderLengthMetricTag) Reset() { + *x = PatternFlowIpv4HeaderLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[585] + mi := &file_otg_proto_msgTypes[574] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[585] +func (x *PatternFlowIpv4HeaderLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[574] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72371,74 +72110,79 @@ func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{585} +// Deprecated: Use PatternFlowIpv4HeaderLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{574} } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4HeaderLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reliability -type PatternFlowIpv4TosReliability struct { +// Header length +type PatternFlowIpv4HeaderLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4HeaderLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 5 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [5] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 5 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosReliability) Reset() { - *x = PatternFlowIpv4TosReliability{} +func (x *PatternFlowIpv4HeaderLength) Reset() { + *x = PatternFlowIpv4HeaderLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[586] + mi := &file_otg_proto_msgTypes[575] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliability) String() string { +func (x *PatternFlowIpv4HeaderLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[586] +func (x *PatternFlowIpv4HeaderLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[575] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72449,47 +72193,54 @@ func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{586} +// Deprecated: Use PatternFlowIpv4HeaderLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{575} } -func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { +func (x *PatternFlowIpv4HeaderLength) GetChoice() PatternFlowIpv4HeaderLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosReliability_Choice_unspecified + return PatternFlowIpv4HeaderLength_Choice_unspecified } -func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { +func (x *PatternFlowIpv4HeaderLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4HeaderLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4HeaderLength) GetIncrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { +func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { +func (x *PatternFlowIpv4HeaderLength) GetMetricTags() []*PatternFlowIpv4HeaderLengthMetricTag { if x != nil { return x.MetricTags } @@ -72497,13 +72248,13 @@ func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosRel } // integer counter pattern -type PatternFlowIpv4TosMonetaryCounter struct { +type PatternFlowIpv4TotalLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 46 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72513,23 +72264,23 @@ type PatternFlowIpv4TosMonetaryCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { - *x = PatternFlowIpv4TosMonetaryCounter{} +func (x *PatternFlowIpv4TotalLengthCounter) Reset() { + *x = PatternFlowIpv4TotalLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[587] + mi := &file_otg_proto_msgTypes[576] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetaryCounter) String() string { +func (x *PatternFlowIpv4TotalLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[587] +func (x *PatternFlowIpv4TotalLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[576] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72540,26 +72291,26 @@ func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{587} +// Deprecated: Use PatternFlowIpv4TotalLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{576} } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TotalLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72569,7 +72320,7 @@ func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { // 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 struct { +type PatternFlowIpv4TotalLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72583,27 +72334,27 @@ type PatternFlowIpv4TosMonetaryMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { - *x = PatternFlowIpv4TosMonetaryMetricTag{} +func (x *PatternFlowIpv4TotalLengthMetricTag) Reset() { + *x = PatternFlowIpv4TotalLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[588] + mi := &file_otg_proto_msgTypes[577] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TotalLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[588] +func (x *PatternFlowIpv4TotalLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[577] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72614,74 +72365,79 @@ func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{588} +// Deprecated: Use PatternFlowIpv4TotalLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{577} } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TotalLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Monetary -type PatternFlowIpv4TosMonetary struct { +// Total length +type PatternFlowIpv4TotalLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4TotalLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TotalLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 46 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [46] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 46 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosMonetary) Reset() { - *x = PatternFlowIpv4TosMonetary{} +func (x *PatternFlowIpv4TotalLength) Reset() { + *x = PatternFlowIpv4TotalLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[589] + mi := &file_otg_proto_msgTypes[578] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetary) String() string { +func (x *PatternFlowIpv4TotalLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[589] +func (x *PatternFlowIpv4TotalLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[578] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72692,47 +72448,54 @@ func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{589} +// Deprecated: Use PatternFlowIpv4TotalLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{578} } -func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { +func (x *PatternFlowIpv4TotalLength) GetChoice() PatternFlowIpv4TotalLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosMonetary_Choice_unspecified + return PatternFlowIpv4TotalLength_Choice_unspecified } -func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { +func (x *PatternFlowIpv4TotalLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { +func (x *PatternFlowIpv4TotalLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4TotalLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4TotalLength) GetIncrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { +func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { +func (x *PatternFlowIpv4TotalLength) GetMetricTags() []*PatternFlowIpv4TotalLengthMetricTag { if x != nil { return x.MetricTags } @@ -72740,7 +72503,7 @@ func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMoneta } // integer counter pattern -type PatternFlowIpv4TosUnusedCounter struct { +type PatternFlowIpv4IdentificationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72756,23 +72519,23 @@ type PatternFlowIpv4TosUnusedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv4TosUnusedCounter) Reset() { - *x = PatternFlowIpv4TosUnusedCounter{} +func (x *PatternFlowIpv4IdentificationCounter) Reset() { + *x = PatternFlowIpv4IdentificationCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[590] + mi := &file_otg_proto_msgTypes[579] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnusedCounter) String() string { +func (x *PatternFlowIpv4IdentificationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationCounter) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[590] +func (x *PatternFlowIpv4IdentificationCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[579] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72783,26 +72546,26 @@ func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{590} +// Deprecated: Use PatternFlowIpv4IdentificationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{579} } -func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { +func (x *PatternFlowIpv4IdentificationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -72812,7 +72575,7 @@ func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { // 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 struct { +type PatternFlowIpv4IdentificationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -72826,27 +72589,27 @@ type PatternFlowIpv4TosUnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { - *x = PatternFlowIpv4TosUnusedMetricTag{} +func (x *PatternFlowIpv4IdentificationMetricTag) Reset() { + *x = PatternFlowIpv4IdentificationMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[591] + mi := &file_otg_proto_msgTypes[580] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { +func (x *PatternFlowIpv4IdentificationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4IdentificationMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[591] +func (x *PatternFlowIpv4IdentificationMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[580] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72857,41 +72620,41 @@ func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{591} +// Deprecated: Use PatternFlowIpv4IdentificationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4IdentificationMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{580} } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { +func (x *PatternFlowIpv4IdentificationMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4IdentificationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIpv4TosUnused struct { +// Identification +type PatternFlowIpv4Identification struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Identification_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Identification_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"` @@ -72899,32 +72662,32 @@ type PatternFlowIpv4TosUnused struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv4TosUnused) Reset() { - *x = PatternFlowIpv4TosUnused{} +func (x *PatternFlowIpv4Identification) Reset() { + *x = PatternFlowIpv4Identification{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[592] + mi := &file_otg_proto_msgTypes[581] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnused) String() string { +func (x *PatternFlowIpv4Identification) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused) ProtoMessage() {} +func (*PatternFlowIpv4Identification) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[592] +func (x *PatternFlowIpv4Identification) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[581] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -72935,47 +72698,47 @@ func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{592} +// Deprecated: Use PatternFlowIpv4Identification.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{581} } -func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { +func (x *PatternFlowIpv4Identification) GetChoice() PatternFlowIpv4Identification_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv4TosUnused_Choice_unspecified + return PatternFlowIpv4Identification_Choice_unspecified } -func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { +func (x *PatternFlowIpv4Identification) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { +func (x *PatternFlowIpv4Identification) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4Identification) GetIncrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { +func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4IdentificationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { +func (x *PatternFlowIpv4Identification) GetMetricTags() []*PatternFlowIpv4IdentificationMetricTag { if x != nil { return x.MetricTags } @@ -72983,13 +72746,13 @@ func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMe } // integer counter pattern -type PatternFlowIpv6VersionCounter struct { +type PatternFlowIpv4ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -72999,23 +72762,23 @@ type PatternFlowIpv6VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6VersionCounter) Reset() { - *x = PatternFlowIpv6VersionCounter{} +func (x *PatternFlowIpv4ReservedCounter) Reset() { + *x = PatternFlowIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[593] + mi := &file_otg_proto_msgTypes[582] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6VersionCounter) String() string { +func (x *PatternFlowIpv4ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} +func (*PatternFlowIpv4ReservedCounter) ProtoMessage() {} -func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[593] +func (x *PatternFlowIpv4ReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[582] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73026,26 +72789,26 @@ func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{593} +// Deprecated: Use PatternFlowIpv4ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{582} } -func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { +func (x *PatternFlowIpv4ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { +func (x *PatternFlowIpv4ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73055,7 +72818,7 @@ func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { // 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 PatternFlowIpv6VersionMetricTag struct { +type PatternFlowIpv4ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73069,27 +72832,27 @@ type PatternFlowIpv6VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6VersionMetricTag) Reset() { - *x = PatternFlowIpv6VersionMetricTag{} +func (x *PatternFlowIpv4ReservedMetricTag) Reset() { + *x = PatternFlowIpv4ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[594] + mi := &file_otg_proto_msgTypes[583] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6VersionMetricTag) String() string { +func (x *PatternFlowIpv4ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[594] +func (x *PatternFlowIpv4ReservedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[583] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73100,74 +72863,74 @@ func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{594} +// Deprecated: Use PatternFlowIpv4ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ReservedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{583} } -func (x *PatternFlowIpv6VersionMetricTag) GetName() string { +func (x *PatternFlowIpv4ReservedMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIpv6Version struct { +// Reserved flag. +type PatternFlowIpv4Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6Version) Reset() { - *x = PatternFlowIpv6Version{} +func (x *PatternFlowIpv4Reserved) Reset() { + *x = PatternFlowIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[595] + mi := &file_otg_proto_msgTypes[584] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Version) String() string { +func (x *PatternFlowIpv4Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version) ProtoMessage() {} +func (*PatternFlowIpv4Reserved) ProtoMessage() {} -func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[595] +func (x *PatternFlowIpv4Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[584] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73178,47 +72941,47 @@ func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{595} +// Deprecated: Use PatternFlowIpv4Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{584} } -func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { +func (x *PatternFlowIpv4Reserved) GetChoice() PatternFlowIpv4Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Version_Choice_unspecified + return PatternFlowIpv4Reserved_Choice_unspecified } -func (x *PatternFlowIpv6Version) GetValue() uint32 { +func (x *PatternFlowIpv4Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6Version) GetValues() []uint32 { +func (x *PatternFlowIpv4Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4Reserved) GetIncrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { +func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { +func (x *PatternFlowIpv4Reserved) GetMetricTags() []*PatternFlowIpv4ReservedMetricTag { if x != nil { return x.MetricTags } @@ -73226,7 +72989,7 @@ func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetric } // integer counter pattern -type PatternFlowIpv6TrafficClassCounter struct { +type PatternFlowIpv4DontFragmentCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73242,23 +73005,23 @@ type PatternFlowIpv6TrafficClassCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6TrafficClassCounter) Reset() { - *x = PatternFlowIpv6TrafficClassCounter{} +func (x *PatternFlowIpv4DontFragmentCounter) Reset() { + *x = PatternFlowIpv4DontFragmentCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[596] + mi := &file_otg_proto_msgTypes[585] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClassCounter) String() string { +func (x *PatternFlowIpv4DontFragmentCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentCounter) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[596] +func (x *PatternFlowIpv4DontFragmentCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[585] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73269,26 +73032,26 @@ func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{596} +// Deprecated: Use PatternFlowIpv4DontFragmentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{585} } -func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DontFragmentCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DontFragmentCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DontFragmentCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73298,7 +73061,7 @@ func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { // 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 PatternFlowIpv6TrafficClassMetricTag struct { +type PatternFlowIpv4DontFragmentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73312,27 +73075,27 @@ type PatternFlowIpv6TrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { - *x = PatternFlowIpv6TrafficClassMetricTag{} +func (x *PatternFlowIpv4DontFragmentMetricTag) Reset() { + *x = PatternFlowIpv4DontFragmentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[597] + mi := &file_otg_proto_msgTypes[586] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DontFragmentMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[597] +func (x *PatternFlowIpv4DontFragmentMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[586] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73343,41 +73106,42 @@ func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{597} +// Deprecated: Use PatternFlowIpv4DontFragmentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragmentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{586} } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DontFragmentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowIpv6TrafficClass struct { +// Dont fragment flag If the dont_fragment flag is set and fragmentation is required +// to route the packet then the packet is dropped. +type PatternFlowIpv4DontFragment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DontFragment_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DontFragment_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"` @@ -73385,32 +73149,32 @@ type PatternFlowIpv6TrafficClass struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6TrafficClass) Reset() { - *x = PatternFlowIpv6TrafficClass{} +func (x *PatternFlowIpv4DontFragment) Reset() { + *x = PatternFlowIpv4DontFragment{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[598] + mi := &file_otg_proto_msgTypes[587] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClass) String() string { +func (x *PatternFlowIpv4DontFragment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[598] +func (x *PatternFlowIpv4DontFragment) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[587] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73421,47 +73185,47 @@ func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{598} +// Deprecated: Use PatternFlowIpv4DontFragment.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{587} } -func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { +func (x *PatternFlowIpv4DontFragment) GetChoice() PatternFlowIpv4DontFragment_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6TrafficClass_Choice_unspecified + return PatternFlowIpv4DontFragment_Choice_unspecified } -func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { +func (x *PatternFlowIpv4DontFragment) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { +func (x *PatternFlowIpv4DontFragment) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4DontFragment) GetIncrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { +func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { +func (x *PatternFlowIpv4DontFragment) GetMetricTags() []*PatternFlowIpv4DontFragmentMetricTag { if x != nil { return x.MetricTags } @@ -73469,7 +73233,7 @@ func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficC } // integer counter pattern -type PatternFlowIpv6FlowLabelCounter struct { +type PatternFlowIpv4MoreFragmentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73485,23 +73249,23 @@ type PatternFlowIpv6FlowLabelCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6FlowLabelCounter) Reset() { - *x = PatternFlowIpv6FlowLabelCounter{} +func (x *PatternFlowIpv4MoreFragmentsCounter) Reset() { + *x = PatternFlowIpv4MoreFragmentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[599] + mi := &file_otg_proto_msgTypes[588] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabelCounter) String() string { +func (x *PatternFlowIpv4MoreFragmentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsCounter) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[599] +func (x *PatternFlowIpv4MoreFragmentsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[588] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73512,26 +73276,26 @@ func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{599} +// Deprecated: Use PatternFlowIpv4MoreFragmentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{588} } -func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { +func (x *PatternFlowIpv4MoreFragmentsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73541,7 +73305,7 @@ func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { // 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 PatternFlowIpv6FlowLabelMetricTag struct { +type PatternFlowIpv4MoreFragmentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73555,27 +73319,27 @@ type PatternFlowIpv6FlowLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { - *x = PatternFlowIpv6FlowLabelMetricTag{} +func (x *PatternFlowIpv4MoreFragmentsMetricTag) Reset() { + *x = PatternFlowIpv4MoreFragmentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[600] + mi := &file_otg_proto_msgTypes[589] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragmentsMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[600] +func (x *PatternFlowIpv4MoreFragmentsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[589] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73586,124 +73350,41 @@ func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{600} +// Deprecated: Use PatternFlowIpv4MoreFragmentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragmentsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{589} } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4MoreFragmentsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// integer random pattern -type PatternFlowIpv6FlowLabelRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 1048575 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowIpv6FlowLabelRandom) Reset() { - *x = PatternFlowIpv6FlowLabelRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[601] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIpv6FlowLabelRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIpv6FlowLabelRandom) ProtoMessage() {} - -func (x *PatternFlowIpv6FlowLabelRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[601] - 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 PatternFlowIpv6FlowLabelRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabelRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{601} -} - -func (x *PatternFlowIpv6FlowLabelRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min - } - return 0 -} - -func (x *PatternFlowIpv6FlowLabelRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max - } - return 0 -} - -func (x *PatternFlowIpv6FlowLabelRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowIpv6FlowLabelRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Flow label -type PatternFlowIpv6FlowLabel struct { +// More fragments flag +type PatternFlowIpv4MoreFragments struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4MoreFragments_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4MoreFragments_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"` @@ -73711,34 +73392,32 @@ type PatternFlowIpv6FlowLabel struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Random *PatternFlowIpv6FlowLabelRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6FlowLabel) Reset() { - *x = PatternFlowIpv6FlowLabel{} +func (x *PatternFlowIpv4MoreFragments) Reset() { + *x = PatternFlowIpv4MoreFragments{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[602] + mi := &file_otg_proto_msgTypes[590] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabel) String() string { +func (x *PatternFlowIpv4MoreFragments) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[602] +func (x *PatternFlowIpv4MoreFragments) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[590] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73749,62 +73428,55 @@ func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{602} +// Deprecated: Use PatternFlowIpv4MoreFragments.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{590} } -func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { +func (x *PatternFlowIpv4MoreFragments) GetChoice() PatternFlowIpv4MoreFragments_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6FlowLabel_Choice_unspecified + return PatternFlowIpv4MoreFragments_Choice_unspecified } -func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { +func (x *PatternFlowIpv4MoreFragments) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4MoreFragments) GetIncrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { +func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragmentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { +func (x *PatternFlowIpv4MoreFragments) GetMetricTags() []*PatternFlowIpv4MoreFragmentsMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowIpv6FlowLabel) GetRandom() *PatternFlowIpv6FlowLabelRandom { - if x != nil { - return x.Random - } - return nil -} - // integer counter pattern -type PatternFlowIpv6PayloadLengthCounter struct { +type PatternFlowIpv4FragmentOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73820,23 +73492,23 @@ type PatternFlowIpv6PayloadLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { - *x = PatternFlowIpv6PayloadLengthCounter{} +func (x *PatternFlowIpv4FragmentOffsetCounter) Reset() { + *x = PatternFlowIpv4FragmentOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[603] + mi := &file_otg_proto_msgTypes[591] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLengthCounter) String() string { +func (x *PatternFlowIpv4FragmentOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetCounter) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[603] +func (x *PatternFlowIpv4FragmentOffsetCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[591] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73847,26 +73519,26 @@ func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{603} +// Deprecated: Use PatternFlowIpv4FragmentOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{591} } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { +func (x *PatternFlowIpv4FragmentOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -73876,7 +73548,7 @@ func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { // 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 PatternFlowIpv6PayloadLengthMetricTag struct { +type PatternFlowIpv4FragmentOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -73890,27 +73562,27 @@ type PatternFlowIpv6PayloadLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 5 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { - *x = PatternFlowIpv6PayloadLengthMetricTag{} +func (x *PatternFlowIpv4FragmentOffsetMetricTag) Reset() { + *x = PatternFlowIpv4FragmentOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[604] + mi := &file_otg_proto_msgTypes[592] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[604] +func (x *PatternFlowIpv4FragmentOffsetMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[592] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -73921,79 +73593,74 @@ func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{604} +// Deprecated: Use PatternFlowIpv4FragmentOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffsetMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{592} } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4FragmentOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Payload length -type PatternFlowIpv6PayloadLength struct { +// Fragment offset +type PatternFlowIpv4FragmentOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4FragmentOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4FragmentOffset_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"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 0 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6PayloadLength) Reset() { - *x = PatternFlowIpv6PayloadLength{} +func (x *PatternFlowIpv4FragmentOffset) Reset() { + *x = PatternFlowIpv4FragmentOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[605] + mi := &file_otg_proto_msgTypes[593] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLength) String() string { +func (x *PatternFlowIpv4FragmentOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[605] +func (x *PatternFlowIpv4FragmentOffset) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[593] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74004,54 +73671,47 @@ func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{605} +// Deprecated: Use PatternFlowIpv4FragmentOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{593} } -func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { +func (x *PatternFlowIpv4FragmentOffset) GetChoice() PatternFlowIpv4FragmentOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6PayloadLength_Choice_unspecified + return PatternFlowIpv4FragmentOffset_Choice_unspecified } -func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { +func (x *PatternFlowIpv4FragmentOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4FragmentOffset) GetIncrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { +func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { +func (x *PatternFlowIpv4FragmentOffset) GetMetricTags() []*PatternFlowIpv4FragmentOffsetMetricTag { if x != nil { return x.MetricTags } @@ -74059,13 +73719,13 @@ func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6Payload } // integer counter pattern -type PatternFlowIpv6NextHeaderCounter struct { +type PatternFlowIpv4TimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 59 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -74075,23 +73735,23 @@ type PatternFlowIpv6NextHeaderCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6NextHeaderCounter) Reset() { - *x = PatternFlowIpv6NextHeaderCounter{} +func (x *PatternFlowIpv4TimeToLiveCounter) Reset() { + *x = PatternFlowIpv4TimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[606] + mi := &file_otg_proto_msgTypes[594] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeaderCounter) String() string { +func (x *PatternFlowIpv4TimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveCounter) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[606] +func (x *PatternFlowIpv4TimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[594] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74102,26 +73762,26 @@ func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{606} +// Deprecated: Use PatternFlowIpv4TimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{594} } -func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { +func (x *PatternFlowIpv4TimeToLiveCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74131,7 +73791,7 @@ func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { // 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 PatternFlowIpv6NextHeaderMetricTag struct { +type PatternFlowIpv4TimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74149,23 +73809,23 @@ type PatternFlowIpv6NextHeaderMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { - *x = PatternFlowIpv6NextHeaderMetricTag{} +func (x *PatternFlowIpv4TimeToLiveMetricTag) Reset() { + *x = PatternFlowIpv4TimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[607] + mi := &file_otg_proto_msgTypes[595] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLiveMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[607] +func (x *PatternFlowIpv4TimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[595] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74176,79 +73836,74 @@ func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{607} +// Deprecated: Use PatternFlowIpv4TimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{595} } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TimeToLiveMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next header -type PatternFlowIpv6NextHeader struct { +// Time to live +type PatternFlowIpv4TimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIpv4TimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 59 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [59] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 59 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6NextHeader) Reset() { - *x = PatternFlowIpv6NextHeader{} +func (x *PatternFlowIpv4TimeToLive) Reset() { + *x = PatternFlowIpv4TimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[608] + mi := &file_otg_proto_msgTypes[596] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeader) String() string { +func (x *PatternFlowIpv4TimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[608] +func (x *PatternFlowIpv4TimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[596] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74259,54 +73914,47 @@ func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{608} +// Deprecated: Use PatternFlowIpv4TimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{596} } -func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { +func (x *PatternFlowIpv4TimeToLive) GetChoice() PatternFlowIpv4TimeToLive_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6NextHeader_Choice_unspecified + return PatternFlowIpv4TimeToLive_Choice_unspecified } -func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { +func (x *PatternFlowIpv4TimeToLive) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TimeToLive) GetIncrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { +func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { +func (x *PatternFlowIpv4TimeToLive) GetMetricTags() []*PatternFlowIpv4TimeToLiveMetricTag { if x != nil { return x.MetricTags } @@ -74314,13 +73962,13 @@ func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeader } // integer counter pattern -type PatternFlowIpv6HopLimitCounter struct { +type PatternFlowIpv4ProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 61 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -74330,23 +73978,23 @@ type PatternFlowIpv6HopLimitCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIpv6HopLimitCounter) Reset() { - *x = PatternFlowIpv6HopLimitCounter{} +func (x *PatternFlowIpv4ProtocolCounter) Reset() { + *x = PatternFlowIpv4ProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[609] + mi := &file_otg_proto_msgTypes[597] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimitCounter) String() string { +func (x *PatternFlowIpv4ProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolCounter) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[609] +func (x *PatternFlowIpv4ProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[597] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74357,26 +74005,26 @@ func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{609} +// Deprecated: Use PatternFlowIpv4ProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{597} } -func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { +func (x *PatternFlowIpv4ProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74386,7 +74034,7 @@ func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { // 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 PatternFlowIpv6HopLimitMetricTag struct { +type PatternFlowIpv4ProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74404,23 +74052,23 @@ type PatternFlowIpv6HopLimitMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { - *x = PatternFlowIpv6HopLimitMetricTag{} +func (x *PatternFlowIpv4ProtocolMetricTag) Reset() { + *x = PatternFlowIpv4ProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[610] + mi := &file_otg_proto_msgTypes[598] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimitMetricTag) String() string { +func (x *PatternFlowIpv4ProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4ProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[610] +func (x *PatternFlowIpv4ProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[598] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74431,74 +74079,79 @@ func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{610} +// Deprecated: Use PatternFlowIpv4ProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4ProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{598} } -func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { +func (x *PatternFlowIpv4ProtocolMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4ProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Hop limit -type PatternFlowIpv6HopLimit struct { +// Protocol, default is 61 any host internal protocol +type PatternFlowIpv4Protocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv4Protocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Protocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 61 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [61] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 61 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIpv6HopLimit) Reset() { - *x = PatternFlowIpv6HopLimit{} +func (x *PatternFlowIpv4Protocol) Reset() { + *x = PatternFlowIpv4Protocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[611] + mi := &file_otg_proto_msgTypes[599] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimit) String() string { +func (x *PatternFlowIpv4Protocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit) ProtoMessage() {} +func (*PatternFlowIpv4Protocol) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[611] +func (x *PatternFlowIpv4Protocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[599] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74509,87 +74162,163 @@ func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{611} +// Deprecated: Use PatternFlowIpv4Protocol.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{599} } -func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { +func (x *PatternFlowIpv4Protocol) GetChoice() PatternFlowIpv4Protocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6HopLimit_Choice_unspecified + return PatternFlowIpv4Protocol_Choice_unspecified } -func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { +func (x *PatternFlowIpv4Protocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { +func (x *PatternFlowIpv4Protocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4Protocol) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv4Protocol) GetIncrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { +func (x *PatternFlowIpv4Protocol) GetDecrement() *PatternFlowIpv4ProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { +func (x *PatternFlowIpv4Protocol) GetMetricTags() []*PatternFlowIpv4ProtocolMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6SrcCounter struct { +// Header checksum +type PatternFlowIpv4HeaderChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIpv4HeaderChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIpv4HeaderChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIpv4HeaderChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIpv4HeaderChecksum) Reset() { + *x = PatternFlowIpv4HeaderChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[600] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4HeaderChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4HeaderChecksum) ProtoMessage() {} + +func (x *PatternFlowIpv4HeaderChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[600] + 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 PatternFlowIpv4HeaderChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600} +} + +func (x *PatternFlowIpv4HeaderChecksum) GetChoice() PatternFlowIpv4HeaderChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIpv4HeaderChecksum_Choice_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetGenerated() PatternFlowIpv4HeaderChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIpv4HeaderChecksum_Generated_unspecified +} + +func (x *PatternFlowIpv4HeaderChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + +// ipv4 counter pattern +type PatternFlowIpv4SrcCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 + // default = 0.0.0.0 Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 + // 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 *PatternFlowIpv6SrcCounter) Reset() { - *x = PatternFlowIpv6SrcCounter{} +func (x *PatternFlowIpv4SrcCounter) Reset() { + *x = PatternFlowIpv4SrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[612] + mi := &file_otg_proto_msgTypes[601] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6SrcCounter) String() string { +func (x *PatternFlowIpv4SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} +func (*PatternFlowIpv4SrcCounter) ProtoMessage() {} -func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[612] +func (x *PatternFlowIpv4SrcCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[601] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74600,26 +74329,26 @@ func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{612} +// Deprecated: Use PatternFlowIpv4SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{601} } -func (x *PatternFlowIpv6SrcCounter) GetStart() string { +func (x *PatternFlowIpv4SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } return "" } -func (x *PatternFlowIpv6SrcCounter) GetStep() string { +func (x *PatternFlowIpv4SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } return "" } -func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv4SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74629,7 +74358,7 @@ func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { // 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 PatternFlowIpv6SrcMetricTag struct { +type PatternFlowIpv4SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74643,27 +74372,27 @@ type PatternFlowIpv6SrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6SrcMetricTag) Reset() { - *x = PatternFlowIpv6SrcMetricTag{} +func (x *PatternFlowIpv4SrcMetricTag) Reset() { + *x = PatternFlowIpv4SrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[613] + mi := &file_otg_proto_msgTypes[602] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6SrcMetricTag) String() string { +func (x *PatternFlowIpv4SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[613] +func (x *PatternFlowIpv4SrcMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[602] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74674,74 +74403,161 @@ func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{613} +// Deprecated: Use PatternFlowIpv4SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{602} } -func (x *PatternFlowIpv6SrcMetricTag) GetName() string { +func (x *PatternFlowIpv4SrcMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } +// ipv4 random pattern +type PatternFlowIpv4SrcRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0.0.0.0 + Min *string `protobuf:"bytes,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 255.255.255.255 + Max *string `protobuf:"bytes,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowIpv4SrcRandom) Reset() { + *x = PatternFlowIpv4SrcRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[603] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4SrcRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4SrcRandom) ProtoMessage() {} + +func (x *PatternFlowIpv4SrcRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[603] + 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 PatternFlowIpv4SrcRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4SrcRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{603} +} + +func (x *PatternFlowIpv4SrcRandom) GetMin() string { + if x != nil && x.Min != nil { + return *x.Min + } + return "" +} + +func (x *PatternFlowIpv4SrcRandom) GetMax() string { + if x != nil && x.Max != nil { + return *x.Max + } + return "" +} + +func (x *PatternFlowIpv4SrcRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowIpv4SrcRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + // Source address -type PatternFlowIpv6Src struct { +type PatternFlowIpv4Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Src_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 + // default = 0.0.0.0 Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] + // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Auto *FlowIpv4Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` + // Description missing in models + Random *PatternFlowIpv4SrcRandom `protobuf:"bytes,9,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowIpv6Src) Reset() { - *x = PatternFlowIpv6Src{} +func (x *PatternFlowIpv4Src) Reset() { + *x = PatternFlowIpv4Src{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[614] + mi := &file_otg_proto_msgTypes[604] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Src) String() string { +func (x *PatternFlowIpv4Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src) ProtoMessage() {} +func (*PatternFlowIpv4Src) ProtoMessage() {} -func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[614] +func (x *PatternFlowIpv4Src) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[604] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74752,87 +74568,101 @@ func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{614} +// Deprecated: Use PatternFlowIpv4Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{604} } -func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { +func (x *PatternFlowIpv4Src) GetChoice() PatternFlowIpv4Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Src_Choice_unspecified + return PatternFlowIpv4Src_Choice_unspecified } -func (x *PatternFlowIpv6Src) GetValue() string { +func (x *PatternFlowIpv4Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } -func (x *PatternFlowIpv6Src) GetValues() []string { +func (x *PatternFlowIpv4Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv4Src) GetIncrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { +func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { +func (x *PatternFlowIpv4Src) GetMetricTags() []*PatternFlowIpv4SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv6 counter pattern -type PatternFlowIpv6DstCounter struct { +func (x *PatternFlowIpv4Src) GetAuto() *FlowIpv4Auto { + if x != nil { + return x.Auto + } + return nil +} + +func (x *PatternFlowIpv4Src) GetRandom() *PatternFlowIpv4SrcRandom { + if x != nil { + return x.Random + } + return nil +} + +// ipv4 counter pattern +type PatternFlowIpv4DstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = ::0 + // default = 0.0.0.0 Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = ::1 + // 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 *PatternFlowIpv6DstCounter) Reset() { - *x = PatternFlowIpv6DstCounter{} +func (x *PatternFlowIpv4DstCounter) Reset() { + *x = PatternFlowIpv4DstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[615] + mi := &file_otg_proto_msgTypes[605] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6DstCounter) String() string { +func (x *PatternFlowIpv4DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstCounter) ProtoMessage() {} +func (*PatternFlowIpv4DstCounter) ProtoMessage() {} -func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[615] +func (x *PatternFlowIpv4DstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[605] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74843,26 +74673,26 @@ func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{615} +// Deprecated: Use PatternFlowIpv4DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{605} } -func (x *PatternFlowIpv6DstCounter) GetStart() string { +func (x *PatternFlowIpv4DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } return "" } -func (x *PatternFlowIpv6DstCounter) GetStep() string { +func (x *PatternFlowIpv4DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } return "" } -func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -74872,7 +74702,7 @@ func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { // 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 PatternFlowIpv6DstMetricTag struct { +type PatternFlowIpv4DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -74886,27 +74716,27 @@ type PatternFlowIpv6DstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 128 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIpv6DstMetricTag) Reset() { - *x = PatternFlowIpv6DstMetricTag{} +func (x *PatternFlowIpv4DstMetricTag) Reset() { + *x = PatternFlowIpv4DstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[616] + mi := &file_otg_proto_msgTypes[606] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6DstMetricTag) String() string { +func (x *PatternFlowIpv4DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DstMetricTag) ProtoMessage() {} -func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[616] +func (x *PatternFlowIpv4DstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[606] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74917,74 +74747,161 @@ func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{616} +// Deprecated: Use PatternFlowIpv4DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{606} } -func (x *PatternFlowIpv6DstMetricTag) GetName() string { +func (x *PatternFlowIpv4DstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } +// ipv4 random pattern +type PatternFlowIpv4DstRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0.0.0.0 + Min *string `protobuf:"bytes,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 255.255.255.255 + Max *string `protobuf:"bytes,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowIpv4DstRandom) Reset() { + *x = PatternFlowIpv4DstRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[607] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4DstRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4DstRandom) ProtoMessage() {} + +func (x *PatternFlowIpv4DstRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[607] + 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 PatternFlowIpv4DstRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DstRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{607} +} + +func (x *PatternFlowIpv4DstRandom) GetMin() string { + if x != nil && x.Min != nil { + return *x.Min + } + return "" +} + +func (x *PatternFlowIpv4DstRandom) GetMax() string { + if x != nil && x.Max != nil { + return *x.Max + } + return "" +} + +func (x *PatternFlowIpv4DstRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowIpv4DstRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + // Destination address -type PatternFlowIpv6Dst struct { +type PatternFlowIpv4Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4Dst_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = ::0 + // default = 0.0.0.0 Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['::0'] + // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Auto *FlowIpv4Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` + // Description missing in models + Random *PatternFlowIpv4DstRandom `protobuf:"bytes,9,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowIpv6Dst) Reset() { - *x = PatternFlowIpv6Dst{} +func (x *PatternFlowIpv4Dst) Reset() { + *x = PatternFlowIpv4Dst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[617] + mi := &file_otg_proto_msgTypes[608] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Dst) String() string { +func (x *PatternFlowIpv4Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst) ProtoMessage() {} +func (*PatternFlowIpv4Dst) ProtoMessage() {} -func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[617] +func (x *PatternFlowIpv4Dst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[608] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -74995,87 +74912,101 @@ func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. -func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{617} +// Deprecated: Use PatternFlowIpv4Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{608} } -func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { +func (x *PatternFlowIpv4Dst) GetChoice() PatternFlowIpv4Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIpv6Dst_Choice_unspecified + return PatternFlowIpv4Dst_Choice_unspecified } -func (x *PatternFlowIpv6Dst) GetValue() string { +func (x *PatternFlowIpv4Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } -func (x *PatternFlowIpv6Dst) GetValues() []string { +func (x *PatternFlowIpv4Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv4Dst) GetIncrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { +func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { +func (x *PatternFlowIpv4Dst) GetMetricTags() []*PatternFlowIpv4DstMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowPfcPauseDstCounter struct { +func (x *PatternFlowIpv4Dst) GetAuto() *FlowIpv4Auto { + if x != nil { + return x.Auto + } + return nil +} + +func (x *PatternFlowIpv4Dst) GetRandom() *PatternFlowIpv4DstRandom { + if x != nil { + return x.Random + } + return nil +} + +// integer counter pattern +type PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowPfcPauseDstCounter) Reset() { - *x = PatternFlowPfcPauseDstCounter{} +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[618] + mi := &file_otg_proto_msgTypes[609] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseDstCounter) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[618] +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[609] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75086,148 +75017,70 @@ func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{618} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{609} } -func (x *PatternFlowPfcPauseDstCounter) GetStart() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetStep() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// 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 PatternFlowPfcPauseDstMetricTag struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field - // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` -} - -func (x *PatternFlowPfcPauseDstMetricTag) Reset() { - *x = PatternFlowPfcPauseDstMetricTag{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[619] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowPfcPauseDstMetricTag) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} - -func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[619] - 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 PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{619} -} - -func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset - } - return 0 -} - -func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length - } - return 0 -} - -// Destination MAC address -type PatternFlowPfcPauseDst struct { +// This flag indicates this option is copied to all fragments on fragmentations. +type PatternFlowIpv4OptionsCustomTypeCopiedFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Decrement *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowPfcPauseDst) Reset() { - *x = PatternFlowPfcPauseDst{} +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[620] + mi := &file_otg_proto_msgTypes[610] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseDst) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[620] +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[610] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75238,87 +75091,80 @@ func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{620} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{610} } -func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetChoice() PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseDst_Choice_unspecified + return PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_unspecified } -func (x *PatternFlowPfcPauseDst) GetValue() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseDst) GetValues() []string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetIncrement() *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag) GetDecrement() *PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { - if x != nil { - return x.MetricTags - } - return nil -} - -// mac counter pattern -type PatternFlowPfcPauseSrcCounter struct { +// integer counter pattern +type PatternFlowIpv4OptionsCustomTypeOptionClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowPfcPauseSrcCounter) Reset() { - *x = PatternFlowPfcPauseSrcCounter{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[621] + mi := &file_otg_proto_msgTypes[611] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrcCounter) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[621] +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[611] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75329,70 +75175,70 @@ func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{621} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{611} } -func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClassCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// 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 PatternFlowPfcPauseSrcMetricTag struct { +// Option class [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. +type PatternFlowIpv4OptionsCustomTypeOptionClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used to identify the metrics associated with the values applicable for configured - // offset and length inside corresponding header field - // required = true - Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` - // Offset in bits relative to start of corresponding header field + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Number of bits to track for metrics starting from configured offset of corresponding - // header field - // default = 48 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + 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 *PatternFlowIpv4OptionsCustomTypeOptionClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIpv4OptionsCustomTypeOptionClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { - *x = PatternFlowPfcPauseSrcMetricTag{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[622] + mi := &file_otg_proto_msgTypes[612] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrcMetricTag) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[622] +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[612] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75403,74 +75249,154 @@ func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{622} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{612} } -func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { - if x != nil && x.Name != nil { - return *x.Name +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_unspecified } -func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { - if x != nil && x.Offset != nil { - return *x.Offset +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { - if x != nil && x.Length != nil { - return *x.Length +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetIncrement() *PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass) GetDecrement() *PatternFlowIpv4OptionsCustomTypeOptionClassCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowIpv4OptionsCustomTypeOptionNumberCounter 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 *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionNumberCounter{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[613] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoMessage() {} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[613] + 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 PatternFlowIpv4OptionsCustomTypeOptionNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{613} +} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } return 0 } -// Source MAC address -type PatternFlowPfcPauseSrc struct { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Option Number [Ref:https://www.iana.org/assignments/ip-parameters/ip-parameters.xhtml#ip-parameters-1]. +type PatternFlowIpv4OptionsCustomTypeOptionNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` - // One or more metric tags 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. - MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + Decrement *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowPfcPauseSrc) Reset() { - *x = PatternFlowPfcPauseSrc{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[623] + mi := &file_otg_proto_msgTypes[614] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrc) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[623] +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[614] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75481,61 +75407,54 @@ func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{623} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{614} } -func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetChoice() PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseSrc_Choice_unspecified + return PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_unspecified } -func (x *PatternFlowPfcPauseSrc) GetValue() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowPfcPauseSrc) GetValues() []string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetIncrement() *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber) GetDecrement() *PatternFlowIpv4OptionsCustomTypeOptionNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { - if x != nil { - return x.MetricTags - } - return nil -} - // integer counter pattern -type PatternFlowPfcPauseEtherTypeCounter struct { +type PatternFlowIpv4PriorityRawCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75545,23 +75464,23 @@ type PatternFlowPfcPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { - *x = PatternFlowPfcPauseEtherTypeCounter{} +func (x *PatternFlowIpv4PriorityRawCounter) Reset() { + *x = PatternFlowIpv4PriorityRawCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[624] + mi := &file_otg_proto_msgTypes[615] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { +func (x *PatternFlowIpv4PriorityRawCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[624] +func (x *PatternFlowIpv4PriorityRawCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[615] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75572,26 +75491,26 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{624} +// Deprecated: Use PatternFlowIpv4PriorityRawCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{615} } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowIpv4PriorityRawCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75601,7 +75520,7 @@ func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { // 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 PatternFlowPfcPauseEtherTypeMetricTag struct { +type PatternFlowIpv4PriorityRawMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75615,27 +75534,27 @@ type PatternFlowPfcPauseEtherTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowPfcPauseEtherTypeMetricTag{} +func (x *PatternFlowIpv4PriorityRawMetricTag) Reset() { + *x = PatternFlowIpv4PriorityRawMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[625] + mi := &file_otg_proto_msgTypes[616] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRawMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[625] +func (x *PatternFlowIpv4PriorityRawMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[616] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75646,74 +75565,74 @@ func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{625} +// Deprecated: Use PatternFlowIpv4PriorityRawMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRawMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{616} } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4PriorityRawMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowPfcPauseEtherType struct { +// Raw priority +type PatternFlowIpv4PriorityRaw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4PriorityRaw_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4PriorityRaw_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseEtherType) Reset() { - *x = PatternFlowPfcPauseEtherType{} +func (x *PatternFlowIpv4PriorityRaw) Reset() { + *x = PatternFlowIpv4PriorityRaw{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[626] + mi := &file_otg_proto_msgTypes[617] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherType) String() string { +func (x *PatternFlowIpv4PriorityRaw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[626] +func (x *PatternFlowIpv4PriorityRaw) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[617] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75724,47 +75643,47 @@ func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{626} +// Deprecated: Use PatternFlowIpv4PriorityRaw.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{617} } -func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { +func (x *PatternFlowIpv4PriorityRaw) GetChoice() PatternFlowIpv4PriorityRaw_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseEtherType_Choice_unspecified + return PatternFlowIpv4PriorityRaw_Choice_unspecified } -func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowIpv4PriorityRaw) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv4PriorityRaw) GetIncrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { +func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { +func (x *PatternFlowIpv4PriorityRaw) GetMetricTags() []*PatternFlowIpv4PriorityRawMetricTag { if x != nil { return x.MetricTags } @@ -75772,13 +75691,13 @@ func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEth } // integer counter pattern -type PatternFlowPfcPauseControlOpCodeCounter struct { +type PatternFlowIpv4DscpPhbCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 257 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -75788,23 +75707,23 @@ type PatternFlowPfcPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { - *x = PatternFlowPfcPauseControlOpCodeCounter{} +func (x *PatternFlowIpv4DscpPhbCounter) Reset() { + *x = PatternFlowIpv4DscpPhbCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[627] + mi := &file_otg_proto_msgTypes[618] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { +func (x *PatternFlowIpv4DscpPhbCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[627] +func (x *PatternFlowIpv4DscpPhbCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[618] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75815,26 +75734,26 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{627} +// Deprecated: Use PatternFlowIpv4DscpPhbCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{618} } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpPhbCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -75844,7 +75763,7 @@ func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { // 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 PatternFlowPfcPauseControlOpCodeMetricTag struct { +type PatternFlowIpv4DscpPhbMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -75858,27 +75777,27 @@ type PatternFlowPfcPauseControlOpCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 6 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowPfcPauseControlOpCodeMetricTag{} +func (x *PatternFlowIpv4DscpPhbMetricTag) Reset() { + *x = PatternFlowIpv4DscpPhbMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[628] + mi := &file_otg_proto_msgTypes[619] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhbMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[628] +func (x *PatternFlowIpv4DscpPhbMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[619] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75889,74 +75808,74 @@ func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{628} +// Deprecated: Use PatternFlowIpv4DscpPhbMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhbMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{619} } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpPhbMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowPfcPauseControlOpCode struct { +// Per hop behavior +type PatternFlowIpv4DscpPhb struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpPhb_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpPhb_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 257 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [257] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseControlOpCode) Reset() { - *x = PatternFlowPfcPauseControlOpCode{} +func (x *PatternFlowIpv4DscpPhb) Reset() { + *x = PatternFlowIpv4DscpPhb{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[629] + mi := &file_otg_proto_msgTypes[620] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCode) String() string { +func (x *PatternFlowIpv4DscpPhb) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[629] +func (x *PatternFlowIpv4DscpPhb) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[620] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -75967,47 +75886,47 @@ func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{629} +// Deprecated: Use PatternFlowIpv4DscpPhb.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{620} } -func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { +func (x *PatternFlowIpv4DscpPhb) GetChoice() PatternFlowIpv4DscpPhb_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseControlOpCode_Choice_unspecified + return PatternFlowIpv4DscpPhb_Choice_unspecified } -func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpPhb) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv4DscpPhb) GetIncrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { +func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { +func (x *PatternFlowIpv4DscpPhb) GetMetricTags() []*PatternFlowIpv4DscpPhbMetricTag { if x != nil { return x.MetricTags } @@ -76015,7 +75934,7 @@ func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPaus } // integer counter pattern -type PatternFlowPfcPauseClassEnableVectorCounter struct { +type PatternFlowIpv4DscpEcnCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76031,23 +75950,23 @@ type PatternFlowPfcPauseClassEnableVectorCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorCounter{} +func (x *PatternFlowIpv4DscpEcnCounter) Reset() { + *x = PatternFlowIpv4DscpEcnCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[630] + mi := &file_otg_proto_msgTypes[621] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { +func (x *PatternFlowIpv4DscpEcnCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnCounter) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[630] +func (x *PatternFlowIpv4DscpEcnCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[621] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76058,26 +75977,26 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{630} +// Deprecated: Use PatternFlowIpv4DscpEcnCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{621} } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { +func (x *PatternFlowIpv4DscpEcnCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76087,7 +76006,7 @@ func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { // 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 PatternFlowPfcPauseClassEnableVectorMetricTag struct { +type PatternFlowIpv4DscpEcnMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76101,27 +76020,27 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 2 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { - *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} +func (x *PatternFlowIpv4DscpEcnMetricTag) Reset() { + *x = PatternFlowIpv4DscpEcnMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[631] + mi := &file_otg_proto_msgTypes[622] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcnMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[631] +func (x *PatternFlowIpv4DscpEcnMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[622] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76132,41 +76051,41 @@ func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{631} +// Deprecated: Use PatternFlowIpv4DscpEcnMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcnMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{622} } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4DscpEcnMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination -type PatternFlowPfcPauseClassEnableVector struct { +// Explicit congestion notification +type PatternFlowIpv4DscpEcn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4DscpEcn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4DscpEcn_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"` @@ -76174,32 +76093,32 @@ type PatternFlowPfcPauseClassEnableVector struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPauseClassEnableVector) Reset() { - *x = PatternFlowPfcPauseClassEnableVector{} +func (x *PatternFlowIpv4DscpEcn) Reset() { + *x = PatternFlowIpv4DscpEcn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[632] + mi := &file_otg_proto_msgTypes[623] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVector) String() string { +func (x *PatternFlowIpv4DscpEcn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[632] +func (x *PatternFlowIpv4DscpEcn) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[623] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76210,47 +76129,47 @@ func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{632} +// Deprecated: Use PatternFlowIpv4DscpEcn.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{623} } -func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { +func (x *PatternFlowIpv4DscpEcn) GetChoice() PatternFlowIpv4DscpEcn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPauseClassEnableVector_Choice_unspecified + return PatternFlowIpv4DscpEcn_Choice_unspecified } -func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { +func (x *PatternFlowIpv4DscpEcn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv4DscpEcn) GetIncrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { +func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { +func (x *PatternFlowIpv4DscpEcn) GetMetricTags() []*PatternFlowIpv4DscpEcnMetricTag { if x != nil { return x.MetricTags } @@ -76258,7 +76177,7 @@ func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfc } // integer counter pattern -type PatternFlowPfcPausePauseClass0Counter struct { +type PatternFlowIpv4TosPrecedenceCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76274,23 +76193,23 @@ type PatternFlowPfcPausePauseClass0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { - *x = PatternFlowPfcPausePauseClass0Counter{} +func (x *PatternFlowIpv4TosPrecedenceCounter) Reset() { + *x = PatternFlowIpv4TosPrecedenceCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[633] + mi := &file_otg_proto_msgTypes[624] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0Counter) String() string { +func (x *PatternFlowIpv4TosPrecedenceCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[633] +func (x *PatternFlowIpv4TosPrecedenceCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[624] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76301,26 +76220,26 @@ func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{633} +// Deprecated: Use PatternFlowIpv4TosPrecedenceCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{624} } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosPrecedenceCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76330,7 +76249,7 @@ func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass0MetricTag struct { +type PatternFlowIpv4TosPrecedenceMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76344,27 +76263,27 @@ type PatternFlowPfcPausePauseClass0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass0MetricTag{} +func (x *PatternFlowIpv4TosPrecedenceMetricTag) Reset() { + *x = PatternFlowIpv4TosPrecedenceMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[634] + mi := &file_otg_proto_msgTypes[625] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedenceMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[634] +func (x *PatternFlowIpv4TosPrecedenceMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[625] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76375,41 +76294,41 @@ func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{634} +// Deprecated: Use PatternFlowIpv4TosPrecedenceMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedenceMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{625} } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosPrecedenceMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 0 -type PatternFlowPfcPausePauseClass0 struct { +// Precedence +type PatternFlowIpv4TosPrecedence struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosPrecedence_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosPrecedence_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"` @@ -76417,32 +76336,32 @@ type PatternFlowPfcPausePauseClass0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass0) Reset() { - *x = PatternFlowPfcPausePauseClass0{} +func (x *PatternFlowIpv4TosPrecedence) Reset() { + *x = PatternFlowIpv4TosPrecedence{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[635] + mi := &file_otg_proto_msgTypes[626] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0) String() string { +func (x *PatternFlowIpv4TosPrecedence) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[635] +func (x *PatternFlowIpv4TosPrecedence) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[626] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76453,47 +76372,47 @@ func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{635} +// Deprecated: Use PatternFlowIpv4TosPrecedence.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{626} } -func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { +func (x *PatternFlowIpv4TosPrecedence) GetChoice() PatternFlowIpv4TosPrecedence_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass0_Choice_unspecified + return PatternFlowIpv4TosPrecedence_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { +func (x *PatternFlowIpv4TosPrecedence) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv4TosPrecedence) GetIncrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { +func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecedenceCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { +func (x *PatternFlowIpv4TosPrecedence) GetMetricTags() []*PatternFlowIpv4TosPrecedenceMetricTag { if x != nil { return x.MetricTags } @@ -76501,7 +76420,7 @@ func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass1Counter struct { +type PatternFlowIpv4TosDelayCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76517,23 +76436,23 @@ type PatternFlowPfcPausePauseClass1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { - *x = PatternFlowPfcPausePauseClass1Counter{} +func (x *PatternFlowIpv4TosDelayCounter) Reset() { + *x = PatternFlowIpv4TosDelayCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[636] + mi := &file_otg_proto_msgTypes[627] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1Counter) String() string { +func (x *PatternFlowIpv4TosDelayCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[636] +func (x *PatternFlowIpv4TosDelayCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[627] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76544,26 +76463,26 @@ func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{636} +// Deprecated: Use PatternFlowIpv4TosDelayCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{627} } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosDelayCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76573,7 +76492,7 @@ func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass1MetricTag struct { +type PatternFlowIpv4TosDelayMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76587,27 +76506,27 @@ type PatternFlowPfcPausePauseClass1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass1MetricTag{} +func (x *PatternFlowIpv4TosDelayMetricTag) Reset() { + *x = PatternFlowIpv4TosDelayMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[637] + mi := &file_otg_proto_msgTypes[628] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { +func (x *PatternFlowIpv4TosDelayMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosDelayMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[637] +func (x *PatternFlowIpv4TosDelayMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[628] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76618,41 +76537,41 @@ func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{637} +// Deprecated: Use PatternFlowIpv4TosDelayMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelayMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{628} } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { +func (x *PatternFlowIpv4TosDelayMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosDelayMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 1 -type PatternFlowPfcPausePauseClass1 struct { +// Delay +type PatternFlowIpv4TosDelay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosDelay_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosDelay_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"` @@ -76660,32 +76579,32 @@ type PatternFlowPfcPausePauseClass1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass1) Reset() { - *x = PatternFlowPfcPausePauseClass1{} +func (x *PatternFlowIpv4TosDelay) Reset() { + *x = PatternFlowIpv4TosDelay{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[638] + mi := &file_otg_proto_msgTypes[629] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1) String() string { +func (x *PatternFlowIpv4TosDelay) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[638] +func (x *PatternFlowIpv4TosDelay) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[629] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76696,47 +76615,47 @@ func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{638} +// Deprecated: Use PatternFlowIpv4TosDelay.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{629} } -func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { +func (x *PatternFlowIpv4TosDelay) GetChoice() PatternFlowIpv4TosDelay_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass1_Choice_unspecified + return PatternFlowIpv4TosDelay_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { +func (x *PatternFlowIpv4TosDelay) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { +func (x *PatternFlowIpv4TosDelay) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowIpv4TosDelay) GetIncrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { +func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { +func (x *PatternFlowIpv4TosDelay) GetMetricTags() []*PatternFlowIpv4TosDelayMetricTag { if x != nil { return x.MetricTags } @@ -76744,7 +76663,7 @@ func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass2Counter struct { +type PatternFlowIpv4TosThroughputCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76760,23 +76679,23 @@ type PatternFlowPfcPausePauseClass2Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { - *x = PatternFlowPfcPausePauseClass2Counter{} +func (x *PatternFlowIpv4TosThroughputCounter) Reset() { + *x = PatternFlowIpv4TosThroughputCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[639] + mi := &file_otg_proto_msgTypes[630] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2Counter) String() string { +func (x *PatternFlowIpv4TosThroughputCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[639] +func (x *PatternFlowIpv4TosThroughputCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[630] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76787,26 +76706,26 @@ func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{639} +// Deprecated: Use PatternFlowIpv4TosThroughputCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{630} } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosThroughputCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -76816,7 +76735,7 @@ func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass2MetricTag struct { +type PatternFlowIpv4TosThroughputMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -76830,27 +76749,27 @@ type PatternFlowPfcPausePauseClass2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass2MetricTag{} +func (x *PatternFlowIpv4TosThroughputMetricTag) Reset() { + *x = PatternFlowIpv4TosThroughputMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[640] + mi := &file_otg_proto_msgTypes[631] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughputMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[640] +func (x *PatternFlowIpv4TosThroughputMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[631] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76861,41 +76780,41 @@ func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{640} +// Deprecated: Use PatternFlowIpv4TosThroughputMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughputMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{631} } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosThroughputMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 2 -type PatternFlowPfcPausePauseClass2 struct { +// Throughput +type PatternFlowIpv4TosThroughput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosThroughput_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosThroughput_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"` @@ -76903,32 +76822,32 @@ type PatternFlowPfcPausePauseClass2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass2) Reset() { - *x = PatternFlowPfcPausePauseClass2{} +func (x *PatternFlowIpv4TosThroughput) Reset() { + *x = PatternFlowIpv4TosThroughput{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[641] + mi := &file_otg_proto_msgTypes[632] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2) String() string { +func (x *PatternFlowIpv4TosThroughput) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[641] +func (x *PatternFlowIpv4TosThroughput) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[632] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -76939,47 +76858,47 @@ func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{641} +// Deprecated: Use PatternFlowIpv4TosThroughput.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{632} } -func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { +func (x *PatternFlowIpv4TosThroughput) GetChoice() PatternFlowIpv4TosThroughput_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass2_Choice_unspecified + return PatternFlowIpv4TosThroughput_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { +func (x *PatternFlowIpv4TosThroughput) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowIpv4TosThroughput) GetIncrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { +func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThroughputCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { +func (x *PatternFlowIpv4TosThroughput) GetMetricTags() []*PatternFlowIpv4TosThroughputMetricTag { if x != nil { return x.MetricTags } @@ -76987,7 +76906,7 @@ func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass3Counter struct { +type PatternFlowIpv4TosReliabilityCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77003,23 +76922,23 @@ type PatternFlowPfcPausePauseClass3Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { - *x = PatternFlowPfcPausePauseClass3Counter{} +func (x *PatternFlowIpv4TosReliabilityCounter) Reset() { + *x = PatternFlowIpv4TosReliabilityCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[642] + mi := &file_otg_proto_msgTypes[633] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3Counter) String() string { +func (x *PatternFlowIpv4TosReliabilityCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[642] +func (x *PatternFlowIpv4TosReliabilityCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[633] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77030,26 +76949,26 @@ func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{642} +// Deprecated: Use PatternFlowIpv4TosReliabilityCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{633} } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosReliabilityCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77059,7 +76978,7 @@ func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass3MetricTag struct { +type PatternFlowIpv4TosReliabilityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77073,27 +76992,27 @@ type PatternFlowPfcPausePauseClass3MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass3MetricTag{} +func (x *PatternFlowIpv4TosReliabilityMetricTag) Reset() { + *x = PatternFlowIpv4TosReliabilityMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[643] + mi := &file_otg_proto_msgTypes[634] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosReliabilityMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[643] +func (x *PatternFlowIpv4TosReliabilityMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[634] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77104,41 +77023,41 @@ func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{643} +// Deprecated: Use PatternFlowIpv4TosReliabilityMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliabilityMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{634} } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosReliabilityMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 3 -type PatternFlowPfcPausePauseClass3 struct { +// Reliability +type PatternFlowIpv4TosReliability struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosReliability_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosReliability_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"` @@ -77146,32 +77065,32 @@ type PatternFlowPfcPausePauseClass3 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass3) Reset() { - *x = PatternFlowPfcPausePauseClass3{} +func (x *PatternFlowIpv4TosReliability) Reset() { + *x = PatternFlowIpv4TosReliability{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[644] + mi := &file_otg_proto_msgTypes[635] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3) String() string { +func (x *PatternFlowIpv4TosReliability) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[644] +func (x *PatternFlowIpv4TosReliability) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[635] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77182,47 +77101,47 @@ func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{644} +// Deprecated: Use PatternFlowIpv4TosReliability.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{635} } -func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { +func (x *PatternFlowIpv4TosReliability) GetChoice() PatternFlowIpv4TosReliability_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass3_Choice_unspecified + return PatternFlowIpv4TosReliability_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { +func (x *PatternFlowIpv4TosReliability) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { +func (x *PatternFlowIpv4TosReliability) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowIpv4TosReliability) GetIncrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { +func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliabilityCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { +func (x *PatternFlowIpv4TosReliability) GetMetricTags() []*PatternFlowIpv4TosReliabilityMetricTag { if x != nil { return x.MetricTags } @@ -77230,7 +77149,7 @@ func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass4Counter struct { +type PatternFlowIpv4TosMonetaryCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77246,23 +77165,23 @@ type PatternFlowPfcPausePauseClass4Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { - *x = PatternFlowPfcPausePauseClass4Counter{} +func (x *PatternFlowIpv4TosMonetaryCounter) Reset() { + *x = PatternFlowIpv4TosMonetaryCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[645] + mi := &file_otg_proto_msgTypes[636] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4Counter) String() string { +func (x *PatternFlowIpv4TosMonetaryCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[645] +func (x *PatternFlowIpv4TosMonetaryCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[636] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77273,26 +77192,26 @@ func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{645} +// Deprecated: Use PatternFlowIpv4TosMonetaryCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{636} } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosMonetaryCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77302,7 +77221,7 @@ func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass4MetricTag struct { +type PatternFlowIpv4TosMonetaryMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77316,27 +77235,27 @@ type PatternFlowPfcPausePauseClass4MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass4MetricTag{} +func (x *PatternFlowIpv4TosMonetaryMetricTag) Reset() { + *x = PatternFlowIpv4TosMonetaryMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[646] + mi := &file_otg_proto_msgTypes[637] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetaryMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[646] +func (x *PatternFlowIpv4TosMonetaryMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[637] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77347,41 +77266,41 @@ func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{646} +// Deprecated: Use PatternFlowIpv4TosMonetaryMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetaryMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{637} } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosMonetaryMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 4 -type PatternFlowPfcPausePauseClass4 struct { +// Monetary +type PatternFlowIpv4TosMonetary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosMonetary_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosMonetary_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"` @@ -77389,32 +77308,32 @@ type PatternFlowPfcPausePauseClass4 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass4) Reset() { - *x = PatternFlowPfcPausePauseClass4{} +func (x *PatternFlowIpv4TosMonetary) Reset() { + *x = PatternFlowIpv4TosMonetary{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[647] + mi := &file_otg_proto_msgTypes[638] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4) String() string { +func (x *PatternFlowIpv4TosMonetary) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[647] +func (x *PatternFlowIpv4TosMonetary) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[638] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77425,47 +77344,47 @@ func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{647} +// Deprecated: Use PatternFlowIpv4TosMonetary.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{638} } -func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { +func (x *PatternFlowIpv4TosMonetary) GetChoice() PatternFlowIpv4TosMonetary_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass4_Choice_unspecified + return PatternFlowIpv4TosMonetary_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { +func (x *PatternFlowIpv4TosMonetary) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowIpv4TosMonetary) GetIncrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { +func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { +func (x *PatternFlowIpv4TosMonetary) GetMetricTags() []*PatternFlowIpv4TosMonetaryMetricTag { if x != nil { return x.MetricTags } @@ -77473,7 +77392,7 @@ func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass5Counter struct { +type PatternFlowIpv4TosUnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77489,23 +77408,23 @@ type PatternFlowPfcPausePauseClass5Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { - *x = PatternFlowPfcPausePauseClass5Counter{} +func (x *PatternFlowIpv4TosUnusedCounter) Reset() { + *x = PatternFlowIpv4TosUnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[648] + mi := &file_otg_proto_msgTypes[639] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5Counter) String() string { +func (x *PatternFlowIpv4TosUnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[648] +func (x *PatternFlowIpv4TosUnusedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[639] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77516,26 +77435,26 @@ func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{648} +// Deprecated: Use PatternFlowIpv4TosUnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{639} } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { +func (x *PatternFlowIpv4TosUnusedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77545,7 +77464,7 @@ func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass5MetricTag struct { +type PatternFlowIpv4TosUnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77559,27 +77478,27 @@ type PatternFlowPfcPausePauseClass5MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass5MetricTag{} +func (x *PatternFlowIpv4TosUnusedMetricTag) Reset() { + *x = PatternFlowIpv4TosUnusedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[649] + mi := &file_otg_proto_msgTypes[640] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} +func (*PatternFlowIpv4TosUnusedMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[649] +func (x *PatternFlowIpv4TosUnusedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[640] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77590,41 +77509,41 @@ func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{649} +// Deprecated: Use PatternFlowIpv4TosUnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnusedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{640} } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv4TosUnusedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 5 -type PatternFlowPfcPausePauseClass5 struct { +// Unused +type PatternFlowIpv4TosUnused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv4TosUnused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv4TosUnused_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"` @@ -77632,32 +77551,32 @@ type PatternFlowPfcPausePauseClass5 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass5) Reset() { - *x = PatternFlowPfcPausePauseClass5{} +func (x *PatternFlowIpv4TosUnused) Reset() { + *x = PatternFlowIpv4TosUnused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[650] + mi := &file_otg_proto_msgTypes[641] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5) String() string { +func (x *PatternFlowIpv4TosUnused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[650] +func (x *PatternFlowIpv4TosUnused) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[641] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77668,47 +77587,47 @@ func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{650} +// Deprecated: Use PatternFlowIpv4TosUnused.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{641} } -func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { +func (x *PatternFlowIpv4TosUnused) GetChoice() PatternFlowIpv4TosUnused_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass5_Choice_unspecified + return PatternFlowIpv4TosUnused_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { +func (x *PatternFlowIpv4TosUnused) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { +func (x *PatternFlowIpv4TosUnused) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowIpv4TosUnused) GetIncrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { +func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { +func (x *PatternFlowIpv4TosUnused) GetMetricTags() []*PatternFlowIpv4TosUnusedMetricTag { if x != nil { return x.MetricTags } @@ -77716,13 +77635,13 @@ func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass6Counter struct { +type PatternFlowIpv6VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 6 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -77732,23 +77651,23 @@ type PatternFlowPfcPausePauseClass6Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { - *x = PatternFlowPfcPausePauseClass6Counter{} +func (x *PatternFlowIpv6VersionCounter) Reset() { + *x = PatternFlowIpv6VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[651] + mi := &file_otg_proto_msgTypes[642] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6Counter) String() string { +func (x *PatternFlowIpv6VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} +func (*PatternFlowIpv6VersionCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[651] +func (x *PatternFlowIpv6VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[642] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77759,26 +77678,26 @@ func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{651} +// Deprecated: Use PatternFlowIpv6VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{642} } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { +func (x *PatternFlowIpv6VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { +func (x *PatternFlowIpv6VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { +func (x *PatternFlowIpv6VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -77788,7 +77707,7 @@ func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass6MetricTag struct { +type PatternFlowIpv6VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77802,27 +77721,27 @@ type PatternFlowPfcPausePauseClass6MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass6MetricTag{} +func (x *PatternFlowIpv6VersionMetricTag) Reset() { + *x = PatternFlowIpv6VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[652] + mi := &file_otg_proto_msgTypes[643] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { +func (x *PatternFlowIpv6VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} +func (*PatternFlowIpv6VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[652] +func (x *PatternFlowIpv6VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[643] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77833,74 +77752,74 @@ func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{652} +// Deprecated: Use PatternFlowIpv6VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{643} } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { +func (x *PatternFlowIpv6VersionMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 6 -type PatternFlowPfcPausePauseClass6 struct { +// Version number +type PatternFlowIpv6Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 6 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [6] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass6) Reset() { - *x = PatternFlowPfcPausePauseClass6{} +func (x *PatternFlowIpv6Version) Reset() { + *x = PatternFlowIpv6Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[653] + mi := &file_otg_proto_msgTypes[644] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6) String() string { +func (x *PatternFlowIpv6Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} +func (*PatternFlowIpv6Version) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[653] +func (x *PatternFlowIpv6Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[644] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -77911,47 +77830,47 @@ func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{653} +// Deprecated: Use PatternFlowIpv6Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{644} } -func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { +func (x *PatternFlowIpv6Version) GetChoice() PatternFlowIpv6Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass6_Choice_unspecified + return PatternFlowIpv6Version_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { +func (x *PatternFlowIpv6Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { +func (x *PatternFlowIpv6Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowIpv6Version) GetIncrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { +func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { +func (x *PatternFlowIpv6Version) GetMetricTags() []*PatternFlowIpv6VersionMetricTag { if x != nil { return x.MetricTags } @@ -77959,7 +77878,7 @@ func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPauseP } // integer counter pattern -type PatternFlowPfcPausePauseClass7Counter struct { +type PatternFlowIpv6TrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77975,23 +77894,23 @@ type PatternFlowPfcPausePauseClass7Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { - *x = PatternFlowPfcPausePauseClass7Counter{} +func (x *PatternFlowIpv6TrafficClassCounter) Reset() { + *x = PatternFlowIpv6TrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[654] + mi := &file_otg_proto_msgTypes[645] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7Counter) String() string { +func (x *PatternFlowIpv6TrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassCounter) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[654] +func (x *PatternFlowIpv6TrafficClassCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[645] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78002,26 +77921,26 @@ func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{654} +// Deprecated: Use PatternFlowIpv6TrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{645} } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { +func (x *PatternFlowIpv6TrafficClassCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { +func (x *PatternFlowIpv6TrafficClassCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { +func (x *PatternFlowIpv6TrafficClassCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -78031,7 +77950,7 @@ func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { // 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 PatternFlowPfcPausePauseClass7MetricTag struct { +type PatternFlowIpv6TrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -78045,27 +77964,27 @@ type PatternFlowPfcPausePauseClass7MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { - *x = PatternFlowPfcPausePauseClass7MetricTag{} +func (x *PatternFlowIpv6TrafficClassMetricTag) Reset() { + *x = PatternFlowIpv6TrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[655] + mi := &file_otg_proto_msgTypes[646] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClassMetricTag) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[655] +func (x *PatternFlowIpv6TrafficClassMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[646] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78076,41 +77995,41 @@ func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{655} +// Deprecated: Use PatternFlowIpv6TrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClassMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{646} } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6TrafficClassMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Pause class 7 -type PatternFlowPfcPausePauseClass7 struct { +// Traffic class +type PatternFlowIpv6TrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6TrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6TrafficClass_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"` @@ -78118,32 +78037,32 @@ type PatternFlowPfcPausePauseClass7 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPfcPausePauseClass7) Reset() { - *x = PatternFlowPfcPausePauseClass7{} +func (x *PatternFlowIpv6TrafficClass) Reset() { + *x = PatternFlowIpv6TrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[656] + mi := &file_otg_proto_msgTypes[647] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7) String() string { +func (x *PatternFlowIpv6TrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[656] +func (x *PatternFlowIpv6TrafficClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[647] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78154,87 +78073,87 @@ func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. -func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{656} +// Deprecated: Use PatternFlowIpv6TrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{647} } -func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { +func (x *PatternFlowIpv6TrafficClass) GetChoice() PatternFlowIpv6TrafficClass_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPfcPausePauseClass7_Choice_unspecified + return PatternFlowIpv6TrafficClass_Choice_unspecified } -func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { +func (x *PatternFlowIpv6TrafficClass) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { +func (x *PatternFlowIpv6TrafficClass) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowIpv6TrafficClass) GetIncrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { +func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClassCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { +func (x *PatternFlowIpv6TrafficClass) GetMetricTags() []*PatternFlowIpv6TrafficClassMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseDstCounter struct { +// integer counter pattern +type PatternFlowIpv6FlowLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 01:80:c2:00:00:01 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowEthernetPauseDstCounter) Reset() { - *x = PatternFlowEthernetPauseDstCounter{} +func (x *PatternFlowIpv6FlowLabelCounter) Reset() { + *x = PatternFlowIpv6FlowLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[657] + mi := &file_otg_proto_msgTypes[648] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDstCounter) String() string { +func (x *PatternFlowIpv6FlowLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelCounter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[657] +func (x *PatternFlowIpv6FlowLabelCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[648] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78245,26 +78164,26 @@ func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{657} +// Deprecated: Use PatternFlowIpv6FlowLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{648} } -func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { +func (x *PatternFlowIpv6FlowLabelCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { +func (x *PatternFlowIpv6FlowLabelCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -78274,7 +78193,7 @@ func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { // 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 PatternFlowEthernetPauseDstMetricTag struct { +type PatternFlowIpv6FlowLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -78288,27 +78207,27 @@ type PatternFlowEthernetPauseDstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 20 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { - *x = PatternFlowEthernetPauseDstMetricTag{} +func (x *PatternFlowIpv6FlowLabelMetricTag) Reset() { + *x = PatternFlowIpv6FlowLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[658] + mi := &file_otg_proto_msgTypes[649] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDstMetricTag) String() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabelMetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[658] +func (x *PatternFlowIpv6FlowLabelMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[649] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78319,74 +78238,159 @@ func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{658} +// Deprecated: Use PatternFlowIpv6FlowLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{649} } -func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6FlowLabelMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Destination MAC address -type PatternFlowEthernetPauseDst struct { +// integer random pattern +type PatternFlowIpv6FlowLabelRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 1048575 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowIpv6FlowLabelRandom) Reset() { + *x = PatternFlowIpv6FlowLabelRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[650] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIpv6FlowLabelRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIpv6FlowLabelRandom) ProtoMessage() {} + +func (x *PatternFlowIpv6FlowLabelRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[650] + 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 PatternFlowIpv6FlowLabelRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabelRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{650} +} + +func (x *PatternFlowIpv6FlowLabelRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min + } + return 0 +} + +func (x *PatternFlowIpv6FlowLabelRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +func (x *PatternFlowIpv6FlowLabelRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowIpv6FlowLabelRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Flow label +type PatternFlowIpv6FlowLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6FlowLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6FlowLabel_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 01:80:c2:00:00:01 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['01:80:c2:00:00:01'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Random *PatternFlowIpv6FlowLabelRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowEthernetPauseDst) Reset() { - *x = PatternFlowEthernetPauseDst{} +func (x *PatternFlowIpv6FlowLabel) Reset() { + *x = PatternFlowIpv6FlowLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[659] + mi := &file_otg_proto_msgTypes[651] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDst) String() string { +func (x *PatternFlowIpv6FlowLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[659] +func (x *PatternFlowIpv6FlowLabel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[651] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78397,87 +78401,94 @@ func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{659} +// Deprecated: Use PatternFlowIpv6FlowLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{651} } -func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { +func (x *PatternFlowIpv6FlowLabel) GetChoice() PatternFlowIpv6FlowLabel_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseDst_Choice_unspecified + return PatternFlowIpv6FlowLabel_Choice_unspecified } -func (x *PatternFlowEthernetPauseDst) GetValue() string { +func (x *PatternFlowIpv6FlowLabel) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseDst) GetValues() []string { +func (x *PatternFlowIpv6FlowLabel) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetIncrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { +func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { +func (x *PatternFlowIpv6FlowLabel) GetMetricTags() []*PatternFlowIpv6FlowLabelMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowEthernetPauseSrcCounter struct { +func (x *PatternFlowIpv6FlowLabel) GetRandom() *PatternFlowIpv6FlowLabelRandom { + if x != nil { + return x.Random + } + return nil +} + +// integer counter pattern +type PatternFlowIpv6PayloadLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowEthernetPauseSrcCounter) Reset() { - *x = PatternFlowEthernetPauseSrcCounter{} +func (x *PatternFlowIpv6PayloadLengthCounter) Reset() { + *x = PatternFlowIpv6PayloadLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[660] + mi := &file_otg_proto_msgTypes[652] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrcCounter) String() string { +func (x *PatternFlowIpv6PayloadLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthCounter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[660] +func (x *PatternFlowIpv6PayloadLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[652] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78488,26 +78499,26 @@ func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{660} +// Deprecated: Use PatternFlowIpv6PayloadLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{652} } -func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { +func (x *PatternFlowIpv6PayloadLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { +func (x *PatternFlowIpv6PayloadLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -78517,7 +78528,7 @@ func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { // 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 PatternFlowEthernetPauseSrcMetricTag struct { +type PatternFlowIpv6PayloadLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -78531,27 +78542,27 @@ type PatternFlowEthernetPauseSrcMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { - *x = PatternFlowEthernetPauseSrcMetricTag{} +func (x *PatternFlowIpv6PayloadLengthMetricTag) Reset() { + *x = PatternFlowIpv6PayloadLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[661] + mi := &file_otg_proto_msgTypes[653] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[661] +func (x *PatternFlowIpv6PayloadLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[653] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78562,74 +78573,79 @@ func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{661} +// Deprecated: Use PatternFlowIpv6PayloadLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{653} } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6PayloadLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Source MAC address -type PatternFlowEthernetPauseSrc struct { +// Payload length +type PatternFlowIpv6PayloadLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6PayloadLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6PayloadLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 0 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseSrc) Reset() { - *x = PatternFlowEthernetPauseSrc{} +func (x *PatternFlowIpv6PayloadLength) Reset() { + *x = PatternFlowIpv6PayloadLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[662] + mi := &file_otg_proto_msgTypes[654] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrc) String() string { +func (x *PatternFlowIpv6PayloadLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[662] +func (x *PatternFlowIpv6PayloadLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[654] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78640,47 +78656,54 @@ func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{662} +// Deprecated: Use PatternFlowIpv6PayloadLength.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{654} } -func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { +func (x *PatternFlowIpv6PayloadLength) GetChoice() PatternFlowIpv6PayloadLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseSrc_Choice_unspecified + return PatternFlowIpv6PayloadLength_Choice_unspecified } -func (x *PatternFlowEthernetPauseSrc) GetValue() string { +func (x *PatternFlowIpv6PayloadLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowEthernetPauseSrc) GetValues() []string { +func (x *PatternFlowIpv6PayloadLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6PayloadLength) GetIncrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { +func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { +func (x *PatternFlowIpv6PayloadLength) GetMetricTags() []*PatternFlowIpv6PayloadLengthMetricTag { if x != nil { return x.MetricTags } @@ -78688,13 +78711,13 @@ func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPaus } // integer counter pattern -type PatternFlowEthernetPauseEtherTypeCounter struct { +type PatternFlowIpv6NextHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 34824 + // default = 59 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -78704,23 +78727,23 @@ type PatternFlowEthernetPauseEtherTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { - *x = PatternFlowEthernetPauseEtherTypeCounter{} +func (x *PatternFlowIpv6NextHeaderCounter) Reset() { + *x = PatternFlowIpv6NextHeaderCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[663] + mi := &file_otg_proto_msgTypes[655] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { +func (x *PatternFlowIpv6NextHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderCounter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[663] +func (x *PatternFlowIpv6NextHeaderCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[655] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78731,26 +78754,26 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{663} +// Deprecated: Use PatternFlowIpv6NextHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{655} } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6NextHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -78760,7 +78783,7 @@ func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { // 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 PatternFlowEthernetPauseEtherTypeMetricTag struct { +type PatternFlowIpv6NextHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -78774,27 +78797,27 @@ type PatternFlowEthernetPauseEtherTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { - *x = PatternFlowEthernetPauseEtherTypeMetricTag{} +func (x *PatternFlowIpv6NextHeaderMetricTag) Reset() { + *x = PatternFlowIpv6NextHeaderMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[664] + mi := &file_otg_proto_msgTypes[656] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6NextHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[664] +func (x *PatternFlowIpv6NextHeaderMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[656] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78805,74 +78828,79 @@ func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{664} +// Deprecated: Use PatternFlowIpv6NextHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeaderMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{656} } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6NextHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Ethernet type -type PatternFlowEthernetPauseEtherType struct { +// Next header +type PatternFlowIpv6NextHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowIpv6NextHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6NextHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 34824 + // default = 59 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [34824] + // default = [59] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 59 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseEtherType) Reset() { - *x = PatternFlowEthernetPauseEtherType{} +func (x *PatternFlowIpv6NextHeader) Reset() { + *x = PatternFlowIpv6NextHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[665] + mi := &file_otg_proto_msgTypes[657] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherType) String() string { +func (x *PatternFlowIpv6NextHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[665] +func (x *PatternFlowIpv6NextHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[657] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78883,47 +78911,54 @@ func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{665} +// Deprecated: Use PatternFlowIpv6NextHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{657} } -func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { +func (x *PatternFlowIpv6NextHeader) GetChoice() PatternFlowIpv6NextHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseEtherType_Choice_unspecified + return PatternFlowIpv6NextHeader_Choice_unspecified } -func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { +func (x *PatternFlowIpv6NextHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { +func (x *PatternFlowIpv6NextHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowIpv6NextHeader) GetIncrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { +func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { +func (x *PatternFlowIpv6NextHeader) GetMetricTags() []*PatternFlowIpv6NextHeaderMetricTag { if x != nil { return x.MetricTags } @@ -78931,13 +78966,13 @@ func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthern } // integer counter pattern -type PatternFlowEthernetPauseControlOpCodeCounter struct { +type PatternFlowIpv6HopLimitCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -78947,23 +78982,23 @@ type PatternFlowEthernetPauseControlOpCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeCounter{} +func (x *PatternFlowIpv6HopLimitCounter) Reset() { + *x = PatternFlowIpv6HopLimitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[666] + mi := &file_otg_proto_msgTypes[658] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { +func (x *PatternFlowIpv6HopLimitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitCounter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[666] +func (x *PatternFlowIpv6HopLimitCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[658] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -78974,26 +79009,26 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{666} +// Deprecated: Use PatternFlowIpv6HopLimitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{658} } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6HopLimitCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -79003,7 +79038,7 @@ func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { // 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 PatternFlowEthernetPauseControlOpCodeMetricTag struct { +type PatternFlowIpv6HopLimitMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -79017,27 +79052,27 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { - *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} +func (x *PatternFlowIpv6HopLimitMetricTag) Reset() { + *x = PatternFlowIpv6HopLimitMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[667] + mi := &file_otg_proto_msgTypes[659] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { +func (x *PatternFlowIpv6HopLimitMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6HopLimitMetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[667] +func (x *PatternFlowIpv6HopLimitMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[659] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79048,74 +79083,74 @@ func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{667} +// Deprecated: Use PatternFlowIpv6HopLimitMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimitMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{659} } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { +func (x *PatternFlowIpv6HopLimitMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6HopLimitMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Control operation code -type PatternFlowEthernetPauseControlOpCode struct { +// Hop limit +type PatternFlowIpv6HopLimit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6HopLimit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6HopLimit_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowEthernetPauseControlOpCode) Reset() { - *x = PatternFlowEthernetPauseControlOpCode{} +func (x *PatternFlowIpv6HopLimit) Reset() { + *x = PatternFlowIpv6HopLimit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[668] + mi := &file_otg_proto_msgTypes[660] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCode) String() string { +func (x *PatternFlowIpv6HopLimit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[668] +func (x *PatternFlowIpv6HopLimit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[660] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79126,87 +79161,87 @@ func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{668} +// Deprecated: Use PatternFlowIpv6HopLimit.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{660} } -func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { +func (x *PatternFlowIpv6HopLimit) GetChoice() PatternFlowIpv6HopLimit_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseControlOpCode_Choice_unspecified + return PatternFlowIpv6HopLimit_Choice_unspecified } -func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { +func (x *PatternFlowIpv6HopLimit) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { +func (x *PatternFlowIpv6HopLimit) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetIncrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { +func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { +func (x *PatternFlowIpv6HopLimit) GetMetricTags() []*PatternFlowIpv6HopLimitMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowEthernetPauseTimeCounter struct { +// ipv6 counter pattern +type PatternFlowIpv6SrcCounter 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"` + // default = ::0 + Start *string `protobuf:"bytes,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"` + // default = ::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 *PatternFlowEthernetPauseTimeCounter) Reset() { - *x = PatternFlowEthernetPauseTimeCounter{} +func (x *PatternFlowIpv6SrcCounter) Reset() { + *x = PatternFlowIpv6SrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[669] + mi := &file_otg_proto_msgTypes[661] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTimeCounter) String() string { +func (x *PatternFlowIpv6SrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} +func (*PatternFlowIpv6SrcCounter) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[669] +func (x *PatternFlowIpv6SrcCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[661] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79217,26 +79252,26 @@ func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{669} +// Deprecated: Use PatternFlowIpv6SrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{661} } -func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { +func (x *PatternFlowIpv6SrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -79246,7 +79281,7 @@ func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { // 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 PatternFlowEthernetPauseTimeMetricTag struct { +type PatternFlowIpv6SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -79260,27 +79295,27 @@ type PatternFlowEthernetPauseTimeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { - *x = PatternFlowEthernetPauseTimeMetricTag{} +func (x *PatternFlowIpv6SrcMetricTag) Reset() { + *x = PatternFlowIpv6SrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[670] + mi := &file_otg_proto_msgTypes[662] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { +func (x *PatternFlowIpv6SrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6SrcMetricTag) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[670] +func (x *PatternFlowIpv6SrcMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[662] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79291,74 +79326,76 @@ func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{670} +// Deprecated: Use PatternFlowIpv6SrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6SrcMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{662} } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { +func (x *PatternFlowIpv6SrcMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6SrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time -type PatternFlowEthernetPauseTime struct { +// Source address +type PatternFlowIpv6Src struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Src_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Src_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"` + // default = ::0 + Value *string `protobuf:"bytes,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"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Auto *FlowIpv6Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` } -func (x *PatternFlowEthernetPauseTime) Reset() { - *x = PatternFlowEthernetPauseTime{} +func (x *PatternFlowIpv6Src) Reset() { + *x = PatternFlowIpv6Src{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[671] + mi := &file_otg_proto_msgTypes[663] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTime) String() string { +func (x *PatternFlowIpv6Src) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime) ProtoMessage() {} +func (*PatternFlowIpv6Src) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[671] +func (x *PatternFlowIpv6Src) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[663] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79369,87 +79406,94 @@ func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. -func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{671} +// Deprecated: Use PatternFlowIpv6Src.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663} } -func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { +func (x *PatternFlowIpv6Src) GetChoice() PatternFlowIpv6Src_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowEthernetPauseTime_Choice_unspecified + return PatternFlowIpv6Src_Choice_unspecified } -func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { +func (x *PatternFlowIpv6Src) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { +func (x *PatternFlowIpv6Src) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowIpv6Src) GetIncrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { +func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { +func (x *PatternFlowIpv6Src) GetMetricTags() []*PatternFlowIpv6SrcMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpSrcPortCounter struct { +func (x *PatternFlowIpv6Src) GetAuto() *FlowIpv6Auto { + if x != nil { + return x.Auto + } + return nil +} + +// ipv6 counter pattern +type PatternFlowIpv6DstCounter 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"` + // default = ::0 + Start *string `protobuf:"bytes,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"` + // default = ::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 *PatternFlowTcpSrcPortCounter) Reset() { - *x = PatternFlowTcpSrcPortCounter{} +func (x *PatternFlowIpv6DstCounter) Reset() { + *x = PatternFlowIpv6DstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[672] + mi := &file_otg_proto_msgTypes[664] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPortCounter) String() string { +func (x *PatternFlowIpv6DstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowIpv6DstCounter) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[672] +func (x *PatternFlowIpv6DstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[664] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79460,26 +79504,26 @@ func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{672} +// Deprecated: Use PatternFlowIpv6DstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{664} } -func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowIpv6DstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowIpv6DstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -79489,7 +79533,7 @@ func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { // 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 PatternFlowTcpSrcPortMetricTag struct { +type PatternFlowIpv6DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -79503,27 +79547,27 @@ type PatternFlowTcpSrcPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 128 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSrcPortMetricTag) Reset() { - *x = PatternFlowTcpSrcPortMetricTag{} +func (x *PatternFlowIpv6DstMetricTag) Reset() { + *x = PatternFlowIpv6DstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[673] + mi := &file_otg_proto_msgTypes[665] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPortMetricTag) String() string { +func (x *PatternFlowIpv6DstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowIpv6DstMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[673] +func (x *PatternFlowIpv6DstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[665] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79534,159 +79578,76 @@ func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{673} +// Deprecated: Use PatternFlowIpv6DstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6DstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{665} } -func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { +func (x *PatternFlowIpv6DstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowIpv6DstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// integer random pattern -type PatternFlowTcpSrcPortRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 65535 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowTcpSrcPortRandom) Reset() { - *x = PatternFlowTcpSrcPortRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[674] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowTcpSrcPortRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowTcpSrcPortRandom) ProtoMessage() {} - -func (x *PatternFlowTcpSrcPortRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[674] - 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 PatternFlowTcpSrcPortRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPortRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{674} -} - -func (x *PatternFlowTcpSrcPortRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min - } - return 0 -} - -func (x *PatternFlowTcpSrcPortRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max - } - return 0 -} - -func (x *PatternFlowTcpSrcPortRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowTcpSrcPortRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Source port -type PatternFlowTcpSrcPort struct { +// Destination address +type PatternFlowIpv6Dst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIpv6Dst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIpv6Dst_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"` + // default = ::0 + Value *string `protobuf:"bytes,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"` + // default = ['::0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models - Random *PatternFlowTcpSrcPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` + Auto *FlowIpv6Auto `protobuf:"bytes,8,opt,name=auto,proto3" json:"auto,omitempty"` } -func (x *PatternFlowTcpSrcPort) Reset() { - *x = PatternFlowTcpSrcPort{} +func (x *PatternFlowIpv6Dst) Reset() { + *x = PatternFlowIpv6Dst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[675] + mi := &file_otg_proto_msgTypes[666] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPort) String() string { +func (x *PatternFlowIpv6Dst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort) ProtoMessage() {} +func (*PatternFlowIpv6Dst) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[675] +func (x *PatternFlowIpv6Dst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[666] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79697,94 +79658,94 @@ func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{675} +// Deprecated: Use PatternFlowIpv6Dst.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666} } -func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { +func (x *PatternFlowIpv6Dst) GetChoice() PatternFlowIpv6Dst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSrcPort_Choice_unspecified + return PatternFlowIpv6Dst_Choice_unspecified } -func (x *PatternFlowTcpSrcPort) GetValue() uint32 { +func (x *PatternFlowIpv6Dst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { +func (x *PatternFlowIpv6Dst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowIpv6Dst) GetIncrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { +func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { +func (x *PatternFlowIpv6Dst) GetMetricTags() []*PatternFlowIpv6DstMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowTcpSrcPort) GetRandom() *PatternFlowTcpSrcPortRandom { +func (x *PatternFlowIpv6Dst) GetAuto() *FlowIpv6Auto { if x != nil { - return x.Random + return x.Auto } return nil } -// integer counter pattern -type PatternFlowTcpDstPortCounter struct { +// mac counter pattern +type PatternFlowPfcPauseDstCounter 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"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowTcpDstPortCounter) Reset() { - *x = PatternFlowTcpDstPortCounter{} +func (x *PatternFlowPfcPauseDstCounter) Reset() { + *x = PatternFlowPfcPauseDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[676] + mi := &file_otg_proto_msgTypes[667] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPortCounter) String() string { +func (x *PatternFlowPfcPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} +func (*PatternFlowPfcPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[676] +func (x *PatternFlowPfcPauseDstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[667] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79795,26 +79756,26 @@ func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{676} +// Deprecated: Use PatternFlowPfcPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{667} } -func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowPfcPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -79824,7 +79785,7 @@ func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { // 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 PatternFlowTcpDstPortMetricTag struct { +type PatternFlowPfcPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -79838,27 +79799,27 @@ type PatternFlowTcpDstPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDstPortMetricTag) Reset() { - *x = PatternFlowTcpDstPortMetricTag{} +func (x *PatternFlowPfcPauseDstMetricTag) Reset() { + *x = PatternFlowPfcPauseDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[677] + mi := &file_otg_proto_msgTypes[668] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPortMetricTag) String() string { +func (x *PatternFlowPfcPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[677] +func (x *PatternFlowPfcPauseDstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[668] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -79869,159 +79830,74 @@ func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{677} +// Deprecated: Use PatternFlowPfcPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{668} } -func (x *PatternFlowTcpDstPortMetricTag) GetName() string { +func (x *PatternFlowPfcPauseDstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// integer random pattern -type PatternFlowTcpDstPortRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 65535 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowTcpDstPortRandom) Reset() { - *x = PatternFlowTcpDstPortRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[678] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowTcpDstPortRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowTcpDstPortRandom) ProtoMessage() {} - -func (x *PatternFlowTcpDstPortRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[678] - 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 PatternFlowTcpDstPortRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPortRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{678} -} - -func (x *PatternFlowTcpDstPortRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min - } - return 0 -} - -func (x *PatternFlowTcpDstPortRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max - } - return 0 -} - -func (x *PatternFlowTcpDstPortRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowTcpDstPortRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Destination port -type PatternFlowTcpDstPort struct { +// Destination MAC address +type PatternFlowPfcPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseDst_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"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,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"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Random *PatternFlowTcpDstPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDstPort) Reset() { - *x = PatternFlowTcpDstPort{} +func (x *PatternFlowPfcPauseDst) Reset() { + *x = PatternFlowPfcPauseDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[679] + mi := &file_otg_proto_msgTypes[669] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPort) String() string { +func (x *PatternFlowPfcPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort) ProtoMessage() {} +func (*PatternFlowPfcPauseDst) ProtoMessage() {} -func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[679] +func (x *PatternFlowPfcPauseDst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[669] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80032,94 +79908,87 @@ func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{679} +// Deprecated: Use PatternFlowPfcPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669} } -func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { +func (x *PatternFlowPfcPauseDst) GetChoice() PatternFlowPfcPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDstPort_Choice_unspecified + return PatternFlowPfcPauseDst_Choice_unspecified } -func (x *PatternFlowTcpDstPort) GetValue() uint32 { +func (x *PatternFlowPfcPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpDstPort) GetValues() []uint32 { +func (x *PatternFlowPfcPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowPfcPauseDst) GetIncrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { +func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { +func (x *PatternFlowPfcPauseDst) GetMetricTags() []*PatternFlowPfcPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowTcpDstPort) GetRandom() *PatternFlowTcpDstPortRandom { - if x != nil { - return x.Random - } - return nil -} - -// integer counter pattern -type PatternFlowTcpSeqNumCounter struct { +// mac counter pattern +type PatternFlowPfcPauseSrcCounter 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"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowTcpSeqNumCounter) Reset() { - *x = PatternFlowTcpSeqNumCounter{} +func (x *PatternFlowPfcPauseSrcCounter) Reset() { + *x = PatternFlowPfcPauseSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[680] + mi := &file_otg_proto_msgTypes[670] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNumCounter) String() string { +func (x *PatternFlowPfcPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[680] +func (x *PatternFlowPfcPauseSrcCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[670] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80130,26 +79999,26 @@ func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{680} +// Deprecated: Use PatternFlowPfcPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{670} } -func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { +func (x *PatternFlowPfcPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -80159,7 +80028,7 @@ func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { // 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 PatternFlowTcpSeqNumMetricTag struct { +type PatternFlowPfcPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -80173,27 +80042,27 @@ type PatternFlowTcpSeqNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpSeqNumMetricTag) Reset() { - *x = PatternFlowTcpSeqNumMetricTag{} +func (x *PatternFlowPfcPauseSrcMetricTag) Reset() { + *x = PatternFlowPfcPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[681] + mi := &file_otg_proto_msgTypes[671] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNumMetricTag) String() string { +func (x *PatternFlowPfcPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[681] +func (x *PatternFlowPfcPauseSrcMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[671] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80204,74 +80073,74 @@ func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{681} +// Deprecated: Use PatternFlowPfcPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrcMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{671} } -func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { +func (x *PatternFlowPfcPauseSrcMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number -type PatternFlowTcpSeqNum struct { +// Source MAC address +type PatternFlowPfcPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseSrc_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"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,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"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpSeqNum) Reset() { - *x = PatternFlowTcpSeqNum{} +func (x *PatternFlowPfcPauseSrc) Reset() { + *x = PatternFlowPfcPauseSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[682] + mi := &file_otg_proto_msgTypes[672] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNum) String() string { +func (x *PatternFlowPfcPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[682] +func (x *PatternFlowPfcPauseSrc) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[672] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80282,47 +80151,47 @@ func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{682} +// Deprecated: Use PatternFlowPfcPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672} } -func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { +func (x *PatternFlowPfcPauseSrc) GetChoice() PatternFlowPfcPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpSeqNum_Choice_unspecified + return PatternFlowPfcPauseSrc_Choice_unspecified } -func (x *PatternFlowTcpSeqNum) GetValue() uint32 { +func (x *PatternFlowPfcPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { +func (x *PatternFlowPfcPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowPfcPauseSrc) GetIncrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { +func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { +func (x *PatternFlowPfcPauseSrc) GetMetricTags() []*PatternFlowPfcPauseSrcMetricTag { if x != nil { return x.MetricTags } @@ -80330,13 +80199,13 @@ func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag } // integer counter pattern -type PatternFlowTcpAckNumCounter struct { +type PatternFlowPfcPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -80346,23 +80215,23 @@ type PatternFlowTcpAckNumCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpAckNumCounter) Reset() { - *x = PatternFlowTcpAckNumCounter{} +func (x *PatternFlowPfcPauseEtherTypeCounter) Reset() { + *x = PatternFlowPfcPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[683] + mi := &file_otg_proto_msgTypes[673] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNumCounter) String() string { +func (x *PatternFlowPfcPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[683] +func (x *PatternFlowPfcPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[673] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80373,26 +80242,26 @@ func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{683} +// Deprecated: Use PatternFlowPfcPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{673} } -func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { +func (x *PatternFlowPfcPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -80402,7 +80271,7 @@ func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { // 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 PatternFlowTcpAckNumMetricTag struct { +type PatternFlowPfcPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -80416,27 +80285,27 @@ type PatternFlowTcpAckNumMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpAckNumMetricTag) Reset() { - *x = PatternFlowTcpAckNumMetricTag{} +func (x *PatternFlowPfcPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowPfcPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[684] + mi := &file_otg_proto_msgTypes[674] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNumMetricTag) String() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[684] +func (x *PatternFlowPfcPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[674] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80447,74 +80316,74 @@ func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{684} +// Deprecated: Use PatternFlowPfcPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{674} } -func (x *PatternFlowTcpAckNumMetricTag) GetName() string { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Acknowledgement number -type PatternFlowTcpAckNum struct { +// Ethernet type +type PatternFlowPfcPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpAckNum) Reset() { - *x = PatternFlowTcpAckNum{} +func (x *PatternFlowPfcPauseEtherType) Reset() { + *x = PatternFlowPfcPauseEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[685] + mi := &file_otg_proto_msgTypes[675] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNum) String() string { +func (x *PatternFlowPfcPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType) ProtoMessage() {} -func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[685] +func (x *PatternFlowPfcPauseEtherType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[675] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80525,47 +80394,47 @@ func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{685} +// Deprecated: Use PatternFlowPfcPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675} } -func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { +func (x *PatternFlowPfcPauseEtherType) GetChoice() PatternFlowPfcPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpAckNum_Choice_unspecified + return PatternFlowPfcPauseEtherType_Choice_unspecified } -func (x *PatternFlowTcpAckNum) GetValue() uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpAckNum) GetValues() []uint32 { +func (x *PatternFlowPfcPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowPfcPauseEtherType) GetIncrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { +func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { +func (x *PatternFlowPfcPauseEtherType) GetMetricTags() []*PatternFlowPfcPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } @@ -80573,13 +80442,13 @@ func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag } // integer counter pattern -type PatternFlowTcpDataOffsetCounter struct { +type PatternFlowPfcPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 257 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -80589,23 +80458,23 @@ type PatternFlowTcpDataOffsetCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpDataOffsetCounter) Reset() { - *x = PatternFlowTcpDataOffsetCounter{} +func (x *PatternFlowPfcPauseControlOpCodeCounter) Reset() { + *x = PatternFlowPfcPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[686] + mi := &file_otg_proto_msgTypes[676] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffsetCounter) String() string { +func (x *PatternFlowPfcPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[686] +func (x *PatternFlowPfcPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[676] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80616,26 +80485,26 @@ func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{686} +// Deprecated: Use PatternFlowPfcPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{676} } -func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -80645,7 +80514,7 @@ func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { // 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 PatternFlowTcpDataOffsetMetricTag struct { +type PatternFlowPfcPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -80659,27 +80528,27 @@ type PatternFlowTcpDataOffsetMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { - *x = PatternFlowTcpDataOffsetMetricTag{} +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowPfcPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[687] + mi := &file_otg_proto_msgTypes[677] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffsetMetricTag) String() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[687] +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[677] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80690,74 +80559,74 @@ func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{687} +// Deprecated: Use PatternFlowPfcPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{677} } -func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The number of 32 bit words in the TCP header. This indicates where the data begins. -type PatternFlowTcpDataOffset struct { +// Control operation code +type PatternFlowPfcPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 257 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [257] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpDataOffset) Reset() { - *x = PatternFlowTcpDataOffset{} +func (x *PatternFlowPfcPauseControlOpCode) Reset() { + *x = PatternFlowPfcPauseControlOpCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[688] + mi := &file_otg_proto_msgTypes[678] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffset) String() string { +func (x *PatternFlowPfcPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[688] +func (x *PatternFlowPfcPauseControlOpCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[678] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80768,47 +80637,47 @@ func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{688} +// Deprecated: Use PatternFlowPfcPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678} } -func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { +func (x *PatternFlowPfcPauseControlOpCode) GetChoice() PatternFlowPfcPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpDataOffset_Choice_unspecified + return PatternFlowPfcPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowTcpDataOffset) GetValue() uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { +func (x *PatternFlowPfcPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowPfcPauseControlOpCode) GetIncrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { +func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { +func (x *PatternFlowPfcPauseControlOpCode) GetMetricTags() []*PatternFlowPfcPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } @@ -80816,7 +80685,7 @@ func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMe } // integer counter pattern -type PatternFlowTcpEcnNsCounter struct { +type PatternFlowPfcPauseClassEnableVectorCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -80832,23 +80701,23 @@ type PatternFlowTcpEcnNsCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnNsCounter) Reset() { - *x = PatternFlowTcpEcnNsCounter{} +func (x *PatternFlowPfcPauseClassEnableVectorCounter) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[689] + mi := &file_otg_proto_msgTypes[679] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNsCounter) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorCounter) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[689] +func (x *PatternFlowPfcPauseClassEnableVectorCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[679] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80859,26 +80728,26 @@ func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{689} +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{679} } -func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -80888,7 +80757,7 @@ func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { // 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 PatternFlowTcpEcnNsMetricTag struct { +type PatternFlowPfcPauseClassEnableVectorMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -80902,27 +80771,27 @@ type PatternFlowTcpEcnNsMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnNsMetricTag) Reset() { - *x = PatternFlowTcpEcnNsMetricTag{} +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) Reset() { + *x = PatternFlowPfcPauseClassEnableVectorMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[690] + mi := &file_otg_proto_msgTypes[680] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNsMetricTag) String() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[690] +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[680] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -80933,41 +80802,41 @@ func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{690} +// Deprecated: Use PatternFlowPfcPauseClassEnableVectorMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVectorMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{680} } -func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPauseClassEnableVectorMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, concealment protection. -type PatternFlowTcpEcnNs struct { +// Destination +type PatternFlowPfcPauseClassEnableVector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPauseClassEnableVector_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPauseClassEnableVector_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"` @@ -80975,32 +80844,32 @@ type PatternFlowTcpEcnNs struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnNs) Reset() { - *x = PatternFlowTcpEcnNs{} +func (x *PatternFlowPfcPauseClassEnableVector) Reset() { + *x = PatternFlowPfcPauseClassEnableVector{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[691] + mi := &file_otg_proto_msgTypes[681] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNs) String() string { +func (x *PatternFlowPfcPauseClassEnableVector) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[691] +func (x *PatternFlowPfcPauseClassEnableVector) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[681] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81011,47 +80880,47 @@ func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{691} +// Deprecated: Use PatternFlowPfcPauseClassEnableVector.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{681} } -func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { +func (x *PatternFlowPfcPauseClassEnableVector) GetChoice() PatternFlowPfcPauseClassEnableVector_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnNs_Choice_unspecified + return PatternFlowPfcPauseClassEnableVector_Choice_unspecified } -func (x *PatternFlowTcpEcnNs) GetValue() uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { +func (x *PatternFlowPfcPauseClassEnableVector) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowPfcPauseClassEnableVector) GetIncrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { +func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPauseClassEnableVectorCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { +func (x *PatternFlowPfcPauseClassEnableVector) GetMetricTags() []*PatternFlowPfcPauseClassEnableVectorMetricTag { if x != nil { return x.MetricTags } @@ -81059,7 +80928,7 @@ func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { } // integer counter pattern -type PatternFlowTcpEcnCwrCounter struct { +type PatternFlowPfcPausePauseClass0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81075,23 +80944,23 @@ type PatternFlowTcpEcnCwrCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnCwrCounter) Reset() { - *x = PatternFlowTcpEcnCwrCounter{} +func (x *PatternFlowPfcPausePauseClass0Counter) Reset() { + *x = PatternFlowPfcPausePauseClass0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[692] + mi := &file_otg_proto_msgTypes[682] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwrCounter) String() string { +func (x *PatternFlowPfcPausePauseClass0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0Counter) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[692] +func (x *PatternFlowPfcPausePauseClass0Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[682] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81102,26 +80971,26 @@ func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{692} +// Deprecated: Use PatternFlowPfcPausePauseClass0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{682} } -func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -81131,7 +81000,7 @@ func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { // 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 PatternFlowTcpEcnCwrMetricTag struct { +type PatternFlowPfcPausePauseClass0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81145,27 +81014,27 @@ type PatternFlowTcpEcnCwrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { - *x = PatternFlowTcpEcnCwrMetricTag{} +func (x *PatternFlowPfcPausePauseClass0MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[693] + mi := &file_otg_proto_msgTypes[683] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwrMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[693] +func (x *PatternFlowPfcPausePauseClass0MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[683] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81176,41 +81045,41 @@ func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{693} +// Deprecated: Use PatternFlowPfcPausePauseClass0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{683} } -func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, congestion window reduced. -type PatternFlowTcpEcnCwr struct { +// Pause class 0 +type PatternFlowPfcPausePauseClass0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass0_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"` @@ -81218,32 +81087,32 @@ type PatternFlowTcpEcnCwr struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnCwr) Reset() { - *x = PatternFlowTcpEcnCwr{} +func (x *PatternFlowPfcPausePauseClass0) Reset() { + *x = PatternFlowPfcPausePauseClass0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[694] + mi := &file_otg_proto_msgTypes[684] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwr) String() string { +func (x *PatternFlowPfcPausePauseClass0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[694] +func (x *PatternFlowPfcPausePauseClass0) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[684] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81254,47 +81123,47 @@ func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{694} +// Deprecated: Use PatternFlowPfcPausePauseClass0.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{684} } -func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass0) GetChoice() PatternFlowPfcPausePauseClass0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnCwr_Choice_unspecified + return PatternFlowPfcPausePauseClass0_Choice_unspecified } -func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowPfcPausePauseClass0) GetIncrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { +func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePauseClass0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { +func (x *PatternFlowPfcPausePauseClass0) GetMetricTags() []*PatternFlowPfcPausePauseClass0MetricTag { if x != nil { return x.MetricTags } @@ -81302,7 +81171,7 @@ func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag } // integer counter pattern -type PatternFlowTcpEcnEchoCounter struct { +type PatternFlowPfcPausePauseClass1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81318,23 +81187,23 @@ type PatternFlowTcpEcnEchoCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpEcnEchoCounter) Reset() { - *x = PatternFlowTcpEcnEchoCounter{} +func (x *PatternFlowPfcPausePauseClass1Counter) Reset() { + *x = PatternFlowPfcPausePauseClass1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[695] + mi := &file_otg_proto_msgTypes[685] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEchoCounter) String() string { +func (x *PatternFlowPfcPausePauseClass1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1Counter) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[695] +func (x *PatternFlowPfcPausePauseClass1Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[685] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81345,26 +81214,26 @@ func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{695} +// Deprecated: Use PatternFlowPfcPausePauseClass1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{685} } -func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -81374,7 +81243,7 @@ func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { // 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 PatternFlowTcpEcnEchoMetricTag struct { +type PatternFlowPfcPausePauseClass1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81388,27 +81257,27 @@ type PatternFlowTcpEcnEchoMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { - *x = PatternFlowTcpEcnEchoMetricTag{} +func (x *PatternFlowPfcPausePauseClass1MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[696] + mi := &file_otg_proto_msgTypes[686] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEchoMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[696] +func (x *PatternFlowPfcPausePauseClass1MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[686] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81419,42 +81288,41 @@ func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{696} +// Deprecated: Use PatternFlowPfcPausePauseClass1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{686} } -func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates -// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. -type PatternFlowTcpEcnEcho struct { +// Pause class 1 +type PatternFlowPfcPausePauseClass1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass1_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"` @@ -81462,32 +81330,32 @@ type PatternFlowTcpEcnEcho struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpEcnEcho) Reset() { - *x = PatternFlowTcpEcnEcho{} +func (x *PatternFlowPfcPausePauseClass1) Reset() { + *x = PatternFlowPfcPausePauseClass1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[697] + mi := &file_otg_proto_msgTypes[687] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEcho) String() string { +func (x *PatternFlowPfcPausePauseClass1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[697] +func (x *PatternFlowPfcPausePauseClass1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[687] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81498,47 +81366,47 @@ func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{697} +// Deprecated: Use PatternFlowPfcPausePauseClass1.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{687} } -func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass1) GetChoice() PatternFlowPfcPausePauseClass1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpEcnEcho_Choice_unspecified + return PatternFlowPfcPausePauseClass1_Choice_unspecified } -func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowPfcPausePauseClass1) GetIncrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { +func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePauseClass1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { +func (x *PatternFlowPfcPausePauseClass1) GetMetricTags() []*PatternFlowPfcPausePauseClass1MetricTag { if x != nil { return x.MetricTags } @@ -81546,7 +81414,7 @@ func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTa } // integer counter pattern -type PatternFlowTcpCtlUrgCounter struct { +type PatternFlowPfcPausePauseClass2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81562,23 +81430,23 @@ type PatternFlowTcpCtlUrgCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlUrgCounter) Reset() { - *x = PatternFlowTcpCtlUrgCounter{} +func (x *PatternFlowPfcPausePauseClass2Counter) Reset() { + *x = PatternFlowPfcPausePauseClass2Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[698] + mi := &file_otg_proto_msgTypes[688] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrgCounter) String() string { +func (x *PatternFlowPfcPausePauseClass2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[698] +func (x *PatternFlowPfcPausePauseClass2Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[688] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81589,26 +81457,26 @@ func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{698} +// Deprecated: Use PatternFlowPfcPausePauseClass2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{688} } -func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -81618,7 +81486,7 @@ func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlUrgMetricTag struct { +type PatternFlowPfcPausePauseClass2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81632,27 +81500,27 @@ type PatternFlowTcpCtlUrgMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { - *x = PatternFlowTcpCtlUrgMetricTag{} +func (x *PatternFlowPfcPausePauseClass2MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass2MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[699] + mi := &file_otg_proto_msgTypes[689] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrgMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[699] +func (x *PatternFlowPfcPausePauseClass2MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[689] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81663,41 +81531,41 @@ func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{699} +// Deprecated: Use PatternFlowPfcPausePauseClass2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{689} } -func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the urgent pointer field is significant. -type PatternFlowTcpCtlUrg struct { +// Pause class 2 +type PatternFlowPfcPausePauseClass2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass2_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"` @@ -81705,32 +81573,32 @@ type PatternFlowTcpCtlUrg struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlUrg) Reset() { - *x = PatternFlowTcpCtlUrg{} +func (x *PatternFlowPfcPausePauseClass2) Reset() { + *x = PatternFlowPfcPausePauseClass2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[700] + mi := &file_otg_proto_msgTypes[690] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrg) String() string { +func (x *PatternFlowPfcPausePauseClass2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[700] +func (x *PatternFlowPfcPausePauseClass2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[690] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81741,47 +81609,47 @@ func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{700} +// Deprecated: Use PatternFlowPfcPausePauseClass2.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{690} } -func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass2) GetChoice() PatternFlowPfcPausePauseClass2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlUrg_Choice_unspecified + return PatternFlowPfcPausePauseClass2_Choice_unspecified } -func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowPfcPausePauseClass2) GetIncrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { +func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePauseClass2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { +func (x *PatternFlowPfcPausePauseClass2) GetMetricTags() []*PatternFlowPfcPausePauseClass2MetricTag { if x != nil { return x.MetricTags } @@ -81789,7 +81657,7 @@ func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag } // integer counter pattern -type PatternFlowTcpCtlAckCounter struct { +type PatternFlowPfcPausePauseClass3Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81805,23 +81673,23 @@ type PatternFlowTcpCtlAckCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlAckCounter) Reset() { - *x = PatternFlowTcpCtlAckCounter{} +func (x *PatternFlowPfcPausePauseClass3Counter) Reset() { + *x = PatternFlowPfcPausePauseClass3Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[701] + mi := &file_otg_proto_msgTypes[691] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAckCounter) String() string { +func (x *PatternFlowPfcPausePauseClass3Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[701] +func (x *PatternFlowPfcPausePauseClass3Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[691] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81832,26 +81700,26 @@ func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{701} +// Deprecated: Use PatternFlowPfcPausePauseClass3Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{691} } -func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass3Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass3Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -81861,7 +81729,7 @@ func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlAckMetricTag struct { +type PatternFlowPfcPausePauseClass3MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -81875,27 +81743,27 @@ type PatternFlowTcpCtlAckMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlAckMetricTag) Reset() { - *x = PatternFlowTcpCtlAckMetricTag{} +func (x *PatternFlowPfcPausePauseClass3MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass3MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[702] + mi := &file_otg_proto_msgTypes[692] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAckMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[702] +func (x *PatternFlowPfcPausePauseClass3MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[692] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81906,41 +81774,41 @@ func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{702} +// Deprecated: Use PatternFlowPfcPausePauseClass3MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{692} } -func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass3MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A value of 1 indicates that the ackknowledgment field is significant. -type PatternFlowTcpCtlAck struct { +// Pause class 3 +type PatternFlowPfcPausePauseClass3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass3_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass3_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"` @@ -81948,32 +81816,32 @@ type PatternFlowTcpCtlAck struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlAck) Reset() { - *x = PatternFlowTcpCtlAck{} +func (x *PatternFlowPfcPausePauseClass3) Reset() { + *x = PatternFlowPfcPausePauseClass3{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[703] + mi := &file_otg_proto_msgTypes[693] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAck) String() string { +func (x *PatternFlowPfcPausePauseClass3) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[703] +func (x *PatternFlowPfcPausePauseClass3) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[693] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -81984,47 +81852,47 @@ func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{703} +// Deprecated: Use PatternFlowPfcPausePauseClass3.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{693} } -func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass3) GetChoice() PatternFlowPfcPausePauseClass3_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlAck_Choice_unspecified + return PatternFlowPfcPausePauseClass3_Choice_unspecified } -func (x *PatternFlowTcpCtlAck) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass3) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass3) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowPfcPausePauseClass3) GetIncrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { +func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePauseClass3Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { +func (x *PatternFlowPfcPausePauseClass3) GetMetricTags() []*PatternFlowPfcPausePauseClass3MetricTag { if x != nil { return x.MetricTags } @@ -82032,7 +81900,7 @@ func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag } // integer counter pattern -type PatternFlowTcpCtlPshCounter struct { +type PatternFlowPfcPausePauseClass4Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82048,23 +81916,23 @@ type PatternFlowTcpCtlPshCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlPshCounter) Reset() { - *x = PatternFlowTcpCtlPshCounter{} +func (x *PatternFlowPfcPausePauseClass4Counter) Reset() { + *x = PatternFlowPfcPausePauseClass4Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[704] + mi := &file_otg_proto_msgTypes[694] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPshCounter) String() string { +func (x *PatternFlowPfcPausePauseClass4Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[704] +func (x *PatternFlowPfcPausePauseClass4Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[694] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82075,26 +81943,26 @@ func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{704} +// Deprecated: Use PatternFlowPfcPausePauseClass4Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{694} } -func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass4Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -82104,7 +81972,7 @@ func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlPshMetricTag struct { +type PatternFlowPfcPausePauseClass4MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82118,27 +81986,27 @@ type PatternFlowTcpCtlPshMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlPshMetricTag) Reset() { - *x = PatternFlowTcpCtlPshMetricTag{} +func (x *PatternFlowPfcPausePauseClass4MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass4MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[705] + mi := &file_otg_proto_msgTypes[695] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPshMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[705] +func (x *PatternFlowPfcPausePauseClass4MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[695] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82149,41 +82017,41 @@ func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{705} +// Deprecated: Use PatternFlowPfcPausePauseClass4MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{695} } -func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass4MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Asks to push the buffered data to the receiving application. -type PatternFlowTcpCtlPsh struct { +// Pause class 4 +type PatternFlowPfcPausePauseClass4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass4_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"` @@ -82191,32 +82059,32 @@ type PatternFlowTcpCtlPsh struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlPsh) Reset() { - *x = PatternFlowTcpCtlPsh{} +func (x *PatternFlowPfcPausePauseClass4) Reset() { + *x = PatternFlowPfcPausePauseClass4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[706] + mi := &file_otg_proto_msgTypes[696] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPsh) String() string { +func (x *PatternFlowPfcPausePauseClass4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[706] +func (x *PatternFlowPfcPausePauseClass4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[696] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82227,47 +82095,47 @@ func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{706} +// Deprecated: Use PatternFlowPfcPausePauseClass4.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{696} } -func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass4) GetChoice() PatternFlowPfcPausePauseClass4_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlPsh_Choice_unspecified + return PatternFlowPfcPausePauseClass4_Choice_unspecified } -func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass4) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowPfcPausePauseClass4) GetIncrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { +func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePauseClass4Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { +func (x *PatternFlowPfcPausePauseClass4) GetMetricTags() []*PatternFlowPfcPausePauseClass4MetricTag { if x != nil { return x.MetricTags } @@ -82275,7 +82143,7 @@ func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag } // integer counter pattern -type PatternFlowTcpCtlRstCounter struct { +type PatternFlowPfcPausePauseClass5Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82291,23 +82159,23 @@ type PatternFlowTcpCtlRstCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlRstCounter) Reset() { - *x = PatternFlowTcpCtlRstCounter{} +func (x *PatternFlowPfcPausePauseClass5Counter) Reset() { + *x = PatternFlowPfcPausePauseClass5Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[707] + mi := &file_otg_proto_msgTypes[697] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRstCounter) String() string { +func (x *PatternFlowPfcPausePauseClass5Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[707] +func (x *PatternFlowPfcPausePauseClass5Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[697] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82318,26 +82186,26 @@ func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{707} +// Deprecated: Use PatternFlowPfcPausePauseClass5Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{697} } -func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass5Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -82347,7 +82215,7 @@ func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlRstMetricTag struct { +type PatternFlowPfcPausePauseClass5MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82361,27 +82229,27 @@ type PatternFlowTcpCtlRstMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlRstMetricTag) Reset() { - *x = PatternFlowTcpCtlRstMetricTag{} +func (x *PatternFlowPfcPausePauseClass5MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass5MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[708] + mi := &file_otg_proto_msgTypes[698] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRstMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[708] +func (x *PatternFlowPfcPausePauseClass5MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[698] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82392,41 +82260,41 @@ func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{708} +// Deprecated: Use PatternFlowPfcPausePauseClass5MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{698} } -func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass5MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reset the connection. -type PatternFlowTcpCtlRst struct { +// Pause class 5 +type PatternFlowPfcPausePauseClass5 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass5_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass5_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"` @@ -82434,32 +82302,32 @@ type PatternFlowTcpCtlRst struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlRst) Reset() { - *x = PatternFlowTcpCtlRst{} +func (x *PatternFlowPfcPausePauseClass5) Reset() { + *x = PatternFlowPfcPausePauseClass5{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[709] + mi := &file_otg_proto_msgTypes[699] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRst) String() string { +func (x *PatternFlowPfcPausePauseClass5) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[709] +func (x *PatternFlowPfcPausePauseClass5) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[699] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82470,47 +82338,47 @@ func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{709} +// Deprecated: Use PatternFlowPfcPausePauseClass5.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{699} } -func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass5) GetChoice() PatternFlowPfcPausePauseClass5_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlRst_Choice_unspecified + return PatternFlowPfcPausePauseClass5_Choice_unspecified } -func (x *PatternFlowTcpCtlRst) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass5) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowPfcPausePauseClass5) GetIncrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { +func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePauseClass5Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { +func (x *PatternFlowPfcPausePauseClass5) GetMetricTags() []*PatternFlowPfcPausePauseClass5MetricTag { if x != nil { return x.MetricTags } @@ -82518,7 +82386,7 @@ func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag } // integer counter pattern -type PatternFlowTcpCtlSynCounter struct { +type PatternFlowPfcPausePauseClass6Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82534,23 +82402,23 @@ type PatternFlowTcpCtlSynCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlSynCounter) Reset() { - *x = PatternFlowTcpCtlSynCounter{} +func (x *PatternFlowPfcPausePauseClass6Counter) Reset() { + *x = PatternFlowPfcPausePauseClass6Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[710] + mi := &file_otg_proto_msgTypes[700] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSynCounter) String() string { +func (x *PatternFlowPfcPausePauseClass6Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[710] +func (x *PatternFlowPfcPausePauseClass6Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[700] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82561,26 +82429,26 @@ func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{710} +// Deprecated: Use PatternFlowPfcPausePauseClass6Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{700} } -func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass6Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -82590,7 +82458,7 @@ func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlSynMetricTag struct { +type PatternFlowPfcPausePauseClass6MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82604,27 +82472,27 @@ type PatternFlowTcpCtlSynMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlSynMetricTag) Reset() { - *x = PatternFlowTcpCtlSynMetricTag{} +func (x *PatternFlowPfcPausePauseClass6MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass6MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[711] + mi := &file_otg_proto_msgTypes[701] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSynMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[711] +func (x *PatternFlowPfcPausePauseClass6MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[701] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82635,41 +82503,41 @@ func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{711} +// Deprecated: Use PatternFlowPfcPausePauseClass6MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{701} } -func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass6MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Synchronize sequenece numbers. -type PatternFlowTcpCtlSyn struct { +// Pause class 6 +type PatternFlowPfcPausePauseClass6 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass6_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass6_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"` @@ -82677,32 +82545,32 @@ type PatternFlowTcpCtlSyn struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlSyn) Reset() { - *x = PatternFlowTcpCtlSyn{} +func (x *PatternFlowPfcPausePauseClass6) Reset() { + *x = PatternFlowPfcPausePauseClass6{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[712] + mi := &file_otg_proto_msgTypes[702] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSyn) String() string { +func (x *PatternFlowPfcPausePauseClass6) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[712] +func (x *PatternFlowPfcPausePauseClass6) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[702] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82713,47 +82581,47 @@ func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{712} +// Deprecated: Use PatternFlowPfcPausePauseClass6.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{702} } -func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass6) GetChoice() PatternFlowPfcPausePauseClass6_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlSyn_Choice_unspecified + return PatternFlowPfcPausePauseClass6_Choice_unspecified } -func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass6) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowPfcPausePauseClass6) GetIncrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { +func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePauseClass6Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { +func (x *PatternFlowPfcPausePauseClass6) GetMetricTags() []*PatternFlowPfcPausePauseClass6MetricTag { if x != nil { return x.MetricTags } @@ -82761,7 +82629,7 @@ func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag } // integer counter pattern -type PatternFlowTcpCtlFinCounter struct { +type PatternFlowPfcPausePauseClass7Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82777,23 +82645,23 @@ type PatternFlowTcpCtlFinCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowTcpCtlFinCounter) Reset() { - *x = PatternFlowTcpCtlFinCounter{} +func (x *PatternFlowPfcPausePauseClass7Counter) Reset() { + *x = PatternFlowPfcPausePauseClass7Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[713] + mi := &file_otg_proto_msgTypes[703] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFinCounter) String() string { +func (x *PatternFlowPfcPausePauseClass7Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7Counter) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[713] +func (x *PatternFlowPfcPausePauseClass7Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[703] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82804,26 +82672,26 @@ func (x *PatternFlowTcpCtlFinCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{713} +// Deprecated: Use PatternFlowPfcPausePauseClass7Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{703} } -func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { +func (x *PatternFlowPfcPausePauseClass7Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -82833,7 +82701,7 @@ func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { // 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 PatternFlowTcpCtlFinMetricTag struct { +type PatternFlowPfcPausePauseClass7MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -82847,27 +82715,27 @@ type PatternFlowTcpCtlFinMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpCtlFinMetricTag) Reset() { - *x = PatternFlowTcpCtlFinMetricTag{} +func (x *PatternFlowPfcPausePauseClass7MetricTag) Reset() { + *x = PatternFlowPfcPausePauseClass7MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[714] + mi := &file_otg_proto_msgTypes[704] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFinMetricTag) String() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7MetricTag) ProtoMessage() {} -func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[714] +func (x *PatternFlowPfcPausePauseClass7MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[704] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82878,41 +82746,41 @@ func (x *PatternFlowTcpCtlFinMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{714} +// Deprecated: Use PatternFlowPfcPausePauseClass7MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{704} } -func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { +func (x *PatternFlowPfcPausePauseClass7MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Last packet from the sender. -type PatternFlowTcpCtlFin struct { +// Pause class 7 +type PatternFlowPfcPausePauseClass7 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPfcPausePauseClass7_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPfcPausePauseClass7_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"` @@ -82920,32 +82788,32 @@ type PatternFlowTcpCtlFin struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpCtlFin) Reset() { - *x = PatternFlowTcpCtlFin{} +func (x *PatternFlowPfcPausePauseClass7) Reset() { + *x = PatternFlowPfcPausePauseClass7{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[715] + mi := &file_otg_proto_msgTypes[705] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFin) String() string { +func (x *PatternFlowPfcPausePauseClass7) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[715] +func (x *PatternFlowPfcPausePauseClass7) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[705] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -82956,87 +82824,87 @@ func (x *PatternFlowTcpCtlFin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{715} +// Deprecated: Use PatternFlowPfcPausePauseClass7.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705} } -func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { +func (x *PatternFlowPfcPausePauseClass7) GetChoice() PatternFlowPfcPausePauseClass7_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpCtlFin_Choice_unspecified + return PatternFlowPfcPausePauseClass7_Choice_unspecified } -func (x *PatternFlowTcpCtlFin) GetValue() uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { +func (x *PatternFlowPfcPausePauseClass7) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowPfcPausePauseClass7) GetIncrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { +func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePauseClass7Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { +func (x *PatternFlowPfcPausePauseClass7) GetMetricTags() []*PatternFlowPfcPausePauseClass7MetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowTcpWindowCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseDstCounter 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"` + // default = 01:80:c2:00:00:01 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowTcpWindowCounter) Reset() { - *x = PatternFlowTcpWindowCounter{} +func (x *PatternFlowEthernetPauseDstCounter) Reset() { + *x = PatternFlowEthernetPauseDstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[716] + mi := &file_otg_proto_msgTypes[706] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindowCounter) String() string { +func (x *PatternFlowEthernetPauseDstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstCounter) ProtoMessage() {} -func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[716] +func (x *PatternFlowEthernetPauseDstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[706] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83047,26 +82915,26 @@ func (x *PatternFlowTcpWindowCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{716} +// Deprecated: Use PatternFlowEthernetPauseDstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{706} } -func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseDstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -83076,7 +82944,7 @@ func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { // 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 PatternFlowTcpWindowMetricTag struct { +type PatternFlowEthernetPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -83090,27 +82958,27 @@ type PatternFlowTcpWindowMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowTcpWindowMetricTag) Reset() { - *x = PatternFlowTcpWindowMetricTag{} +func (x *PatternFlowEthernetPauseDstMetricTag) Reset() { + *x = PatternFlowEthernetPauseDstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[717] + mi := &file_otg_proto_msgTypes[707] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindowMetricTag) String() string { +func (x *PatternFlowEthernetPauseDstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseDstMetricTag) ProtoMessage() {} -func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[717] +func (x *PatternFlowEthernetPauseDstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[707] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83121,74 +82989,74 @@ func (x *PatternFlowTcpWindowMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{717} +// Deprecated: Use PatternFlowEthernetPauseDstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{707} } -func (x *PatternFlowTcpWindowMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseDstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseDstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tcp connection window. -type PatternFlowTcpWindow struct { +// Destination MAC address +type PatternFlowEthernetPauseDst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseDst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseDst_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"` + // default = 01:80:c2:00:00:01 + Value *string `protobuf:"bytes,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"` + // default = ['01:80:c2:00:00:01'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowTcpWindow) Reset() { - *x = PatternFlowTcpWindow{} +func (x *PatternFlowEthernetPauseDst) Reset() { + *x = PatternFlowEthernetPauseDst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[718] + mi := &file_otg_proto_msgTypes[708] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindow) String() string { +func (x *PatternFlowEthernetPauseDst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst) ProtoMessage() {} -func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[718] +func (x *PatternFlowEthernetPauseDst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[708] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83199,158 +83067,87 @@ func (x *PatternFlowTcpWindow) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{718} +// Deprecated: Use PatternFlowEthernetPauseDst.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{708} } -func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { +func (x *PatternFlowEthernetPauseDst) GetChoice() PatternFlowEthernetPauseDst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowTcpWindow_Choice_unspecified + return PatternFlowEthernetPauseDst_Choice_unspecified } -func (x *PatternFlowTcpWindow) GetValue() uint32 { +func (x *PatternFlowEthernetPauseDst) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowTcpWindow) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseDst) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowEthernetPauseDst) GetIncrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { +func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { +func (x *PatternFlowEthernetPauseDst) GetMetricTags() []*PatternFlowEthernetPauseDstMetricTag { if x != nil { return x.MetricTags } return nil } -// The one's complement of the one's complement sum of all 16 bit words in header and -// text. An all-zero value means that no checksum will be transmitted. While computing -// the checksum, the checksum field itself is replaced with zeros. -type PatternFlowTcpChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowTcpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowTcpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowTcpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowTcpChecksum) Reset() { - *x = PatternFlowTcpChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[719] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowTcpChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowTcpChecksum) ProtoMessage() {} - -func (x *PatternFlowTcpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[719] - 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 PatternFlowTcpChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719} -} - -func (x *PatternFlowTcpChecksum) GetChoice() PatternFlowTcpChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowTcpChecksum_Choice_unspecified -} - -func (x *PatternFlowTcpChecksum) GetGenerated() PatternFlowTcpChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowTcpChecksum_Generated_unspecified -} - -func (x *PatternFlowTcpChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// integer counter pattern -type PatternFlowUdpSrcPortCounter struct { +// mac counter pattern +type PatternFlowEthernetPauseSrcCounter 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"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowUdpSrcPortCounter) Reset() { - *x = PatternFlowUdpSrcPortCounter{} +func (x *PatternFlowEthernetPauseSrcCounter) Reset() { + *x = PatternFlowEthernetPauseSrcCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[720] + mi := &file_otg_proto_msgTypes[709] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPortCounter) String() string { +func (x *PatternFlowEthernetPauseSrcCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcCounter) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[720] +func (x *PatternFlowEthernetPauseSrcCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[709] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83361,26 +83158,26 @@ func (x *PatternFlowUdpSrcPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{720} +// Deprecated: Use PatternFlowEthernetPauseSrcCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{709} } -func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseSrcCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -83390,7 +83187,7 @@ func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { // 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 PatternFlowUdpSrcPortMetricTag struct { +type PatternFlowEthernetPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -83404,27 +83201,27 @@ type PatternFlowUdpSrcPortMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpSrcPortMetricTag) Reset() { - *x = PatternFlowUdpSrcPortMetricTag{} +func (x *PatternFlowEthernetPauseSrcMetricTag) Reset() { + *x = PatternFlowEthernetPauseSrcMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[721] + mi := &file_otg_proto_msgTypes[710] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPortMetricTag) String() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrcMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[721] +func (x *PatternFlowEthernetPauseSrcMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[710] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83435,159 +83232,74 @@ func (x *PatternFlowUdpSrcPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{721} +// Deprecated: Use PatternFlowEthernetPauseSrcMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrcMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{710} } -func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseSrcMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// integer random pattern -type PatternFlowUdpSrcPortRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 65535 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowUdpSrcPortRandom) Reset() { - *x = PatternFlowUdpSrcPortRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[722] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowUdpSrcPortRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowUdpSrcPortRandom) ProtoMessage() {} - -func (x *PatternFlowUdpSrcPortRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[722] - 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 PatternFlowUdpSrcPortRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPortRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{722} -} - -func (x *PatternFlowUdpSrcPortRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min - } - return 0 -} - -func (x *PatternFlowUdpSrcPortRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max - } - return 0 -} - -func (x *PatternFlowUdpSrcPortRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowUdpSrcPortRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Source port -type PatternFlowUdpSrcPort struct { +// Source MAC address +type PatternFlowEthernetPauseSrc struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseSrc_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseSrc_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"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,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"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Random *PatternFlowUdpSrcPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpSrcPort) Reset() { - *x = PatternFlowUdpSrcPort{} +func (x *PatternFlowEthernetPauseSrc) Reset() { + *x = PatternFlowEthernetPauseSrc{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[723] + mi := &file_otg_proto_msgTypes[711] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPort) String() string { +func (x *PatternFlowEthernetPauseSrc) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[723] +func (x *PatternFlowEthernetPauseSrc) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[711] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83598,68 +83310,61 @@ func (x *PatternFlowUdpSrcPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{723} +// Deprecated: Use PatternFlowEthernetPauseSrc.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{711} } -func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { +func (x *PatternFlowEthernetPauseSrc) GetChoice() PatternFlowEthernetPauseSrc_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpSrcPort_Choice_unspecified + return PatternFlowEthernetPauseSrc_Choice_unspecified } -func (x *PatternFlowUdpSrcPort) GetValue() uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseSrc) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowEthernetPauseSrc) GetIncrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { +func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSrcCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { +func (x *PatternFlowEthernetPauseSrc) GetMetricTags() []*PatternFlowEthernetPauseSrcMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowUdpSrcPort) GetRandom() *PatternFlowUdpSrcPortRandom { - if x != nil { - return x.Random - } - return nil -} - // integer counter pattern -type PatternFlowUdpDstPortCounter struct { +type PatternFlowEthernetPauseEtherTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 34824 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -83669,23 +83374,23 @@ type PatternFlowUdpDstPortCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpDstPortCounter) Reset() { - *x = PatternFlowUdpDstPortCounter{} +func (x *PatternFlowEthernetPauseEtherTypeCounter) Reset() { + *x = PatternFlowEthernetPauseEtherTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[724] + mi := &file_otg_proto_msgTypes[712] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPortCounter) String() string { +func (x *PatternFlowEthernetPauseEtherTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeCounter) ProtoMessage() {} -func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[724] +func (x *PatternFlowEthernetPauseEtherTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[712] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83696,26 +83401,26 @@ func (x *PatternFlowUdpDstPortCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{724} +// Deprecated: Use PatternFlowEthernetPauseEtherTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{712} } -func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -83725,7 +83430,7 @@ func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { // 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 PatternFlowUdpDstPortMetricTag struct { +type PatternFlowEthernetPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -83743,23 +83448,23 @@ type PatternFlowUdpDstPortMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpDstPortMetricTag) Reset() { - *x = PatternFlowUdpDstPortMetricTag{} +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) Reset() { + *x = PatternFlowEthernetPauseEtherTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[725] + mi := &file_otg_proto_msgTypes[713] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPortMetricTag) String() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[725] +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[713] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83770,159 +83475,74 @@ func (x *PatternFlowUdpDstPortMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{725} +// Deprecated: Use PatternFlowEthernetPauseEtherTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{713} } -func (x *PatternFlowUdpDstPortMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseEtherTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// integer random pattern -type PatternFlowUdpDstPortRandom struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The minimum possible value generated by the random value generator. - // default = 0 - Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` - // The maximum possible value generated by the random value generator. - // default = 65535 - Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` - // The seed value is used to initialize the random number generator to a deterministic - // state. If the user provides a seed value of 0, the implementation will generate a - // sequence of non-deterministic random values. For any other seed value, the sequence - // of random numbers will be generated in a deterministic manner (specific to the implementation). - // default = 1 - Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` - // The total number of values to be generated by the random value generator. - // default = 1 - Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` -} - -func (x *PatternFlowUdpDstPortRandom) Reset() { - *x = PatternFlowUdpDstPortRandom{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[726] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowUdpDstPortRandom) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowUdpDstPortRandom) ProtoMessage() {} - -func (x *PatternFlowUdpDstPortRandom) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[726] - 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 PatternFlowUdpDstPortRandom.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPortRandom) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{726} -} - -func (x *PatternFlowUdpDstPortRandom) GetMin() uint32 { - if x != nil && x.Min != nil { - return *x.Min - } - return 0 -} - -func (x *PatternFlowUdpDstPortRandom) GetMax() uint32 { - if x != nil && x.Max != nil { - return *x.Max - } - return 0 -} - -func (x *PatternFlowUdpDstPortRandom) GetSeed() uint32 { - if x != nil && x.Seed != nil { - return *x.Seed - } - return 0 -} - -func (x *PatternFlowUdpDstPortRandom) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Destination port -type PatternFlowUdpDstPort struct { +// Ethernet type +type PatternFlowEthernetPauseEtherType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseEtherType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseEtherType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 34824 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [34824] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` - // Description missing in models - Random *PatternFlowUdpDstPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` + MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpDstPort) Reset() { - *x = PatternFlowUdpDstPort{} +func (x *PatternFlowEthernetPauseEtherType) Reset() { + *x = PatternFlowEthernetPauseEtherType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[727] + mi := &file_otg_proto_msgTypes[714] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPort) String() string { +func (x *PatternFlowEthernetPauseEtherType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType) ProtoMessage() {} -func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[727] +func (x *PatternFlowEthernetPauseEtherType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[714] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -83933,68 +83553,61 @@ func (x *PatternFlowUdpDstPort) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{727} +// Deprecated: Use PatternFlowEthernetPauseEtherType.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{714} } -func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { +func (x *PatternFlowEthernetPauseEtherType) GetChoice() PatternFlowEthernetPauseEtherType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpDstPort_Choice_unspecified + return PatternFlowEthernetPauseEtherType_Choice_unspecified } -func (x *PatternFlowUdpDstPort) GetValue() uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpDstPort) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseEtherType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowEthernetPauseEtherType) GetIncrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { +func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetPauseEtherTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { +func (x *PatternFlowEthernetPauseEtherType) GetMetricTags() []*PatternFlowEthernetPauseEtherTypeMetricTag { if x != nil { return x.MetricTags } return nil } -func (x *PatternFlowUdpDstPort) GetRandom() *PatternFlowUdpDstPortRandom { - if x != nil { - return x.Random - } - return nil -} - // integer counter pattern -type PatternFlowUdpLengthCounter struct { +type PatternFlowEthernetPauseControlOpCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -84004,23 +83617,23 @@ type PatternFlowUdpLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowUdpLengthCounter) Reset() { - *x = PatternFlowUdpLengthCounter{} +func (x *PatternFlowEthernetPauseControlOpCodeCounter) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[728] + mi := &file_otg_proto_msgTypes[715] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLengthCounter) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeCounter) ProtoMessage() {} -func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[728] +func (x *PatternFlowEthernetPauseControlOpCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[715] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84031,26 +83644,26 @@ func (x *PatternFlowUdpLengthCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{728} +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{715} } -func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -84060,7 +83673,7 @@ func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { // 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 PatternFlowUdpLengthMetricTag struct { +type PatternFlowEthernetPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84078,23 +83691,23 @@ type PatternFlowUdpLengthMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowUdpLengthMetricTag) Reset() { - *x = PatternFlowUdpLengthMetricTag{} +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) Reset() { + *x = PatternFlowEthernetPauseControlOpCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[729] + mi := &file_otg_proto_msgTypes[716] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLengthMetricTag) String() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[729] +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[716] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84105,74 +83718,74 @@ func (x *PatternFlowUdpLengthMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{729} +// Deprecated: Use PatternFlowEthernetPauseControlOpCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{716} } -func (x *PatternFlowUdpLengthMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseControlOpCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length -type PatternFlowUdpLength struct { +// Control operation code +type PatternFlowEthernetPauseControlOpCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseControlOpCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseControlOpCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowUdpLength) Reset() { - *x = PatternFlowUdpLength{} +func (x *PatternFlowEthernetPauseControlOpCode) Reset() { + *x = PatternFlowEthernetPauseControlOpCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[730] + mi := &file_otg_proto_msgTypes[717] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLength) String() string { +func (x *PatternFlowEthernetPauseControlOpCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode) ProtoMessage() {} -func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[730] +func (x *PatternFlowEthernetPauseControlOpCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[717] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84183,124 +83796,55 @@ func (x *PatternFlowUdpLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{730} +// Deprecated: Use PatternFlowEthernetPauseControlOpCode.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{717} } -func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { +func (x *PatternFlowEthernetPauseControlOpCode) GetChoice() PatternFlowEthernetPauseControlOpCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowUdpLength_Choice_unspecified + return PatternFlowEthernetPauseControlOpCode_Choice_unspecified } -func (x *PatternFlowUdpLength) GetValue() uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowUdpLength) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseControlOpCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetIncrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { +func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEthernetPauseControlOpCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { +func (x *PatternFlowEthernetPauseControlOpCode) GetMetricTags() []*PatternFlowEthernetPauseControlOpCodeMetricTag { if x != nil { return x.MetricTags } return nil } -// UDP checksum -type PatternFlowUdpChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowUdpChecksum) Reset() { - *x = PatternFlowUdpChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[731] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowUdpChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowUdpChecksum) ProtoMessage() {} - -func (x *PatternFlowUdpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[731] - 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 PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{731} -} - -func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowUdpChecksum_Choice_unspecified -} - -func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowUdpChecksum_Generated_unspecified -} - -func (x *PatternFlowUdpChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreChecksumPresentCounter struct { +type PatternFlowEthernetPauseTimeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84316,23 +83860,23 @@ type PatternFlowGreChecksumPresentCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreChecksumPresentCounter) Reset() { - *x = PatternFlowGreChecksumPresentCounter{} +func (x *PatternFlowEthernetPauseTimeCounter) Reset() { + *x = PatternFlowEthernetPauseTimeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[732] + mi := &file_otg_proto_msgTypes[718] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentCounter) String() string { +func (x *PatternFlowEthernetPauseTimeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeCounter) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[732] +func (x *PatternFlowEthernetPauseTimeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[718] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84343,26 +83887,26 @@ func (x *PatternFlowGreChecksumPresentCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{732} +// Deprecated: Use PatternFlowEthernetPauseTimeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{718} } -func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { +func (x *PatternFlowEthernetPauseTimeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -84372,7 +83916,7 @@ func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { // 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 PatternFlowGreChecksumPresentMetricTag struct { +type PatternFlowEthernetPauseTimeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84386,27 +83930,27 @@ type PatternFlowGreChecksumPresentMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { - *x = PatternFlowGreChecksumPresentMetricTag{} +func (x *PatternFlowEthernetPauseTimeMetricTag) Reset() { + *x = PatternFlowEthernetPauseTimeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[733] + mi := &file_otg_proto_msgTypes[719] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresentMetricTag) String() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} +func (*PatternFlowEthernetPauseTimeMetricTag) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[733] +func (x *PatternFlowEthernetPauseTimeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[719] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84417,41 +83961,41 @@ func (x *PatternFlowGreChecksumPresentMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{733} +// Deprecated: Use PatternFlowEthernetPauseTimeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTimeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{719} } -func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { +func (x *PatternFlowEthernetPauseTimeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Checksum present bit -type PatternFlowGreChecksumPresent struct { +// Time +type PatternFlowEthernetPauseTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowEthernetPauseTime_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowEthernetPauseTime_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"` @@ -84459,32 +84003,32 @@ type PatternFlowGreChecksumPresent struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreChecksumPresent) Reset() { - *x = PatternFlowGreChecksumPresent{} +func (x *PatternFlowEthernetPauseTime) Reset() { + *x = PatternFlowEthernetPauseTime{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[734] + mi := &file_otg_proto_msgTypes[720] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent) String() string { +func (x *PatternFlowEthernetPauseTime) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[734] +func (x *PatternFlowEthernetPauseTime) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[720] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84495,47 +84039,47 @@ func (x *PatternFlowGreChecksumPresent) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{734} +// Deprecated: Use PatternFlowEthernetPauseTime.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{720} } -func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { +func (x *PatternFlowEthernetPauseTime) GetChoice() PatternFlowEthernetPauseTime_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreChecksumPresent_Choice_unspecified + return PatternFlowEthernetPauseTime_Choice_unspecified } -func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { +func (x *PatternFlowEthernetPauseTime) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { +func (x *PatternFlowEthernetPauseTime) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowEthernetPauseTime) GetIncrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { +func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseTimeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { +func (x *PatternFlowEthernetPauseTime) GetMetricTags() []*PatternFlowEthernetPauseTimeMetricTag { if x != nil { return x.MetricTags } @@ -84543,7 +84087,7 @@ func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksu } // integer counter pattern -type PatternFlowGreReserved0Counter struct { +type PatternFlowTcpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84559,23 +84103,23 @@ type PatternFlowGreReserved0Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved0Counter) Reset() { - *x = PatternFlowGreReserved0Counter{} +func (x *PatternFlowTcpSrcPortCounter) Reset() { + *x = PatternFlowTcpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[735] + mi := &file_otg_proto_msgTypes[721] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0Counter) String() string { +func (x *PatternFlowTcpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0Counter) ProtoMessage() {} +func (*PatternFlowTcpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[735] +func (x *PatternFlowTcpSrcPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[721] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84586,26 +84130,26 @@ func (x *PatternFlowGreReserved0Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{735} +// Deprecated: Use PatternFlowTcpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{721} } -func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { +func (x *PatternFlowTcpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -84615,7 +84159,7 @@ func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { // 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 PatternFlowGreReserved0MetricTag struct { +type PatternFlowTcpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84629,27 +84173,27 @@ type PatternFlowGreReserved0MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 12 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved0MetricTag) Reset() { - *x = PatternFlowGreReserved0MetricTag{} +func (x *PatternFlowTcpSrcPortMetricTag) Reset() { + *x = PatternFlowTcpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[736] + mi := &file_otg_proto_msgTypes[722] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0MetricTag) String() string { +func (x *PatternFlowTcpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} +func (*PatternFlowTcpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[736] +func (x *PatternFlowTcpSrcPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[722] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84660,41 +84204,124 @@ func (x *PatternFlowGreReserved0MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{736} +// Deprecated: Use PatternFlowTcpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{722} } -func (x *PatternFlowGreReserved0MetricTag) GetName() string { +func (x *PatternFlowTcpSrcPortMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved bits -type PatternFlowGreReserved0 struct { +// integer random pattern +type PatternFlowTcpSrcPortRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 65535 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowTcpSrcPortRandom) Reset() { + *x = PatternFlowTcpSrcPortRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[723] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowTcpSrcPortRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowTcpSrcPortRandom) ProtoMessage() {} + +func (x *PatternFlowTcpSrcPortRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[723] + 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 PatternFlowTcpSrcPortRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPortRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{723} +} + +func (x *PatternFlowTcpSrcPortRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min + } + return 0 +} + +func (x *PatternFlowTcpSrcPortRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +func (x *PatternFlowTcpSrcPortRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowTcpSrcPortRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Source port +type PatternFlowTcpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSrcPort_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"` @@ -84702,32 +84329,34 @@ type PatternFlowGreReserved0 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Random *PatternFlowTcpSrcPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowGreReserved0) Reset() { - *x = PatternFlowGreReserved0{} +func (x *PatternFlowTcpSrcPort) Reset() { + *x = PatternFlowTcpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[737] + mi := &file_otg_proto_msgTypes[724] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0) String() string { +func (x *PatternFlowTcpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0) ProtoMessage() {} +func (*PatternFlowTcpSrcPort) ProtoMessage() {} -func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[737] +func (x *PatternFlowTcpSrcPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[724] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84738,55 +84367,62 @@ func (x *PatternFlowGreReserved0) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{737} +// Deprecated: Use PatternFlowTcpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724} } -func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { +func (x *PatternFlowTcpSrcPort) GetChoice() PatternFlowTcpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved0_Choice_unspecified + return PatternFlowTcpSrcPort_Choice_unspecified } -func (x *PatternFlowGreReserved0) GetValue() uint32 { +func (x *PatternFlowTcpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved0) GetValues() []uint32 { +func (x *PatternFlowTcpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpSrcPort) GetIncrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { +func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { +func (x *PatternFlowTcpSrcPort) GetMetricTags() []*PatternFlowTcpSrcPortMetricTag { if x != nil { return x.MetricTags } return nil } +func (x *PatternFlowTcpSrcPort) GetRandom() *PatternFlowTcpSrcPortRandom { + if x != nil { + return x.Random + } + return nil +} + // integer counter pattern -type PatternFlowGreVersionCounter struct { +type PatternFlowTcpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84802,23 +84438,23 @@ type PatternFlowGreVersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreVersionCounter) Reset() { - *x = PatternFlowGreVersionCounter{} +func (x *PatternFlowTcpDstPortCounter) Reset() { + *x = PatternFlowTcpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[738] + mi := &file_otg_proto_msgTypes[725] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionCounter) String() string { +func (x *PatternFlowTcpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionCounter) ProtoMessage() {} +func (*PatternFlowTcpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[738] +func (x *PatternFlowTcpDstPortCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[725] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84829,26 +84465,26 @@ func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{738} +// Deprecated: Use PatternFlowTcpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{725} } -func (x *PatternFlowGreVersionCounter) GetStart() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreVersionCounter) GetStep() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreVersionCounter) GetCount() uint32 { +func (x *PatternFlowTcpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -84858,7 +84494,7 @@ func (x *PatternFlowGreVersionCounter) GetCount() uint32 { // 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 PatternFlowGreVersionMetricTag struct { +type PatternFlowTcpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -84872,27 +84508,27 @@ type PatternFlowGreVersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreVersionMetricTag) Reset() { - *x = PatternFlowGreVersionMetricTag{} +func (x *PatternFlowTcpDstPortMetricTag) Reset() { + *x = PatternFlowTcpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[739] + mi := &file_otg_proto_msgTypes[726] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersionMetricTag) String() string { +func (x *PatternFlowTcpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[739] +func (x *PatternFlowTcpDstPortMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[726] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84903,41 +84539,124 @@ func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{739} +// Deprecated: Use PatternFlowTcpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{726} } -func (x *PatternFlowGreVersionMetricTag) GetName() string { +func (x *PatternFlowTcpDstPortMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GRE version number -type PatternFlowGreVersion struct { +// integer random pattern +type PatternFlowTcpDstPortRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 65535 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowTcpDstPortRandom) Reset() { + *x = PatternFlowTcpDstPortRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[727] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowTcpDstPortRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowTcpDstPortRandom) ProtoMessage() {} + +func (x *PatternFlowTcpDstPortRandom) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[727] + 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 PatternFlowTcpDstPortRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPortRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{727} +} + +func (x *PatternFlowTcpDstPortRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min + } + return 0 +} + +func (x *PatternFlowTcpDstPortRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +func (x *PatternFlowTcpDstPortRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowTcpDstPortRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Destination port +type PatternFlowTcpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDstPort_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"` @@ -84945,32 +84664,34 @@ type PatternFlowGreVersion struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Random *PatternFlowTcpDstPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowGreVersion) Reset() { - *x = PatternFlowGreVersion{} +func (x *PatternFlowTcpDstPort) Reset() { + *x = PatternFlowTcpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[740] + mi := &file_otg_proto_msgTypes[728] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion) String() string { +func (x *PatternFlowTcpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion) ProtoMessage() {} +func (*PatternFlowTcpDstPort) ProtoMessage() {} -func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[740] +func (x *PatternFlowTcpDstPort) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[728] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -84981,61 +84702,68 @@ func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. -func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{740} +// Deprecated: Use PatternFlowTcpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728} } -func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { +func (x *PatternFlowTcpDstPort) GetChoice() PatternFlowTcpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreVersion_Choice_unspecified + return PatternFlowTcpDstPort_Choice_unspecified } -func (x *PatternFlowGreVersion) GetValue() uint32 { +func (x *PatternFlowTcpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreVersion) GetValues() []uint32 { +func (x *PatternFlowTcpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpDstPort) GetIncrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { +func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { +func (x *PatternFlowTcpDstPort) GetMetricTags() []*PatternFlowTcpDstPortMetricTag { if x != nil { return x.MetricTags } return nil } +func (x *PatternFlowTcpDstPort) GetRandom() *PatternFlowTcpDstPortRandom { + if x != nil { + return x.Random + } + return nil +} + // integer counter pattern -type PatternFlowGreProtocolCounter struct { +type PatternFlowTcpSeqNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -85045,23 +84773,23 @@ type PatternFlowGreProtocolCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreProtocolCounter) Reset() { - *x = PatternFlowGreProtocolCounter{} +func (x *PatternFlowTcpSeqNumCounter) Reset() { + *x = PatternFlowTcpSeqNumCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[741] + mi := &file_otg_proto_msgTypes[729] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolCounter) String() string { +func (x *PatternFlowTcpSeqNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolCounter) ProtoMessage() {} +func (*PatternFlowTcpSeqNumCounter) ProtoMessage() {} -func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[741] +func (x *PatternFlowTcpSeqNumCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[729] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85072,26 +84800,26 @@ func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{741} +// Deprecated: Use PatternFlowTcpSeqNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{729} } -func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { +func (x *PatternFlowTcpSeqNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -85101,7 +84829,7 @@ func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { // 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 PatternFlowGreProtocolMetricTag struct { +type PatternFlowTcpSeqNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85115,27 +84843,27 @@ type PatternFlowGreProtocolMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreProtocolMetricTag) Reset() { - *x = PatternFlowGreProtocolMetricTag{} +func (x *PatternFlowTcpSeqNumMetricTag) Reset() { + *x = PatternFlowTcpSeqNumMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[742] + mi := &file_otg_proto_msgTypes[730] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocolMetricTag) String() string { +func (x *PatternFlowTcpSeqNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} +func (*PatternFlowTcpSeqNumMetricTag) ProtoMessage() {} -func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[742] +func (x *PatternFlowTcpSeqNumMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[730] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85146,74 +84874,74 @@ func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{742} +// Deprecated: Use PatternFlowTcpSeqNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNumMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{730} } -func (x *PatternFlowGreProtocolMetricTag) GetName() string { +func (x *PatternFlowTcpSeqNumMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpSeqNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type of encapsulated payload -type PatternFlowGreProtocol struct { +// Sequence number +type PatternFlowTcpSeqNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpSeqNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpSeqNum_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreProtocol) Reset() { - *x = PatternFlowGreProtocol{} +func (x *PatternFlowTcpSeqNum) Reset() { + *x = PatternFlowTcpSeqNum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[743] + mi := &file_otg_proto_msgTypes[731] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol) String() string { +func (x *PatternFlowTcpSeqNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol) ProtoMessage() {} +func (*PatternFlowTcpSeqNum) ProtoMessage() {} -func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[743] +func (x *PatternFlowTcpSeqNum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[731] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85224,125 +84952,55 @@ func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. -func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{743} +// Deprecated: Use PatternFlowTcpSeqNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731} } -func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { +func (x *PatternFlowTcpSeqNum) GetChoice() PatternFlowTcpSeqNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreProtocol_Choice_unspecified + return PatternFlowTcpSeqNum_Choice_unspecified } -func (x *PatternFlowGreProtocol) GetValue() uint32 { +func (x *PatternFlowTcpSeqNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreProtocol) GetValues() []uint32 { +func (x *PatternFlowTcpSeqNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowTcpSeqNum) GetIncrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { +func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { +func (x *PatternFlowTcpSeqNum) GetMetricTags() []*PatternFlowTcpSeqNumMetricTag { if x != nil { return x.MetricTags } return nil } -// Optional checksum of GRE header and payload. Only present if the checksum_present -// bit is set. -type PatternFlowGreChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowGreChecksum) Reset() { - *x = PatternFlowGreChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[744] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowGreChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowGreChecksum) ProtoMessage() {} - -func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[744] - 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 PatternFlowGreChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{744} -} - -func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowGreChecksum_Choice_unspecified -} - -func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowGreChecksum_Generated_unspecified -} - -func (x *PatternFlowGreChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowGreReserved1Counter struct { +type PatternFlowTcpAckNumCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85358,23 +85016,23 @@ type PatternFlowGreReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGreReserved1Counter) Reset() { - *x = PatternFlowGreReserved1Counter{} +func (x *PatternFlowTcpAckNumCounter) Reset() { + *x = PatternFlowTcpAckNumCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[745] + mi := &file_otg_proto_msgTypes[732] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1Counter) String() string { +func (x *PatternFlowTcpAckNumCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1Counter) ProtoMessage() {} +func (*PatternFlowTcpAckNumCounter) ProtoMessage() {} -func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[745] +func (x *PatternFlowTcpAckNumCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[732] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85385,26 +85043,26 @@ func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{745} +// Deprecated: Use PatternFlowTcpAckNumCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{732} } -func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { +func (x *PatternFlowTcpAckNumCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -85414,7 +85072,7 @@ func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { // 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 PatternFlowGreReserved1MetricTag struct { +type PatternFlowTcpAckNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85428,27 +85086,27 @@ type PatternFlowGreReserved1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGreReserved1MetricTag) Reset() { - *x = PatternFlowGreReserved1MetricTag{} +func (x *PatternFlowTcpAckNumMetricTag) Reset() { + *x = PatternFlowTcpAckNumMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[746] + mi := &file_otg_proto_msgTypes[733] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1MetricTag) String() string { +func (x *PatternFlowTcpAckNumMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} +func (*PatternFlowTcpAckNumMetricTag) ProtoMessage() {} -func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[746] +func (x *PatternFlowTcpAckNumMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[733] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85459,41 +85117,41 @@ func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{746} +// Deprecated: Use PatternFlowTcpAckNumMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNumMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{733} } -func (x *PatternFlowGreReserved1MetricTag) GetName() string { +func (x *PatternFlowTcpAckNumMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { +func (x *PatternFlowTcpAckNumMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Optional reserved field. Only present if the checksum_present bit is set. -type PatternFlowGreReserved1 struct { +// Acknowledgement number +type PatternFlowTcpAckNum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpAckNum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpAckNum_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"` @@ -85501,32 +85159,32 @@ type PatternFlowGreReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGreReserved1) Reset() { - *x = PatternFlowGreReserved1{} +func (x *PatternFlowTcpAckNum) Reset() { + *x = PatternFlowTcpAckNum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[747] + mi := &file_otg_proto_msgTypes[734] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1) String() string { +func (x *PatternFlowTcpAckNum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1) ProtoMessage() {} +func (*PatternFlowTcpAckNum) ProtoMessage() {} -func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[747] +func (x *PatternFlowTcpAckNum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[734] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85537,47 +85195,47 @@ func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{747} +// Deprecated: Use PatternFlowTcpAckNum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734} } -func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { +func (x *PatternFlowTcpAckNum) GetChoice() PatternFlowTcpAckNum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGreReserved1_Choice_unspecified + return PatternFlowTcpAckNum_Choice_unspecified } -func (x *PatternFlowGreReserved1) GetValue() uint32 { +func (x *PatternFlowTcpAckNum) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGreReserved1) GetValues() []uint32 { +func (x *PatternFlowTcpAckNum) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowTcpAckNum) GetIncrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { +func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { +func (x *PatternFlowTcpAckNum) GetMetricTags() []*PatternFlowTcpAckNumMetricTag { if x != nil { return x.MetricTags } @@ -85585,13 +85243,13 @@ func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1Metr } // integer counter pattern -type PatternFlowGtpv1VersionCounter struct { +type PatternFlowTcpDataOffsetCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -85601,23 +85259,23 @@ type PatternFlowGtpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1VersionCounter) Reset() { - *x = PatternFlowGtpv1VersionCounter{} +func (x *PatternFlowTcpDataOffsetCounter) Reset() { + *x = PatternFlowTcpDataOffsetCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[748] + mi := &file_otg_proto_msgTypes[735] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionCounter) String() string { +func (x *PatternFlowTcpDataOffsetCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[748] +func (x *PatternFlowTcpDataOffsetCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[735] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85628,26 +85286,26 @@ func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{748} +// Deprecated: Use PatternFlowTcpDataOffsetCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{735} } -func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowTcpDataOffsetCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -85657,7 +85315,7 @@ func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { // 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 PatternFlowGtpv1VersionMetricTag struct { +type PatternFlowTcpDataOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85671,27 +85329,27 @@ type PatternFlowGtpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 4 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1VersionMetricTag) Reset() { - *x = PatternFlowGtpv1VersionMetricTag{} +func (x *PatternFlowTcpDataOffsetMetricTag) Reset() { + *x = PatternFlowTcpDataOffsetMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[749] + mi := &file_otg_proto_msgTypes[736] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1VersionMetricTag) String() string { +func (x *PatternFlowTcpDataOffsetMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowTcpDataOffsetMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[749] +func (x *PatternFlowTcpDataOffsetMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[736] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85702,74 +85360,74 @@ func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{749} +// Deprecated: Use PatternFlowTcpDataOffsetMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffsetMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{736} } -func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { +func (x *PatternFlowTcpDataOffsetMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpDataOffsetMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// GTPv1 version -type PatternFlowGtpv1Version struct { +// The number of 32 bit words in the TCP header. This indicates where the data begins. +type PatternFlowTcpDataOffset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpDataOffset_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpDataOffset_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Version) Reset() { - *x = PatternFlowGtpv1Version{} +func (x *PatternFlowTcpDataOffset) Reset() { + *x = PatternFlowTcpDataOffset{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[750] + mi := &file_otg_proto_msgTypes[737] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version) String() string { +func (x *PatternFlowTcpDataOffset) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version) ProtoMessage() {} +func (*PatternFlowTcpDataOffset) ProtoMessage() {} -func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[750] +func (x *PatternFlowTcpDataOffset) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[737] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85780,47 +85438,47 @@ func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{750} +// Deprecated: Use PatternFlowTcpDataOffset.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737} } -func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { +func (x *PatternFlowTcpDataOffset) GetChoice() PatternFlowTcpDataOffset_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Version_Choice_unspecified + return PatternFlowTcpDataOffset_Choice_unspecified } -func (x *PatternFlowGtpv1Version) GetValue() uint32 { +func (x *PatternFlowTcpDataOffset) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Version) GetValues() []uint32 { +func (x *PatternFlowTcpDataOffset) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowTcpDataOffset) GetIncrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { +func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { +func (x *PatternFlowTcpDataOffset) GetMetricTags() []*PatternFlowTcpDataOffsetMetricTag { if x != nil { return x.MetricTags } @@ -85828,13 +85486,13 @@ func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetr } // integer counter pattern -type PatternFlowGtpv1ProtocolTypeCounter struct { +type PatternFlowTcpEcnNsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -85844,23 +85502,23 @@ type PatternFlowGtpv1ProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { - *x = PatternFlowGtpv1ProtocolTypeCounter{} +func (x *PatternFlowTcpEcnNsCounter) Reset() { + *x = PatternFlowTcpEcnNsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[751] + mi := &file_otg_proto_msgTypes[738] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { +func (x *PatternFlowTcpEcnNsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnNsCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[751] +func (x *PatternFlowTcpEcnNsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[738] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85871,26 +85529,26 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{751} +// Deprecated: Use PatternFlowTcpEcnNsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{738} } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnNsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -85900,7 +85558,7 @@ func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { // 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 PatternFlowGtpv1ProtocolTypeMetricTag struct { +type PatternFlowTcpEcnNsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85918,23 +85576,23 @@ type PatternFlowGtpv1ProtocolTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { - *x = PatternFlowGtpv1ProtocolTypeMetricTag{} +func (x *PatternFlowTcpEcnNsMetricTag) Reset() { + *x = PatternFlowTcpEcnNsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[752] + mi := &file_otg_proto_msgTypes[739] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { +func (x *PatternFlowTcpEcnNsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnNsMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[752] +func (x *PatternFlowTcpEcnNsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[739] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -85945,74 +85603,74 @@ func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{752} +// Deprecated: Use PatternFlowTcpEcnNsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{739} } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowTcpEcnNsMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnNsMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Protocol type, GTP is 1, GTP' is 0 -type PatternFlowGtpv1ProtocolType struct { +// Explicit congestion notification, concealment protection. +type PatternFlowTcpEcnNs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnNs_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnNs_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1ProtocolType) Reset() { - *x = PatternFlowGtpv1ProtocolType{} +func (x *PatternFlowTcpEcnNs) Reset() { + *x = PatternFlowTcpEcnNs{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[753] + mi := &file_otg_proto_msgTypes[740] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType) String() string { +func (x *PatternFlowTcpEcnNs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} +func (*PatternFlowTcpEcnNs) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[753] +func (x *PatternFlowTcpEcnNs) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[740] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86023,47 +85681,47 @@ func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{753} +// Deprecated: Use PatternFlowTcpEcnNs.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740} } -func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { +func (x *PatternFlowTcpEcnNs) GetChoice() PatternFlowTcpEcnNs_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1ProtocolType_Choice_unspecified + return PatternFlowTcpEcnNs_Choice_unspecified } -func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { +func (x *PatternFlowTcpEcnNs) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { +func (x *PatternFlowTcpEcnNs) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowTcpEcnNs) GetIncrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { +func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { +func (x *PatternFlowTcpEcnNs) GetMetricTags() []*PatternFlowTcpEcnNsMetricTag { if x != nil { return x.MetricTags } @@ -86071,7 +85729,7 @@ func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1Protoc } // integer counter pattern -type PatternFlowGtpv1ReservedCounter struct { +type PatternFlowTcpEcnCwrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86087,23 +85745,23 @@ type PatternFlowGtpv1ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1ReservedCounter) Reset() { - *x = PatternFlowGtpv1ReservedCounter{} +func (x *PatternFlowTcpEcnCwrCounter) Reset() { + *x = PatternFlowTcpEcnCwrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[754] + mi := &file_otg_proto_msgTypes[741] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedCounter) String() string { +func (x *PatternFlowTcpEcnCwrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[754] +func (x *PatternFlowTcpEcnCwrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[741] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86114,26 +85772,26 @@ func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{754} +// Deprecated: Use PatternFlowTcpEcnCwrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{741} } -func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnCwrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -86143,7 +85801,7 @@ func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { // 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 PatternFlowGtpv1ReservedMetricTag struct { +type PatternFlowTcpEcnCwrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86161,23 +85819,23 @@ type PatternFlowGtpv1ReservedMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { - *x = PatternFlowGtpv1ReservedMetricTag{} +func (x *PatternFlowTcpEcnCwrMetricTag) Reset() { + *x = PatternFlowTcpEcnCwrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[755] + mi := &file_otg_proto_msgTypes[742] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ReservedMetricTag) String() string { +func (x *PatternFlowTcpEcnCwrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnCwrMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[755] +func (x *PatternFlowTcpEcnCwrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[742] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86188,41 +85846,41 @@ func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{755} +// Deprecated: Use PatternFlowTcpEcnCwrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{742} } -func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { +func (x *PatternFlowTcpEcnCwrMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnCwrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv1Reserved struct { +// Explicit congestion notification, congestion window reduced. +type PatternFlowTcpEcnCwr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnCwr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnCwr_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"` @@ -86230,32 +85888,32 @@ type PatternFlowGtpv1Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Reserved) Reset() { - *x = PatternFlowGtpv1Reserved{} +func (x *PatternFlowTcpEcnCwr) Reset() { + *x = PatternFlowTcpEcnCwr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[756] + mi := &file_otg_proto_msgTypes[743] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved) String() string { +func (x *PatternFlowTcpEcnCwr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[756] +func (x *PatternFlowTcpEcnCwr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[743] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86266,47 +85924,47 @@ func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{756} +// Deprecated: Use PatternFlowTcpEcnCwr.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{743} } -func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { +func (x *PatternFlowTcpEcnCwr) GetChoice() PatternFlowTcpEcnCwr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Reserved_Choice_unspecified + return PatternFlowTcpEcnCwr_Choice_unspecified } -func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { +func (x *PatternFlowTcpEcnCwr) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { +func (x *PatternFlowTcpEcnCwr) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowTcpEcnCwr) GetIncrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { +func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { +func (x *PatternFlowTcpEcnCwr) GetMetricTags() []*PatternFlowTcpEcnCwrMetricTag { if x != nil { return x.MetricTags } @@ -86314,7 +85972,7 @@ func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMe } // integer counter pattern -type PatternFlowGtpv1EFlagCounter struct { +type PatternFlowTcpEcnEchoCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86330,23 +85988,23 @@ type PatternFlowGtpv1EFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1EFlagCounter) Reset() { - *x = PatternFlowGtpv1EFlagCounter{} +func (x *PatternFlowTcpEcnEchoCounter) Reset() { + *x = PatternFlowTcpEcnEchoCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[757] + mi := &file_otg_proto_msgTypes[744] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagCounter) String() string { +func (x *PatternFlowTcpEcnEchoCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[757] +func (x *PatternFlowTcpEcnEchoCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[744] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86357,26 +86015,26 @@ func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{757} +// Deprecated: Use PatternFlowTcpEcnEchoCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{744} } -func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { +func (x *PatternFlowTcpEcnEchoCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -86386,7 +86044,7 @@ func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { // 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 PatternFlowGtpv1EFlagMetricTag struct { +type PatternFlowTcpEcnEchoMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86404,23 +86062,23 @@ type PatternFlowGtpv1EFlagMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { - *x = PatternFlowGtpv1EFlagMetricTag{} +func (x *PatternFlowTcpEcnEchoMetricTag) Reset() { + *x = PatternFlowTcpEcnEchoMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[758] + mi := &file_otg_proto_msgTypes[745] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlagMetricTag) String() string { +func (x *PatternFlowTcpEcnEchoMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} +func (*PatternFlowTcpEcnEchoMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[758] +func (x *PatternFlowTcpEcnEchoMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[745] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86431,41 +86089,42 @@ func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{758} +// Deprecated: Use PatternFlowTcpEcnEchoMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEchoMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{745} } -func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { +func (x *PatternFlowTcpEcnEchoMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpEcnEchoMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Extension header field present -type PatternFlowGtpv1EFlag struct { +// Explicit congestion notification, echo. 1 indicates the peer is ecn capable. 0 indicates +// that a packet with ipv4.ecn = 11 in the ip header was received during normal transmission. +type PatternFlowTcpEcnEcho struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpEcnEcho_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpEcnEcho_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"` @@ -86473,32 +86132,32 @@ type PatternFlowGtpv1EFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1EFlag) Reset() { - *x = PatternFlowGtpv1EFlag{} +func (x *PatternFlowTcpEcnEcho) Reset() { + *x = PatternFlowTcpEcnEcho{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[759] + mi := &file_otg_proto_msgTypes[746] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag) String() string { +func (x *PatternFlowTcpEcnEcho) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[759] +func (x *PatternFlowTcpEcnEcho) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[746] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86509,47 +86168,47 @@ func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{759} +// Deprecated: Use PatternFlowTcpEcnEcho.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746} } -func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { +func (x *PatternFlowTcpEcnEcho) GetChoice() PatternFlowTcpEcnEcho_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1EFlag_Choice_unspecified + return PatternFlowTcpEcnEcho_Choice_unspecified } -func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { +func (x *PatternFlowTcpEcnEcho) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { +func (x *PatternFlowTcpEcnEcho) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowTcpEcnEcho) GetIncrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { +func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { +func (x *PatternFlowTcpEcnEcho) GetMetricTags() []*PatternFlowTcpEcnEchoMetricTag { if x != nil { return x.MetricTags } @@ -86557,7 +86216,7 @@ func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTa } // integer counter pattern -type PatternFlowGtpv1SFlagCounter struct { +type PatternFlowTcpCtlUrgCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86573,23 +86232,23 @@ type PatternFlowGtpv1SFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SFlagCounter) Reset() { - *x = PatternFlowGtpv1SFlagCounter{} +func (x *PatternFlowTcpCtlUrgCounter) Reset() { + *x = PatternFlowTcpCtlUrgCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[760] + mi := &file_otg_proto_msgTypes[747] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagCounter) String() string { +func (x *PatternFlowTcpCtlUrgCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[760] +func (x *PatternFlowTcpCtlUrgCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[747] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86600,26 +86259,26 @@ func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{760} +// Deprecated: Use PatternFlowTcpCtlUrgCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{747} } -func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlUrgCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -86629,7 +86288,7 @@ func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { // 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 PatternFlowGtpv1SFlagMetricTag struct { +type PatternFlowTcpCtlUrgMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86647,23 +86306,23 @@ type PatternFlowGtpv1SFlagMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { - *x = PatternFlowGtpv1SFlagMetricTag{} +func (x *PatternFlowTcpCtlUrgMetricTag) Reset() { + *x = PatternFlowTcpCtlUrgMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[761] + mi := &file_otg_proto_msgTypes[748] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlagMetricTag) String() string { +func (x *PatternFlowTcpCtlUrgMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlUrgMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[761] +func (x *PatternFlowTcpCtlUrgMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[748] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86674,41 +86333,41 @@ func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{761} +// Deprecated: Use PatternFlowTcpCtlUrgMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrgMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{748} } -func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { +func (x *PatternFlowTcpCtlUrgMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlUrgMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number field present -type PatternFlowGtpv1SFlag struct { +// A value of 1 indicates that the urgent pointer field is significant. +type PatternFlowTcpCtlUrg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlUrg_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlUrg_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"` @@ -86716,32 +86375,32 @@ type PatternFlowGtpv1SFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SFlag) Reset() { - *x = PatternFlowGtpv1SFlag{} +func (x *PatternFlowTcpCtlUrg) Reset() { + *x = PatternFlowTcpCtlUrg{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[762] + mi := &file_otg_proto_msgTypes[749] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag) String() string { +func (x *PatternFlowTcpCtlUrg) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[762] +func (x *PatternFlowTcpCtlUrg) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[749] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86752,47 +86411,47 @@ func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{762} +// Deprecated: Use PatternFlowTcpCtlUrg.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{749} } -func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { +func (x *PatternFlowTcpCtlUrg) GetChoice() PatternFlowTcpCtlUrg_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SFlag_Choice_unspecified + return PatternFlowTcpCtlUrg_Choice_unspecified } -func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { +func (x *PatternFlowTcpCtlUrg) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { +func (x *PatternFlowTcpCtlUrg) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowTcpCtlUrg) GetIncrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { +func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { +func (x *PatternFlowTcpCtlUrg) GetMetricTags() []*PatternFlowTcpCtlUrgMetricTag { if x != nil { return x.MetricTags } @@ -86800,7 +86459,7 @@ func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTa } // integer counter pattern -type PatternFlowGtpv1PnFlagCounter struct { +type PatternFlowTcpCtlAckCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86816,23 +86475,23 @@ type PatternFlowGtpv1PnFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1PnFlagCounter) Reset() { - *x = PatternFlowGtpv1PnFlagCounter{} +func (x *PatternFlowTcpCtlAckCounter) Reset() { + *x = PatternFlowTcpCtlAckCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[763] + mi := &file_otg_proto_msgTypes[750] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlagCounter) String() string { +func (x *PatternFlowTcpCtlAckCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlAckCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[763] +func (x *PatternFlowTcpCtlAckCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[750] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86843,26 +86502,26 @@ func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{763} +// Deprecated: Use PatternFlowTcpCtlAckCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{750} } -func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlAckCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -86872,7 +86531,7 @@ func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { // 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 PatternFlowGtpv1PnFlagMetricTag struct { +type PatternFlowTcpCtlAckMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -86890,23 +86549,23 @@ type PatternFlowGtpv1PnFlagMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { - *x = PatternFlowGtpv1PnFlagMetricTag{} +func (x *PatternFlowTcpCtlAckMetricTag) Reset() { + *x = PatternFlowTcpCtlAckMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[764] + mi := &file_otg_proto_msgTypes[751] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { +func (x *PatternFlowTcpCtlAckMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlAckMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[764] +func (x *PatternFlowTcpCtlAckMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[751] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86917,41 +86576,41 @@ func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{764} +// Deprecated: Use PatternFlowTcpCtlAckMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAckMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{751} } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { +func (x *PatternFlowTcpCtlAckMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlAckMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU field present -type PatternFlowGtpv1PnFlag struct { +// A value of 1 indicates that the ackknowledgment field is significant. +type PatternFlowTcpCtlAck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlAck_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlAck_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"` @@ -86959,32 +86618,32 @@ type PatternFlowGtpv1PnFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1PnFlag) Reset() { - *x = PatternFlowGtpv1PnFlag{} +func (x *PatternFlowTcpCtlAck) Reset() { + *x = PatternFlowTcpCtlAck{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[765] + mi := &file_otg_proto_msgTypes[752] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlag) String() string { +func (x *PatternFlowTcpCtlAck) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} +func (*PatternFlowTcpCtlAck) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[765] +func (x *PatternFlowTcpCtlAck) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[752] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -86995,47 +86654,47 @@ func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{765} +// Deprecated: Use PatternFlowTcpCtlAck.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{752} } -func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { +func (x *PatternFlowTcpCtlAck) GetChoice() PatternFlowTcpCtlAck_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1PnFlag_Choice_unspecified + return PatternFlowTcpCtlAck_Choice_unspecified } -func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { +func (x *PatternFlowTcpCtlAck) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { +func (x *PatternFlowTcpCtlAck) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowTcpCtlAck) GetIncrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { +func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { +func (x *PatternFlowTcpCtlAck) GetMetricTags() []*PatternFlowTcpCtlAckMetricTag { if x != nil { return x.MetricTags } @@ -87043,7 +86702,7 @@ func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetric } // integer counter pattern -type PatternFlowGtpv1MessageTypeCounter struct { +type PatternFlowTcpCtlPshCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87059,23 +86718,23 @@ type PatternFlowGtpv1MessageTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { - *x = PatternFlowGtpv1MessageTypeCounter{} +func (x *PatternFlowTcpCtlPshCounter) Reset() { + *x = PatternFlowTcpCtlPshCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[766] + mi := &file_otg_proto_msgTypes[753] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageTypeCounter) String() string { +func (x *PatternFlowTcpCtlPshCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlPshCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[766] +func (x *PatternFlowTcpCtlPshCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[753] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87086,26 +86745,26 @@ func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{766} +// Deprecated: Use PatternFlowTcpCtlPshCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{753} } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlPshCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -87115,7 +86774,7 @@ func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { // 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 PatternFlowGtpv1MessageTypeMetricTag struct { +type PatternFlowTcpCtlPshMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87129,27 +86788,27 @@ type PatternFlowGtpv1MessageTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv1MessageTypeMetricTag{} +func (x *PatternFlowTcpCtlPshMetricTag) Reset() { + *x = PatternFlowTcpCtlPshMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[767] + mi := &file_otg_proto_msgTypes[754] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { +func (x *PatternFlowTcpCtlPshMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlPshMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[767] +func (x *PatternFlowTcpCtlPshMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[754] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87160,42 +86819,41 @@ func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{767} +// Deprecated: Use PatternFlowTcpCtlPshMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPshMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{754} } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { +func (x *PatternFlowTcpCtlPshMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlPshMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 -// section 7.1 -type PatternFlowGtpv1MessageType struct { +// Asks to push the buffered data to the receiving application. +type PatternFlowTcpCtlPsh struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlPsh_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlPsh_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"` @@ -87203,32 +86861,32 @@ type PatternFlowGtpv1MessageType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageType) Reset() { - *x = PatternFlowGtpv1MessageType{} +func (x *PatternFlowTcpCtlPsh) Reset() { + *x = PatternFlowTcpCtlPsh{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[768] + mi := &file_otg_proto_msgTypes[755] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageType) String() string { +func (x *PatternFlowTcpCtlPsh) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[768] +func (x *PatternFlowTcpCtlPsh) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[755] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87239,47 +86897,47 @@ func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{768} +// Deprecated: Use PatternFlowTcpCtlPsh.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{755} } -func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { +func (x *PatternFlowTcpCtlPsh) GetChoice() PatternFlowTcpCtlPsh_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageType_Choice_unspecified + return PatternFlowTcpCtlPsh_Choice_unspecified } -func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { +func (x *PatternFlowTcpCtlPsh) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { +func (x *PatternFlowTcpCtlPsh) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowTcpCtlPsh) GetIncrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { +func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { +func (x *PatternFlowTcpCtlPsh) GetMetricTags() []*PatternFlowTcpCtlPshMetricTag { if x != nil { return x.MetricTags } @@ -87287,7 +86945,7 @@ func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1Message } // integer counter pattern -type PatternFlowGtpv1MessageLengthCounter struct { +type PatternFlowTcpCtlRstCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87303,23 +86961,23 @@ type PatternFlowGtpv1MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { - *x = PatternFlowGtpv1MessageLengthCounter{} +func (x *PatternFlowTcpCtlRstCounter) Reset() { + *x = PatternFlowTcpCtlRstCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[769] + mi := &file_otg_proto_msgTypes[756] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLengthCounter) String() string { +func (x *PatternFlowTcpCtlRstCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlRstCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[769] +func (x *PatternFlowTcpCtlRstCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[756] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87330,26 +86988,26 @@ func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{769} +// Deprecated: Use PatternFlowTcpCtlRstCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{756} } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlRstCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -87359,7 +87017,7 @@ func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { // 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 PatternFlowGtpv1MessageLengthMetricTag struct { +type PatternFlowTcpCtlRstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87373,27 +87031,27 @@ type PatternFlowGtpv1MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv1MessageLengthMetricTag{} +func (x *PatternFlowTcpCtlRstMetricTag) Reset() { + *x = PatternFlowTcpCtlRstMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[770] + mi := &file_otg_proto_msgTypes[757] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { +func (x *PatternFlowTcpCtlRstMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlRstMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[770] +func (x *PatternFlowTcpCtlRstMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[757] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87404,42 +87062,41 @@ func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{770} +// Deprecated: Use PatternFlowTcpCtlRstMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRstMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{757} } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { +func (x *PatternFlowTcpCtlRstMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlRstMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The length of the payload (the bytes following the mandatory 8-byte GTP header) in -// bytes that includes any optional fields -type PatternFlowGtpv1MessageLength struct { +// Reset the connection. +type PatternFlowTcpCtlRst struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlRst_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlRst_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"` @@ -87447,32 +87104,32 @@ type PatternFlowGtpv1MessageLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1MessageLength) Reset() { - *x = PatternFlowGtpv1MessageLength{} +func (x *PatternFlowTcpCtlRst) Reset() { + *x = PatternFlowTcpCtlRst{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[771] + mi := &file_otg_proto_msgTypes[758] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLength) String() string { +func (x *PatternFlowTcpCtlRst) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} +func (*PatternFlowTcpCtlRst) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[771] +func (x *PatternFlowTcpCtlRst) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[758] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87483,47 +87140,47 @@ func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{771} +// Deprecated: Use PatternFlowTcpCtlRst.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{758} } -func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { +func (x *PatternFlowTcpCtlRst) GetChoice() PatternFlowTcpCtlRst_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1MessageLength_Choice_unspecified + return PatternFlowTcpCtlRst_Choice_unspecified } -func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { +func (x *PatternFlowTcpCtlRst) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { +func (x *PatternFlowTcpCtlRst) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowTcpCtlRst) GetIncrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { +func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { +func (x *PatternFlowTcpCtlRst) GetMetricTags() []*PatternFlowTcpCtlRstMetricTag { if x != nil { return x.MetricTags } @@ -87531,7 +87188,7 @@ func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1Messa } // integer counter pattern -type PatternFlowGtpv1TeidCounter struct { +type PatternFlowTcpCtlSynCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87547,23 +87204,23 @@ type PatternFlowGtpv1TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1TeidCounter) Reset() { - *x = PatternFlowGtpv1TeidCounter{} +func (x *PatternFlowTcpCtlSynCounter) Reset() { + *x = PatternFlowTcpCtlSynCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[772] + mi := &file_otg_proto_msgTypes[759] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1TeidCounter) String() string { +func (x *PatternFlowTcpCtlSynCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlSynCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[772] +func (x *PatternFlowTcpCtlSynCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[759] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87574,26 +87231,26 @@ func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{772} +// Deprecated: Use PatternFlowTcpCtlSynCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{759} } -func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlSynCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -87603,7 +87260,7 @@ func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { // 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 PatternFlowGtpv1TeidMetricTag struct { +type PatternFlowTcpCtlSynMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87617,27 +87274,27 @@ type PatternFlowGtpv1TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1TeidMetricTag) Reset() { - *x = PatternFlowGtpv1TeidMetricTag{} +func (x *PatternFlowTcpCtlSynMetricTag) Reset() { + *x = PatternFlowTcpCtlSynMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[773] + mi := &file_otg_proto_msgTypes[760] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1TeidMetricTag) String() string { +func (x *PatternFlowTcpCtlSynMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlSynMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[773] +func (x *PatternFlowTcpCtlSynMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[760] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87648,41 +87305,41 @@ func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{773} +// Deprecated: Use PatternFlowTcpCtlSynMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSynMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{760} } -func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { +func (x *PatternFlowTcpCtlSynMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlSynMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel -type PatternFlowGtpv1Teid struct { +// Synchronize sequenece numbers. +type PatternFlowTcpCtlSyn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlSyn_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlSyn_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"` @@ -87690,32 +87347,32 @@ type PatternFlowGtpv1Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1Teid) Reset() { - *x = PatternFlowGtpv1Teid{} +func (x *PatternFlowTcpCtlSyn) Reset() { + *x = PatternFlowTcpCtlSyn{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[774] + mi := &file_otg_proto_msgTypes[761] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Teid) String() string { +func (x *PatternFlowTcpCtlSyn) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[774] +func (x *PatternFlowTcpCtlSyn) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[761] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -87726,47 +87383,47 @@ func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{774} +// Deprecated: Use PatternFlowTcpCtlSyn.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{761} } -func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { +func (x *PatternFlowTcpCtlSyn) GetChoice() PatternFlowTcpCtlSyn_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1Teid_Choice_unspecified + return PatternFlowTcpCtlSyn_Choice_unspecified } -func (x *PatternFlowGtpv1Teid) GetValue() uint32 { +func (x *PatternFlowTcpCtlSyn) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { +func (x *PatternFlowTcpCtlSyn) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowTcpCtlSyn) GetIncrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { +func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { +func (x *PatternFlowTcpCtlSyn) GetMetricTags() []*PatternFlowTcpCtlSynMetricTag { if x != nil { return x.MetricTags } @@ -87774,7 +87431,7 @@ func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag } // integer counter pattern -type PatternFlowGtpv1SquenceNumberCounter struct { +type PatternFlowTcpCtlFinCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87790,23 +87447,23 @@ type PatternFlowGtpv1SquenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { - *x = PatternFlowGtpv1SquenceNumberCounter{} +func (x *PatternFlowTcpCtlFinCounter) Reset() { + *x = PatternFlowTcpCtlFinCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[775] + mi := &file_otg_proto_msgTypes[762] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { +func (x *PatternFlowTcpCtlFinCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} +func (*PatternFlowTcpCtlFinCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[775] +func (x *PatternFlowTcpCtlFinCounter) 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 { @@ -87817,26 +87474,26 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{775} +// Deprecated: Use PatternFlowTcpCtlFinCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{762} } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowTcpCtlFinCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -87846,7 +87503,7 @@ func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { // 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 PatternFlowGtpv1SquenceNumberMetricTag struct { +type PatternFlowTcpCtlFinMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -87860,27 +87517,27 @@ type PatternFlowGtpv1SquenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv1SquenceNumberMetricTag{} +func (x *PatternFlowTcpCtlFinMetricTag) Reset() { + *x = PatternFlowTcpCtlFinMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[776] + mi := &file_otg_proto_msgTypes[763] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { +func (x *PatternFlowTcpCtlFinMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowTcpCtlFinMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[776] +func (x *PatternFlowTcpCtlFinMetricTag) 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 { @@ -87891,42 +87548,41 @@ func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{776} +// Deprecated: Use PatternFlowTcpCtlFinMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFinMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{763} } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { +func (x *PatternFlowTcpCtlFinMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpCtlFinMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the s_flag bit is on. -type PatternFlowGtpv1SquenceNumber struct { +// Last packet from the sender. +type PatternFlowTcpCtlFin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpCtlFin_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpCtlFin_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"` @@ -87934,32 +87590,32 @@ type PatternFlowGtpv1SquenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1SquenceNumber) Reset() { - *x = PatternFlowGtpv1SquenceNumber{} +func (x *PatternFlowTcpCtlFin) Reset() { + *x = PatternFlowTcpCtlFin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[777] + mi := &file_otg_proto_msgTypes[764] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumber) String() string { +func (x *PatternFlowTcpCtlFin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} +func (*PatternFlowTcpCtlFin) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[777] +func (x *PatternFlowTcpCtlFin) 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 { @@ -87970,47 +87626,47 @@ func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{777} +// Deprecated: Use PatternFlowTcpCtlFin.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{764} } -func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { +func (x *PatternFlowTcpCtlFin) GetChoice() PatternFlowTcpCtlFin_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1SquenceNumber_Choice_unspecified + return PatternFlowTcpCtlFin_Choice_unspecified } -func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { +func (x *PatternFlowTcpCtlFin) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { +func (x *PatternFlowTcpCtlFin) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowTcpCtlFin) GetIncrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { +func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { +func (x *PatternFlowTcpCtlFin) GetMetricTags() []*PatternFlowTcpCtlFinMetricTag { if x != nil { return x.MetricTags } @@ -88018,7 +87674,7 @@ func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1Squen } // integer counter pattern -type PatternFlowGtpv1NPduNumberCounter struct { +type PatternFlowTcpWindowCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88034,23 +87690,23 @@ type PatternFlowGtpv1NPduNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { - *x = PatternFlowGtpv1NPduNumberCounter{} +func (x *PatternFlowTcpWindowCounter) Reset() { + *x = PatternFlowTcpWindowCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[778] + mi := &file_otg_proto_msgTypes[765] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumberCounter) String() string { +func (x *PatternFlowTcpWindowCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} +func (*PatternFlowTcpWindowCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[778] +func (x *PatternFlowTcpWindowCounter) 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 { @@ -88061,26 +87717,26 @@ func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{778} +// Deprecated: Use PatternFlowTcpWindowCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{765} } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { +func (x *PatternFlowTcpWindowCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { +func (x *PatternFlowTcpWindowCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -88090,7 +87746,7 @@ func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { // 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 PatternFlowGtpv1NPduNumberMetricTag struct { +type PatternFlowTcpWindowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88104,27 +87760,27 @@ type PatternFlowGtpv1NPduNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { - *x = PatternFlowGtpv1NPduNumberMetricTag{} +func (x *PatternFlowTcpWindowMetricTag) Reset() { + *x = PatternFlowTcpWindowMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[779] + mi := &file_otg_proto_msgTypes[766] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { +func (x *PatternFlowTcpWindowMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} +func (*PatternFlowTcpWindowMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[779] +func (x *PatternFlowTcpWindowMetricTag) 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 { @@ -88135,42 +87791,41 @@ func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{779} +// Deprecated: Use PatternFlowTcpWindowMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindowMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{766} } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { +func (x *PatternFlowTcpWindowMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowTcpWindowMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must -// be interpreted only if the pn_flag bit is on. -type PatternFlowGtpv1NPduNumber struct { +// Tcp connection window. +type PatternFlowTcpWindow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowTcpWindow_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpWindow_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"` @@ -88178,32 +87833,32 @@ type PatternFlowGtpv1NPduNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv1NPduNumber) Reset() { - *x = PatternFlowGtpv1NPduNumber{} +func (x *PatternFlowTcpWindow) Reset() { + *x = PatternFlowTcpWindow{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[780] + mi := &file_otg_proto_msgTypes[767] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumber) String() string { +func (x *PatternFlowTcpWindow) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} +func (*PatternFlowTcpWindow) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[780] +func (x *PatternFlowTcpWindow) 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 { @@ -88214,55 +87869,126 @@ func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{780} +// Deprecated: Use PatternFlowTcpWindow.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{767} } -func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { +func (x *PatternFlowTcpWindow) GetChoice() PatternFlowTcpWindow_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NPduNumber_Choice_unspecified + return PatternFlowTcpWindow_Choice_unspecified } -func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { +func (x *PatternFlowTcpWindow) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { +func (x *PatternFlowTcpWindow) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowTcpWindow) GetIncrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { +func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { +func (x *PatternFlowTcpWindow) GetMetricTags() []*PatternFlowTcpWindowMetricTag { if x != nil { return x.MetricTags } return nil } +// The one's complement of the one's complement sum of all 16 bit words in header and +// text. An all-zero value means that no checksum will be transmitted. While computing +// the checksum, the checksum field itself is replaced with zeros. +type PatternFlowTcpChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowTcpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowTcpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowTcpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowTcpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowTcpChecksum) Reset() { + *x = PatternFlowTcpChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[768] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowTcpChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowTcpChecksum) ProtoMessage() {} + +func (x *PatternFlowTcpChecksum) 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowTcpChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{768} +} + +func (x *PatternFlowTcpChecksum) GetChoice() PatternFlowTcpChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowTcpChecksum_Choice_unspecified +} + +func (x *PatternFlowTcpChecksum) GetGenerated() PatternFlowTcpChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowTcpChecksum_Generated_unspecified +} + +func (x *PatternFlowTcpChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { +type PatternFlowUdpSrcPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88278,23 +88004,23 @@ type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} +func (x *PatternFlowUdpSrcPortCounter) Reset() { + *x = PatternFlowUdpSrcPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[781] + mi := &file_otg_proto_msgTypes[769] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { +func (x *PatternFlowUdpSrcPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} +func (*PatternFlowUdpSrcPortCounter) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[781] +func (x *PatternFlowUdpSrcPortCounter) 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 { @@ -88305,26 +88031,26 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{781} +// Deprecated: Use PatternFlowUdpSrcPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{769} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { +func (x *PatternFlowUdpSrcPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -88334,7 +88060,7 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { // 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 PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { +type PatternFlowUdpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88348,27 +88074,27 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} +func (x *PatternFlowUdpSrcPortMetricTag) Reset() { + *x = PatternFlowUdpSrcPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[782] + mi := &file_otg_proto_msgTypes[770] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { +func (x *PatternFlowUdpSrcPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} +func (*PatternFlowUdpSrcPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[782] +func (x *PatternFlowUdpSrcPortMetricTag) 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 { @@ -88379,42 +88105,124 @@ func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{782} +// Deprecated: Use PatternFlowUdpSrcPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{770} } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { +func (x *PatternFlowUdpSrcPortMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpSrcPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. -// Must be interpreted only if the e_flag bit is on. -type PatternFlowGtpv1NextExtensionHeaderType struct { +// integer random pattern +type PatternFlowUdpSrcPortRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 65535 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowUdpSrcPortRandom) Reset() { + *x = PatternFlowUdpSrcPortRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[771] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowUdpSrcPortRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowUdpSrcPortRandom) ProtoMessage() {} + +func (x *PatternFlowUdpSrcPortRandom) 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowUdpSrcPortRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPortRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{771} +} + +func (x *PatternFlowUdpSrcPortRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min + } + return 0 +} + +func (x *PatternFlowUdpSrcPortRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +func (x *PatternFlowUdpSrcPortRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowUdpSrcPortRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Source port +type PatternFlowUdpSrcPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpSrcPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpSrcPort_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"` @@ -88422,32 +88230,34 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Random *PatternFlowUdpSrcPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType{} +func (x *PatternFlowUdpSrcPort) Reset() { + *x = PatternFlowUdpSrcPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[783] + mi := &file_otg_proto_msgTypes[772] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { +func (x *PatternFlowUdpSrcPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} +func (*PatternFlowUdpSrcPort) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[783] +func (x *PatternFlowUdpSrcPort) 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 { @@ -88458,55 +88268,62 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{783} +// Deprecated: Use PatternFlowUdpSrcPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{772} } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { +func (x *PatternFlowUdpSrcPort) GetChoice() PatternFlowUdpSrcPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified + return PatternFlowUdpSrcPort_Choice_unspecified } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { +func (x *PatternFlowUdpSrcPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { +func (x *PatternFlowUdpSrcPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowUdpSrcPort) GetIncrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { +func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { +func (x *PatternFlowUdpSrcPort) GetMetricTags() []*PatternFlowUdpSrcPortMetricTag { if x != nil { return x.MetricTags } return nil } +func (x *PatternFlowUdpSrcPort) GetRandom() *PatternFlowUdpSrcPortRandom { + if x != nil { + return x.Random + } + return nil +} + // integer counter pattern -type PatternFlowGtpExtensionExtensionLengthCounter struct { +type PatternFlowUdpDstPortCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88522,23 +88339,23 @@ type PatternFlowGtpExtensionExtensionLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthCounter{} +func (x *PatternFlowUdpDstPortCounter) Reset() { + *x = PatternFlowUdpDstPortCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[784] + mi := &file_otg_proto_msgTypes[773] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { +func (x *PatternFlowUdpDstPortCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} +func (*PatternFlowUdpDstPortCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[784] +func (x *PatternFlowUdpDstPortCounter) 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 { @@ -88549,26 +88366,26 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{784} +// Deprecated: Use PatternFlowUdpDstPortCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{773} } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { +func (x *PatternFlowUdpDstPortCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -88578,7 +88395,7 @@ func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { // 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 PatternFlowGtpExtensionExtensionLengthMetricTag struct { +type PatternFlowUdpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88592,27 +88409,27 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { - *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} +func (x *PatternFlowUdpDstPortMetricTag) Reset() { + *x = PatternFlowUdpDstPortMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[785] + mi := &file_otg_proto_msgTypes[774] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { +func (x *PatternFlowUdpDstPortMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} +func (*PatternFlowUdpDstPortMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[785] +func (x *PatternFlowUdpDstPortMetricTag) 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 { @@ -88623,43 +88440,124 @@ func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{785} +// Deprecated: Use PatternFlowUdpDstPortMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{774} } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { +func (x *PatternFlowUdpDstPortMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowUdpDstPortMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// This field states the length of this extension header, including the length, the -// contents, and the next extension header field, in 4-octet units, so the length of -// the extension must always be a multiple of 4. -type PatternFlowGtpExtensionExtensionLength struct { +// integer random pattern +type PatternFlowUdpDstPortRandom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum possible value generated by the random value generator. + // default = 0 + Min *uint32 `protobuf:"varint,1,opt,name=min,proto3,oneof" json:"min,omitempty"` + // The maximum possible value generated by the random value generator. + // default = 65535 + Max *uint32 `protobuf:"varint,2,opt,name=max,proto3,oneof" json:"max,omitempty"` + // The seed value is used to initialize the random number generator to a deterministic + // state. If the user provides a seed value of 0, the implementation will generate a + // sequence of non-deterministic random values. For any other seed value, the sequence + // of random numbers will be generated in a deterministic manner (specific to the implementation). + // default = 1 + Seed *uint32 `protobuf:"varint,3,opt,name=seed,proto3,oneof" json:"seed,omitempty"` + // The total number of values to be generated by the random value generator. + // default = 1 + Count *uint32 `protobuf:"varint,4,opt,name=count,proto3,oneof" json:"count,omitempty"` +} + +func (x *PatternFlowUdpDstPortRandom) Reset() { + *x = PatternFlowUdpDstPortRandom{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[775] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowUdpDstPortRandom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowUdpDstPortRandom) ProtoMessage() {} + +func (x *PatternFlowUdpDstPortRandom) 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowUdpDstPortRandom.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPortRandom) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{775} +} + +func (x *PatternFlowUdpDstPortRandom) GetMin() uint32 { + if x != nil && x.Min != nil { + return *x.Min + } + return 0 +} + +func (x *PatternFlowUdpDstPortRandom) GetMax() uint32 { + if x != nil && x.Max != nil { + return *x.Max + } + return 0 +} + +func (x *PatternFlowUdpDstPortRandom) GetSeed() uint32 { + if x != nil && x.Seed != nil { + return *x.Seed + } + return 0 +} + +func (x *PatternFlowUdpDstPortRandom) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Destination port +type PatternFlowUdpDstPort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpDstPort_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpDstPort_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"` @@ -88667,32 +88565,34 @@ type PatternFlowGtpExtensionExtensionLength struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + // Description missing in models + Random *PatternFlowUdpDstPortRandom `protobuf:"bytes,8,opt,name=random,proto3" json:"random,omitempty"` } -func (x *PatternFlowGtpExtensionExtensionLength) Reset() { - *x = PatternFlowGtpExtensionExtensionLength{} +func (x *PatternFlowUdpDstPort) Reset() { + *x = PatternFlowUdpDstPort{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[786] + mi := &file_otg_proto_msgTypes[776] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLength) String() string { +func (x *PatternFlowUdpDstPort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} +func (*PatternFlowUdpDstPort) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[786] +func (x *PatternFlowUdpDstPort) 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 { @@ -88703,87 +88603,94 @@ func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{786} +// Deprecated: Use PatternFlowUdpDstPort.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{776} } -func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { +func (x *PatternFlowUdpDstPort) GetChoice() PatternFlowUdpDstPort_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionExtensionLength_Choice_unspecified + return PatternFlowUdpDstPort_Choice_unspecified } -func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { +func (x *PatternFlowUdpDstPort) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { +func (x *PatternFlowUdpDstPort) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowUdpDstPort) GetIncrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { +func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { +func (x *PatternFlowUdpDstPort) GetMetricTags() []*PatternFlowUdpDstPortMetricTag { if x != nil { return x.MetricTags } return nil } +func (x *PatternFlowUdpDstPort) GetRandom() *PatternFlowUdpDstPortRandom { + if x != nil { + return x.Random + } + return nil +} + // integer counter pattern -type PatternFlowGtpExtensionContentsCounter struct { +type PatternFlowUdpLengthCounter 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"` + Start *uint32 `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"` + Step *uint32 `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"` + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpExtensionContentsCounter) Reset() { - *x = PatternFlowGtpExtensionContentsCounter{} +func (x *PatternFlowUdpLengthCounter) Reset() { + *x = PatternFlowUdpLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[787] + mi := &file_otg_proto_msgTypes[777] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContentsCounter) String() string { +func (x *PatternFlowUdpLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} +func (*PatternFlowUdpLengthCounter) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[787] +func (x *PatternFlowUdpLengthCounter) 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 { @@ -88794,26 +88701,26 @@ func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{787} +// Deprecated: Use PatternFlowUdpLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{777} } -func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { +func (x *PatternFlowUdpLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { +func (x *PatternFlowUdpLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { +func (x *PatternFlowUdpLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -88823,7 +88730,7 @@ func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { // 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 PatternFlowGtpExtensionContentsMetricTag struct { +type PatternFlowUdpLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -88834,30 +88741,30 @@ type PatternFlowGtpExtensionContentsMetricTag struct { Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 - Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { - *x = PatternFlowGtpExtensionContentsMetricTag{} +func (x *PatternFlowUdpLengthMetricTag) Reset() { + *x = PatternFlowUdpLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[788] + mi := &file_otg_proto_msgTypes[778] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { +func (x *PatternFlowUdpLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} +func (*PatternFlowUdpLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[788] +func (x *PatternFlowUdpLengthMetricTag) 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 { @@ -88868,74 +88775,74 @@ func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{788} +// Deprecated: Use PatternFlowUdpLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{778} } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { +func (x *PatternFlowUdpLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { +func (x *PatternFlowUdpLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { +func (x *PatternFlowUdpLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The extension header contents -type PatternFlowGtpExtensionContents struct { +// Length +type PatternFlowUdpLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowUdpLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpLength_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"` + Value *uint32 `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"` + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionContents) Reset() { - *x = PatternFlowGtpExtensionContents{} +func (x *PatternFlowUdpLength) Reset() { + *x = PatternFlowUdpLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[789] + mi := &file_otg_proto_msgTypes[779] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContents) String() string { +func (x *PatternFlowUdpLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents) ProtoMessage() {} +func (*PatternFlowUdpLength) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[789] +func (x *PatternFlowUdpLength) 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 { @@ -88946,87 +88853,86 @@ func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{789} +// Deprecated: Use PatternFlowUdpLength.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{779} } -func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { +func (x *PatternFlowUdpLength) GetChoice() PatternFlowUdpLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionContents_Choice_unspecified + return PatternFlowUdpLength_Choice_unspecified } -func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { +func (x *PatternFlowUdpLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { +func (x *PatternFlowUdpLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowUdpLength) GetIncrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { +func (x *PatternFlowUdpLength) GetDecrement() *PatternFlowUdpLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { +func (x *PatternFlowUdpLength) GetMetricTags() []*PatternFlowUdpLengthMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { +// UDP checksum +type PatternFlowUdpChecksum 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"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowUdpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowUdpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowUdpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowUdpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} +func (x *PatternFlowUdpChecksum) Reset() { + *x = PatternFlowUdpChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[790] + mi := &file_otg_proto_msgTypes[780] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { +func (x *PatternFlowUdpChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} +func (*PatternFlowUdpChecksum) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[790] +func (x *PatternFlowUdpChecksum) 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 { @@ -89037,36 +88943,106 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{790} +// Deprecated: Use PatternFlowUdpChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowUdpChecksum) GetChoice() PatternFlowUdpChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowUdpChecksum_Choice_unspecified } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowUdpChecksum) GetGenerated() PatternFlowUdpChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated } - return 0 + return PatternFlowUdpChecksum_Generated_unspecified } -func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowUdpChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom } return 0 } -// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// integer counter pattern +type PatternFlowGreChecksumPresentCounter 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 *PatternFlowGreChecksumPresentCounter) Reset() { + *x = PatternFlowGreChecksumPresentCounter{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[781] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGreChecksumPresentCounter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGreChecksumPresentCounter) ProtoMessage() {} + +func (x *PatternFlowGreChecksumPresentCounter) 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 + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatternFlowGreChecksumPresentCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{781} +} + +func (x *PatternFlowGreChecksumPresentCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowGreChecksumPresentCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowGreChecksumPresentCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// 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 PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { +type PatternFlowGreChecksumPresentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89080,27 +89056,27 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} +func (x *PatternFlowGreChecksumPresentMetricTag) Reset() { + *x = PatternFlowGreChecksumPresentMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[791] + mi := &file_otg_proto_msgTypes[782] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { +func (x *PatternFlowGreChecksumPresentMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} +func (*PatternFlowGreChecksumPresentMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[791] +func (x *PatternFlowGreChecksumPresentMetricTag) 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 { @@ -89111,42 +89087,41 @@ func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{791} +// Deprecated: Use PatternFlowGreChecksumPresentMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresentMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{782} } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { +func (x *PatternFlowGreChecksumPresentMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { +func (x *PatternFlowGreChecksumPresentMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// It states the type of the next extension, or 0 if no next extension exists. This -// permits chaining several next extension headers. -type PatternFlowGtpExtensionNextExtensionHeader struct { +// Checksum present bit +type PatternFlowGreChecksumPresent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreChecksumPresent_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksumPresent_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"` @@ -89154,32 +89129,32 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader{} +func (x *PatternFlowGreChecksumPresent) Reset() { + *x = PatternFlowGreChecksumPresent{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[792] + mi := &file_otg_proto_msgTypes[783] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { +func (x *PatternFlowGreChecksumPresent) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[792] +func (x *PatternFlowGreChecksumPresent) 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 { @@ -89190,47 +89165,47 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{792} +// Deprecated: Use PatternFlowGreChecksumPresent.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{783} } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { +func (x *PatternFlowGreChecksumPresent) GetChoice() PatternFlowGreChecksumPresent_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified + return PatternFlowGreChecksumPresent_Choice_unspecified } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { +func (x *PatternFlowGreChecksumPresent) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { +func (x *PatternFlowGreChecksumPresent) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGreChecksumPresent) GetIncrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { +func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPresentCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { +func (x *PatternFlowGreChecksumPresent) GetMetricTags() []*PatternFlowGreChecksumPresentMetricTag { if x != nil { return x.MetricTags } @@ -89238,13 +89213,13 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternF } // integer counter pattern -type PatternFlowGtpv2VersionCounter struct { +type PatternFlowGreReserved0Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -89254,23 +89229,23 @@ type PatternFlowGtpv2VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2VersionCounter) Reset() { - *x = PatternFlowGtpv2VersionCounter{} +func (x *PatternFlowGreReserved0Counter) Reset() { + *x = PatternFlowGreReserved0Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[793] + mi := &file_otg_proto_msgTypes[784] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2VersionCounter) String() string { +func (x *PatternFlowGreReserved0Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} +func (*PatternFlowGreReserved0Counter) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[793] +func (x *PatternFlowGreReserved0Counter) 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 { @@ -89281,26 +89256,26 @@ func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{793} +// Deprecated: Use PatternFlowGreReserved0Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{784} } -func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { +func (x *PatternFlowGreReserved0Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { +func (x *PatternFlowGreReserved0Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -89310,7 +89285,7 @@ func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { // 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 PatternFlowGtpv2VersionMetricTag struct { +type PatternFlowGreReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89324,27 +89299,27 @@ type PatternFlowGtpv2VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 12 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2VersionMetricTag) Reset() { - *x = PatternFlowGtpv2VersionMetricTag{} +func (x *PatternFlowGreReserved0MetricTag) Reset() { + *x = PatternFlowGreReserved0MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[794] + mi := &file_otg_proto_msgTypes[785] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2VersionMetricTag) String() string { +func (x *PatternFlowGreReserved0MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved0MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[794] +func (x *PatternFlowGreReserved0MetricTag) 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 { @@ -89355,74 +89330,74 @@ func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{794} +// Deprecated: Use PatternFlowGreReserved0MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{785} } -func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { +func (x *PatternFlowGreReserved0MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved0MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowGtpv2Version struct { +// Reserved bits +type PatternFlowGreReserved0 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved0_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved0_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Version) Reset() { - *x = PatternFlowGtpv2Version{} +func (x *PatternFlowGreReserved0) Reset() { + *x = PatternFlowGreReserved0{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[795] + mi := &file_otg_proto_msgTypes[786] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Version) String() string { +func (x *PatternFlowGreReserved0) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version) ProtoMessage() {} +func (*PatternFlowGreReserved0) ProtoMessage() {} -func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[795] +func (x *PatternFlowGreReserved0) 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 { @@ -89433,47 +89408,47 @@ func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{795} +// Deprecated: Use PatternFlowGreReserved0.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{786} } -func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { +func (x *PatternFlowGreReserved0) GetChoice() PatternFlowGreReserved0_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Version_Choice_unspecified + return PatternFlowGreReserved0_Choice_unspecified } -func (x *PatternFlowGtpv2Version) GetValue() uint32 { +func (x *PatternFlowGreReserved0) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Version) GetValues() []uint32 { +func (x *PatternFlowGreReserved0) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGreReserved0) GetIncrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { +func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { +func (x *PatternFlowGreReserved0) GetMetricTags() []*PatternFlowGreReserved0MetricTag { if x != nil { return x.MetricTags } @@ -89481,7 +89456,7 @@ func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetr } // integer counter pattern -type PatternFlowGtpv2PiggybackingFlagCounter struct { +type PatternFlowGreVersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89497,23 +89472,23 @@ type PatternFlowGtpv2PiggybackingFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagCounter{} +func (x *PatternFlowGreVersionCounter) Reset() { + *x = PatternFlowGreVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[796] + mi := &file_otg_proto_msgTypes[787] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { +func (x *PatternFlowGreVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} +func (*PatternFlowGreVersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[796] +func (x *PatternFlowGreVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[787] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89524,26 +89499,26 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{796} +// Deprecated: Use PatternFlowGreVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{787} } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreVersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreVersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreVersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -89553,7 +89528,7 @@ func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { // 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 PatternFlowGtpv2PiggybackingFlagMetricTag struct { +type PatternFlowGreVersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89567,27 +89542,27 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} +func (x *PatternFlowGreVersionMetricTag) Reset() { + *x = PatternFlowGreVersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[797] + mi := &file_otg_proto_msgTypes[788] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { +func (x *PatternFlowGreVersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreVersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[797] +func (x *PatternFlowGreVersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[788] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89598,42 +89573,41 @@ func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{797} +// Deprecated: Use PatternFlowGreVersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{788} } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { +func (x *PatternFlowGreVersionMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreVersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall -// be present at the end of the current message -type PatternFlowGtpv2PiggybackingFlag struct { +// GRE version number +type PatternFlowGreVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreVersion_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"` @@ -89641,32 +89615,32 @@ type PatternFlowGtpv2PiggybackingFlag struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGreVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag{} +func (x *PatternFlowGreVersion) Reset() { + *x = PatternFlowGreVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[798] + mi := &file_otg_proto_msgTypes[789] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlag) String() string { +func (x *PatternFlowGreVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} +func (*PatternFlowGreVersion) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[798] +func (x *PatternFlowGreVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[789] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89677,47 +89651,47 @@ func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{798} +// Deprecated: Use PatternFlowGreVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{789} } -func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { +func (x *PatternFlowGreVersion) GetChoice() PatternFlowGreVersion_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified + return PatternFlowGreVersion_Choice_unspecified } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { +func (x *PatternFlowGreVersion) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { +func (x *PatternFlowGreVersion) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGreVersion) GetIncrement() *PatternFlowGreVersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { +func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { +func (x *PatternFlowGreVersion) GetMetricTags() []*PatternFlowGreVersionMetricTag { if x != nil { return x.MetricTags } @@ -89725,13 +89699,13 @@ func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2Pi } // integer counter pattern -type PatternFlowGtpv2TeidFlagCounter struct { +type PatternFlowGreProtocolCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2048 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -89741,23 +89715,23 @@ type PatternFlowGtpv2TeidFlagCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { - *x = PatternFlowGtpv2TeidFlagCounter{} +func (x *PatternFlowGreProtocolCounter) Reset() { + *x = PatternFlowGreProtocolCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[799] + mi := &file_otg_proto_msgTypes[790] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlagCounter) String() string { +func (x *PatternFlowGreProtocolCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} +func (*PatternFlowGreProtocolCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[799] +func (x *PatternFlowGreProtocolCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[790] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89768,26 +89742,26 @@ func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{799} +// Deprecated: Use PatternFlowGreProtocolCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{790} } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { +func (x *PatternFlowGreProtocolCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { +func (x *PatternFlowGreProtocolCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -89797,7 +89771,7 @@ func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { // 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 PatternFlowGtpv2TeidFlagMetricTag struct { +type PatternFlowGreProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89811,27 +89785,27 @@ type PatternFlowGtpv2TeidFlagMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { - *x = PatternFlowGtpv2TeidFlagMetricTag{} +func (x *PatternFlowGreProtocolMetricTag) Reset() { + *x = PatternFlowGreProtocolMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[800] + mi := &file_otg_proto_msgTypes[791] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { +func (x *PatternFlowGreProtocolMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} +func (*PatternFlowGreProtocolMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[800] +func (x *PatternFlowGreProtocolMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[791] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89842,76 +89816,74 @@ func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{800} +// Deprecated: Use PatternFlowGreProtocolMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocolMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{791} } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { +func (x *PatternFlowGreProtocolMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { +func (x *PatternFlowGreProtocolMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// If teid_flag is set to 1 then the TEID field will be present between the message -// length and the sequence number. All messages except Echo and Echo reply require TEID -// to be present -type PatternFlowGtpv2TeidFlag struct { +// Protocol type of encapsulated payload +type PatternFlowGreProtocol struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreProtocol_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreProtocol_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2048 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2TeidFlag) Reset() { - *x = PatternFlowGtpv2TeidFlag{} +func (x *PatternFlowGreProtocol) Reset() { + *x = PatternFlowGreProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[801] + mi := &file_otg_proto_msgTypes[792] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlag) String() string { +func (x *PatternFlowGreProtocol) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} +func (*PatternFlowGreProtocol) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[801] +func (x *PatternFlowGreProtocol) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[792] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -89922,55 +89894,125 @@ func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{801} +// Deprecated: Use PatternFlowGreProtocol.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{792} } -func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { +func (x *PatternFlowGreProtocol) GetChoice() PatternFlowGreProtocol_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2TeidFlag_Choice_unspecified + return PatternFlowGreProtocol_Choice_unspecified } -func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { +func (x *PatternFlowGreProtocol) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { +func (x *PatternFlowGreProtocol) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGreProtocol) GetIncrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { +func (x *PatternFlowGreProtocol) GetDecrement() *PatternFlowGreProtocolCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { +func (x *PatternFlowGreProtocol) GetMetricTags() []*PatternFlowGreProtocolMetricTag { if x != nil { return x.MetricTags } return nil } +// Optional checksum of GRE header and payload. Only present if the checksum_present +// bit is set. +type PatternFlowGreChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowGreChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowGreChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowGreChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowGreChecksum) Reset() { + *x = PatternFlowGreChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[793] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGreChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGreChecksum) ProtoMessage() {} + +func (x *PatternFlowGreChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[793] + 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 PatternFlowGreChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{793} +} + +func (x *PatternFlowGreChecksum) GetChoice() PatternFlowGreChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowGreChecksum_Choice_unspecified +} + +func (x *PatternFlowGreChecksum) GetGenerated() PatternFlowGreChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowGreChecksum_Generated_unspecified +} + +func (x *PatternFlowGreChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowGtpv2Spare1Counter struct { +type PatternFlowGreReserved1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -89986,23 +90028,23 @@ type PatternFlowGtpv2Spare1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare1Counter) Reset() { - *x = PatternFlowGtpv2Spare1Counter{} +func (x *PatternFlowGreReserved1Counter) Reset() { + *x = PatternFlowGreReserved1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[802] + mi := &file_otg_proto_msgTypes[794] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1Counter) String() string { +func (x *PatternFlowGreReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} +func (*PatternFlowGreReserved1Counter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[802] +func (x *PatternFlowGreReserved1Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[794] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90013,26 +90055,26 @@ func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{802} +// Deprecated: Use PatternFlowGreReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{794} } -func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { +func (x *PatternFlowGreReserved1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { +func (x *PatternFlowGreReserved1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -90042,7 +90084,7 @@ func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { // 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 PatternFlowGtpv2Spare1MetricTag struct { +type PatternFlowGreReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90056,27 +90098,27 @@ type PatternFlowGtpv2Spare1MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { - *x = PatternFlowGtpv2Spare1MetricTag{} +func (x *PatternFlowGreReserved1MetricTag) Reset() { + *x = PatternFlowGreReserved1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[803] + mi := &file_otg_proto_msgTypes[795] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1MetricTag) String() string { +func (x *PatternFlowGreReserved1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} +func (*PatternFlowGreReserved1MetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[803] +func (x *PatternFlowGreReserved1MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[795] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90087,41 +90129,41 @@ func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{803} +// Deprecated: Use PatternFlowGreReserved1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{795} } -func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { +func (x *PatternFlowGreReserved1MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { +func (x *PatternFlowGreReserved1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 3-bit reserved field (must be 0). -type PatternFlowGtpv2Spare1 struct { +// Optional reserved field. Only present if the checksum_present bit is set. +type PatternFlowGreReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGreReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGreReserved1_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"` @@ -90129,32 +90171,32 @@ type PatternFlowGtpv2Spare1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare1) Reset() { - *x = PatternFlowGtpv2Spare1{} +func (x *PatternFlowGreReserved1) Reset() { + *x = PatternFlowGreReserved1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[804] + mi := &file_otg_proto_msgTypes[796] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1) String() string { +func (x *PatternFlowGreReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1) ProtoMessage() {} +func (*PatternFlowGreReserved1) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[804] +func (x *PatternFlowGreReserved1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[796] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90165,47 +90207,47 @@ func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{804} +// Deprecated: Use PatternFlowGreReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{796} } -func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { +func (x *PatternFlowGreReserved1) GetChoice() PatternFlowGreReserved1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare1_Choice_unspecified + return PatternFlowGreReserved1_Choice_unspecified } -func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { +func (x *PatternFlowGreReserved1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { +func (x *PatternFlowGreReserved1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGreReserved1) GetIncrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { +func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { +func (x *PatternFlowGreReserved1) GetMetricTags() []*PatternFlowGreReserved1MetricTag { if x != nil { return x.MetricTags } @@ -90213,13 +90255,13 @@ func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1Metric } // integer counter pattern -type PatternFlowGtpv2MessageTypeCounter struct { +type PatternFlowGtpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -90229,23 +90271,23 @@ type PatternFlowGtpv2MessageTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { - *x = PatternFlowGtpv2MessageTypeCounter{} +func (x *PatternFlowGtpv1VersionCounter) Reset() { + *x = PatternFlowGtpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[805] + mi := &file_otg_proto_msgTypes[797] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageTypeCounter) String() string { +func (x *PatternFlowGtpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[805] +func (x *PatternFlowGtpv1VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[797] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90256,26 +90298,26 @@ func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{805} +// Deprecated: Use PatternFlowGtpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{797} } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -90285,7 +90327,7 @@ func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { // 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 PatternFlowGtpv2MessageTypeMetricTag struct { +type PatternFlowGtpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90299,27 +90341,27 @@ type PatternFlowGtpv2MessageTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { - *x = PatternFlowGtpv2MessageTypeMetricTag{} +func (x *PatternFlowGtpv1VersionMetricTag) Reset() { + *x = PatternFlowGtpv1VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[806] + mi := &file_otg_proto_msgTypes[798] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { +func (x *PatternFlowGtpv1VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[806] +func (x *PatternFlowGtpv1VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[798] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90330,75 +90372,74 @@ func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{806} +// Deprecated: Use PatternFlowGtpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{798} } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1VersionMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// An 8-bit field that indicates the type of GTP message. Different types of messages -// are defined in 3GPP TS 29.060 section 7.1 -type PatternFlowGtpv2MessageType struct { +// GTPv1 version +type PatternFlowGtpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageType) Reset() { - *x = PatternFlowGtpv2MessageType{} +func (x *PatternFlowGtpv1Version) Reset() { + *x = PatternFlowGtpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[807] + mi := &file_otg_proto_msgTypes[799] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageType) String() string { +func (x *PatternFlowGtpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType) ProtoMessage() {} +func (*PatternFlowGtpv1Version) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[807] +func (x *PatternFlowGtpv1Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[799] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90409,47 +90450,47 @@ func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{807} +// Deprecated: Use PatternFlowGtpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{799} } -func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { +func (x *PatternFlowGtpv1Version) GetChoice() PatternFlowGtpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageType_Choice_unspecified + return PatternFlowGtpv1Version_Choice_unspecified } -func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { +func (x *PatternFlowGtpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { +func (x *PatternFlowGtpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetIncrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { +func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { +func (x *PatternFlowGtpv1Version) GetMetricTags() []*PatternFlowGtpv1VersionMetricTag { if x != nil { return x.MetricTags } @@ -90457,13 +90498,13 @@ func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2Message } // integer counter pattern -type PatternFlowGtpv2MessageLengthCounter struct { +type PatternFlowGtpv1ProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -90473,23 +90514,23 @@ type PatternFlowGtpv2MessageLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { - *x = PatternFlowGtpv2MessageLengthCounter{} +func (x *PatternFlowGtpv1ProtocolTypeCounter) Reset() { + *x = PatternFlowGtpv1ProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[808] + mi := &file_otg_proto_msgTypes[800] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLengthCounter) String() string { +func (x *PatternFlowGtpv1ProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[808] +func (x *PatternFlowGtpv1ProtocolTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[800] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90500,26 +90541,26 @@ func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{808} +// Deprecated: Use PatternFlowGtpv1ProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{800} } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -90529,7 +90570,7 @@ func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { // 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 PatternFlowGtpv2MessageLengthMetricTag struct { +type PatternFlowGtpv1ProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90543,27 +90584,27 @@ type PatternFlowGtpv2MessageLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { - *x = PatternFlowGtpv2MessageLengthMetricTag{} +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) Reset() { + *x = PatternFlowGtpv1ProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[809] + mi := &file_otg_proto_msgTypes[801] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[809] +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[801] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90574,75 +90615,74 @@ func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{809} +// Deprecated: Use PatternFlowGtpv1ProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{801} } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory -// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. -type PatternFlowGtpv2MessageLength struct { +// Protocol type, GTP is 1, GTP' is 0 +type PatternFlowGtpv1ProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1ProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1ProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2MessageLength) Reset() { - *x = PatternFlowGtpv2MessageLength{} +func (x *PatternFlowGtpv1ProtocolType) Reset() { + *x = PatternFlowGtpv1ProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[810] + mi := &file_otg_proto_msgTypes[802] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLength) String() string { +func (x *PatternFlowGtpv1ProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[810] +func (x *PatternFlowGtpv1ProtocolType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[802] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90653,47 +90693,47 @@ func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{810} +// Deprecated: Use PatternFlowGtpv1ProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{802} } -func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { +func (x *PatternFlowGtpv1ProtocolType) GetChoice() PatternFlowGtpv1ProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2MessageLength_Choice_unspecified + return PatternFlowGtpv1ProtocolType_Choice_unspecified } -func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1ProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetIncrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { +func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { +func (x *PatternFlowGtpv1ProtocolType) GetMetricTags() []*PatternFlowGtpv1ProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -90701,7 +90741,7 @@ func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2Messa } // integer counter pattern -type PatternFlowGtpv2TeidCounter struct { +type PatternFlowGtpv1ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90717,23 +90757,23 @@ type PatternFlowGtpv2TeidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2TeidCounter) Reset() { - *x = PatternFlowGtpv2TeidCounter{} +func (x *PatternFlowGtpv1ReservedCounter) Reset() { + *x = PatternFlowGtpv1ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[811] + mi := &file_otg_proto_msgTypes[803] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidCounter) String() string { +func (x *PatternFlowGtpv1ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[811] +func (x *PatternFlowGtpv1ReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[803] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90744,26 +90784,26 @@ func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{811} +// Deprecated: Use PatternFlowGtpv1ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{803} } -func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -90773,7 +90813,7 @@ func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { // 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 PatternFlowGtpv2TeidMetricTag struct { +type PatternFlowGtpv1ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90787,27 +90827,27 @@ type PatternFlowGtpv2TeidMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2TeidMetricTag) Reset() { - *x = PatternFlowGtpv2TeidMetricTag{} +func (x *PatternFlowGtpv1ReservedMetricTag) Reset() { + *x = PatternFlowGtpv1ReservedMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[812] + mi := &file_otg_proto_msgTypes[804] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidMetricTag) String() string { +func (x *PatternFlowGtpv1ReservedMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1ReservedMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[812] +func (x *PatternFlowGtpv1ReservedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[804] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90818,42 +90858,41 @@ func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{812} +// Deprecated: Use PatternFlowGtpv1ReservedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ReservedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{804} } -func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { +func (x *PatternFlowGtpv1ReservedMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1ReservedMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different -// connections in the same GTP tunnel. Is present only if the teid_flag is set. -type PatternFlowGtpv2Teid struct { +// Reserved field +type PatternFlowGtpv1Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Reserved_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"` @@ -90861,32 +90900,32 @@ type PatternFlowGtpv2Teid struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Teid) Reset() { - *x = PatternFlowGtpv2Teid{} +func (x *PatternFlowGtpv1Reserved) Reset() { + *x = PatternFlowGtpv1Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[813] + mi := &file_otg_proto_msgTypes[805] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Teid) String() string { +func (x *PatternFlowGtpv1Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[813] +func (x *PatternFlowGtpv1Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[805] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90897,47 +90936,47 @@ func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{813} +// Deprecated: Use PatternFlowGtpv1Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{805} } -func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { +func (x *PatternFlowGtpv1Reserved) GetChoice() PatternFlowGtpv1Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Teid_Choice_unspecified + return PatternFlowGtpv1Reserved_Choice_unspecified } -func (x *PatternFlowGtpv2Teid) GetValue() uint32 { +func (x *PatternFlowGtpv1Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { +func (x *PatternFlowGtpv1Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetIncrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { +func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { +func (x *PatternFlowGtpv1Reserved) GetMetricTags() []*PatternFlowGtpv1ReservedMetricTag { if x != nil { return x.MetricTags } @@ -90945,7 +90984,7 @@ func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag } // integer counter pattern -type PatternFlowGtpv2SequenceNumberCounter struct { +type PatternFlowGtpv1EFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -90961,23 +91000,23 @@ type PatternFlowGtpv2SequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { - *x = PatternFlowGtpv2SequenceNumberCounter{} +func (x *PatternFlowGtpv1EFlagCounter) Reset() { + *x = PatternFlowGtpv1EFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[814] + mi := &file_otg_proto_msgTypes[806] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { +func (x *PatternFlowGtpv1EFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[814] +func (x *PatternFlowGtpv1EFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[806] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -90988,26 +91027,26 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{814} +// Deprecated: Use PatternFlowGtpv1EFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{806} } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1EFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -91017,7 +91056,7 @@ func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { // 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 PatternFlowGtpv2SequenceNumberMetricTag struct { +type PatternFlowGtpv1EFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -91031,27 +91070,27 @@ type PatternFlowGtpv2SequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 24 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { - *x = PatternFlowGtpv2SequenceNumberMetricTag{} +func (x *PatternFlowGtpv1EFlagMetricTag) Reset() { + *x = PatternFlowGtpv1EFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[815] + mi := &file_otg_proto_msgTypes[807] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv1EFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1EFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[815] +func (x *PatternFlowGtpv1EFlagMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[807] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91062,41 +91101,41 @@ func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{815} +// Deprecated: Use PatternFlowGtpv1EFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlagMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{807} } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv1EFlagMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1EFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The sequence number -type PatternFlowGtpv2SequenceNumber struct { +// Extension header field present +type PatternFlowGtpv1EFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1EFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1EFlag_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"` @@ -91104,32 +91143,32 @@ type PatternFlowGtpv2SequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2SequenceNumber) Reset() { - *x = PatternFlowGtpv2SequenceNumber{} +func (x *PatternFlowGtpv1EFlag) Reset() { + *x = PatternFlowGtpv1EFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[816] + mi := &file_otg_proto_msgTypes[808] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumber) String() string { +func (x *PatternFlowGtpv1EFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[816] +func (x *PatternFlowGtpv1EFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[808] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91140,47 +91179,47 @@ func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{816} +// Deprecated: Use PatternFlowGtpv1EFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{808} } -func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv1EFlag) GetChoice() PatternFlowGtpv1EFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2SequenceNumber_Choice_unspecified + return PatternFlowGtpv1EFlag_Choice_unspecified } -func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv1EFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv1EFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetIncrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { +func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { +func (x *PatternFlowGtpv1EFlag) GetMetricTags() []*PatternFlowGtpv1EFlagMetricTag { if x != nil { return x.MetricTags } @@ -91188,7 +91227,7 @@ func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2Sequ } // integer counter pattern -type PatternFlowGtpv2Spare2Counter struct { +type PatternFlowGtpv1SFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -91204,23 +91243,23 @@ type PatternFlowGtpv2Spare2Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowGtpv2Spare2Counter) Reset() { - *x = PatternFlowGtpv2Spare2Counter{} +func (x *PatternFlowGtpv1SFlagCounter) Reset() { + *x = PatternFlowGtpv1SFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[817] + mi := &file_otg_proto_msgTypes[809] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2Counter) String() string { +func (x *PatternFlowGtpv1SFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagCounter) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[817] +func (x *PatternFlowGtpv1SFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[809] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91231,26 +91270,26 @@ func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{817} +// Deprecated: Use PatternFlowGtpv1SFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{809} } -func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { +func (x *PatternFlowGtpv1SFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -91260,7 +91299,7 @@ func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { // 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 PatternFlowGtpv2Spare2MetricTag struct { +type PatternFlowGtpv1SFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -91274,27 +91313,27 @@ type PatternFlowGtpv2Spare2MetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { - *x = PatternFlowGtpv2Spare2MetricTag{} +func (x *PatternFlowGtpv1SFlagMetricTag) Reset() { + *x = PatternFlowGtpv1SFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[818] + mi := &file_otg_proto_msgTypes[810] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2MetricTag) String() string { +func (x *PatternFlowGtpv1SFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[818] +func (x *PatternFlowGtpv1SFlagMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[810] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91305,41 +91344,41 @@ func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{818} +// Deprecated: Use PatternFlowGtpv1SFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlagMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{810} } -func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { +func (x *PatternFlowGtpv1SFlagMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Reserved field -type PatternFlowGtpv2Spare2 struct { +// Sequence number field present +type PatternFlowGtpv1SFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SFlag_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"` @@ -91347,32 +91386,32 @@ type PatternFlowGtpv2Spare2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowGtpv2Spare2) Reset() { - *x = PatternFlowGtpv2Spare2{} +func (x *PatternFlowGtpv1SFlag) Reset() { + *x = PatternFlowGtpv1SFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[819] + mi := &file_otg_proto_msgTypes[811] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2) String() string { +func (x *PatternFlowGtpv1SFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[819] +func (x *PatternFlowGtpv1SFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[811] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91383,47 +91422,47 @@ func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. -func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{819} +// Deprecated: Use PatternFlowGtpv1SFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{811} } -func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { +func (x *PatternFlowGtpv1SFlag) GetChoice() PatternFlowGtpv1SFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowGtpv2Spare2_Choice_unspecified + return PatternFlowGtpv1SFlag_Choice_unspecified } -func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { +func (x *PatternFlowGtpv1SFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { +func (x *PatternFlowGtpv1SFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv1SFlag) GetIncrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { +func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { +func (x *PatternFlowGtpv1SFlag) GetMetricTags() []*PatternFlowGtpv1SFlagMetricTag { if x != nil { return x.MetricTags } @@ -91431,13 +91470,13 @@ func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2Metric } // integer counter pattern -type PatternFlowArpHardwareTypeCounter struct { +type PatternFlowGtpv1PnFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -91447,23 +91486,23 @@ type PatternFlowArpHardwareTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareTypeCounter) Reset() { - *x = PatternFlowArpHardwareTypeCounter{} +func (x *PatternFlowGtpv1PnFlagCounter) Reset() { + *x = PatternFlowGtpv1PnFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[820] + mi := &file_otg_proto_msgTypes[812] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareTypeCounter) String() string { +func (x *PatternFlowGtpv1PnFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagCounter) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[820] +func (x *PatternFlowGtpv1PnFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[812] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91474,26 +91513,26 @@ func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{820} +// Deprecated: Use PatternFlowGtpv1PnFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{812} } -func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1PnFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -91503,7 +91542,7 @@ func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { // 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 PatternFlowArpHardwareTypeMetricTag struct { +type PatternFlowGtpv1PnFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -91517,27 +91556,27 @@ type PatternFlowArpHardwareTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { - *x = PatternFlowArpHardwareTypeMetricTag{} +func (x *PatternFlowGtpv1PnFlagMetricTag) Reset() { + *x = PatternFlowGtpv1PnFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[821] + mi := &file_otg_proto_msgTypes[813] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareTypeMetricTag) String() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[821] +func (x *PatternFlowGtpv1PnFlagMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[813] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91548,74 +91587,74 @@ func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{821} +// Deprecated: Use PatternFlowGtpv1PnFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlagMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{813} } -func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1PnFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Network link protocol type -type PatternFlowArpHardwareType struct { +// N-PDU field present +type PatternFlowGtpv1PnFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1PnFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1PnFlag_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareType) Reset() { - *x = PatternFlowArpHardwareType{} +func (x *PatternFlowGtpv1PnFlag) Reset() { + *x = PatternFlowGtpv1PnFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[822] + mi := &file_otg_proto_msgTypes[814] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareType) String() string { +func (x *PatternFlowGtpv1PnFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag) ProtoMessage() {} -func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[822] +func (x *PatternFlowGtpv1PnFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[814] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91626,47 +91665,47 @@ func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{822} +// Deprecated: Use PatternFlowGtpv1PnFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{814} } -func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { +func (x *PatternFlowGtpv1PnFlag) GetChoice() PatternFlowGtpv1PnFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareType_Choice_unspecified + return PatternFlowGtpv1PnFlag_Choice_unspecified } -func (x *PatternFlowArpHardwareType) GetValue() uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareType) GetValues() []uint32 { +func (x *PatternFlowGtpv1PnFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetIncrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { +func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { +func (x *PatternFlowGtpv1PnFlag) GetMetricTags() []*PatternFlowGtpv1PnFlagMetricTag { if x != nil { return x.MetricTags } @@ -91674,13 +91713,13 @@ func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTy } // integer counter pattern -type PatternFlowArpProtocolTypeCounter struct { +type PatternFlowGtpv1MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -91690,23 +91729,23 @@ type PatternFlowArpProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolTypeCounter) Reset() { - *x = PatternFlowArpProtocolTypeCounter{} +func (x *PatternFlowGtpv1MessageTypeCounter) Reset() { + *x = PatternFlowGtpv1MessageTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[823] + mi := &file_otg_proto_msgTypes[815] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolTypeCounter) String() string { +func (x *PatternFlowGtpv1MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[823] +func (x *PatternFlowGtpv1MessageTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[815] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91717,26 +91756,26 @@ func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{823} +// Deprecated: Use PatternFlowGtpv1MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{815} } -func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -91746,7 +91785,7 @@ func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { // 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 PatternFlowArpProtocolTypeMetricTag struct { +type PatternFlowGtpv1MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -91760,27 +91799,27 @@ type PatternFlowArpProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { - *x = PatternFlowArpProtocolTypeMetricTag{} +func (x *PatternFlowGtpv1MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv1MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[824] + mi := &file_otg_proto_msgTypes[816] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolTypeMetricTag) String() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[824] +func (x *PatternFlowGtpv1MessageTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[816] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91791,74 +91830,75 @@ func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{824} +// Deprecated: Use PatternFlowGtpv1MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{816} } -func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The internetwork protocol for which the ARP request is intended -type PatternFlowArpProtocolType struct { +// The type of GTP message Different types of messages are defined in 3GPP TS 29.060 +// section 7.1 +type PatternFlowGtpv1MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 2048 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolType) Reset() { - *x = PatternFlowArpProtocolType{} +func (x *PatternFlowGtpv1MessageType) Reset() { + *x = PatternFlowGtpv1MessageType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[825] + mi := &file_otg_proto_msgTypes[817] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolType) String() string { +func (x *PatternFlowGtpv1MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType) ProtoMessage() {} -func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[825] +func (x *PatternFlowGtpv1MessageType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[817] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91869,47 +91909,47 @@ func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{825} +// Deprecated: Use PatternFlowGtpv1MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{817} } -func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { +func (x *PatternFlowGtpv1MessageType) GetChoice() PatternFlowGtpv1MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolType_Choice_unspecified + return PatternFlowGtpv1MessageType_Choice_unspecified } -func (x *PatternFlowArpProtocolType) GetValue() uint32 { +func (x *PatternFlowGtpv1MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolType) GetValues() []uint32 { +func (x *PatternFlowGtpv1MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv1MessageType) GetIncrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { +func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { +func (x *PatternFlowGtpv1MessageType) GetMetricTags() []*PatternFlowGtpv1MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -91917,13 +91957,13 @@ func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTy } // integer counter pattern -type PatternFlowArpHardwareLengthCounter struct { +type PatternFlowGtpv1MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -91933,23 +91973,23 @@ type PatternFlowArpHardwareLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpHardwareLengthCounter) Reset() { - *x = PatternFlowArpHardwareLengthCounter{} +func (x *PatternFlowGtpv1MessageLengthCounter) Reset() { + *x = PatternFlowGtpv1MessageLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[826] + mi := &file_otg_proto_msgTypes[818] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLengthCounter) String() string { +func (x *PatternFlowGtpv1MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[826] +func (x *PatternFlowGtpv1MessageLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[818] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -91960,26 +92000,26 @@ func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{826} +// Deprecated: Use PatternFlowGtpv1MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{818} } -func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -91989,7 +92029,7 @@ func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { // 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 PatternFlowArpHardwareLengthMetricTag struct { +type PatternFlowGtpv1MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -92003,27 +92043,27 @@ type PatternFlowArpHardwareLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { - *x = PatternFlowArpHardwareLengthMetricTag{} +func (x *PatternFlowGtpv1MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv1MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[827] + mi := &file_otg_proto_msgTypes[819] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLengthMetricTag) String() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[827] +func (x *PatternFlowGtpv1MessageLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[819] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92034,74 +92074,75 @@ func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{827} +// Deprecated: Use PatternFlowGtpv1MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{819} } -func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of a hardware address -type PatternFlowArpHardwareLength struct { +// The length of the payload (the bytes following the mandatory 8-byte GTP header) in +// bytes that includes any optional fields +type PatternFlowGtpv1MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 6 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpHardwareLength) Reset() { - *x = PatternFlowArpHardwareLength{} +func (x *PatternFlowGtpv1MessageLength) Reset() { + *x = PatternFlowGtpv1MessageLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[828] + mi := &file_otg_proto_msgTypes[820] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLength) String() string { +func (x *PatternFlowGtpv1MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[828] +func (x *PatternFlowGtpv1MessageLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[820] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92112,47 +92153,47 @@ func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{828} +// Deprecated: Use PatternFlowGtpv1MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{820} } -func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { +func (x *PatternFlowGtpv1MessageLength) GetChoice() PatternFlowGtpv1MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpHardwareLength_Choice_unspecified + return PatternFlowGtpv1MessageLength_Choice_unspecified } -func (x *PatternFlowArpHardwareLength) GetValue() uint32 { +func (x *PatternFlowGtpv1MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv1MessageLength) GetIncrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { +func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { +func (x *PatternFlowGtpv1MessageLength) GetMetricTags() []*PatternFlowGtpv1MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -92160,13 +92201,13 @@ func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardware } // integer counter pattern -type PatternFlowArpProtocolLengthCounter struct { +type PatternFlowGtpv1TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 4 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -92176,23 +92217,23 @@ type PatternFlowArpProtocolLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpProtocolLengthCounter) Reset() { - *x = PatternFlowArpProtocolLengthCounter{} +func (x *PatternFlowGtpv1TeidCounter) Reset() { + *x = PatternFlowGtpv1TeidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[829] + mi := &file_otg_proto_msgTypes[821] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLengthCounter) String() string { +func (x *PatternFlowGtpv1TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} +func (*PatternFlowGtpv1TeidCounter) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[829] +func (x *PatternFlowGtpv1TeidCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[821] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92203,26 +92244,26 @@ func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{829} +// Deprecated: Use PatternFlowGtpv1TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{821} } -func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -92232,7 +92273,7 @@ func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { // 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 PatternFlowArpProtocolLengthMetricTag struct { +type PatternFlowGtpv1TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -92246,27 +92287,27 @@ type PatternFlowArpProtocolLengthMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { - *x = PatternFlowArpProtocolLengthMetricTag{} +func (x *PatternFlowGtpv1TeidMetricTag) Reset() { + *x = PatternFlowGtpv1TeidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[830] + mi := &file_otg_proto_msgTypes[822] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLengthMetricTag) String() string { +func (x *PatternFlowGtpv1TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[830] +func (x *PatternFlowGtpv1TeidMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[822] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92277,74 +92318,74 @@ func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{830} +// Deprecated: Use PatternFlowGtpv1TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1TeidMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{822} } -func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { +func (x *PatternFlowGtpv1TeidMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Length (in octets) of internetwork addresses -type PatternFlowArpProtocolLength struct { +// Tunnel endpoint identifier (TEID) used to multiplex connections in the same GTP tunnel +type PatternFlowGtpv1Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1Teid_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 4 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [4] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpProtocolLength) Reset() { - *x = PatternFlowArpProtocolLength{} +func (x *PatternFlowGtpv1Teid) Reset() { + *x = PatternFlowGtpv1Teid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[831] + mi := &file_otg_proto_msgTypes[823] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLength) String() string { +func (x *PatternFlowGtpv1Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength) ProtoMessage() {} +func (*PatternFlowGtpv1Teid) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[831] +func (x *PatternFlowGtpv1Teid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[823] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92355,47 +92396,47 @@ func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. -func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{831} +// Deprecated: Use PatternFlowGtpv1Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{823} } -func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { +func (x *PatternFlowGtpv1Teid) GetChoice() PatternFlowGtpv1Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpProtocolLength_Choice_unspecified + return PatternFlowGtpv1Teid_Choice_unspecified } -func (x *PatternFlowArpProtocolLength) GetValue() uint32 { +func (x *PatternFlowGtpv1Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { +func (x *PatternFlowGtpv1Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv1Teid) GetIncrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { +func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { +func (x *PatternFlowGtpv1Teid) GetMetricTags() []*PatternFlowGtpv1TeidMetricTag { if x != nil { return x.MetricTags } @@ -92403,13 +92444,13 @@ func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocol } // integer counter pattern -type PatternFlowArpOperationCounter struct { +type PatternFlowGtpv1SquenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -92419,23 +92460,23 @@ type PatternFlowArpOperationCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpOperationCounter) Reset() { - *x = PatternFlowArpOperationCounter{} +func (x *PatternFlowGtpv1SquenceNumberCounter) Reset() { + *x = PatternFlowGtpv1SquenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[832] + mi := &file_otg_proto_msgTypes[824] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperationCounter) String() string { +func (x *PatternFlowGtpv1SquenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationCounter) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[832] +func (x *PatternFlowGtpv1SquenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[824] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92446,26 +92487,26 @@ func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{832} +// Deprecated: Use PatternFlowGtpv1SquenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{824} } -func (x *PatternFlowArpOperationCounter) GetStart() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowArpOperationCounter) GetStep() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowArpOperationCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1SquenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -92475,7 +92516,7 @@ func (x *PatternFlowArpOperationCounter) GetCount() uint32 { // 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 PatternFlowArpOperationMetricTag struct { +type PatternFlowGtpv1SquenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -92493,23 +92534,23 @@ type PatternFlowArpOperationMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpOperationMetricTag) Reset() { - *x = PatternFlowArpOperationMetricTag{} +func (x *PatternFlowGtpv1SquenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv1SquenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[833] + mi := &file_otg_proto_msgTypes[825] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperationMetricTag) String() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[833] +func (x *PatternFlowGtpv1SquenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[825] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92520,74 +92561,75 @@ func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{833} +// Deprecated: Use PatternFlowGtpv1SquenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{825} } -func (x *PatternFlowArpOperationMetricTag) GetName() string { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1SquenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The operation that the sender is performing -type PatternFlowArpOperation struct { +// Sequence number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the s_flag bit is on. +type PatternFlowGtpv1SquenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1SquenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1SquenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpOperation) Reset() { - *x = PatternFlowArpOperation{} +func (x *PatternFlowGtpv1SquenceNumber) Reset() { + *x = PatternFlowGtpv1SquenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[834] + mi := &file_otg_proto_msgTypes[826] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperation) String() string { +func (x *PatternFlowGtpv1SquenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber) ProtoMessage() {} -func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[834] +func (x *PatternFlowGtpv1SquenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[826] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92598,87 +92640,87 @@ func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. -func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{834} +// Deprecated: Use PatternFlowGtpv1SquenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{826} } -func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { +func (x *PatternFlowGtpv1SquenceNumber) GetChoice() PatternFlowGtpv1SquenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpOperation_Choice_unspecified + return PatternFlowGtpv1SquenceNumber_Choice_unspecified } -func (x *PatternFlowArpOperation) GetValue() uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowArpOperation) GetValues() []uint32 { +func (x *PatternFlowGtpv1SquenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetIncrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { +func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { +func (x *PatternFlowGtpv1SquenceNumber) GetMetricTags() []*PatternFlowGtpv1SquenceNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpSenderHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowGtpv1NPduNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowArpSenderHardwareAddrCounter) Reset() { - *x = PatternFlowArpSenderHardwareAddrCounter{} +func (x *PatternFlowGtpv1NPduNumberCounter) Reset() { + *x = PatternFlowGtpv1NPduNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[835] + mi := &file_otg_proto_msgTypes[827] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { +func (x *PatternFlowGtpv1NPduNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberCounter) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[835] +func (x *PatternFlowGtpv1NPduNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[827] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92689,26 +92731,26 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{835} +// Deprecated: Use PatternFlowGtpv1NPduNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{827} } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { +func (x *PatternFlowGtpv1NPduNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NPduNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -92718,7 +92760,7 @@ func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { // 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 PatternFlowArpSenderHardwareAddrMetricTag struct { +type PatternFlowGtpv1NPduNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -92732,27 +92774,27 @@ type PatternFlowArpSenderHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpSenderHardwareAddrMetricTag{} +func (x *PatternFlowGtpv1NPduNumberMetricTag) Reset() { + *x = PatternFlowGtpv1NPduNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[836] + mi := &file_otg_proto_msgTypes[828] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[836] +func (x *PatternFlowGtpv1NPduNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[828] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92763,74 +92805,75 @@ func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{836} +// Deprecated: Use PatternFlowGtpv1NPduNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{828} } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NPduNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the sender -type PatternFlowArpSenderHardwareAddr struct { +// N-PDU number. Exists if any of the e_flag, s_flag, or pn_flag bits are on. Must +// be interpreted only if the pn_flag bit is on. +type PatternFlowGtpv1NPduNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NPduNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NPduNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderHardwareAddr) Reset() { - *x = PatternFlowArpSenderHardwareAddr{} +func (x *PatternFlowGtpv1NPduNumber) Reset() { + *x = PatternFlowGtpv1NPduNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[837] + mi := &file_otg_proto_msgTypes[829] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddr) String() string { +func (x *PatternFlowGtpv1NPduNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[837] +func (x *PatternFlowGtpv1NPduNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[829] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92841,87 +92884,87 @@ func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{837} +// Deprecated: Use PatternFlowGtpv1NPduNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{829} } -func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { +func (x *PatternFlowGtpv1NPduNumber) GetChoice() PatternFlowGtpv1NPduNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderHardwareAddr_Choice_unspecified + return PatternFlowGtpv1NPduNumber_Choice_unspecified } -func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { +func (x *PatternFlowGtpv1NPduNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { +func (x *PatternFlowGtpv1NPduNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv1NPduNumber) GetIncrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { +func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { +func (x *PatternFlowGtpv1NPduNumber) GetMetricTags() []*PatternFlowGtpv1NPduNumberMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpSenderProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowGtpv1NextExtensionHeaderTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowArpSenderProtocolAddrCounter) Reset() { - *x = PatternFlowArpSenderProtocolAddrCounter{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[838] + mi := &file_otg_proto_msgTypes[830] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[838] +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[830] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -92932,26 +92975,26 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{838} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{830} } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -92961,7 +93004,7 @@ func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { // 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 PatternFlowArpSenderProtocolAddrMetricTag struct { +type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -92975,27 +93018,27 @@ type PatternFlowArpSenderProtocolAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpSenderProtocolAddrMetricTag{} +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[839] + mi := &file_otg_proto_msgTypes[831] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[839] +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[831] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93006,74 +93049,75 @@ func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{839} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{831} } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the sender -type PatternFlowArpSenderProtocolAddr struct { +// Next extension header. Exists if any of the e_flag, s_flag, or pn_flag bits are on. +// Must be interpreted only if the e_flag bit is on. +type PatternFlowGtpv1NextExtensionHeaderType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv1NextExtensionHeaderType_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"` + // default = 0 + Value *uint32 `protobuf:"varint,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"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpSenderProtocolAddr) Reset() { - *x = PatternFlowArpSenderProtocolAddr{} +func (x *PatternFlowGtpv1NextExtensionHeaderType) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[840] + mi := &file_otg_proto_msgTypes[832] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddr) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[840] +func (x *PatternFlowGtpv1NextExtensionHeaderType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[832] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93084,87 +93128,87 @@ func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{840} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{832} } -func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetChoice() PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpSenderProtocolAddr_Choice_unspecified + return PatternFlowGtpv1NextExtensionHeaderType_Choice_unspecified } -func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetIncrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtpv1NextExtensionHeaderTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { +func (x *PatternFlowGtpv1NextExtensionHeaderType) GetMetricTags() []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { if x != nil { return x.MetricTags } return nil } -// mac counter pattern -type PatternFlowArpTargetHardwareAddrCounter struct { +// integer counter pattern +type PatternFlowGtpExtensionExtensionLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 00:00:00:00:00:00 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = 00:00:00:00:00:01 - Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // 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 *PatternFlowArpTargetHardwareAddrCounter) Reset() { - *x = PatternFlowArpTargetHardwareAddrCounter{} +func (x *PatternFlowGtpExtensionExtensionLengthCounter) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[841] + mi := &file_otg_proto_msgTypes[833] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[841] +func (x *PatternFlowGtpExtensionExtensionLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[833] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93175,26 +93219,26 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{841} +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{833} } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -93204,7 +93248,7 @@ func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { // 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 PatternFlowArpTargetHardwareAddrMetricTag struct { +type PatternFlowGtpExtensionExtensionLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -93218,27 +93262,27 @@ type PatternFlowArpTargetHardwareAddrMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 48 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { - *x = PatternFlowArpTargetHardwareAddrMetricTag{} +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) Reset() { + *x = PatternFlowGtpExtensionExtensionLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[842] + mi := &file_otg_proto_msgTypes[834] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[842] +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[834] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93249,74 +93293,76 @@ func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{842} +// Deprecated: Use PatternFlowGtpExtensionExtensionLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{834} } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionExtensionLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Media address of the target -type PatternFlowArpTargetHardwareAddr struct { +// This field states the length of this extension header, including the length, the +// contents, and the next extension header field, in 4-octet units, so the length of +// the extension must always be a multiple of 4. +type PatternFlowGtpExtensionExtensionLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionExtensionLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionExtensionLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 00:00:00:00:00:00 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = ['00:00:00:00:00:00'] - Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetHardwareAddr) Reset() { - *x = PatternFlowArpTargetHardwareAddr{} +func (x *PatternFlowGtpExtensionExtensionLength) Reset() { + *x = PatternFlowGtpExtensionExtensionLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[843] + mi := &file_otg_proto_msgTypes[835] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddr) String() string { +func (x *PatternFlowGtpExtensionExtensionLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[843] +func (x *PatternFlowGtpExtensionExtensionLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[835] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93327,87 +93373,87 @@ func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{843} +// Deprecated: Use PatternFlowGtpExtensionExtensionLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{835} } -func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { +func (x *PatternFlowGtpExtensionExtensionLength) GetChoice() PatternFlowGtpExtensionExtensionLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetHardwareAddr_Choice_unspecified + return PatternFlowGtpExtensionExtensionLength_Choice_unspecified } -func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { +func (x *PatternFlowGtpExtensionExtensionLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { +func (x *PatternFlowGtpExtensionExtensionLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowGtpExtensionExtensionLength) GetIncrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { +func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpExtensionExtensionLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { +func (x *PatternFlowGtpExtensionExtensionLength) GetMetricTags() []*PatternFlowGtpExtensionExtensionLengthMetricTag { if x != nil { return x.MetricTags } return nil } -// ipv4 counter pattern -type PatternFlowArpTargetProtocolAddrCounter struct { +// integer counter pattern +type PatternFlowGtpExtensionContentsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint64 `protobuf:"varint,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"` + // default = 1 + Step *uint64 `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"` + Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { - *x = PatternFlowArpTargetProtocolAddrCounter{} +func (x *PatternFlowGtpExtensionContentsCounter) Reset() { + *x = PatternFlowGtpExtensionContentsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[844] + mi := &file_otg_proto_msgTypes[836] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { +func (x *PatternFlowGtpExtensionContentsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsCounter) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[844] +func (x *PatternFlowGtpExtensionContentsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[836] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93418,26 +93464,26 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{844} +// Deprecated: Use PatternFlowGtpExtensionContentsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{836} } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { +func (x *PatternFlowGtpExtensionContentsCounter) GetStart() uint64 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { +func (x *PatternFlowGtpExtensionContentsCounter) GetStep() uint64 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionContentsCounter) GetCount() uint64 { if x != nil && x.Count != nil { return *x.Count } @@ -93447,7 +93493,7 @@ func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { // 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 PatternFlowArpTargetProtocolAddrMetricTag struct { +type PatternFlowGtpExtensionContentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -93458,30 +93504,30 @@ type PatternFlowArpTargetProtocolAddrMetricTag struct { Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // Offset in bits relative to start of corresponding header field // default = 0 - Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + Offset *uint64 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 32 - Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` + // default = 48 + Length *uint64 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { - *x = PatternFlowArpTargetProtocolAddrMetricTag{} +func (x *PatternFlowGtpExtensionContentsMetricTag) Reset() { + *x = PatternFlowGtpExtensionContentsMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[845] + mi := &file_otg_proto_msgTypes[837] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionContentsMetricTag) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[845] +func (x *PatternFlowGtpExtensionContentsMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[837] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93492,74 +93538,74 @@ func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{845} +// Deprecated: Use PatternFlowGtpExtensionContentsMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContentsMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{837} } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetOffset() uint64 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionContentsMetricTag) GetLength() uint64 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Internetwork address of the target -type PatternFlowArpTargetProtocolAddr struct { +// The extension header contents +type PatternFlowGtpExtensionContents struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionContents_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionContents_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"` + // default = 0 + Value *uint64 `protobuf:"varint,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"` + // default = [0] + Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowArpTargetProtocolAddr) Reset() { - *x = PatternFlowArpTargetProtocolAddr{} +func (x *PatternFlowGtpExtensionContents) Reset() { + *x = PatternFlowGtpExtensionContents{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[846] + mi := &file_otg_proto_msgTypes[838] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddr) String() string { +func (x *PatternFlowGtpExtensionContents) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[846] +func (x *PatternFlowGtpExtensionContents) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[838] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93570,47 +93616,47 @@ func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. -func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{846} +// Deprecated: Use PatternFlowGtpExtensionContents.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{838} } -func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { +func (x *PatternFlowGtpExtensionContents) GetChoice() PatternFlowGtpExtensionContents_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowArpTargetProtocolAddr_Choice_unspecified + return PatternFlowGtpExtensionContents_Choice_unspecified } -func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { +func (x *PatternFlowGtpExtensionContents) GetValue() uint64 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { +func (x *PatternFlowGtpExtensionContents) GetValues() []uint64 { if x != nil { return x.Values } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowGtpExtensionContents) GetIncrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { +func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensionContentsCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { +func (x *PatternFlowGtpExtensionContents) GetMetricTags() []*PatternFlowGtpExtensionContentsMetricTag { if x != nil { return x.MetricTags } @@ -93618,13 +93664,13 @@ func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTarg } // integer counter pattern -type PatternFlowIcmpEchoTypeCounter struct { +type PatternFlowGtpExtensionNextExtensionHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 8 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -93634,23 +93680,23 @@ type PatternFlowIcmpEchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoTypeCounter) Reset() { - *x = PatternFlowIcmpEchoTypeCounter{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[847] + mi := &file_otg_proto_msgTypes[839] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoTypeCounter) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[847] +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[839] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93661,26 +93707,26 @@ func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{847} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{839} } -func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -93690,7 +93736,7 @@ func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { // 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 PatternFlowIcmpEchoTypeMetricTag struct { +type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -93708,23 +93754,23 @@ type PatternFlowIcmpEchoTypeMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpEchoTypeMetricTag{} +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeaderMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[848] + mi := &file_otg_proto_msgTypes[840] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[848] +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[840] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93735,74 +93781,75 @@ func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{848} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeaderMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{840} } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeaderMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The type of ICMP echo packet -type PatternFlowIcmpEchoType struct { +// It states the type of the next extension, or 0 if no next extension exists. This +// permits chaining several next extension headers. +type PatternFlowGtpExtensionNextExtensionHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 8 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [8] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoType) Reset() { - *x = PatternFlowIcmpEchoType{} +func (x *PatternFlowGtpExtensionNextExtensionHeader) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[849] + mi := &file_otg_proto_msgTypes[841] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoType) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[849] +func (x *PatternFlowGtpExtensionNextExtensionHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[841] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93813,47 +93860,47 @@ func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{849} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{841} } -func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetChoice() PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoType_Choice_unspecified + return PatternFlowGtpExtensionNextExtensionHeader_Choice_unspecified } -func (x *PatternFlowIcmpEchoType) GetValue() uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetIncrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlowGtpExtensionNextExtensionHeaderCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { +func (x *PatternFlowGtpExtensionNextExtensionHeader) GetMetricTags() []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag { if x != nil { return x.MetricTags } @@ -93861,13 +93908,13 @@ func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetr } // integer counter pattern -type PatternFlowIcmpEchoCodeCounter struct { +type PatternFlowGtpv2VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 2 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -93877,23 +93924,23 @@ type PatternFlowIcmpEchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoCodeCounter) Reset() { - *x = PatternFlowIcmpEchoCodeCounter{} +func (x *PatternFlowGtpv2VersionCounter) Reset() { + *x = PatternFlowGtpv2VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[850] + mi := &file_otg_proto_msgTypes[842] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCodeCounter) String() string { +func (x *PatternFlowGtpv2VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2VersionCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[850] +func (x *PatternFlowGtpv2VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[842] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93904,26 +93951,26 @@ func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{850} +// Deprecated: Use PatternFlowGtpv2VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{842} } -func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -93933,7 +93980,7 @@ func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { // 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 PatternFlowIcmpEchoCodeMetricTag struct { +type PatternFlowGtpv2VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -93947,27 +93994,27 @@ type PatternFlowIcmpEchoCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpEchoCodeMetricTag{} +func (x *PatternFlowGtpv2VersionMetricTag) Reset() { + *x = PatternFlowGtpv2VersionMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[851] + mi := &file_otg_proto_msgTypes[843] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { +func (x *PatternFlowGtpv2VersionMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2VersionMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[851] +func (x *PatternFlowGtpv2VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[843] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -93978,74 +94025,74 @@ func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{851} +// Deprecated: Use PatternFlowGtpv2VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{843} } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { +func (x *PatternFlowGtpv2VersionMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2VersionMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// The ICMP subtype. The default code for ICMP echo request and reply is 0. -type PatternFlowIcmpEchoCode struct { +// Version number +type PatternFlowGtpv2Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 2 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [2] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoCode) Reset() { - *x = PatternFlowIcmpEchoCode{} +func (x *PatternFlowGtpv2Version) Reset() { + *x = PatternFlowGtpv2Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[852] + mi := &file_otg_proto_msgTypes[844] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCode) String() string { +func (x *PatternFlowGtpv2Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode) ProtoMessage() {} +func (*PatternFlowGtpv2Version) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[852] +func (x *PatternFlowGtpv2Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[844] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94056,124 +94103,55 @@ func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{852} +// Deprecated: Use PatternFlowGtpv2Version.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{844} } -func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { +func (x *PatternFlowGtpv2Version) GetChoice() PatternFlowGtpv2Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoCode_Choice_unspecified + return PatternFlowGtpv2Version_Choice_unspecified } -func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { +func (x *PatternFlowGtpv2Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { +func (x *PatternFlowGtpv2Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowGtpv2Version) GetIncrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { +func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { +func (x *PatternFlowGtpv2Version) GetMetricTags() []*PatternFlowGtpv2VersionMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpEchoChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpEchoChecksum) Reset() { - *x = PatternFlowIcmpEchoChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[853] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpEchoChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[853] - 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.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{853} -} - -func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpEchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpEchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowIcmpEchoIdentifierCounter struct { +type PatternFlowGtpv2PiggybackingFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94189,23 +94167,23 @@ type PatternFlowIcmpEchoIdentifierCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpEchoIdentifierCounter{} +func (x *PatternFlowGtpv2PiggybackingFlagCounter) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[854] + mi := &file_otg_proto_msgTypes[845] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[854] +func (x *PatternFlowGtpv2PiggybackingFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[845] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94216,26 +94194,26 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{854} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{845} } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -94245,7 +94223,7 @@ func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { // 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 PatternFlowIcmpEchoIdentifierMetricTag struct { +type PatternFlowGtpv2PiggybackingFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94259,27 +94237,27 @@ type PatternFlowIcmpEchoIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpEchoIdentifierMetricTag{} +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[855] + mi := &file_otg_proto_msgTypes[846] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[855] +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[846] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94290,41 +94268,42 @@ func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{855} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlagMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{846} } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpEchoIdentifier struct { +// If piggybacking_flag is set to 1 then another GTP-C message with its own header shall +// be present at the end of the current message +type PatternFlowGtpv2PiggybackingFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2PiggybackingFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2PiggybackingFlag_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"` @@ -94332,32 +94311,32 @@ type PatternFlowIcmpEchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoIdentifier) Reset() { - *x = PatternFlowIcmpEchoIdentifier{} +func (x *PatternFlowGtpv2PiggybackingFlag) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[856] + mi := &file_otg_proto_msgTypes[847] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[856] +func (x *PatternFlowGtpv2PiggybackingFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[847] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94368,47 +94347,47 @@ func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{856} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{847} } -func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { +func (x *PatternFlowGtpv2PiggybackingFlag) GetChoice() PatternFlowGtpv2PiggybackingFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoIdentifier_Choice_unspecified + return PatternFlowGtpv2PiggybackingFlag_Choice_unspecified } -func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowGtpv2PiggybackingFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetIncrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { +func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2PiggybackingFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { +func (x *PatternFlowGtpv2PiggybackingFlag) GetMetricTags() []*PatternFlowGtpv2PiggybackingFlagMetricTag { if x != nil { return x.MetricTags } @@ -94416,7 +94395,7 @@ func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoId } // integer counter pattern -type PatternFlowIcmpEchoSequenceNumberCounter struct { +type PatternFlowGtpv2TeidFlagCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94432,23 +94411,23 @@ type PatternFlowIcmpEchoSequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberCounter{} +func (x *PatternFlowGtpv2TeidFlagCounter) Reset() { + *x = PatternFlowGtpv2TeidFlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[857] + mi := &file_otg_proto_msgTypes[848] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { +func (x *PatternFlowGtpv2TeidFlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagCounter) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[857] +func (x *PatternFlowGtpv2TeidFlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[848] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94459,26 +94438,26 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{857} +// Deprecated: Use PatternFlowGtpv2TeidFlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{848} } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidFlagCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -94488,7 +94467,7 @@ func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetCount() uint32 { // 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 PatternFlowIcmpEchoSequenceNumberMetricTag struct { +type PatternFlowGtpv2TeidFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94502,27 +94481,27 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 1 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} +func (x *PatternFlowGtpv2TeidFlagMetricTag) Reset() { + *x = PatternFlowGtpv2TeidFlagMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[858] + mi := &file_otg_proto_msgTypes[849] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlagMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[858] +func (x *PatternFlowGtpv2TeidFlagMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[849] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94533,41 +94512,43 @@ func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{858} +// Deprecated: Use PatternFlowGtpv2TeidFlagMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlagMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{849} } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidFlagMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpEchoSequenceNumber struct { +// If teid_flag is set to 1 then the TEID field will be present between the message +// length and the sequence number. All messages except Echo and Echo reply require TEID +// to be present +type PatternFlowGtpv2TeidFlag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2TeidFlag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2TeidFlag_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"` @@ -94575,32 +94556,32 @@ type PatternFlowIcmpEchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber{} +func (x *PatternFlowGtpv2TeidFlag) Reset() { + *x = PatternFlowGtpv2TeidFlag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[859] + mi := &file_otg_proto_msgTypes[850] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber) String() string { +func (x *PatternFlowGtpv2TeidFlag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[859] +func (x *PatternFlowGtpv2TeidFlag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[850] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94611,124 +94592,55 @@ func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{859} +// Deprecated: Use PatternFlowGtpv2TeidFlag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{850} } -func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv2TeidFlag) GetChoice() PatternFlowGtpv2TeidFlag_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified + return PatternFlowGtpv2TeidFlag_Choice_unspecified } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv2TeidFlag) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowGtpv2TeidFlag) GetIncrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { +func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { +func (x *PatternFlowGtpv2TeidFlag) GetMetricTags() []*PatternFlowGtpv2TeidFlagMetricTag { if x != nil { return x.MetricTags } return nil } -// ICMP checksum -type PatternFlowIcmpCommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpCommonChecksum) Reset() { - *x = PatternFlowIcmpCommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[860] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpCommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[860] - 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.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{860} -} - -func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpCommonChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpCommonChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowIcmpNextFieldsIdentifierCounter struct { +type PatternFlowGtpv2Spare1Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94744,23 +94656,23 @@ type PatternFlowIcmpNextFieldsIdentifierCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierCounter{} +func (x *PatternFlowGtpv2Spare1Counter) Reset() { + *x = PatternFlowGtpv2Spare1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[861] + mi := &file_otg_proto_msgTypes[851] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { +func (x *PatternFlowGtpv2Spare1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1Counter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[861] +func (x *PatternFlowGtpv2Spare1Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[851] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94771,26 +94683,26 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{861} +// Deprecated: Use PatternFlowGtpv2Spare1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{851} } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare1Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -94800,7 +94712,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { // 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 PatternFlowIcmpNextFieldsIdentifierMetricTag struct { +type PatternFlowGtpv2Spare1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94814,27 +94726,27 @@ type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 3 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} +func (x *PatternFlowGtpv2Spare1MetricTag) Reset() { + *x = PatternFlowGtpv2Spare1MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[862] + mi := &file_otg_proto_msgTypes[852] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { +func (x *PatternFlowGtpv2Spare1MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1MetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[862] +func (x *PatternFlowGtpv2Spare1MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[852] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94845,41 +94757,41 @@ func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{862} +// Deprecated: Use PatternFlowGtpv2Spare1MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{852} } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare1MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare1MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP identifier -type PatternFlowIcmpNextFieldsIdentifier struct { +// A 3-bit reserved field (must be 0). +type PatternFlowGtpv2Spare1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare1_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"` @@ -94887,32 +94799,32 @@ type PatternFlowIcmpNextFieldsIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier{} +func (x *PatternFlowGtpv2Spare1) Reset() { + *x = PatternFlowGtpv2Spare1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[863] + mi := &file_otg_proto_msgTypes[853] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { +func (x *PatternFlowGtpv2Spare1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[863] +func (x *PatternFlowGtpv2Spare1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[853] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -94923,47 +94835,47 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{863} +// Deprecated: Use PatternFlowGtpv2Spare1.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{853} } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { +func (x *PatternFlowGtpv2Spare1) GetChoice() PatternFlowGtpv2Spare1_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified + return PatternFlowGtpv2Spare1_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { +func (x *PatternFlowGtpv2Spare1) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { +func (x *PatternFlowGtpv2Spare1) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowGtpv2Spare1) GetIncrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { +func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { +func (x *PatternFlowGtpv2Spare1) GetMetricTags() []*PatternFlowGtpv2Spare1MetricTag { if x != nil { return x.MetricTags } @@ -94971,7 +94883,7 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmp } // integer counter pattern -type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { +type PatternFlowGtpv2MessageTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -94987,23 +94899,23 @@ type PatternFlowIcmpNextFieldsSequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} +func (x *PatternFlowGtpv2MessageTypeCounter) Reset() { + *x = PatternFlowGtpv2MessageTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[864] + mi := &file_otg_proto_msgTypes[854] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { +func (x *PatternFlowGtpv2MessageTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeCounter) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[864] +func (x *PatternFlowGtpv2MessageTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[854] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95014,26 +94926,26 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{864} +// Deprecated: Use PatternFlowGtpv2MessageTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{854} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -95043,7 +94955,7 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { // 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 PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { +type PatternFlowGtpv2MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95057,27 +94969,27 @@ type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} +func (x *PatternFlowGtpv2MessageTypeMetricTag) Reset() { + *x = PatternFlowGtpv2MessageTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[865] + mi := &file_otg_proto_msgTypes[855] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[865] +func (x *PatternFlowGtpv2MessageTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[855] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95088,41 +95000,42 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{865} +// Deprecated: Use PatternFlowGtpv2MessageTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{855} } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMP sequence number -type PatternFlowIcmpNextFieldsSequenceNumber struct { +// An 8-bit field that indicates the type of GTP message. Different types of messages +// are defined in 3GPP TS 29.060 section 7.1 +type PatternFlowGtpv2MessageType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageType_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"` @@ -95130,32 +95043,32 @@ type PatternFlowIcmpNextFieldsSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber{} +func (x *PatternFlowGtpv2MessageType) Reset() { + *x = PatternFlowGtpv2MessageType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[866] + mi := &file_otg_proto_msgTypes[856] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { +func (x *PatternFlowGtpv2MessageType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[866] +func (x *PatternFlowGtpv2MessageType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[856] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95166,47 +95079,47 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{866} +// Deprecated: Use PatternFlowGtpv2MessageType.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{856} } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv2MessageType) GetChoice() PatternFlowGtpv2MessageType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified + return PatternFlowGtpv2MessageType_Choice_unspecified } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowGtpv2MessageType) GetIncrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { +func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { +func (x *PatternFlowGtpv2MessageType) GetMetricTags() []*PatternFlowGtpv2MessageTypeMetricTag { if x != nil { return x.MetricTags } @@ -95214,13 +95127,13 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlow } // integer counter pattern -type PatternFlowIcmpv6EchoTypeCounter struct { +type PatternFlowGtpv2MessageLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 128 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -95230,23 +95143,23 @@ type PatternFlowIcmpv6EchoTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { - *x = PatternFlowIcmpv6EchoTypeCounter{} +func (x *PatternFlowGtpv2MessageLengthCounter) Reset() { + *x = PatternFlowGtpv2MessageLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[867] + mi := &file_otg_proto_msgTypes[857] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { +func (x *PatternFlowGtpv2MessageLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[867] +func (x *PatternFlowGtpv2MessageLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[857] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95257,26 +95170,26 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{867} +// Deprecated: Use PatternFlowGtpv2MessageLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{857} } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2MessageLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -95286,7 +95199,7 @@ func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { // 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 PatternFlowIcmpv6EchoTypeMetricTag struct { +type PatternFlowGtpv2MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95300,27 +95213,27 @@ type PatternFlowIcmpv6EchoTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoTypeMetricTag{} +func (x *PatternFlowGtpv2MessageLengthMetricTag) Reset() { + *x = PatternFlowGtpv2MessageLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[868] + mi := &file_otg_proto_msgTypes[858] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[868] +func (x *PatternFlowGtpv2MessageLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[858] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95331,74 +95244,75 @@ func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{868} +// Deprecated: Use PatternFlowGtpv2MessageLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{858} } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2MessageLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo type -type PatternFlowIcmpv6EchoType struct { +// A 16-bit field that indicates the length of the payload in bytes, excluding the mandatory +// GTP-c header (first 4 bytes). Includes the TEID and sequence_number if they are present. +type PatternFlowGtpv2MessageLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2MessageLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2MessageLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 128 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [128] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoType) Reset() { - *x = PatternFlowIcmpv6EchoType{} +func (x *PatternFlowGtpv2MessageLength) Reset() { + *x = PatternFlowGtpv2MessageLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[869] + mi := &file_otg_proto_msgTypes[859] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType) String() string { +func (x *PatternFlowGtpv2MessageLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[869] +func (x *PatternFlowGtpv2MessageLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[859] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95409,47 +95323,47 @@ func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{869} +// Deprecated: Use PatternFlowGtpv2MessageLength.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{859} } -func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { +func (x *PatternFlowGtpv2MessageLength) GetChoice() PatternFlowGtpv2MessageLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoType_Choice_unspecified + return PatternFlowGtpv2MessageLength_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { +func (x *PatternFlowGtpv2MessageLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowGtpv2MessageLength) GetIncrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { +func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { +func (x *PatternFlowGtpv2MessageLength) GetMetricTags() []*PatternFlowGtpv2MessageLengthMetricTag { if x != nil { return x.MetricTags } @@ -95457,7 +95371,7 @@ func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoType } // integer counter pattern -type PatternFlowIcmpv6EchoCodeCounter struct { +type PatternFlowGtpv2TeidCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95473,23 +95387,23 @@ type PatternFlowIcmpv6EchoCodeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { - *x = PatternFlowIcmpv6EchoCodeCounter{} +func (x *PatternFlowGtpv2TeidCounter) Reset() { + *x = PatternFlowGtpv2TeidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[870] + mi := &file_otg_proto_msgTypes[860] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { +func (x *PatternFlowGtpv2TeidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} +func (*PatternFlowGtpv2TeidCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[870] +func (x *PatternFlowGtpv2TeidCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[860] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95500,26 +95414,26 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{870} +// Deprecated: Use PatternFlowGtpv2TeidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{860} } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2TeidCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -95529,7 +95443,7 @@ func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { // 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 PatternFlowIcmpv6EchoCodeMetricTag struct { +type PatternFlowGtpv2TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95543,27 +95457,27 @@ type PatternFlowIcmpv6EchoCodeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoCodeMetricTag{} +func (x *PatternFlowGtpv2TeidMetricTag) Reset() { + *x = PatternFlowGtpv2TeidMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[871] + mi := &file_otg_proto_msgTypes[861] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { +func (x *PatternFlowGtpv2TeidMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2TeidMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[871] +func (x *PatternFlowGtpv2TeidMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[861] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95574,41 +95488,42 @@ func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{871} +// Deprecated: Use PatternFlowGtpv2TeidMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{861} } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { +func (x *PatternFlowGtpv2TeidMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2TeidMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sub type -type PatternFlowIcmpv6EchoCode struct { +// Tunnel endpoint identifier. A 32-bit (4-octet) field used to multiplex different +// connections in the same GTP tunnel. Is present only if the teid_flag is set. +type PatternFlowGtpv2Teid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Teid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Teid_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"` @@ -95616,32 +95531,32 @@ type PatternFlowIcmpv6EchoCode struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoCode) Reset() { - *x = PatternFlowIcmpv6EchoCode{} +func (x *PatternFlowGtpv2Teid) Reset() { + *x = PatternFlowGtpv2Teid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[872] + mi := &file_otg_proto_msgTypes[862] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode) String() string { +func (x *PatternFlowGtpv2Teid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} +func (*PatternFlowGtpv2Teid) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[872] +func (x *PatternFlowGtpv2Teid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[862] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95652,47 +95567,47 @@ func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{872} +// Deprecated: Use PatternFlowGtpv2Teid.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{862} } -func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { +func (x *PatternFlowGtpv2Teid) GetChoice() PatternFlowGtpv2Teid_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoCode_Choice_unspecified + return PatternFlowGtpv2Teid_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { +func (x *PatternFlowGtpv2Teid) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { +func (x *PatternFlowGtpv2Teid) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowGtpv2Teid) GetIncrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { +func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { +func (x *PatternFlowGtpv2Teid) GetMetricTags() []*PatternFlowGtpv2TeidMetricTag { if x != nil { return x.MetricTags } @@ -95700,7 +95615,7 @@ func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCode } // integer counter pattern -type PatternFlowIcmpv6EchoIdentifierCounter struct { +type PatternFlowGtpv2SequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95716,23 +95631,23 @@ type PatternFlowIcmpv6EchoIdentifierCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierCounter{} +func (x *PatternFlowGtpv2SequenceNumberCounter) Reset() { + *x = PatternFlowGtpv2SequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[873] + mi := &file_otg_proto_msgTypes[863] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { +func (x *PatternFlowGtpv2SequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[873] +func (x *PatternFlowGtpv2SequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[863] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95743,26 +95658,26 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{873} +// Deprecated: Use PatternFlowGtpv2SequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{863} } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2SequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -95772,7 +95687,7 @@ func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { // 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 PatternFlowIcmpv6EchoIdentifierMetricTag struct { +type PatternFlowGtpv2SequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95786,27 +95701,27 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 24 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} +func (x *PatternFlowGtpv2SequenceNumberMetricTag) Reset() { + *x = PatternFlowGtpv2SequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[874] + mi := &file_otg_proto_msgTypes[864] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[874] +func (x *PatternFlowGtpv2SequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[864] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95817,41 +95732,41 @@ func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{874} +// Deprecated: Use PatternFlowGtpv2SequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{864} } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2SequenceNumberMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo identifier -type PatternFlowIcmpv6EchoIdentifier struct { +// The sequence number +type PatternFlowGtpv2SequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2SequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2SequenceNumber_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"` @@ -95859,32 +95774,32 @@ type PatternFlowIcmpv6EchoIdentifier struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier{} +func (x *PatternFlowGtpv2SequenceNumber) Reset() { + *x = PatternFlowGtpv2SequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[875] + mi := &file_otg_proto_msgTypes[865] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier) String() string { +func (x *PatternFlowGtpv2SequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} +func (*PatternFlowGtpv2SequenceNumber) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[875] +func (x *PatternFlowGtpv2SequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[865] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95895,47 +95810,47 @@ func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{875} +// Deprecated: Use PatternFlowGtpv2SequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{865} } -func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { +func (x *PatternFlowGtpv2SequenceNumber) GetChoice() PatternFlowGtpv2SequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified + return PatternFlowGtpv2SequenceNumber_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { +func (x *PatternFlowGtpv2SequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetIncrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { +func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2SequenceNumberCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { +func (x *PatternFlowGtpv2SequenceNumber) GetMetricTags() []*PatternFlowGtpv2SequenceNumberMetricTag { if x != nil { return x.MetricTags } @@ -95943,7 +95858,7 @@ func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6Ec } // integer counter pattern -type PatternFlowIcmpv6EchoSequenceNumberCounter struct { +type PatternFlowGtpv2Spare2Counter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -95959,23 +95874,23 @@ type PatternFlowIcmpv6EchoSequenceNumberCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} +func (x *PatternFlowGtpv2Spare2Counter) Reset() { + *x = PatternFlowGtpv2Spare2Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[876] + mi := &file_otg_proto_msgTypes[866] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { +func (x *PatternFlowGtpv2Spare2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2Counter) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[876] +func (x *PatternFlowGtpv2Spare2Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[866] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -95986,26 +95901,26 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{876} +// Deprecated: Use PatternFlowGtpv2Spare2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{866} } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { +func (x *PatternFlowGtpv2Spare2Counter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { +func (x *PatternFlowGtpv2Spare2Counter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { +func (x *PatternFlowGtpv2Spare2Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -96015,7 +95930,7 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { // 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 PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { +type PatternFlowGtpv2Spare2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -96029,27 +95944,27 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} +func (x *PatternFlowGtpv2Spare2MetricTag) Reset() { + *x = PatternFlowGtpv2Spare2MetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[877] + mi := &file_otg_proto_msgTypes[867] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { +func (x *PatternFlowGtpv2Spare2MetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2MetricTag) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[877] +func (x *PatternFlowGtpv2Spare2MetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[867] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96060,41 +95975,41 @@ func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{877} +// Deprecated: Use PatternFlowGtpv2Spare2MetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2MetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{867} } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { +func (x *PatternFlowGtpv2Spare2MetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { +func (x *PatternFlowGtpv2Spare2MetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// ICMPv6 echo sequence number -type PatternFlowIcmpv6EchoSequenceNumber struct { +// Reserved field +type PatternFlowGtpv2Spare2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowGtpv2Spare2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowGtpv2Spare2_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"` @@ -96102,32 +96017,32 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber{} +func (x *PatternFlowGtpv2Spare2) Reset() { + *x = PatternFlowGtpv2Spare2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[878] + mi := &file_otg_proto_msgTypes[868] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { +func (x *PatternFlowGtpv2Spare2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} +func (*PatternFlowGtpv2Spare2) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[878] +func (x *PatternFlowGtpv2Spare2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[868] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96138,199 +96053,61 @@ func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{878} +// Deprecated: Use PatternFlowGtpv2Spare2.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{868} } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { +func (x *PatternFlowGtpv2Spare2) GetChoice() PatternFlowGtpv2Spare2_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified + return PatternFlowGtpv2Spare2_Choice_unspecified } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { +func (x *PatternFlowGtpv2Spare2) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { +func (x *PatternFlowGtpv2Spare2) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowGtpv2Spare2) GetIncrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { +func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { +func (x *PatternFlowGtpv2Spare2) GetMetricTags() []*PatternFlowGtpv2Spare2MetricTag { if x != nil { return x.MetricTags } return nil } -// ICMPv6 checksum -type PatternFlowIcmpv6EchoChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpv6EchoChecksum) Reset() { - *x = PatternFlowIcmpv6EchoChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[879] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpv6EchoChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[879] - 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.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{879} -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpv6EchoChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpv6EchoChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - -// ICMPv6 checksum -type PatternFlowIcmpv6CommonChecksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIcmpv6CommonChecksum) Reset() { - *x = PatternFlowIcmpv6CommonChecksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[880] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIcmpv6CommonChecksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} - -func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[880] - 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.ProtoReflect.Descriptor instead. -func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{880} -} - -func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIcmpv6CommonChecksum_Choice_unspecified -} - -func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIcmpv6CommonChecksum_Generated_unspecified -} - -func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // integer counter pattern -type PatternFlowPppAddressCounter struct { +type PatternFlowArpHardwareTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 255 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -96340,23 +96117,23 @@ type PatternFlowPppAddressCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppAddressCounter) Reset() { - *x = PatternFlowPppAddressCounter{} +func (x *PatternFlowArpHardwareTypeCounter) Reset() { + *x = PatternFlowArpHardwareTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[881] + mi := &file_otg_proto_msgTypes[869] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressCounter) String() string { +func (x *PatternFlowArpHardwareTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeCounter) ProtoMessage() {} -func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[881] +func (x *PatternFlowArpHardwareTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[869] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96367,26 +96144,26 @@ func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{881} +// Deprecated: Use PatternFlowArpHardwareTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{869} } -func (x *PatternFlowPppAddressCounter) GetStart() uint32 { +func (x *PatternFlowArpHardwareTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppAddressCounter) GetStep() uint32 { +func (x *PatternFlowArpHardwareTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppAddressCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -96396,7 +96173,7 @@ func (x *PatternFlowPppAddressCounter) GetCount() uint32 { // 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 PatternFlowPppAddressMetricTag struct { +type PatternFlowArpHardwareTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -96410,27 +96187,27 @@ type PatternFlowPppAddressMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppAddressMetricTag) Reset() { - *x = PatternFlowPppAddressMetricTag{} +func (x *PatternFlowArpHardwareTypeMetricTag) Reset() { + *x = PatternFlowArpHardwareTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[882] + mi := &file_otg_proto_msgTypes[870] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddressMetricTag) String() string { +func (x *PatternFlowArpHardwareTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[882] +func (x *PatternFlowArpHardwareTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[870] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96441,74 +96218,74 @@ func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{882} +// Deprecated: Use PatternFlowArpHardwareTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{870} } -func (x *PatternFlowPppAddressMetricTag) GetName() string { +func (x *PatternFlowArpHardwareTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP address -type PatternFlowPppAddress struct { +// Network link protocol type +type PatternFlowArpHardwareType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpHardwareType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 255 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [255] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppAddress) Reset() { - *x = PatternFlowPppAddress{} +func (x *PatternFlowArpHardwareType) Reset() { + *x = PatternFlowArpHardwareType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[883] + mi := &file_otg_proto_msgTypes[871] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress) String() string { +func (x *PatternFlowArpHardwareType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress) ProtoMessage() {} +func (*PatternFlowArpHardwareType) ProtoMessage() {} -func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[883] +func (x *PatternFlowArpHardwareType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[871] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96519,47 +96296,47 @@ func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{883} +// Deprecated: Use PatternFlowArpHardwareType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{871} } -func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { +func (x *PatternFlowArpHardwareType) GetChoice() PatternFlowArpHardwareType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppAddress_Choice_unspecified + return PatternFlowArpHardwareType_Choice_unspecified } -func (x *PatternFlowPppAddress) GetValue() uint32 { +func (x *PatternFlowArpHardwareType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppAddress) GetValues() []uint32 { +func (x *PatternFlowArpHardwareType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowArpHardwareType) GetIncrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { +func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { +func (x *PatternFlowArpHardwareType) GetMetricTags() []*PatternFlowArpHardwareTypeMetricTag { if x != nil { return x.MetricTags } @@ -96567,13 +96344,13 @@ func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTa } // integer counter pattern -type PatternFlowPppControlCounter struct { +type PatternFlowArpProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 3 + // default = 2048 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -96583,23 +96360,23 @@ type PatternFlowPppControlCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppControlCounter) Reset() { - *x = PatternFlowPppControlCounter{} +func (x *PatternFlowArpProtocolTypeCounter) Reset() { + *x = PatternFlowArpProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[884] + mi := &file_otg_proto_msgTypes[872] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlCounter) String() string { +func (x *PatternFlowArpProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[884] +func (x *PatternFlowArpProtocolTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[872] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96610,26 +96387,26 @@ func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{884} +// Deprecated: Use PatternFlowArpProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{872} } -func (x *PatternFlowPppControlCounter) GetStart() uint32 { +func (x *PatternFlowArpProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppControlCounter) GetStep() uint32 { +func (x *PatternFlowArpProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppControlCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -96639,7 +96416,7 @@ func (x *PatternFlowPppControlCounter) GetCount() uint32 { // 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 PatternFlowPppControlMetricTag struct { +type PatternFlowArpProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -96653,27 +96430,27 @@ type PatternFlowPppControlMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppControlMetricTag) Reset() { - *x = PatternFlowPppControlMetricTag{} +func (x *PatternFlowArpProtocolTypeMetricTag) Reset() { + *x = PatternFlowArpProtocolTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[885] + mi := &file_otg_proto_msgTypes[873] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControlMetricTag) String() string { +func (x *PatternFlowArpProtocolTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControlMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[885] +func (x *PatternFlowArpProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[873] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96684,74 +96461,74 @@ func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{885} +// Deprecated: Use PatternFlowArpProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{873} } -func (x *PatternFlowPppControlMetricTag) GetName() string { +func (x *PatternFlowArpProtocolTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP control -type PatternFlowPppControl struct { +// The internetwork protocol for which the ARP request is intended +type PatternFlowArpProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 3 + // default = 2048 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [3] + // default = [2048] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppControl) Reset() { - *x = PatternFlowPppControl{} +func (x *PatternFlowArpProtocolType) Reset() { + *x = PatternFlowArpProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[886] + mi := &file_otg_proto_msgTypes[874] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl) String() string { +func (x *PatternFlowArpProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl) ProtoMessage() {} +func (*PatternFlowArpProtocolType) ProtoMessage() {} -func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[886] +func (x *PatternFlowArpProtocolType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[874] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96762,47 +96539,47 @@ func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. -func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{886} +// Deprecated: Use PatternFlowArpProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{874} } -func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { +func (x *PatternFlowArpProtocolType) GetChoice() PatternFlowArpProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppControl_Choice_unspecified + return PatternFlowArpProtocolType_Choice_unspecified } -func (x *PatternFlowPppControl) GetValue() uint32 { +func (x *PatternFlowArpProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppControl) GetValues() []uint32 { +func (x *PatternFlowArpProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { +func (x *PatternFlowArpProtocolType) GetIncrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { +func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { +func (x *PatternFlowArpProtocolType) GetMetricTags() []*PatternFlowArpProtocolTypeMetricTag { if x != nil { return x.MetricTags } @@ -96810,13 +96587,13 @@ func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTa } // integer counter pattern -type PatternFlowPppProtocolTypeCounter struct { +type PatternFlowArpHardwareLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 33 + // default = 6 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -96826,23 +96603,23 @@ type PatternFlowPppProtocolTypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowPppProtocolTypeCounter) Reset() { - *x = PatternFlowPppProtocolTypeCounter{} +func (x *PatternFlowArpHardwareLengthCounter) Reset() { + *x = PatternFlowArpHardwareLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[887] + mi := &file_otg_proto_msgTypes[875] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeCounter) String() string { +func (x *PatternFlowArpHardwareLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthCounter) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[887] +func (x *PatternFlowArpHardwareLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[875] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96853,26 +96630,26 @@ func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{887} +// Deprecated: Use PatternFlowArpHardwareLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{875} } -func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { +func (x *PatternFlowArpHardwareLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { +func (x *PatternFlowArpHardwareLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { +func (x *PatternFlowArpHardwareLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -96882,7 +96659,7 @@ func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { // 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 PatternFlowPppProtocolTypeMetricTag struct { +type PatternFlowArpHardwareLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -96896,27 +96673,27 @@ type PatternFlowPppProtocolTypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 16 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { - *x = PatternFlowPppProtocolTypeMetricTag{} +func (x *PatternFlowArpHardwareLengthMetricTag) Reset() { + *x = PatternFlowArpHardwareLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[888] + mi := &file_otg_proto_msgTypes[876] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolTypeMetricTag) String() string { +func (x *PatternFlowArpHardwareLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} +func (*PatternFlowArpHardwareLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[888] +func (x *PatternFlowArpHardwareLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[876] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -96927,79 +96704,74 @@ func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{888} +// Deprecated: Use PatternFlowArpHardwareLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{876} } -func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { +func (x *PatternFlowArpHardwareLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpHardwareLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// PPP protocol type -type PatternFlowPppProtocolType struct { +// Length (in octets) of a hardware address +type PatternFlowArpHardwareLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowArpHardwareLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpHardwareLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 33 + // default = 6 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [33] + // default = [6] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 33 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowPppProtocolType) Reset() { - *x = PatternFlowPppProtocolType{} +func (x *PatternFlowArpHardwareLength) Reset() { + *x = PatternFlowArpHardwareLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[889] + mi := &file_otg_proto_msgTypes[877] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType) String() string { +func (x *PatternFlowArpHardwareLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType) ProtoMessage() {} +func (*PatternFlowArpHardwareLength) ProtoMessage() {} -func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[889] +func (x *PatternFlowArpHardwareLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[877] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97010,54 +96782,47 @@ func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. -func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{889} +// Deprecated: Use PatternFlowArpHardwareLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{877} } -func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { +func (x *PatternFlowArpHardwareLength) GetChoice() PatternFlowArpHardwareLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowPppProtocolType_Choice_unspecified + return PatternFlowArpHardwareLength_Choice_unspecified } -func (x *PatternFlowPppProtocolType) GetValue() uint32 { +func (x *PatternFlowArpHardwareLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowPppProtocolType) GetValues() []uint32 { +func (x *PatternFlowArpHardwareLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowPppProtocolType) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowArpHardwareLength) GetIncrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { +func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { +func (x *PatternFlowArpHardwareLength) GetMetricTags() []*PatternFlowArpHardwareLengthMetricTag { if x != nil { return x.MetricTags } @@ -97065,13 +96830,13 @@ func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTy } // integer counter pattern -type PatternFlowIgmpv1VersionCounter struct { +type PatternFlowArpProtocolLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 4 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -97081,23 +96846,23 @@ type PatternFlowIgmpv1VersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1VersionCounter) Reset() { - *x = PatternFlowIgmpv1VersionCounter{} +func (x *PatternFlowArpProtocolLengthCounter) Reset() { + *x = PatternFlowArpProtocolLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[890] + mi := &file_otg_proto_msgTypes[878] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionCounter) String() string { +func (x *PatternFlowArpProtocolLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[890] +func (x *PatternFlowArpProtocolLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[878] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97108,26 +96873,26 @@ func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{890} +// Deprecated: Use PatternFlowArpProtocolLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{878} } -func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { +func (x *PatternFlowArpProtocolLengthCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -97137,7 +96902,7 @@ func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { // 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 PatternFlowIgmpv1VersionMetricTag struct { +type PatternFlowArpProtocolLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97151,27 +96916,27 @@ type PatternFlowIgmpv1VersionMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { - *x = PatternFlowIgmpv1VersionMetricTag{} +func (x *PatternFlowArpProtocolLengthMetricTag) Reset() { + *x = PatternFlowArpProtocolLengthMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[891] + mi := &file_otg_proto_msgTypes[879] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1VersionMetricTag) String() string { +func (x *PatternFlowArpProtocolLengthMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} +func (*PatternFlowArpProtocolLengthMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[891] +func (x *PatternFlowArpProtocolLengthMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[879] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97182,74 +96947,74 @@ func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{891} +// Deprecated: Use PatternFlowArpProtocolLengthMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLengthMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{879} } -func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { +func (x *PatternFlowArpProtocolLengthMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { +func (x *PatternFlowArpProtocolLengthMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Version number -type PatternFlowIgmpv1Version struct { +// Length (in octets) of internetwork addresses +type PatternFlowArpProtocolLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpProtocolLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpProtocolLength_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 4 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [4] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Version) Reset() { - *x = PatternFlowIgmpv1Version{} +func (x *PatternFlowArpProtocolLength) Reset() { + *x = PatternFlowArpProtocolLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[892] + mi := &file_otg_proto_msgTypes[880] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version) String() string { +func (x *PatternFlowArpProtocolLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version) ProtoMessage() {} +func (*PatternFlowArpProtocolLength) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[892] +func (x *PatternFlowArpProtocolLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[880] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97260,47 +97025,47 @@ func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{892} +// Deprecated: Use PatternFlowArpProtocolLength.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{880} } -func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { +func (x *PatternFlowArpProtocolLength) GetChoice() PatternFlowArpProtocolLength_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Version_Choice_unspecified + return PatternFlowArpProtocolLength_Choice_unspecified } -func (x *PatternFlowIgmpv1Version) GetValue() uint32 { +func (x *PatternFlowArpProtocolLength) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { +func (x *PatternFlowArpProtocolLength) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowArpProtocolLength) GetIncrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { +func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLengthCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { +func (x *PatternFlowArpProtocolLength) GetMetricTags() []*PatternFlowArpProtocolLengthMetricTag { if x != nil { return x.MetricTags } @@ -97308,7 +97073,7 @@ func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMe } // integer counter pattern -type PatternFlowIgmpv1TypeCounter struct { +type PatternFlowArpOperationCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97324,23 +97089,23 @@ type PatternFlowIgmpv1TypeCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1TypeCounter) Reset() { - *x = PatternFlowIgmpv1TypeCounter{} +func (x *PatternFlowArpOperationCounter) Reset() { + *x = PatternFlowArpOperationCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[893] + mi := &file_otg_proto_msgTypes[881] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeCounter) String() string { +func (x *PatternFlowArpOperationCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} +func (*PatternFlowArpOperationCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[893] +func (x *PatternFlowArpOperationCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[881] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97351,26 +97116,26 @@ func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{893} +// Deprecated: Use PatternFlowArpOperationCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{881} } -func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { +func (x *PatternFlowArpOperationCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { +func (x *PatternFlowArpOperationCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { +func (x *PatternFlowArpOperationCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -97380,7 +97145,7 @@ func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { // 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 PatternFlowIgmpv1TypeMetricTag struct { +type PatternFlowArpOperationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97394,27 +97159,27 @@ type PatternFlowIgmpv1TypeMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 4 + // default = 16 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { - *x = PatternFlowIgmpv1TypeMetricTag{} +func (x *PatternFlowArpOperationMetricTag) Reset() { + *x = PatternFlowArpOperationMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[894] + mi := &file_otg_proto_msgTypes[882] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1TypeMetricTag) String() string { +func (x *PatternFlowArpOperationMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} +func (*PatternFlowArpOperationMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[894] +func (x *PatternFlowArpOperationMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[882] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97425,41 +97190,41 @@ func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{894} +// Deprecated: Use PatternFlowArpOperationMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperationMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{882} } -func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { +func (x *PatternFlowArpOperationMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { +func (x *PatternFlowArpOperationMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Type of message -type PatternFlowIgmpv1Type struct { +// The operation that the sender is performing +type PatternFlowArpOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpOperation_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpOperation_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"` @@ -97467,32 +97232,32 @@ type PatternFlowIgmpv1Type struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpOperationCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Type) Reset() { - *x = PatternFlowIgmpv1Type{} +func (x *PatternFlowArpOperation) Reset() { + *x = PatternFlowArpOperation{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[895] + mi := &file_otg_proto_msgTypes[883] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type) String() string { +func (x *PatternFlowArpOperation) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type) ProtoMessage() {} +func (*PatternFlowArpOperation) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[895] +func (x *PatternFlowArpOperation) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[883] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97503,87 +97268,87 @@ func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{895} +// Deprecated: Use PatternFlowArpOperation.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{883} } -func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { +func (x *PatternFlowArpOperation) GetChoice() PatternFlowArpOperation_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Type_Choice_unspecified + return PatternFlowArpOperation_Choice_unspecified } -func (x *PatternFlowIgmpv1Type) GetValue() uint32 { +func (x *PatternFlowArpOperation) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { +func (x *PatternFlowArpOperation) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowArpOperation) GetIncrement() *PatternFlowArpOperationCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { +func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { +func (x *PatternFlowArpOperation) GetMetricTags() []*PatternFlowArpOperationMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowIgmpv1UnusedCounter struct { +// mac counter pattern +type PatternFlowArpSenderHardwareAddrCounter 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"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowIgmpv1UnusedCounter) Reset() { - *x = PatternFlowIgmpv1UnusedCounter{} +func (x *PatternFlowArpSenderHardwareAddrCounter) Reset() { + *x = PatternFlowArpSenderHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[896] + mi := &file_otg_proto_msgTypes[884] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedCounter) String() string { +func (x *PatternFlowArpSenderHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[896] +func (x *PatternFlowArpSenderHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[884] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97594,26 +97359,26 @@ func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{896} +// Deprecated: Use PatternFlowArpSenderHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{884} } -func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -97623,7 +97388,7 @@ func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { // 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 PatternFlowIgmpv1UnusedMetricTag struct { +type PatternFlowArpSenderHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97637,27 +97402,27 @@ type PatternFlowIgmpv1UnusedMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 8 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { - *x = PatternFlowIgmpv1UnusedMetricTag{} +func (x *PatternFlowArpSenderHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpSenderHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[897] + mi := &file_otg_proto_msgTypes[885] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[897] +func (x *PatternFlowArpSenderHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[885] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97668,74 +97433,74 @@ func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{897} +// Deprecated: Use PatternFlowArpSenderHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{885} } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Unused -type PatternFlowIgmpv1Unused struct { +// Media address of the sender +type PatternFlowArpSenderHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderHardwareAddr_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"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,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"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1Unused) Reset() { - *x = PatternFlowIgmpv1Unused{} +func (x *PatternFlowArpSenderHardwareAddr) Reset() { + *x = PatternFlowArpSenderHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[898] + mi := &file_otg_proto_msgTypes[886] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused) String() string { +func (x *PatternFlowArpSenderHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused) ProtoMessage() {} +func (*PatternFlowArpSenderHardwareAddr) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[898] +func (x *PatternFlowArpSenderHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[886] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97746,124 +97511,55 @@ func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{898} +// Deprecated: Use PatternFlowArpSenderHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{886} } -func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { +func (x *PatternFlowArpSenderHardwareAddr) GetChoice() PatternFlowArpSenderHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1Unused_Choice_unspecified + return PatternFlowArpSenderHardwareAddr_Choice_unspecified } -func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { +func (x *PatternFlowArpSenderHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetIncrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { +func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { +func (x *PatternFlowArpSenderHardwareAddr) GetMetricTags() []*PatternFlowArpSenderHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// Checksum -type PatternFlowIgmpv1Checksum struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The type of checksum - // default = Choice.Enum.generated - Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` - // A system generated checksum value - // default = Generated.Enum.good - Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` - // A custom checksum value - Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` -} - -func (x *PatternFlowIgmpv1Checksum) Reset() { - *x = PatternFlowIgmpv1Checksum{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[899] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowIgmpv1Checksum) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} - -func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[899] - 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.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{899} -} - -func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowIgmpv1Checksum_Choice_unspecified -} - -func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { - if x != nil && x.Generated != nil { - return *x.Generated - } - return PatternFlowIgmpv1Checksum_Generated_unspecified -} - -func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { - if x != nil && x.Custom != nil { - return *x.Custom - } - return 0 -} - // ipv4 counter pattern -type PatternFlowIgmpv1GroupAddressCounter struct { +type PatternFlowArpSenderProtocolAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97879,23 +97575,23 @@ type PatternFlowIgmpv1GroupAddressCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { - *x = PatternFlowIgmpv1GroupAddressCounter{} +func (x *PatternFlowArpSenderProtocolAddrCounter) Reset() { + *x = PatternFlowArpSenderProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[900] + mi := &file_otg_proto_msgTypes[887] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { +func (x *PatternFlowArpSenderProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[900] +func (x *PatternFlowArpSenderProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[887] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97906,26 +97602,26 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{900} +// Deprecated: Use PatternFlowArpSenderProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{887} } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } return "" } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } return "" } -func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { +func (x *PatternFlowArpSenderProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -97935,7 +97631,7 @@ func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { // 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 PatternFlowIgmpv1GroupAddressMetricTag struct { +type PatternFlowArpSenderProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -97953,23 +97649,23 @@ type PatternFlowIgmpv1GroupAddressMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { - *x = PatternFlowIgmpv1GroupAddressMetricTag{} +func (x *PatternFlowArpSenderProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpSenderProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[901] + mi := &file_otg_proto_msgTypes[888] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[901] +func (x *PatternFlowArpSenderProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[888] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -97980,41 +97676,41 @@ func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{901} +// Deprecated: Use PatternFlowArpSenderProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{888} } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { +func (x *PatternFlowArpSenderProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Group address -type PatternFlowIgmpv1GroupAddress struct { +// Internetwork address of the sender +type PatternFlowArpSenderProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpSenderProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpSenderProtocolAddr_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"` @@ -98022,32 +97718,32 @@ type PatternFlowIgmpv1GroupAddress struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowIgmpv1GroupAddress) Reset() { - *x = PatternFlowIgmpv1GroupAddress{} +func (x *PatternFlowArpSenderProtocolAddr) Reset() { + *x = PatternFlowArpSenderProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[902] + mi := &file_otg_proto_msgTypes[889] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddress) String() string { +func (x *PatternFlowArpSenderProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} +func (*PatternFlowArpSenderProtocolAddr) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[902] +func (x *PatternFlowArpSenderProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[889] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98058,87 +97754,87 @@ func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{902} +// Deprecated: Use PatternFlowArpSenderProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{889} } -func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { +func (x *PatternFlowArpSenderProtocolAddr) GetChoice() PatternFlowArpSenderProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowIgmpv1GroupAddress_Choice_unspecified + return PatternFlowArpSenderProtocolAddr_Choice_unspecified } -func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { +func (x *PatternFlowArpSenderProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } -func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { +func (x *PatternFlowArpSenderProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetIncrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { +func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { +func (x *PatternFlowArpSenderProtocolAddr) GetMetricTags() []*PatternFlowArpSenderProtocolAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowMplsLabelCounter struct { +// mac counter pattern +type PatternFlowArpTargetHardwareAddrCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 16 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 00:00:00:00:00:00 + Start *string `protobuf:"bytes,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"` + // default = 00:00:00:00:00:01 + 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 *PatternFlowMplsLabelCounter) Reset() { - *x = PatternFlowMplsLabelCounter{} +func (x *PatternFlowArpTargetHardwareAddrCounter) Reset() { + *x = PatternFlowArpTargetHardwareAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[903] + mi := &file_otg_proto_msgTypes[890] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelCounter) String() string { +func (x *PatternFlowArpTargetHardwareAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelCounter) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrCounter) ProtoMessage() {} -func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[903] +func (x *PatternFlowArpTargetHardwareAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[890] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98149,26 +97845,26 @@ func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{903} +// Deprecated: Use PatternFlowArpTargetHardwareAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{890} } -func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetHardwareAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -98178,7 +97874,7 @@ func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { // 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 PatternFlowMplsLabelMetricTag struct { +type PatternFlowArpTargetHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -98192,27 +97888,27 @@ type PatternFlowMplsLabelMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 20 + // default = 48 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsLabelMetricTag) Reset() { - *x = PatternFlowMplsLabelMetricTag{} +func (x *PatternFlowArpTargetHardwareAddrMetricTag) Reset() { + *x = PatternFlowArpTargetHardwareAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[904] + mi := &file_otg_proto_msgTypes[891] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabelMetricTag) String() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[904] +func (x *PatternFlowArpTargetHardwareAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[891] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98223,79 +97919,74 @@ func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{904} +// Deprecated: Use PatternFlowArpTargetHardwareAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{891} } -func (x *PatternFlowMplsLabelMetricTag) GetName() string { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetHardwareAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Label of routers -type PatternFlowMplsLabel struct { +// Media address of the target +type PatternFlowArpTargetHardwareAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowArpTargetHardwareAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetHardwareAddr_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 16 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 00:00:00:00:00:00 + Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [16] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 16 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // default = ['00:00:00:00:00:00'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsLabel) Reset() { - *x = PatternFlowMplsLabel{} +func (x *PatternFlowArpTargetHardwareAddr) Reset() { + *x = PatternFlowArpTargetHardwareAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[905] + mi := &file_otg_proto_msgTypes[892] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabel) String() string { +func (x *PatternFlowArpTargetHardwareAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel) ProtoMessage() {} +func (*PatternFlowArpTargetHardwareAddr) ProtoMessage() {} -func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[905] +func (x *PatternFlowArpTargetHardwareAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[892] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98306,94 +97997,87 @@ func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{905} +// Deprecated: Use PatternFlowArpTargetHardwareAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetHardwareAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{892} } -func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { +func (x *PatternFlowArpTargetHardwareAddr) GetChoice() PatternFlowArpTargetHardwareAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsLabel_Choice_unspecified + return PatternFlowArpTargetHardwareAddr_Choice_unspecified } -func (x *PatternFlowMplsLabel) GetValue() uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowMplsLabel) GetValues() []uint32 { +func (x *PatternFlowArpTargetHardwareAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsLabel) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetIncrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { +func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetHardwareAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { +func (x *PatternFlowArpTargetHardwareAddr) GetMetricTags() []*PatternFlowArpTargetHardwareAddrMetricTag { if x != nil { return x.MetricTags } return nil } -// integer counter pattern -type PatternFlowMplsTrafficClassCounter struct { +// ipv4 counter pattern +type PatternFlowArpTargetProtocolAddrCounter 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"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,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"` + // 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 *PatternFlowMplsTrafficClassCounter) Reset() { - *x = PatternFlowMplsTrafficClassCounter{} +func (x *PatternFlowArpTargetProtocolAddrCounter) Reset() { + *x = PatternFlowArpTargetProtocolAddrCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[906] + mi := &file_otg_proto_msgTypes[893] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassCounter) String() string { +func (x *PatternFlowArpTargetProtocolAddrCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrCounter) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[906] +func (x *PatternFlowArpTargetProtocolAddrCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[893] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98404,26 +98088,26 @@ func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{906} +// Deprecated: Use PatternFlowArpTargetProtocolAddrCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{893} } -func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { +func (x *PatternFlowArpTargetProtocolAddrCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -98433,7 +98117,7 @@ func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { // 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 PatternFlowMplsTrafficClassMetricTag struct { +type PatternFlowArpTargetProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -98447,27 +98131,27 @@ type PatternFlowMplsTrafficClassMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 3 + // default = 32 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { - *x = PatternFlowMplsTrafficClassMetricTag{} +func (x *PatternFlowArpTargetProtocolAddrMetricTag) Reset() { + *x = PatternFlowArpTargetProtocolAddrMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[907] + mi := &file_otg_proto_msgTypes[894] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClassMetricTag) String() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddrMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[907] +func (x *PatternFlowArpTargetProtocolAddrMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[894] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98478,74 +98162,74 @@ func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{907} +// Deprecated: Use PatternFlowArpTargetProtocolAddrMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddrMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{894} } -func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { +func (x *PatternFlowArpTargetProtocolAddrMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Traffic class -type PatternFlowMplsTrafficClass struct { +// Internetwork address of the target +type PatternFlowArpTargetProtocolAddr struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowArpTargetProtocolAddr_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowArpTargetProtocolAddr_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"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,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"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTrafficClass) Reset() { - *x = PatternFlowMplsTrafficClass{} +func (x *PatternFlowArpTargetProtocolAddr) Reset() { + *x = PatternFlowArpTargetProtocolAddr{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[908] + mi := &file_otg_proto_msgTypes[895] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClass) String() string { +func (x *PatternFlowArpTargetProtocolAddr) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass) ProtoMessage() {} +func (*PatternFlowArpTargetProtocolAddr) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[908] +func (x *PatternFlowArpTargetProtocolAddr) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[895] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98556,47 +98240,47 @@ func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{908} +// Deprecated: Use PatternFlowArpTargetProtocolAddr.ProtoReflect.Descriptor instead. +func (*PatternFlowArpTargetProtocolAddr) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{895} } -func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { +func (x *PatternFlowArpTargetProtocolAddr) GetChoice() PatternFlowArpTargetProtocolAddr_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTrafficClass_Choice_unspecified + return PatternFlowArpTargetProtocolAddr_Choice_unspecified } -func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { +func (x *PatternFlowArpTargetProtocolAddr) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetIncrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { +func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetProtocolAddrCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { +func (x *PatternFlowArpTargetProtocolAddr) GetMetricTags() []*PatternFlowArpTargetProtocolAddrMetricTag { if x != nil { return x.MetricTags } @@ -98604,13 +98288,13 @@ func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficC } // integer counter pattern -type PatternFlowMplsBottomOfStackCounter struct { +type PatternFlowIcmpEchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 8 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -98620,23 +98304,23 @@ type PatternFlowMplsBottomOfStackCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsBottomOfStackCounter) Reset() { - *x = PatternFlowMplsBottomOfStackCounter{} +func (x *PatternFlowIcmpEchoTypeCounter) Reset() { + *x = PatternFlowIcmpEchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[909] + mi := &file_otg_proto_msgTypes[896] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackCounter) String() string { +func (x *PatternFlowIcmpEchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[909] +func (x *PatternFlowIcmpEchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[896] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98647,26 +98331,26 @@ func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{909} +// Deprecated: Use PatternFlowIcmpEchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{896} } -func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -98676,7 +98360,7 @@ func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { // 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 PatternFlowMplsBottomOfStackMetricTag struct { +type PatternFlowIcmpEchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -98690,27 +98374,27 @@ type PatternFlowMplsBottomOfStackMetricTag struct { Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` // Number of bits to track for metrics starting from configured offset of corresponding // header field - // default = 1 + // default = 8 Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { - *x = PatternFlowMplsBottomOfStackMetricTag{} +func (x *PatternFlowIcmpEchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpEchoTypeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[910] + mi := &file_otg_proto_msgTypes[897] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoTypeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[910] +func (x *PatternFlowIcmpEchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[897] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98721,79 +98405,74 @@ func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{910} +// Deprecated: Use PatternFlowIcmpEchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{897} } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoTypeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Bottom of stack -type PatternFlowMplsBottomOfStack struct { +// The type of ICMP echo packet +type PatternFlowIcmpEchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.auto - Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` + // default = Choice.Enum.value + Choice *PatternFlowIcmpEchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoType_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 8 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [8] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // The OTG implementation can provide a system generated - // value for this property. If the OTG is unable to generate a value - // the default value must be used. - // default = 1 - Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` // Description missing in models - Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsBottomOfStack) Reset() { - *x = PatternFlowMplsBottomOfStack{} +func (x *PatternFlowIcmpEchoType) Reset() { + *x = PatternFlowIcmpEchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[911] + mi := &file_otg_proto_msgTypes[898] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStack) String() string { +func (x *PatternFlowIcmpEchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} +func (*PatternFlowIcmpEchoType) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[911] +func (x *PatternFlowIcmpEchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[898] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98804,54 +98483,47 @@ func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{911} +// Deprecated: Use PatternFlowIcmpEchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{898} } -func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { +func (x *PatternFlowIcmpEchoType) GetChoice() PatternFlowIcmpEchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsBottomOfStack_Choice_unspecified + return PatternFlowIcmpEchoType_Choice_unspecified } -func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { +func (x *PatternFlowIcmpEchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { - if x != nil && x.Auto != nil { - return *x.Auto - } - return 0 -} - -func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIcmpEchoType) GetIncrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { +func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { +func (x *PatternFlowIcmpEchoType) GetMetricTags() []*PatternFlowIcmpEchoTypeMetricTag { if x != nil { return x.MetricTags } @@ -98859,13 +98531,13 @@ func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomO } // integer counter pattern -type PatternFlowMplsTimeToLiveCounter struct { +type PatternFlowIcmpEchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -98875,23 +98547,23 @@ type PatternFlowMplsTimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowMplsTimeToLiveCounter) Reset() { - *x = PatternFlowMplsTimeToLiveCounter{} +func (x *PatternFlowIcmpEchoCodeCounter) Reset() { + *x = PatternFlowIcmpEchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[912] + mi := &file_otg_proto_msgTypes[899] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveCounter) String() string { +func (x *PatternFlowIcmpEchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[912] +func (x *PatternFlowIcmpEchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[899] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98902,26 +98574,26 @@ func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{912} +// Deprecated: Use PatternFlowIcmpEchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{899} } -func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } @@ -98931,7 +98603,7 @@ func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { // 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 PatternFlowMplsTimeToLiveMetricTag struct { +type PatternFlowIcmpEchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -98949,23 +98621,23 @@ type PatternFlowMplsTimeToLiveMetricTag struct { Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { - *x = PatternFlowMplsTimeToLiveMetricTag{} +func (x *PatternFlowIcmpEchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpEchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[913] + mi := &file_otg_proto_msgTypes[900] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} +func (*PatternFlowIcmpEchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[913] +func (x *PatternFlowIcmpEchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[900] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -98976,74 +98648,74 @@ func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{913} +// Deprecated: Use PatternFlowIcmpEchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{900} } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetOffset() uint32 { if x != nil && x.Offset != nil { return *x.Offset } return 0 } -func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { +func (x *PatternFlowIcmpEchoCodeMetricTag) GetLength() uint32 { if x != nil && x.Length != nil { return *x.Length } return 0 } -// Time to live -type PatternFlowMplsTimeToLive struct { +// The ICMP subtype. The default code for ICMP echo request and reply is 0. +type PatternFlowIcmpEchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpEchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` // One or more metric tags 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. - MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` + MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowMplsTimeToLive) Reset() { - *x = PatternFlowMplsTimeToLive{} +func (x *PatternFlowIcmpEchoCode) Reset() { + *x = PatternFlowIcmpEchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[914] + mi := &file_otg_proto_msgTypes[901] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLive) String() string { +func (x *PatternFlowIcmpEchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive) ProtoMessage() {} +func (*PatternFlowIcmpEchoCode) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[914] +func (x *PatternFlowIcmpEchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[901] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99054,61 +98726,130 @@ func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{914} +// Deprecated: Use PatternFlowIcmpEchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{901} } -func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { +func (x *PatternFlowIcmpEchoCode) GetChoice() PatternFlowIcmpEchoCode_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowMplsTimeToLive_Choice_unspecified + return PatternFlowIcmpEchoCode_Choice_unspecified } -func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { +func (x *PatternFlowIcmpEchoCode) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { +func (x *PatternFlowIcmpEchoCode) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIcmpEchoCode) GetIncrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { +func (x *PatternFlowIcmpEchoCode) GetDecrement() *PatternFlowIcmpEchoCodeCounter { if x != nil { return x.Decrement } return nil } -func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { +func (x *PatternFlowIcmpEchoCode) GetMetricTags() []*PatternFlowIcmpEchoCodeMetricTag { if x != nil { return x.MetricTags } return nil } +// ICMP checksum +type PatternFlowIcmpEchoChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpEchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpEchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpEchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowIcmpEchoChecksum) Reset() { + *x = PatternFlowIcmpEchoChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[902] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpEchoChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpEchoChecksum) ProtoMessage() {} + +func (x *PatternFlowIcmpEchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[902] + 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.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{902} +} + +func (x *PatternFlowIcmpEchoChecksum) GetChoice() PatternFlowIcmpEchoChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowIcmpEchoChecksum_Choice_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetGenerated() PatternFlowIcmpEchoChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowIcmpEchoChecksum_Generated_unspecified +} + +func (x *PatternFlowIcmpEchoChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowSnmpv2CVersionCounter struct { +type PatternFlowIcmpEchoIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -99118,23 +98859,23 @@ type PatternFlowSnmpv2CVersionCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CVersionCounter) Reset() { - *x = PatternFlowSnmpv2CVersionCounter{} +func (x *PatternFlowIcmpEchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpEchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[915] + mi := &file_otg_proto_msgTypes[903] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVersionCounter) String() string { +func (x *PatternFlowIcmpEchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVersionCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[915] +func (x *PatternFlowIcmpEchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[903] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99145,70 +98886,70 @@ func (x *PatternFlowSnmpv2CVersionCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{915} +// Deprecated: Use PatternFlowIcmpEchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{903} } -func (x *PatternFlowSnmpv2CVersionCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CVersionCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CVersionCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoIdentifierCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Version -type PatternFlowSnmpv2CVersion struct { +// 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 PatternFlowIcmpEchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CVersion) Reset() { - *x = PatternFlowSnmpv2CVersion{} +func (x *PatternFlowIcmpEchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpEchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[916] + mi := &file_otg_proto_msgTypes[904] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVersion) String() string { +func (x *PatternFlowIcmpEchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVersion) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[916] +func (x *PatternFlowIcmpEchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[904] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99219,159 +98960,74 @@ func (x *PatternFlowSnmpv2CVersion) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVersion.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{916} +// Deprecated: Use PatternFlowIcmpEchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{904} } -func (x *PatternFlowSnmpv2CVersion) GetChoice() PatternFlowSnmpv2CVersion_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return PatternFlowSnmpv2CVersion_Choice_unspecified + return "" } -func (x *PatternFlowSnmpv2CVersion) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CVersion) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -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 - - // 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 *PatternFlowSnmpv2CPDURequestIdCounter) Reset() { - *x = PatternFlowSnmpv2CPDURequestIdCounter{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[917] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowSnmpv2CPDURequestIdCounter) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowSnmpv2CPDURequestIdCounter) ProtoMessage() {} - -func (x *PatternFlowSnmpv2CPDURequestIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[917] - 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 PatternFlowSnmpv2CPDURequestIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDURequestIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{917} -} - -func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetStart() int32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -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 +func (x *PatternFlowIcmpEchoIdentifierMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } 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 { +// ICMP identifier +type PatternFlowIcmpEchoIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 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"` + Choice *PatternFlowIcmpEchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoIdentifier_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"` + Value *uint32 `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"` + Values []uint32 `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"` + Increment *PatternFlowIcmpEchoIdentifierCounter `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"` + Decrement *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CPDURequestId) Reset() { - *x = PatternFlowSnmpv2CPDURequestId{} +func (x *PatternFlowIcmpEchoIdentifier) Reset() { + *x = PatternFlowIcmpEchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[918] + mi := &file_otg_proto_msgTypes[905] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CPDURequestId) String() string { +func (x *PatternFlowIcmpEchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CPDURequestId) ProtoMessage() {} +func (*PatternFlowIcmpEchoIdentifier) ProtoMessage() {} -func (x *PatternFlowSnmpv2CPDURequestId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[918] +func (x *PatternFlowIcmpEchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[905] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99382,48 +99038,55 @@ func (x *PatternFlowSnmpv2CPDURequestId) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CPDURequestId.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDURequestId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{918} +// Deprecated: Use PatternFlowIcmpEchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{905} } -func (x *PatternFlowSnmpv2CPDURequestId) GetChoice() PatternFlowSnmpv2CPDURequestId_Choice_Enum { +func (x *PatternFlowIcmpEchoIdentifier) GetChoice() PatternFlowIcmpEchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CPDURequestId_Choice_unspecified + return PatternFlowIcmpEchoIdentifier_Choice_unspecified } -func (x *PatternFlowSnmpv2CPDURequestId) GetValue() int32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CPDURequestId) GetValues() []int32 { +func (x *PatternFlowIcmpEchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowSnmpv2CPDURequestId) GetIncrement() *PatternFlowSnmpv2CPDURequestIdCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetIncrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowSnmpv2CPDURequestId) GetDecrement() *PatternFlowSnmpv2CPDURequestIdCounter { +func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdentifierCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIcmpEchoIdentifier) GetMetricTags() []*PatternFlowIcmpEchoIdentifierMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowSnmpv2CPDUErrorIndexCounter struct { +type PatternFlowIcmpEchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -99439,23 +99102,23 @@ type PatternFlowSnmpv2CPDUErrorIndexCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) Reset() { - *x = PatternFlowSnmpv2CPDUErrorIndexCounter{} +func (x *PatternFlowIcmpEchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[919] + mi := &file_otg_proto_msgTypes[906] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[919] +func (x *PatternFlowIcmpEchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[906] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99466,71 +99129,70 @@ func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndexCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDUErrorIndexCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{919} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{906} } -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStart() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStep() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetCount() uint32 { +func (x *PatternFlowIcmpEchoSequenceNumberCounter) 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 { +// 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 PatternFlowIcmpEchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CPDUErrorIndex) Reset() { - *x = PatternFlowSnmpv2CPDUErrorIndex{} +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpEchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[920] + mi := &file_otg_proto_msgTypes[907] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CPDUErrorIndex) String() string { +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CPDUErrorIndex) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CPDUErrorIndex) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[920] +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[907] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99541,80 +99203,74 @@ func (x *PatternFlowSnmpv2CPDUErrorIndex) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDUErrorIndex) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{920} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{907} } -func (x *PatternFlowSnmpv2CPDUErrorIndex) GetChoice() PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return PatternFlowSnmpv2CPDUErrorIndex_Choice_unspecified + return "" } -func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowSnmpv2CPDUErrorIndex) GetIncrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowSnmpv2CPDUErrorIndex) GetDecrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpEchoSequenceNumberMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -// integer counter pattern -type PatternFlowSnmpv2CBulkPDURequestIdCounter struct { +// ICMP sequence number +type PatternFlowIcmpEchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIcmpEchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpEchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = 1 - Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - // default = 1 - Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) Reset() { - *x = PatternFlowSnmpv2CBulkPDURequestIdCounter{} +func (x *PatternFlowIcmpEchoSequenceNumber) Reset() { + *x = PatternFlowIcmpEchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[921] + mi := &file_otg_proto_msgTypes[908] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) String() string { +func (x *PatternFlowIcmpEchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoMessage() {} +func (*PatternFlowIcmpEchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[921] +func (x *PatternFlowIcmpEchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[908] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99625,75 +99281,86 @@ func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{921} +// Deprecated: Use PatternFlowIcmpEchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpEchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{908} } -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStart() int32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIcmpEchoSequenceNumber) GetChoice() PatternFlowIcmpEchoSequenceNumber_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowIcmpEchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStep() int32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIcmpEchoSequenceNumber) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetCount() int32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIcmpEchoSequenceNumber) GetValues() []uint32 { + if x != nil { + return x.Values } - return 0 + return nil } -// 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 { +func (x *PatternFlowIcmpEchoSequenceNumber) GetIncrement() *PatternFlowIcmpEchoSequenceNumberCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowIcmpEchoSequenceNumber) GetDecrement() *PatternFlowIcmpEchoSequenceNumberCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowIcmpEchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpEchoSequenceNumberMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// ICMP checksum +type PatternFlowIcmpCommonChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpCommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpCommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpCommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowSnmpv2CBulkPDURequestId) Reset() { - *x = PatternFlowSnmpv2CBulkPDURequestId{} +func (x *PatternFlowIcmpCommonChecksum) Reset() { + *x = PatternFlowIcmpCommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[922] + mi := &file_otg_proto_msgTypes[909] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDURequestId) String() string { +func (x *PatternFlowIcmpCommonChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDURequestId) ProtoMessage() {} +func (*PatternFlowIcmpCommonChecksum) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDURequestId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[922] +func (x *PatternFlowIcmpCommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[909] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99704,81 +99371,66 @@ func (x *PatternFlowSnmpv2CBulkPDURequestId) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDURequestId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{922} +// Deprecated: Use PatternFlowIcmpCommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpCommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{909} } -func (x *PatternFlowSnmpv2CBulkPDURequestId) GetChoice() PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum { +func (x *PatternFlowIcmpCommonChecksum) GetChoice() PatternFlowIcmpCommonChecksum_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.Values - } - return nil + return PatternFlowIcmpCommonChecksum_Choice_unspecified } -func (x *PatternFlowSnmpv2CBulkPDURequestId) GetIncrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { - if x != nil { - return x.Increment +func (x *PatternFlowIcmpCommonChecksum) GetGenerated() PatternFlowIcmpCommonChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated } - return nil + return PatternFlowIcmpCommonChecksum_Generated_unspecified } -func (x *PatternFlowSnmpv2CBulkPDURequestId) GetDecrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpCommonChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom } - return nil + return 0 } -// One variable binding in the Response-PDU is requested for the first non_repeaters -// variable bindings in the GetBulkRequest. -type PatternFlowSnmpv2CBulkPDUNonRepeaters struct { +// integer counter pattern +type PatternFlowIcmpNextFieldsIdentifierCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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"` + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - // default = [0] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // 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 *PatternFlowSnmpv2CBulkPDUNonRepeaters) Reset() { - *x = PatternFlowSnmpv2CBulkPDUNonRepeaters{} +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[923] + mi := &file_otg_proto_msgTypes[910] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[923] +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[910] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99789,66 +99441,70 @@ func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{923} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{910} } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetChoice() PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_unspecified + return 0 } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *PatternFlowIcmpNextFieldsIdentifierCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// integer counter pattern -type PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { +// 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 PatternFlowIcmpNextFieldsIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Reset() { - *x = PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{} +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[924] + mi := &file_otg_proto_msgTypes[911] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[924] +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[911] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99859,43 +99515,41 @@ func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{924} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{911} } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIcmpNextFieldsIdentifierMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } 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 { +// ICMP identifier +type PatternFlowIcmpNextFieldsIdentifier struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 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"` + Choice *PatternFlowIcmpNextFieldsIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsIdentifier_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"` @@ -99903,28 +99557,32 @@ type PatternFlowSnmpv2CBulkPDUMaxRepetitions struct { // 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"` + Increment *PatternFlowIcmpNextFieldsIdentifierCounter `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"` + Decrement *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) Reset() { - *x = PatternFlowSnmpv2CBulkPDUMaxRepetitions{} +func (x *PatternFlowIcmpNextFieldsIdentifier) Reset() { + *x = PatternFlowIcmpNextFieldsIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[925] + mi := &file_otg_proto_msgTypes[912] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) String() string { +func (x *PatternFlowIcmpNextFieldsIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsIdentifier) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[925] +func (x *PatternFlowIcmpNextFieldsIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[912] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -99935,80 +99593,87 @@ func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{925} +// Deprecated: Use PatternFlowIcmpNextFieldsIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{912} } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetChoice() PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetChoice() PatternFlowIcmpNextFieldsIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_unspecified + return PatternFlowIcmpNextFieldsIdentifier_Choice_unspecified } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValue() uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValues() []uint32 { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetIncrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetIncrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetDecrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { +func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNextFieldsIdentifierCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIcmpNextFieldsIdentifier) GetMetricTags() []*PatternFlowIcmpNextFieldsIdentifierMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { +type PatternFlowIcmpNextFieldsSequenceNumberCounter 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"` + Start *uint32 `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"` + Step *uint32 `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"` + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{} +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[926] + mi := &file_otg_proto_msgTypes[913] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[926] +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[913] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100019,70 +99684,148 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{926} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{913} } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStart() int32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStep() int32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetCount() int32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Integer value returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueIntegerValue struct { +// 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 PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumberMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[914] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoMessage() {} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[914] + 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 PatternFlowIcmpNextFieldsSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{914} +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIcmpNextFieldsSequenceNumberMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// ICMP sequence number +type PatternFlowIcmpNextFieldsSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 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"` + Choice *PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpNextFieldsSequenceNumber_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"` + Value *uint32 `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"` + Values []uint32 `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"` + Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `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"` + Decrement *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIntegerValue{} +func (x *PatternFlowIcmpNextFieldsSequenceNumber) Reset() { + *x = PatternFlowIcmpNextFieldsSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[927] + mi := &file_otg_proto_msgTypes[915] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) String() string { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoMessage() {} +func (*PatternFlowIcmpNextFieldsSequenceNumber) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[927] +func (x *PatternFlowIcmpNextFieldsSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[915] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100093,80 +99836,87 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{927} +// Deprecated: Use PatternFlowIcmpNextFieldsSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpNextFieldsSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{915} } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetChoice() PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_unspecified + return PatternFlowIcmpNextFieldsSequenceNumber_Choice_unspecified } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValue() int32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValues() []int32 { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetIncrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcmpNextFieldsSequenceNumberCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { +func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetMetricTags() []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowIcmpv6EchoTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 128 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{} +func (x *PatternFlowIcmpv6EchoTypeCounter) Reset() { + *x = PatternFlowIcmpv6EchoTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[928] + mi := &file_otg_proto_msgTypes[916] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) String() string { +func (x *PatternFlowIcmpv6EchoTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoTypeCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[928] +func (x *PatternFlowIcmpv6EchoTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[916] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100177,70 +99927,148 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{928} +// Deprecated: Use PatternFlowIcmpv6EchoTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{916} } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStart() string { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStep() string { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// IPv4 address returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueIpAddressValue struct { +// 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 PatternFlowIcmpv6EchoTypeMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoTypeMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[917] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIcmpv6EchoTypeMetricTag) ProtoMessage() {} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[917] + 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 PatternFlowIcmpv6EchoTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{917} +} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIcmpv6EchoTypeMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// ICMPv6 echo type +type PatternFlowIcmpv6EchoType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 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"` + Choice *PatternFlowIcmpv6EchoType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoType_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"` + // default = 128 + Value *uint32 `protobuf:"varint,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"` + // default = [128] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIcmpv6EchoTypeCounter `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"` + Decrement *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValue{} +func (x *PatternFlowIcmpv6EchoType) Reset() { + *x = PatternFlowIcmpv6EchoType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[929] + mi := &file_otg_proto_msgTypes[918] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) String() string { +func (x *PatternFlowIcmpv6EchoType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoType) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[929] +func (x *PatternFlowIcmpv6EchoType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[918] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100251,48 +100079,55 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{929} +// Deprecated: Use PatternFlowIcmpv6EchoType.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{918} } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum { +func (x *PatternFlowIcmpv6EchoType) GetChoice() PatternFlowIcmpv6EchoType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_unspecified + return PatternFlowIcmpv6EchoType_Choice_unspecified } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValue() string { +func (x *PatternFlowIcmpv6EchoType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValues() []string { +func (x *PatternFlowIcmpv6EchoType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { +func (x *PatternFlowIcmpv6EchoType) GetIncrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { +func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIcmpv6EchoType) GetMetricTags() []*PatternFlowIcmpv6EchoTypeMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { +type PatternFlowIcmpv6EchoCodeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -100308,23 +100143,23 @@ type PatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueCounterValueCounter{} +func (x *PatternFlowIcmpv6EchoCodeCounter) Reset() { + *x = PatternFlowIcmpv6EchoCodeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[930] + mi := &file_otg_proto_msgTypes[919] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) String() string { +func (x *PatternFlowIcmpv6EchoCodeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[930] +func (x *PatternFlowIcmpv6EchoCodeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[919] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100335,70 +100170,70 @@ func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{930} +// Deprecated: Use PatternFlowIcmpv6EchoCodeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{919} } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoCodeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Counter returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueCounterValue struct { +// 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 PatternFlowIcmpv6EchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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 + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueCounterValue{} +func (x *PatternFlowIcmpv6EchoCodeMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoCodeMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[931] + mi := &file_otg_proto_msgTypes[920] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) String() string { +func (x *PatternFlowIcmpv6EchoCodeMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCodeMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[931] +func (x *PatternFlowIcmpv6EchoCodeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[920] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100409,80 +100244,74 @@ func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{931} +// Deprecated: Use PatternFlowIcmpv6EchoCodeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCodeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{920} } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_unspecified + return "" } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpv6EchoCodeMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -// integer counter pattern -type PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { +// ICMPv6 echo sub type +type PatternFlowIcmpv6EchoCode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIcmpv6EchoCode_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoCode_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{} +func (x *PatternFlowIcmpv6EchoCode) Reset() { + *x = PatternFlowIcmpv6EchoCode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[932] + mi := &file_otg_proto_msgTypes[921] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) String() string { +func (x *PatternFlowIcmpv6EchoCode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoCode) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[932] +func (x *PatternFlowIcmpv6EchoCode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[921] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100493,70 +100322,87 @@ func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{932} +// Deprecated: Use PatternFlowIcmpv6EchoCode.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoCode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{921} } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIcmpv6EchoCode) GetChoice() PatternFlowIcmpv6EchoCode_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowIcmpv6EchoCode_Choice_unspecified } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIcmpv6EchoCode) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIcmpv6EchoCode) GetValues() []uint32 { + if x != nil { + return x.Values } - return 0 + return nil } -// Timeticks returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueTimeticksValue struct { +func (x *PatternFlowIcmpv6EchoCode) GetIncrement() *PatternFlowIcmpv6EchoCodeCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowIcmpv6EchoCode) GetMetricTags() []*PatternFlowIcmpv6EchoCodeMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowIcmpv6EchoIdentifierCounter 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"` + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - Increment *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models - Decrement *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValue{} +func (x *PatternFlowIcmpv6EchoIdentifierCounter) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[933] + mi := &file_otg_proto_msgTypes[922] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[933] +func (x *PatternFlowIcmpv6EchoIdentifierCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[922] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100567,80 +100413,70 @@ func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{933} -} - -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_unspecified +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{922} } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { - if x != nil { - return x.Increment +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpv6EchoIdentifierCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// integer counter pattern -type PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { +// 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 PatternFlowIcmpv6EchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{} +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoIdentifierMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[934] + mi := &file_otg_proto_msgTypes[923] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) String() string { +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[934] +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[923] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100651,70 +100487,74 @@ func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{934} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifierMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifierMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{923} } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStart() uint64 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStep() uint64 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetCount() uint64 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIcmpv6EchoIdentifierMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } return 0 } -// Big counter returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueBigCounterValue struct { +// ICMPv6 echo identifier +type PatternFlowIcmpv6EchoIdentifier 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"` + Choice *PatternFlowIcmpv6EchoIdentifier_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoIdentifier_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"` + Value *uint32 `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"` + Values []uint32 `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"` + Increment *PatternFlowIcmpv6EchoIdentifierCounter `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"` + Decrement *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValue{} +func (x *PatternFlowIcmpv6EchoIdentifier) Reset() { + *x = PatternFlowIcmpv6EchoIdentifier{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[935] + mi := &file_otg_proto_msgTypes[924] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) String() string { +func (x *PatternFlowIcmpv6EchoIdentifier) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoIdentifier) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[935] +func (x *PatternFlowIcmpv6EchoIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[924] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100725,48 +100565,55 @@ func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{935} +// Deprecated: Use PatternFlowIcmpv6EchoIdentifier.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoIdentifier) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{924} } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum { +func (x *PatternFlowIcmpv6EchoIdentifier) GetChoice() PatternFlowIcmpv6EchoIdentifier_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_unspecified + return PatternFlowIcmpv6EchoIdentifier_Choice_unspecified } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValue() uint64 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValues() []uint64 { +func (x *PatternFlowIcmpv6EchoIdentifier) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetIncrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { +func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoIdentifierCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIcmpv6EchoIdentifier) GetMetricTags() []*PatternFlowIcmpv6EchoIdentifierMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { +type PatternFlowIcmpv6EchoSequenceNumberCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -100782,23 +100629,23 @@ type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{} +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[936] + mi := &file_otg_proto_msgTypes[925] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[936] +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[925] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100809,70 +100656,70 @@ func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{936} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{925} } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStart() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStep() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetCount() uint32 { +func (x *PatternFlowIcmpv6EchoSequenceNumberCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Unsigned integer value returned for the requested OID. -type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue struct { +// 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 PatternFlowIcmpv6EchoSequenceNumberMetricTag 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 + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{} +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumberMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[937] + mi := &file_otg_proto_msgTypes[926] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[937] +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[926] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100883,80 +100730,74 @@ func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{937} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumberMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumberMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{926} } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_unspecified + return "" } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpv6EchoSequenceNumberMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -// integer counter pattern -type PatternFlowSnmpv2CCommonRequestIdCounter struct { +// ICMPv6 echo sequence number +type PatternFlowIcmpv6EchoSequenceNumber struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 0 - Start *int32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = 1 - Step *int32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - // default = 1 - Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) Reset() { - *x = PatternFlowSnmpv2CCommonRequestIdCounter{} +func (x *PatternFlowIcmpv6EchoSequenceNumber) Reset() { + *x = PatternFlowIcmpv6EchoSequenceNumber{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[938] + mi := &file_otg_proto_msgTypes[927] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) String() string { +func (x *PatternFlowIcmpv6EchoSequenceNumber) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CCommonRequestIdCounter) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoSequenceNumber) ProtoMessage() {} -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[938] +func (x *PatternFlowIcmpv6EchoSequenceNumber) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[927] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100967,75 +100808,86 @@ func (x *PatternFlowSnmpv2CCommonRequestIdCounter) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CCommonRequestIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CCommonRequestIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{938} +// Deprecated: Use PatternFlowIcmpv6EchoSequenceNumber.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoSequenceNumber) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{927} } -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStart() int32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetChoice() PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowIcmpv6EchoSequenceNumber_Choice_unspecified } -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStep() int32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetCount() int32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetValues() []uint32 { + if x != nil { + return x.Values } - return 0 + return nil } -// 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 { +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetIncrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetDecrement() *PatternFlowIcmpv6EchoSequenceNumberCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowIcmpv6EchoSequenceNumber) GetMetricTags() []*PatternFlowIcmpv6EchoSequenceNumberMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// ICMPv6 checksum +type PatternFlowIcmpv6EchoChecksum 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"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIcmpv6EchoChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIcmpv6EchoChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6EchoChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowSnmpv2CCommonRequestId) Reset() { - *x = PatternFlowSnmpv2CCommonRequestId{} +func (x *PatternFlowIcmpv6EchoChecksum) Reset() { + *x = PatternFlowIcmpv6EchoChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[939] + mi := &file_otg_proto_msgTypes[928] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CCommonRequestId) String() string { +func (x *PatternFlowIcmpv6EchoChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CCommonRequestId) ProtoMessage() {} +func (*PatternFlowIcmpv6EchoChecksum) ProtoMessage() {} -func (x *PatternFlowSnmpv2CCommonRequestId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[939] +func (x *PatternFlowIcmpv6EchoChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[928] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101046,81 +100898,65 @@ func (x *PatternFlowSnmpv2CCommonRequestId) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CCommonRequestId.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CCommonRequestId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{939} +// Deprecated: Use PatternFlowIcmpv6EchoChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6EchoChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{928} } -func (x *PatternFlowSnmpv2CCommonRequestId) GetChoice() PatternFlowSnmpv2CCommonRequestId_Choice_Enum { +func (x *PatternFlowIcmpv6EchoChecksum) GetChoice() PatternFlowIcmpv6EchoChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowSnmpv2CCommonRequestId_Choice_unspecified -} - -func (x *PatternFlowSnmpv2CCommonRequestId) GetValue() int32 { - if x != nil && x.Value != nil { - return *x.Value - } - return 0 -} - -func (x *PatternFlowSnmpv2CCommonRequestId) GetValues() []int32 { - if x != nil { - return x.Values - } - return nil + return PatternFlowIcmpv6EchoChecksum_Choice_unspecified } -func (x *PatternFlowSnmpv2CCommonRequestId) GetIncrement() *PatternFlowSnmpv2CCommonRequestIdCounter { - if x != nil { - return x.Increment +func (x *PatternFlowIcmpv6EchoChecksum) GetGenerated() PatternFlowIcmpv6EchoChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated } - return nil + return PatternFlowIcmpv6EchoChecksum_Generated_unspecified } -func (x *PatternFlowSnmpv2CCommonRequestId) GetDecrement() *PatternFlowSnmpv2CCommonRequestIdCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowIcmpv6EchoChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom } - return nil + return 0 } -// The one's complement of the one's complement sum of the message, with the checksum -// field replaced by zero for the purpose of computing the checksum. An all-zero value -// means that no checksum was transmitted. -type PatternFlowRsvpRsvpChecksum struct { +// ICMPv6 checksum +type PatternFlowIcmpv6CommonChecksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of checksum // default = Choice.Enum.generated - Choice *PatternFlowRsvpRsvpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpRsvpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIcmpv6CommonChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Choice_Enum,oneof" json:"choice,omitempty"` // A system generated checksum value // default = Generated.Enum.good - Generated *PatternFlowRsvpRsvpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowRsvpRsvpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + Generated *PatternFlowIcmpv6CommonChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIcmpv6CommonChecksum_Generated_Enum,oneof" json:"generated,omitempty"` // A custom checksum value Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowRsvpRsvpChecksum) Reset() { - *x = PatternFlowRsvpRsvpChecksum{} +func (x *PatternFlowIcmpv6CommonChecksum) Reset() { + *x = PatternFlowIcmpv6CommonChecksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[940] + mi := &file_otg_proto_msgTypes[929] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpRsvpChecksum) String() string { +func (x *PatternFlowIcmpv6CommonChecksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpRsvpChecksum) ProtoMessage() {} +func (*PatternFlowIcmpv6CommonChecksum) ProtoMessage() {} -func (x *PatternFlowRsvpRsvpChecksum) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[940] +func (x *PatternFlowIcmpv6CommonChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[929] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101131,26 +100967,26 @@ func (x *PatternFlowRsvpRsvpChecksum) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpRsvpChecksum.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpRsvpChecksum) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{940} +// Deprecated: Use PatternFlowIcmpv6CommonChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIcmpv6CommonChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{929} } -func (x *PatternFlowRsvpRsvpChecksum) GetChoice() PatternFlowRsvpRsvpChecksum_Choice_Enum { +func (x *PatternFlowIcmpv6CommonChecksum) GetChoice() PatternFlowIcmpv6CommonChecksum_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRsvpRsvpChecksum_Choice_unspecified + return PatternFlowIcmpv6CommonChecksum_Choice_unspecified } -func (x *PatternFlowRsvpRsvpChecksum) GetGenerated() PatternFlowRsvpRsvpChecksum_Generated_Enum { +func (x *PatternFlowIcmpv6CommonChecksum) GetGenerated() PatternFlowIcmpv6CommonChecksum_Generated_Enum { if x != nil && x.Generated != nil { return *x.Generated } - return PatternFlowRsvpRsvpChecksum_Generated_unspecified + return PatternFlowIcmpv6CommonChecksum_Generated_unspecified } -func (x *PatternFlowRsvpRsvpChecksum) GetCustom() uint32 { +func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() uint32 { if x != nil && x.Custom != nil { return *x.Custom } @@ -101158,13 +100994,13 @@ func (x *PatternFlowRsvpRsvpChecksum) GetCustom() uint32 { } // integer counter pattern -type PatternFlowRsvpTimeToLiveCounter struct { +type PatternFlowPppAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 64 + // default = 255 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -101174,23 +101010,23 @@ type PatternFlowRsvpTimeToLiveCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRsvpTimeToLiveCounter) Reset() { - *x = PatternFlowRsvpTimeToLiveCounter{} +func (x *PatternFlowPppAddressCounter) Reset() { + *x = PatternFlowPppAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[941] + mi := &file_otg_proto_msgTypes[930] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpTimeToLiveCounter) String() string { +func (x *PatternFlowPppAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpTimeToLiveCounter) ProtoMessage() {} +func (*PatternFlowPppAddressCounter) ProtoMessage() {} -func (x *PatternFlowRsvpTimeToLiveCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[941] +func (x *PatternFlowPppAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[930] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101201,70 +101037,148 @@ func (x *PatternFlowRsvpTimeToLiveCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpTimeToLiveCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpTimeToLiveCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{941} +// Deprecated: Use PatternFlowPppAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{930} } -func (x *PatternFlowRsvpTimeToLiveCounter) GetStart() uint32 { +func (x *PatternFlowPppAddressCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRsvpTimeToLiveCounter) GetStep() uint32 { +func (x *PatternFlowPppAddressCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRsvpTimeToLiveCounter) GetCount() uint32 { +func (x *PatternFlowPppAddressCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// The IP time-to-live(TTL) value with which the message was sent. -type PatternFlowRsvpTimeToLive struct { +// 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 PatternFlowPppAddressMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowPppAddressMetricTag) Reset() { + *x = PatternFlowPppAddressMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[931] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppAddressMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppAddressMetricTag) ProtoMessage() {} + +func (x *PatternFlowPppAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[931] + 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 PatternFlowPppAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{931} +} + +func (x *PatternFlowPppAddressMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowPppAddressMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowPppAddressMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// PPP address +type PatternFlowPppAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRsvpTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPppAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppAddress_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 64 + // default = 255 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [64] + // default = [255] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRsvpTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPppAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRsvpTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRsvpTimeToLive) Reset() { - *x = PatternFlowRsvpTimeToLive{} +func (x *PatternFlowPppAddress) Reset() { + *x = PatternFlowPppAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[942] + mi := &file_otg_proto_msgTypes[932] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpTimeToLive) String() string { +func (x *PatternFlowPppAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpTimeToLive) ProtoMessage() {} +func (*PatternFlowPppAddress) ProtoMessage() {} -func (x *PatternFlowRsvpTimeToLive) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[942] +func (x *PatternFlowPppAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[932] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101275,54 +101189,61 @@ func (x *PatternFlowRsvpTimeToLive) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpTimeToLive.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpTimeToLive) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{942} +// Deprecated: Use PatternFlowPppAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowPppAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{932} } -func (x *PatternFlowRsvpTimeToLive) GetChoice() PatternFlowRsvpTimeToLive_Choice_Enum { +func (x *PatternFlowPppAddress) GetChoice() PatternFlowPppAddress_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRsvpTimeToLive_Choice_unspecified + return PatternFlowPppAddress_Choice_unspecified } -func (x *PatternFlowRsvpTimeToLive) GetValue() uint32 { +func (x *PatternFlowPppAddress) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRsvpTimeToLive) GetValues() []uint32 { +func (x *PatternFlowPppAddress) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRsvpTimeToLive) GetIncrement() *PatternFlowRsvpTimeToLiveCounter { +func (x *PatternFlowPppAddress) GetIncrement() *PatternFlowPppAddressCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRsvpTimeToLive) GetDecrement() *PatternFlowRsvpTimeToLiveCounter { +func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowPppAddress) GetMetricTags() []*PatternFlowPppAddressMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRsvpReservedCounter struct { +type PatternFlowPppControlCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 3 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -101332,23 +101253,23 @@ type PatternFlowRsvpReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRsvpReservedCounter) Reset() { - *x = PatternFlowRsvpReservedCounter{} +func (x *PatternFlowPppControlCounter) Reset() { + *x = PatternFlowPppControlCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[943] + mi := &file_otg_proto_msgTypes[933] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpReservedCounter) String() string { +func (x *PatternFlowPppControlCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpReservedCounter) ProtoMessage() {} +func (*PatternFlowPppControlCounter) ProtoMessage() {} -func (x *PatternFlowRsvpReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[943] +func (x *PatternFlowPppControlCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[933] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101359,70 +101280,148 @@ func (x *PatternFlowRsvpReservedCounter) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{943} +// Deprecated: Use PatternFlowPppControlCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{933} } -func (x *PatternFlowRsvpReservedCounter) GetStart() uint32 { +func (x *PatternFlowPppControlCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRsvpReservedCounter) GetStep() uint32 { +func (x *PatternFlowPppControlCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRsvpReservedCounter) GetCount() uint32 { +func (x *PatternFlowPppControlCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Reserved -type PatternFlowRsvpReserved struct { +// 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 PatternFlowPppControlMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowPppControlMetricTag) Reset() { + *x = PatternFlowPppControlMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[934] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppControlMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppControlMetricTag) ProtoMessage() {} + +func (x *PatternFlowPppControlMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[934] + 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 PatternFlowPppControlMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControlMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{934} +} + +func (x *PatternFlowPppControlMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowPppControlMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowPppControlMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// PPP control +type PatternFlowPppControl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRsvpReserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpReserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowPppControl_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppControl_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 3 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [3] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRsvpReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowPppControlCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRsvpReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRsvpReserved) Reset() { - *x = PatternFlowRsvpReserved{} +func (x *PatternFlowPppControl) Reset() { + *x = PatternFlowPppControl{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[944] + mi := &file_otg_proto_msgTypes[935] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpReserved) String() string { +func (x *PatternFlowPppControl) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpReserved) ProtoMessage() {} +func (*PatternFlowPppControl) ProtoMessage() {} -func (x *PatternFlowRsvpReserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[944] +func (x *PatternFlowPppControl) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[935] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101433,80 +101432,87 @@ func (x *PatternFlowRsvpReserved) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpReserved.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpReserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{944} +// Deprecated: Use PatternFlowPppControl.ProtoReflect.Descriptor instead. +func (*PatternFlowPppControl) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{935} } -func (x *PatternFlowRsvpReserved) GetChoice() PatternFlowRsvpReserved_Choice_Enum { +func (x *PatternFlowPppControl) GetChoice() PatternFlowPppControl_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRsvpReserved_Choice_unspecified + return PatternFlowPppControl_Choice_unspecified } -func (x *PatternFlowRsvpReserved) GetValue() uint32 { +func (x *PatternFlowPppControl) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRsvpReserved) GetValues() []uint32 { +func (x *PatternFlowPppControl) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRsvpReserved) GetIncrement() *PatternFlowRsvpReservedCounter { +func (x *PatternFlowPppControl) GetIncrement() *PatternFlowPppControlCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRsvpReserved) GetDecrement() *PatternFlowRsvpReservedCounter { +func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter struct { +func (x *PatternFlowPppControl) GetMetricTags() []*PatternFlowPppControlMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowPppProtocolTypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 33 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter{} +func (x *PatternFlowPppProtocolTypeCounter) Reset() { + *x = PatternFlowPppProtocolTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[945] + mi := &file_otg_proto_msgTypes[936] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) String() string { +func (x *PatternFlowPppProtocolTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) ProtoMessage() {} +func (*PatternFlowPppProtocolTypeCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[945] +func (x *PatternFlowPppProtocolTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[936] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101517,70 +101523,153 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{945} +// Deprecated: Use PatternFlowPppProtocolTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{936} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetStart() string { +func (x *PatternFlowPppProtocolTypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetStep() string { +func (x *PatternFlowPppProtocolTypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetCount() uint32 { +func (x *PatternFlowPppProtocolTypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// IPv4 address of the egress node for the tunnel. -type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress struct { +// 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 PatternFlowPppProtocolTypeMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 16 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowPppProtocolTypeMetricTag) Reset() { + *x = PatternFlowPppProtocolTypeMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[937] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowPppProtocolTypeMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowPppProtocolTypeMetricTag) ProtoMessage() {} + +func (x *PatternFlowPppProtocolTypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[937] + 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 PatternFlowPppProtocolTypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolTypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{937} +} + +func (x *PatternFlowPppProtocolTypeMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowPppProtocolTypeMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowPppProtocolTypeMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// PPP protocol type +type PatternFlowPppProtocolType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_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 *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowPppProtocolType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowPppProtocolType_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 33 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [33] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 33 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress{} +func (x *PatternFlowPppProtocolType) Reset() { + *x = PatternFlowPppProtocolType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[946] + mi := &file_otg_proto_msgTypes[938] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) String() string { +func (x *PatternFlowPppProtocolType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) ProtoMessage() {} +func (*PatternFlowPppProtocolType) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[946] +func (x *PatternFlowPppProtocolType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[938] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101591,54 +101680,68 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) Proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{946} +// Deprecated: Use PatternFlowPppProtocolType.ProtoReflect.Descriptor instead. +func (*PatternFlowPppProtocolType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{938} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum { +func (x *PatternFlowPppProtocolType) GetChoice() PatternFlowPppProtocolType_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_unspecified + return PatternFlowPppProtocolType_Choice_unspecified } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetValue() string { +func (x *PatternFlowPppProtocolType) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetValues() []string { +func (x *PatternFlowPppProtocolType) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter { +func (x *PatternFlowPppProtocolType) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto + } + return 0 +} + +func (x *PatternFlowPppProtocolType) GetIncrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter { +func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowPppProtocolType) GetMetricTags() []*PatternFlowPppProtocolTypeMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter struct { +type PatternFlowIgmpv1VersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -101648,23 +101751,23 @@ type PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter{} +func (x *PatternFlowIgmpv1VersionCounter) Reset() { + *x = PatternFlowIgmpv1VersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[947] + mi := &file_otg_proto_msgTypes[939] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) String() string { +func (x *PatternFlowIgmpv1VersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1VersionCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[947] +func (x *PatternFlowIgmpv1VersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[939] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101675,70 +101778,148 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{947} +// Deprecated: Use PatternFlowIgmpv1VersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{939} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1VersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Reserved field, MUST be zero. -type PatternFlowRSVPPathSessionLspTunnelIpv4Reserved struct { +// 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 PatternFlowIgmpv1VersionMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 4 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIgmpv1VersionMetricTag) Reset() { + *x = PatternFlowIgmpv1VersionMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[940] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1VersionMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1VersionMetricTag) ProtoMessage() {} + +func (x *PatternFlowIgmpv1VersionMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[940] + 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 PatternFlowIgmpv1VersionMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1VersionMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{940} +} + +func (x *PatternFlowIgmpv1VersionMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowIgmpv1VersionMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1VersionMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Version number +type PatternFlowIgmpv1Version struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1Version_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Version_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4Reserved{} +func (x *PatternFlowIgmpv1Version) Reset() { + *x = PatternFlowIgmpv1Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[948] + mi := &file_otg_proto_msgTypes[941] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) String() string { +func (x *PatternFlowIgmpv1Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) ProtoMessage() {} +func (*PatternFlowIgmpv1Version) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[948] +func (x *PatternFlowIgmpv1Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[941] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101749,48 +101930,55 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{948} +// Deprecated: Use PatternFlowIgmpv1Version.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{941} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum { +func (x *PatternFlowIgmpv1Version) GetChoice() PatternFlowIgmpv1Version_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_unspecified + return PatternFlowIgmpv1Version_Choice_unspecified } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetValue() uint32 { +func (x *PatternFlowIgmpv1Version) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Version) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter { +func (x *PatternFlowIgmpv1Version) GetIncrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter { +func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIgmpv1Version) GetMetricTags() []*PatternFlowIgmpv1VersionMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter struct { +type PatternFlowIgmpv1TypeCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -101806,23 +101994,23 @@ type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter{} +func (x *PatternFlowIgmpv1TypeCounter) Reset() { + *x = PatternFlowIgmpv1TypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[949] + mi := &file_otg_proto_msgTypes[942] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) String() string { +func (x *PatternFlowIgmpv1TypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1TypeCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[949] +func (x *PatternFlowIgmpv1TypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[942] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101833,42 +102021,115 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{949} +// Deprecated: Use PatternFlowIgmpv1TypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{942} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1TypeCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// A 16-bit identifier used in the SESSION that remains constant over the life of the -// tunnel. -type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId struct { +// 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 PatternFlowIgmpv1TypeMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 4 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIgmpv1TypeMetricTag) Reset() { + *x = PatternFlowIgmpv1TypeMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[943] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1TypeMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1TypeMetricTag) ProtoMessage() {} + +func (x *PatternFlowIgmpv1TypeMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[943] + 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 PatternFlowIgmpv1TypeMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1TypeMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{943} +} + +func (x *PatternFlowIgmpv1TypeMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowIgmpv1TypeMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1TypeMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Type of message +type PatternFlowIgmpv1Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1Type_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Type_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"` @@ -101876,28 +102137,32 @@ type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId struct { // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId{} +func (x *PatternFlowIgmpv1Type) Reset() { + *x = PatternFlowIgmpv1Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[950] + mi := &file_otg_proto_msgTypes[944] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) String() string { +func (x *PatternFlowIgmpv1Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) ProtoMessage() {} +func (*PatternFlowIgmpv1Type) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[950] +func (x *PatternFlowIgmpv1Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[944] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101908,48 +102173,55 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{950} +// Deprecated: Use PatternFlowIgmpv1Type.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{944} } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum { +func (x *PatternFlowIgmpv1Type) GetChoice() PatternFlowIgmpv1Type_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_unspecified + return PatternFlowIgmpv1Type_Choice_unspecified } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetValue() uint32 { +func (x *PatternFlowIgmpv1Type) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Type) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter { +func (x *PatternFlowIgmpv1Type) GetIncrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter { +func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIgmpv1Type) GetMetricTags() []*PatternFlowIgmpv1TypeMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter struct { +type PatternFlowIgmpv1UnusedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -101965,23 +102237,23 @@ type PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter{} +func (x *PatternFlowIgmpv1UnusedCounter) Reset() { + *x = PatternFlowIgmpv1UnusedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[951] + mi := &file_otg_proto_msgTypes[945] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) String() string { +func (x *PatternFlowIgmpv1UnusedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1UnusedCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[951] +func (x *PatternFlowIgmpv1UnusedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[945] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -101992,41 +102264,115 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{951} +// Deprecated: Use PatternFlowIgmpv1UnusedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{945} } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetStart() uint32 { +func (x *PatternFlowIgmpv1UnusedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetStep() uint32 { +func (x *PatternFlowIgmpv1UnusedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetCount() uint32 { +func (x *PatternFlowIgmpv1UnusedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// TBD -type PatternFlowRSVPPathSessionExtTunnelIdAsInteger struct { +// 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 PatternFlowIgmpv1UnusedMetricTag struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) Reset() { + *x = PatternFlowIgmpv1UnusedMetricTag{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[946] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowIgmpv1UnusedMetricTag) ProtoMessage() {} + +func (x *PatternFlowIgmpv1UnusedMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[946] + 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 PatternFlowIgmpv1UnusedMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1UnusedMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{946} +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset + } + return 0 +} + +func (x *PatternFlowIgmpv1UnusedMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length + } + return 0 +} + +// Unused +type PatternFlowIgmpv1Unused struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1Unused_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Unused_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"` @@ -102034,28 +102380,32 @@ type PatternFlowRSVPPathSessionExtTunnelIdAsInteger struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsInteger{} +func (x *PatternFlowIgmpv1Unused) Reset() { + *x = PatternFlowIgmpv1Unused{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[952] + mi := &file_otg_proto_msgTypes[947] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) String() string { +func (x *PatternFlowIgmpv1Unused) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger) ProtoMessage() {} +func (*PatternFlowIgmpv1Unused) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[952] +func (x *PatternFlowIgmpv1Unused) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[947] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102066,80 +102416,86 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsInteger.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{952} +// Deprecated: Use PatternFlowIgmpv1Unused.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Unused) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{947} } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetChoice() PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum { +func (x *PatternFlowIgmpv1Unused) GetChoice() PatternFlowIgmpv1Unused_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_unspecified + return PatternFlowIgmpv1Unused_Choice_unspecified } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetValue() uint32 { +func (x *PatternFlowIgmpv1Unused) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetValues() []uint32 { +func (x *PatternFlowIgmpv1Unused) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetIncrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter { +func (x *PatternFlowIgmpv1Unused) GetIncrement() *PatternFlowIgmpv1UnusedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetDecrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter { +func (x *PatternFlowIgmpv1Unused) GetDecrement() *PatternFlowIgmpv1UnusedCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter struct { +func (x *PatternFlowIgmpv1Unused) GetMetricTags() []*PatternFlowIgmpv1UnusedMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// Checksum +type PatternFlowIgmpv1Checksum struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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"` + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowIgmpv1Checksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1Checksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowIgmpv1Checksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowIgmpv1Checksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter{} +func (x *PatternFlowIgmpv1Checksum) Reset() { + *x = PatternFlowIgmpv1Checksum{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[953] + mi := &file_otg_proto_msgTypes[948] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) String() string { +func (x *PatternFlowIgmpv1Checksum) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) ProtoMessage() {} +func (*PatternFlowIgmpv1Checksum) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[953] +func (x *PatternFlowIgmpv1Checksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[948] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102150,70 +102506,66 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{953} +// Deprecated: Use PatternFlowIgmpv1Checksum.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1Checksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{948} } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIgmpv1Checksum) GetChoice() PatternFlowIgmpv1Checksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return "" + return PatternFlowIgmpv1Checksum_Choice_unspecified } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIgmpv1Checksum) GetGenerated() PatternFlowIgmpv1Checksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated } - return "" + return PatternFlowIgmpv1Checksum_Generated_unspecified } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIgmpv1Checksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom } return 0 } -// IPv4 address of the ingress endpoint for the tunnel. -type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 struct { +// ipv4 counter pattern +type PatternFlowIgmpv1GroupAddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_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"` + Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // default = 0.0.0.1 + Step *string `protobuf:"bytes,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4{} +func (x *PatternFlowIgmpv1GroupAddressCounter) Reset() { + *x = PatternFlowIgmpv1GroupAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[954] + mi := &file_otg_proto_msgTypes[949] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) String() string { +func (x *PatternFlowIgmpv1GroupAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[954] +func (x *PatternFlowIgmpv1GroupAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[949] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102224,80 +102576,70 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{954} -} - -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetChoice() PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_unspecified +// Deprecated: Use PatternFlowIgmpv1GroupAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{949} } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } return "" } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetValues() []string { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetIncrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter { - if x != nil { - return x.Increment +func (x *PatternFlowIgmpv1GroupAddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return "" } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetDecrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter { - if x != nil { - return x.Decrement +func (x *PatternFlowIgmpv1GroupAddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// ipv4 counter pattern -type PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter struct { +// 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 PatternFlowIgmpv1GroupAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 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"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 32 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter{} +func (x *PatternFlowIgmpv1GroupAddressMetricTag) Reset() { + *x = PatternFlowIgmpv1GroupAddressMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[955] + mi := &file_otg_proto_msgTypes[950] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) String() string { +func (x *PatternFlowIgmpv1GroupAddressMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddressMetricTag) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[955] +func (x *PatternFlowIgmpv1GroupAddressMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[950] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102308,42 +102650,41 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{955} +// Deprecated: Use PatternFlowIgmpv1GroupAddressMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddressMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{950} } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) GetStart() string { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) GetStep() string { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return "" + return 0 } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowIgmpv1GroupAddressMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } return 0 } -// The IPv4 address of the interface through which the last RSVP-knowledgeable hop forwarded -// this message. -type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address struct { +// Group address +type PatternFlowIgmpv1GroupAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowIgmpv1GroupAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowIgmpv1GroupAddress_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"` @@ -102351,28 +102692,32 @@ type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address struct { // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4Address{} +func (x *PatternFlowIgmpv1GroupAddress) Reset() { + *x = PatternFlowIgmpv1GroupAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[956] + mi := &file_otg_proto_msgTypes[951] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) String() string { +func (x *PatternFlowIgmpv1GroupAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) ProtoMessage() {} +func (*PatternFlowIgmpv1GroupAddress) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[956] +func (x *PatternFlowIgmpv1GroupAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[951] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102383,54 +102728,61 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{956} +// Deprecated: Use PatternFlowIgmpv1GroupAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowIgmpv1GroupAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{951} } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetChoice() PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum { +func (x *PatternFlowIgmpv1GroupAddress) GetChoice() PatternFlowIgmpv1GroupAddress_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_unspecified + return PatternFlowIgmpv1GroupAddress_Choice_unspecified } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetValue() string { +func (x *PatternFlowIgmpv1GroupAddress) GetValue() string { if x != nil && x.Value != nil { return *x.Value } return "" } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetValues() []string { +func (x *PatternFlowIgmpv1GroupAddress) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetIncrement() *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter { +func (x *PatternFlowIgmpv1GroupAddress) GetIncrement() *PatternFlowIgmpv1GroupAddressCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetDecrement() *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter { +func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAddressCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowIgmpv1GroupAddress) GetMetricTags() []*PatternFlowIgmpv1GroupAddressMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter struct { +type PatternFlowMplsLabelCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0 + // default = 16 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -102440,23 +102792,23 @@ type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter{} +func (x *PatternFlowMplsLabelCounter) Reset() { + *x = PatternFlowMplsLabelCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[957] + mi := &file_otg_proto_msgTypes[952] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) String() string { +func (x *PatternFlowMplsLabelCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) ProtoMessage() {} +func (*PatternFlowMplsLabelCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[957] +func (x *PatternFlowMplsLabelCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[952] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102467,73 +102819,70 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{957} +// Deprecated: Use PatternFlowMplsLabelCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{952} } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetStart() uint32 { +func (x *PatternFlowMplsLabelCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetStep() uint32 { +func (x *PatternFlowMplsLabelCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetCount() uint32 { +func (x *PatternFlowMplsLabelCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Logical Interface Handle (LIH) is used to distinguish logical outgoing interfaces. -// A node receiving an LIH in a Path message saves its value and returns it in the HOP -// objects of subsequent Resv messages sent to the node that originated the LIH. The -// LIH should be identically zero if there is no logical interface handle. -type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle struct { +// 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 PatternFlowMplsLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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 *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 20 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle{} +func (x *PatternFlowMplsLabelMetricTag) Reset() { + *x = PatternFlowMplsLabelMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[958] + mi := &file_otg_proto_msgTypes[953] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) String() string { +func (x *PatternFlowMplsLabelMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) ProtoMessage() {} +func (*PatternFlowMplsLabelMetricTag) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[958] +func (x *PatternFlowMplsLabelMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[953] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102544,80 +102893,79 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{958} +// Deprecated: Use PatternFlowMplsLabelMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabelMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{953} } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetChoice() PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowMplsLabelMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_unspecified + return "" } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowMplsLabelMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetIncrement() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetDecrement() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowMplsLabelMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -// integer counter pattern -type PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter struct { +// Label of routers +type PatternFlowMplsLabel struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 30000 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = Choice.Enum.auto + Choice *PatternFlowMplsLabel_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsLabel_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + // default = 16 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + // default = [16] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. + // default = 16 + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) Reset() { - *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter{} +func (x *PatternFlowMplsLabel) Reset() { + *x = PatternFlowMplsLabel{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[959] + mi := &file_otg_proto_msgTypes[954] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) String() string { +func (x *PatternFlowMplsLabel) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) ProtoMessage() {} +func (*PatternFlowMplsLabel) ProtoMessage() {} -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[959] +func (x *PatternFlowMplsLabel) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[954] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102628,70 +102976,94 @@ func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{959} +// Deprecated: Use PatternFlowMplsLabel.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsLabel) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{954} } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowMplsLabel) GetChoice() PatternFlowMplsLabel_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowMplsLabel_Choice_unspecified } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowMplsLabel) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowMplsLabel) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowMplsLabel) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } return 0 } -// The refresh timeout period R used to generate this message;in milliseconds. -type PatternFlowRSVPPathTimeValuesType1RefreshPeriodR struct { +func (x *PatternFlowMplsLabel) GetIncrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsLabel) GetMetricTags() []*PatternFlowMplsLabelMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowMplsTrafficClassCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum,oneof" json:"choice,omitempty"` - // Description missing in models - // default = 30000 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` - // Description missing in models - // default = [30000] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) Reset() { - *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodR{} +func (x *PatternFlowMplsTrafficClassCounter) Reset() { + *x = PatternFlowMplsTrafficClassCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[960] + mi := &file_otg_proto_msgTypes[955] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) String() string { +func (x *PatternFlowMplsTrafficClassCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[960] +func (x *PatternFlowMplsTrafficClassCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[955] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102702,80 +103074,70 @@ func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{960} -} - -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetChoice() PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_unspecified +// Deprecated: Use PatternFlowMplsTrafficClassCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{955} } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowMplsTrafficClassCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } return 0 } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetIncrement() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter { - if x != nil { - return x.Increment +func (x *PatternFlowMplsTrafficClassCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return 0 } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetDecrement() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowMplsTrafficClassCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// integer counter pattern -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter struct { +// 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 PatternFlowMplsTrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 3 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter{} +func (x *PatternFlowMplsTrafficClassMetricTag) Reset() { + *x = PatternFlowMplsTrafficClassMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[961] + mi := &file_otg_proto_msgTypes[956] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) String() string { +func (x *PatternFlowMplsTrafficClassMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) ProtoMessage() {} +func (*PatternFlowMplsTrafficClassMetricTag) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[961] +func (x *PatternFlowMplsTrafficClassMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[956] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102786,43 +103148,41 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{961} +// Deprecated: Use PatternFlowMplsTrafficClassMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClassMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{956} } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowMplsTrafficClassMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowMplsTrafficClassMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowMplsTrafficClassMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } return 0 } -// The L bit is an attribute of the subobject. The L bit is set if the subobject represents -// a loose hop in the explicit route. If the bit is not set, the subobject represents -// a strict hop in the explicit route. -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit struct { +// Traffic class +type PatternFlowMplsTrafficClass struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowMplsTrafficClass_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTrafficClass_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"` @@ -102830,28 +103190,32 @@ type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit{} +func (x *PatternFlowMplsTrafficClass) Reset() { + *x = PatternFlowMplsTrafficClass{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[962] + mi := &file_otg_proto_msgTypes[957] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) String() string { +func (x *PatternFlowMplsTrafficClass) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) ProtoMessage() {} +func (*PatternFlowMplsTrafficClass) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[962] +func (x *PatternFlowMplsTrafficClass) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[957] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102862,80 +103226,87 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{962} +// Deprecated: Use PatternFlowMplsTrafficClass.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTrafficClass) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{957} } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetChoice() PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum { +func (x *PatternFlowMplsTrafficClass) GetChoice() PatternFlowMplsTrafficClass_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_unspecified + return PatternFlowMplsTrafficClass_Choice_unspecified } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetValue() uint32 { +func (x *PatternFlowMplsTrafficClass) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetValues() []uint32 { +func (x *PatternFlowMplsTrafficClass) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter { +func (x *PatternFlowMplsTrafficClass) GetIncrement() *PatternFlowMplsTrafficClassCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter { +func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClassCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter struct { +func (x *PatternFlowMplsTrafficClass) GetMetricTags() []*PatternFlowMplsTrafficClassMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowMplsBottomOfStackCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 1 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter{} +func (x *PatternFlowMplsBottomOfStackCounter) Reset() { + *x = PatternFlowMplsBottomOfStackCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[963] + mi := &file_otg_proto_msgTypes[958] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) String() string { +func (x *PatternFlowMplsBottomOfStackCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[963] +func (x *PatternFlowMplsBottomOfStackCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[958] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -102946,71 +103317,70 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{963} +// Deprecated: Use PatternFlowMplsBottomOfStackCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{958} } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetStart() string { +func (x *PatternFlowMplsBottomOfStackCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetStep() string { +func (x *PatternFlowMplsBottomOfStackCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetCount() uint32 { +func (x *PatternFlowMplsBottomOfStackCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// This IPv4 address is treated as a prefix based on the prefix length value below. -// Bits beyond the prefix are ignored on receipt and SHOULD be set to zero on transmission. -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address struct { +// 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 PatternFlowMplsBottomOfStackMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_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 *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field + // default = 0 + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 1 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address{} +func (x *PatternFlowMplsBottomOfStackMetricTag) Reset() { + *x = PatternFlowMplsBottomOfStackMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[964] + mi := &file_otg_proto_msgTypes[959] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) String() string { +func (x *PatternFlowMplsBottomOfStackMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStackMetricTag) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[964] +func (x *PatternFlowMplsBottomOfStackMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[959] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103021,80 +103391,79 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{964} -} - -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetChoice() PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_unspecified +// Deprecated: Use PatternFlowMplsBottomOfStackMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStackMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{959} } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetValue() string { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowMplsBottomOfStackMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } return "" } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetValues() []string { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter { - if x != nil { - return x.Increment +func (x *PatternFlowMplsBottomOfStackMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } - return nil + return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowMplsBottomOfStackMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } - return nil + return 0 } -// integer counter pattern -type PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter struct { +// Bottom of stack +type PatternFlowMplsBottomOfStack 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"` + // default = Choice.Enum.auto + Choice *PatternFlowMplsBottomOfStack_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsBottomOfStack_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models // default = 1 - Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` + 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"` + // The OTG implementation can provide a system generated + // value for this property. If the OTG is unable to generate a value + // the default value must be used. // default = 1 - Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` + Auto *uint32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` + // Description missing in models + Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,6,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,8,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter{} +func (x *PatternFlowMplsBottomOfStack) Reset() { + *x = PatternFlowMplsBottomOfStack{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[965] + mi := &file_otg_proto_msgTypes[960] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) String() string { +func (x *PatternFlowMplsBottomOfStack) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) ProtoMessage() {} +func (*PatternFlowMplsBottomOfStack) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[965] +func (x *PatternFlowMplsBottomOfStack) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[960] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103105,72 +103474,94 @@ func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{965} +// Deprecated: Use PatternFlowMplsBottomOfStack.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsBottomOfStack) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{960} } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowMplsBottomOfStack) GetChoice() PatternFlowMplsBottomOfStack_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - return 0 + return PatternFlowMplsBottomOfStack_Choice_unspecified } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowMplsBottomOfStack) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowMplsBottomOfStack) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowMplsBottomOfStack) GetAuto() uint32 { + if x != nil && x.Auto != nil { + return *x.Auto } return 0 } -// The L bit is an attribute of the subobject. The L bit is set if the subobject represents -// a loose hop in the explicit route. If the bit is not set, the subobject represents -// a strict hop in the explicit route. -type PatternFlowRSVPPathExplicitRouteType1ASNumberLBit struct { +func (x *PatternFlowMplsBottomOfStack) GetIncrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfStackCounter { + if x != nil { + return x.Decrement + } + return nil +} + +func (x *PatternFlowMplsBottomOfStack) GetMetricTags() []*PatternFlowMplsBottomOfStackMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + +// integer counter pattern +type PatternFlowMplsTimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_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"` + // default = 64 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // default = 1 + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBit{} +func (x *PatternFlowMplsTimeToLiveCounter) Reset() { + *x = PatternFlowMplsTimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[966] + mi := &file_otg_proto_msgTypes[961] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) String() string { +func (x *PatternFlowMplsTimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[966] +func (x *PatternFlowMplsTimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[961] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103181,80 +103572,70 @@ func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{966} -} - -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetChoice() PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice - } - return PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_unspecified +// Deprecated: Use PatternFlowMplsTimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{961} } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowMplsTimeToLiveCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetValues() []uint32 { - if x != nil { - return x.Values - } - return nil -} - -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter { - if x != nil { - return x.Increment +func (x *PatternFlowMplsTimeToLiveCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return nil + return 0 } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter { - if x != nil { - return x.Decrement +func (x *PatternFlowMplsTimeToLiveCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// integer counter pattern -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter struct { +// 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 PatternFlowMplsTimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Description missing in models + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field + // required = true + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + // Offset in bits relative to start of corresponding header field // 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"` + Offset *uint32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` + // Number of bits to track for metrics starting from configured offset of corresponding + // header field + // default = 8 + Length *uint32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter{} +func (x *PatternFlowMplsTimeToLiveMetricTag) Reset() { + *x = PatternFlowMplsTimeToLiveMetricTag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[967] + mi := &file_otg_proto_msgTypes[962] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) String() string { +func (x *PatternFlowMplsTimeToLiveMetricTag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) ProtoMessage() {} +func (*PatternFlowMplsTimeToLiveMetricTag) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[967] +func (x *PatternFlowMplsTimeToLiveMetricTag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[962] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103265,71 +103646,74 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) ProtoR return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{967} +// Deprecated: Use PatternFlowMplsTimeToLiveMetricTag.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLiveMetricTag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{962} } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start +func (x *PatternFlowMplsTimeToLiveMetricTag) GetName() string { + if x != nil && x.Name != nil { + return *x.Name } - return 0 + return "" } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step +func (x *PatternFlowMplsTimeToLiveMetricTag) GetOffset() uint32 { + if x != nil && x.Offset != nil { + return *x.Offset } return 0 } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count +func (x *PatternFlowMplsTimeToLiveMetricTag) GetLength() uint32 { + if x != nil && x.Length != nil { + return *x.Length } return 0 } -// This field is reserved. It MUST be set to zero on transmission and MUST be ignored -// on receipt. -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved struct { +// Time to live +type PatternFlowMplsTimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowMplsTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowMplsTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 0 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [0] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + // One or more metric tags 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. + MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,7,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved{} +func (x *PatternFlowMplsTimeToLive) Reset() { + *x = PatternFlowMplsTimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[968] + mi := &file_otg_proto_msgTypes[963] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) String() string { +func (x *PatternFlowMplsTimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) ProtoMessage() {} +func (*PatternFlowMplsTimeToLive) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[968] +func (x *PatternFlowMplsTimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[963] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103340,54 +103724,61 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{968} +// Deprecated: Use PatternFlowMplsTimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowMplsTimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{963} } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetChoice() PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum { +func (x *PatternFlowMplsTimeToLive) GetChoice() PatternFlowMplsTimeToLive_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_unspecified + return PatternFlowMplsTimeToLive_Choice_unspecified } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetValue() uint32 { +func (x *PatternFlowMplsTimeToLive) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetValues() []uint32 { +func (x *PatternFlowMplsTimeToLive) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetIncrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter { +func (x *PatternFlowMplsTimeToLive) GetIncrement() *PatternFlowMplsTimeToLiveCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetDecrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter { +func (x *PatternFlowMplsTimeToLive) GetDecrement() *PatternFlowMplsTimeToLiveCounter { if x != nil { return x.Decrement } return nil } +func (x *PatternFlowMplsTimeToLive) GetMetricTags() []*PatternFlowMplsTimeToLiveMetricTag { + if x != nil { + return x.MetricTags + } + return nil +} + // integer counter pattern -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter struct { +type PatternFlowSnmpv2CVersionCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 2048 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -103397,23 +103788,23 @@ type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter{} +func (x *PatternFlowSnmpv2CVersionCounter) Reset() { + *x = PatternFlowSnmpv2CVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[969] + mi := &file_otg_proto_msgTypes[964] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) String() string { +func (x *PatternFlowSnmpv2CVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVersionCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[969] +func (x *PatternFlowSnmpv2CVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[964] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103424,71 +103815,70 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{969} +// Deprecated: Use PatternFlowSnmpv2CVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{964} } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVersionCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVersionCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVersionCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// An identifier of the layer 3 protocol using this path. Standard Ethertype values -// are used e.g. The default value of 2048 ( 0x0800 ) represents Ethertype for IPv4. -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid struct { +// Version +type PatternFlowSnmpv2CVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 2048 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [2048] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid{} +func (x *PatternFlowSnmpv2CVersion) Reset() { + *x = PatternFlowSnmpv2CVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[970] + mi := &file_otg_proto_msgTypes[965] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) String() string { +func (x *PatternFlowSnmpv2CVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) ProtoMessage() {} +func (*PatternFlowSnmpv2CVersion) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[970] +func (x *PatternFlowSnmpv2CVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[965] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103499,80 +103889,80 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{970} +// Deprecated: Use PatternFlowSnmpv2CVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{965} } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetChoice() PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum { +func (x *PatternFlowSnmpv2CVersion) GetChoice() PatternFlowSnmpv2CVersion_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_unspecified + return PatternFlowSnmpv2CVersion_Choice_unspecified } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVersion) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVersion) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetIncrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter { +func (x *PatternFlowSnmpv2CVersion) GetIncrement() *PatternFlowSnmpv2CVersionCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetDecrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter { +func (x *PatternFlowSnmpv2CVersion) GetDecrement() *PatternFlowSnmpv2CVersionCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter struct { +// integer counter pattern +type PatternFlowSnmpv2CPDURequestIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *int32 `protobuf:"varint,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"` + // default = 1 + Step *int32 `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"` + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter{} +func (x *PatternFlowSnmpv2CPDURequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CPDURequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[971] + mi := &file_otg_proto_msgTypes[966] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) String() string { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDURequestIdCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[971] +func (x *PatternFlowSnmpv2CPDURequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[966] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103583,70 +103973,75 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCo return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{971} +// Deprecated: Use PatternFlowSnmpv2CPDURequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDURequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{966} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetStart() string { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetStep() string { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetStep() int32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CPDURequestIdCounter) GetCount() int32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// IPv4 address for a sender node. -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress struct { +// 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 // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum,oneof" json:"choice,omitempty"` + 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.0.0.0 - Value *string `protobuf:"bytes,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *int32 `protobuf:"varint,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"` + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CPDURequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CPDURequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress{} +func (x *PatternFlowSnmpv2CPDURequestId) Reset() { + *x = PatternFlowSnmpv2CPDURequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[972] + mi := &file_otg_proto_msgTypes[967] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) String() string { +func (x *PatternFlowSnmpv2CPDURequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDURequestId) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[972] +func (x *PatternFlowSnmpv2CPDURequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[967] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103657,40 +104052,40 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{972} +// Deprecated: Use PatternFlowSnmpv2CPDURequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDURequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{967} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum { +func (x *PatternFlowSnmpv2CPDURequestId) GetChoice() PatternFlowSnmpv2CPDURequestId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_unspecified + return PatternFlowSnmpv2CPDURequestId_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetValue() string { +func (x *PatternFlowSnmpv2CPDURequestId) GetValue() int32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetValues() []string { +func (x *PatternFlowSnmpv2CPDURequestId) GetValues() []int32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter { +func (x *PatternFlowSnmpv2CPDURequestId) GetIncrement() *PatternFlowSnmpv2CPDURequestIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter { +func (x *PatternFlowSnmpv2CPDURequestId) GetDecrement() *PatternFlowSnmpv2CPDURequestIdCounter { if x != nil { return x.Decrement } @@ -103698,7 +104093,7 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) } // integer counter pattern -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter struct { +type PatternFlowSnmpv2CPDUErrorIndexCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -103714,23 +104109,23 @@ type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter{} +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) Reset() { + *x = PatternFlowSnmpv2CPDUErrorIndexCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[973] + mi := &file_otg_proto_msgTypes[968] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) String() string { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[973] +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[968] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103741,41 +104136,42 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) ProtoRef return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{973} +// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndexCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDUErrorIndexCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{968} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CPDUErrorIndexCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Reserved field, MUST be zero. -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved struct { +// 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 // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum,oneof" json:"choice,omitempty"` + 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"` @@ -103783,28 +104179,28 @@ type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CPDUErrorIndexCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CPDUErrorIndexCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved{} +func (x *PatternFlowSnmpv2CPDUErrorIndex) Reset() { + *x = PatternFlowSnmpv2CPDUErrorIndex{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[974] + mi := &file_otg_proto_msgTypes[969] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) String() string { +func (x *PatternFlowSnmpv2CPDUErrorIndex) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) ProtoMessage() {} +func (*PatternFlowSnmpv2CPDUErrorIndex) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[974] +func (x *PatternFlowSnmpv2CPDUErrorIndex) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[969] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103815,40 +104211,40 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{974} +// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CPDUErrorIndex) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{969} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetChoice() PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_unspecified + return PatternFlowSnmpv2CPDUErrorIndex_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetValue() uint32 { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetIncrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter { +func (x *PatternFlowSnmpv2CPDUErrorIndex) GetDecrement() *PatternFlowSnmpv2CPDUErrorIndexCounter { if x != nil { return x.Decrement } @@ -103856,39 +104252,39 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetDecrement() } // integer counter pattern -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter struct { +type PatternFlowSnmpv2CBulkPDURequestIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *int32 `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"` + Step *int32 `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"` + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter{} +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CBulkPDURequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[975] + mi := &file_otg_proto_msgTypes[970] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) String() string { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[975] +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[970] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103899,71 +104295,75 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{975} +// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDURequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{970} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetStep() int32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CBulkPDURequestIdCounter) GetCount() int32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// A 16-bit identifier used in the SENDER_TEMPLATE that can be changed to allow a sender -// to share resources with itself. -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId struct { +// 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 // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 1 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *int32 `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"` + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CBulkPDURequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CBulkPDURequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId{} +func (x *PatternFlowSnmpv2CBulkPDURequestId) Reset() { + *x = PatternFlowSnmpv2CBulkPDURequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[976] + mi := &file_otg_proto_msgTypes[971] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) String() string { +func (x *PatternFlowSnmpv2CBulkPDURequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDURequestId) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[976] +func (x *PatternFlowSnmpv2CBulkPDURequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[971] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -103974,154 +104374,81 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{976} +// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDURequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{971} } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetChoice() PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_unspecified + return PatternFlowSnmpv2CBulkPDURequestId_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetValue() uint32 { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetValue() int32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetValues() []int32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetIncrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter { +func (x *PatternFlowSnmpv2CBulkPDURequestId) GetDecrement() *PatternFlowSnmpv2CBulkPDURequestIdCounter { if x != nil { return x.Decrement } return nil } -// integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServVersionCounter 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 *PatternFlowRSVPPathSenderTspecIntServVersionCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServVersionCounter{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[977] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PatternFlowRSVPPathSenderTspecIntServVersionCounter) ProtoMessage() {} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[977] - 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 PatternFlowRSVPPathSenderTspecIntServVersionCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServVersionCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{977} -} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetStart() uint32 { - if x != nil && x.Start != nil { - return *x.Start - } - return 0 -} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetStep() uint32 { - if x != nil && x.Step != nil { - return *x.Step - } - return 0 -} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetCount() uint32 { - if x != nil && x.Count != nil { - return *x.Count - } - return 0 -} - -// Message format version number. -type PatternFlowRSVPPathSenderTspecIntServVersion struct { +// 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 // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum,oneof" json:"choice,omitempty"` + 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"` - // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` - // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServVersion{} +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) Reset() { + *x = PatternFlowSnmpv2CBulkPDUNonRepeaters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[978] + mi := &file_otg_proto_msgTypes[972] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) String() string { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServVersion) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[978] +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[972] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104132,48 +104459,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServVersion) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServVersion.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServVersion) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{978} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUNonRepeaters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{972} } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetChoice() PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetChoice() PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServVersion_Choice_unspecified + return PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetValue() uint32 { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServVersionCounter { - if x != nil { - return x.Increment - } - return nil -} - -func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServVersionCounter { - if x != nil { - return x.Decrement - } - return nil -} - // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServReserved1Counter struct { +type PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -104189,23 +104502,23 @@ type PatternFlowRSVPPathSenderTspecIntServReserved1Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved1Counter{} +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Reset() { + *x = PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[979] + mi := &file_otg_proto_msgTypes[973] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) String() string { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[979] +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[973] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104216,41 +104529,43 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{979} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{973} } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Reserved. -type PatternFlowRSVPPathSenderTspecIntServReserved1 struct { +// 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 // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum,oneof" json:"choice,omitempty"` + 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"` @@ -104258,28 +104573,28 @@ type PatternFlowRSVPPathSenderTspecIntServReserved1 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved1{} +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) Reset() { + *x = PatternFlowSnmpv2CBulkPDUMaxRepetitions{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[980] + mi := &file_otg_proto_msgTypes[974] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) String() string { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved1) ProtoMessage() {} +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[980] +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[974] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104290,40 +104605,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved1) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{980} +// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{974} } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetChoice() PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetChoice() PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_unspecified + return PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetValue() uint32 { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServReserved1Counter { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetIncrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServReserved1Counter { +func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions) GetDecrement() *PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter { if x != nil { return x.Decrement } @@ -104331,39 +104646,39 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetDecrement() *Pattern } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter struct { +type PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 7 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *int32 `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"` + Step *int32 `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"` + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter{} +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[981] + mi := &file_otg_proto_msgTypes[975] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[981] +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[975] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104374,70 +104689,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{981} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{975} } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetStep() int32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter) GetCount() int32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Overall length (7 words not including header). -type PatternFlowRSVPPathSenderTspecIntServOverallLength struct { +// Integer value returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIntegerValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 7 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *int32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [7] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServOverallLength{} +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIntegerValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[982] + mi := &file_otg_proto_msgTypes[976] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServOverallLength) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[982] +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[976] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104448,80 +104763,80 @@ func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLength.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServOverallLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{982} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{976} } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetChoice() PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValue() int32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetValues() []int32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter { if x != nil { return x.Decrement } return nil } -// integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter struct { +// ipv4 counter pattern +type PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 1 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,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"` + // 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 *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter{} +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[983] + mi := &file_otg_proto_msgTypes[977] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[983] +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[977] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104532,70 +104847,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{983} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{977} } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Service header, service number - '1' (Generic information) if in a PATH message. -type PatternFlowRSVPPathSenderTspecIntServServiceHeader struct { +// IPv4 address returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueIpAddressValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 1 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,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"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServServiceHeader{} +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[984] + mi := &file_otg_proto_msgTypes[978] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[984] +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[978] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104606,40 +104921,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeader.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{984} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{978} } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetChoice() PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter { if x != nil { return x.Decrement } @@ -104647,7 +104962,7 @@ func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetDecrement() *Pat } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServZeroBitCounter struct { +type PatternFlowSnmpv2CVariableBindingValueCounterValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -104663,23 +104978,23 @@ type PatternFlowRSVPPathSenderTspecIntServZeroBitCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServZeroBitCounter{} +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueCounterValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[985] + mi := &file_otg_proto_msgTypes[979] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[985] +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[979] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104690,41 +105005,41 @@ func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{985} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{979} } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// MUST be 0. -type PatternFlowRSVPPathSenderTspecIntServZeroBit struct { +// Counter returned for the requested OID. +type PatternFlowSnmpv2CVariableBindingValueCounterValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum,oneof" json:"choice,omitempty"` + 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"` @@ -104732,28 +105047,28 @@ type PatternFlowRSVPPathSenderTspecIntServZeroBit struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServZeroBit{} +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueCounterValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[986] + mi := &file_otg_proto_msgTypes[980] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServZeroBit) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[986] +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[980] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104764,40 +105079,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBit.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServZeroBit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{986} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueCounterValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{980} } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetChoice() PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueCounterValueCounter { if x != nil { return x.Decrement } @@ -104805,7 +105120,7 @@ func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetDecrement() *PatternFl } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServReserved2Counter struct { +type PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -104821,23 +105136,23 @@ type PatternFlowRSVPPathSenderTspecIntServReserved2Counter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved2Counter{} +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[987] + mi := &file_otg_proto_msgTypes[981] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[987] +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[981] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104848,41 +105163,41 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2Counter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{987} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{981} } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Reserved. -type PatternFlowRSVPPathSenderTspecIntServReserved2 struct { +// 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 *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum,oneof" json:"choice,omitempty"` + 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"` @@ -104890,28 +105205,28 @@ type PatternFlowRSVPPathSenderTspecIntServReserved2 struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServReserved2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServReserved2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved2{} +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[988] + mi := &file_otg_proto_msgTypes[982] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved2) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[988] +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[982] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104922,40 +105237,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved2) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{988} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{982} } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetChoice() PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServReserved2Counter { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServReserved2Counter { +func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter { if x != nil { return x.Decrement } @@ -104963,39 +105278,39 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetDecrement() *Pattern } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter struct { +type PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 6 - Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint64 `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"` + Step *uint64 `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"` + Count *uint64 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter{} +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[989] + mi := &file_otg_proto_msgTypes[983] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[989] +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[983] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105006,70 +105321,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) ProtoR return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{989} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{983} } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStart() uint64 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetStep() uint64 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter) GetCount() uint64 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Length of service data, 6 words not including per-service header. -type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData struct { +// 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 *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 6 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // default = 0 + Value *uint64 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [6] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = [0] + Values []uint64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData{} +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[990] + mi := &file_otg_proto_msgTypes[984] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[990] +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[984] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105080,40 +105395,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{990} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{984} } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetChoice() PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValue() uint64 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetValues() []uint64 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter { if x != nil { return x.Decrement } @@ -105121,13 +105436,13 @@ func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetDecrement( } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter struct { +type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 127 + // default = 0 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -105137,23 +105452,23 @@ type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter str Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter{} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[991] + mi := &file_otg_proto_msgTypes[985] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[991] +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[985] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105164,70 +105479,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{991} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{985} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Parameter ID, parameter 127 (Token Bucket TSpec) -type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec 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 *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum,oneof" json:"choice,omitempty"` + 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 = 127 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [127] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec{} +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Reset() { + *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[992] + mi := &file_otg_proto_msgTypes[986] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) String() string { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) ProtoMessage() {} +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[992] +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[986] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105238,40 +105553,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) Proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{992} +// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{986} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetChoice() PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_unspecified + return PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetValue() uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetIncrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter { +func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue) GetDecrement() *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter { if x != nil { return x.Decrement } @@ -105279,39 +105594,39 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetDe } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter struct { +type PatternFlowSnmpv2CCommonRequestIdCounter 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"` + Start *int32 `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"` + Step *int32 `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"` + Count *int32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter{} +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) Reset() { + *x = PatternFlowSnmpv2CCommonRequestIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[993] + mi := &file_otg_proto_msgTypes[987] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) String() string { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) ProtoMessage() {} +func (*PatternFlowSnmpv2CCommonRequestIdCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[993] +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[987] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105322,70 +105637,75 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{993} +// Deprecated: Use PatternFlowSnmpv2CCommonRequestIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CCommonRequestIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{987} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetStart() uint32 { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStart() int32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetStep() uint32 { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetStep() int32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetCount() uint32 { +func (x *PatternFlowSnmpv2CCommonRequestIdCounter) GetCount() int32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Parameter 127 flags (none set) -type PatternFlowRSVPPathSenderTspecIntServParameter127Flag struct { +// 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 *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum,oneof" json:"choice,omitempty"` + 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 *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Value *int32 `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"` + Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowSnmpv2CCommonRequestIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowSnmpv2CCommonRequestIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127Flag{} +func (x *PatternFlowSnmpv2CCommonRequestId) Reset() { + *x = PatternFlowSnmpv2CCommonRequestId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[994] + mi := &file_otg_proto_msgTypes[988] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) String() string { +func (x *PatternFlowSnmpv2CCommonRequestId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag) ProtoMessage() {} +func (*PatternFlowSnmpv2CCommonRequestId) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[994] +func (x *PatternFlowSnmpv2CCommonRequestId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[988] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105396,54 +105716,125 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Flag.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{994} +// Deprecated: Use PatternFlowSnmpv2CCommonRequestId.ProtoReflect.Descriptor instead. +func (*PatternFlowSnmpv2CCommonRequestId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{988} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum { +func (x *PatternFlowSnmpv2CCommonRequestId) GetChoice() PatternFlowSnmpv2CCommonRequestId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_unspecified + return PatternFlowSnmpv2CCommonRequestId_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetValue() uint32 { +func (x *PatternFlowSnmpv2CCommonRequestId) GetValue() int32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetValues() []uint32 { +func (x *PatternFlowSnmpv2CCommonRequestId) GetValues() []int32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter { +func (x *PatternFlowSnmpv2CCommonRequestId) GetIncrement() *PatternFlowSnmpv2CCommonRequestIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter { +func (x *PatternFlowSnmpv2CCommonRequestId) GetDecrement() *PatternFlowSnmpv2CCommonRequestIdCounter { if x != nil { return x.Decrement } return nil } +// The one's complement of the one's complement sum of the message, with the checksum +// field replaced by zero for the purpose of computing the checksum. An all-zero value +// means that no checksum was transmitted. +type PatternFlowRsvpRsvpChecksum struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of checksum + // default = Choice.Enum.generated + Choice *PatternFlowRsvpRsvpChecksum_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpRsvpChecksum_Choice_Enum,oneof" json:"choice,omitempty"` + // A system generated checksum value + // default = Generated.Enum.good + Generated *PatternFlowRsvpRsvpChecksum_Generated_Enum `protobuf:"varint,2,opt,name=generated,proto3,enum=otg.PatternFlowRsvpRsvpChecksum_Generated_Enum,oneof" json:"generated,omitempty"` + // A custom checksum value + Custom *uint32 `protobuf:"varint,3,opt,name=custom,proto3,oneof" json:"custom,omitempty"` +} + +func (x *PatternFlowRsvpRsvpChecksum) Reset() { + *x = PatternFlowRsvpRsvpChecksum{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[989] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRsvpRsvpChecksum) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRsvpRsvpChecksum) ProtoMessage() {} + +func (x *PatternFlowRsvpRsvpChecksum) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[989] + 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 PatternFlowRsvpRsvpChecksum.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpRsvpChecksum) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{989} +} + +func (x *PatternFlowRsvpRsvpChecksum) GetChoice() PatternFlowRsvpRsvpChecksum_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRsvpRsvpChecksum_Choice_unspecified +} + +func (x *PatternFlowRsvpRsvpChecksum) GetGenerated() PatternFlowRsvpRsvpChecksum_Generated_Enum { + if x != nil && x.Generated != nil { + return *x.Generated + } + return PatternFlowRsvpRsvpChecksum_Generated_unspecified +} + +func (x *PatternFlowRsvpRsvpChecksum) GetCustom() uint32 { + if x != nil && x.Custom != nil { + return *x.Custom + } + return 0 +} + // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter struct { +type PatternFlowRsvpTimeToLiveCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 5 + // default = 64 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -105453,23 +105844,23 @@ type PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter{} +func (x *PatternFlowRsvpTimeToLiveCounter) Reset() { + *x = PatternFlowRsvpTimeToLiveCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[995] + mi := &file_otg_proto_msgTypes[990] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) String() string { +func (x *PatternFlowRsvpTimeToLiveCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) ProtoMessage() {} +func (*PatternFlowRsvpTimeToLiveCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[995] +func (x *PatternFlowRsvpTimeToLiveCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[990] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105480,70 +105871,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{995} +// Deprecated: Use PatternFlowRsvpTimeToLiveCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpTimeToLiveCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{990} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetStart() uint32 { +func (x *PatternFlowRsvpTimeToLiveCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetStep() uint32 { +func (x *PatternFlowRsvpTimeToLiveCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetCount() uint32 { +func (x *PatternFlowRsvpTimeToLiveCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Parameter 127 length, 5 words not including per-service header -type PatternFlowRSVPPathSenderTspecIntServParameter127Length struct { +// The IP time-to-live(TTL) value with which the message was sent. +type PatternFlowRsvpTimeToLive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRsvpTimeToLive_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpTimeToLive_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 5 + // default = 64 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [5] + // default = [64] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRsvpTimeToLiveCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRsvpTimeToLiveCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127Length{} +func (x *PatternFlowRsvpTimeToLive) Reset() { + *x = PatternFlowRsvpTimeToLive{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[996] + mi := &file_otg_proto_msgTypes[991] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) String() string { +func (x *PatternFlowRsvpTimeToLive) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length) ProtoMessage() {} +func (*PatternFlowRsvpTimeToLive) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[996] +func (x *PatternFlowRsvpTimeToLive) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[991] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105554,40 +105945,40 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Length.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{996} +// Deprecated: Use PatternFlowRsvpTimeToLive.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpTimeToLive) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{991} } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum { +func (x *PatternFlowRsvpTimeToLive) GetChoice() PatternFlowRsvpTimeToLive_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_unspecified + return PatternFlowRsvpTimeToLive_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetValue() uint32 { +func (x *PatternFlowRsvpTimeToLive) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetValues() []uint32 { +func (x *PatternFlowRsvpTimeToLive) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter { +func (x *PatternFlowRsvpTimeToLive) GetIncrement() *PatternFlowRsvpTimeToLiveCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter { +func (x *PatternFlowRsvpTimeToLive) GetDecrement() *PatternFlowRsvpTimeToLiveCounter { if x != nil { return x.Decrement } @@ -105595,7 +105986,7 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetDecrement() } // integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter struct { +type PatternFlowRsvpReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -105611,23 +106002,23 @@ type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter{} +func (x *PatternFlowRsvpReservedCounter) Reset() { + *x = PatternFlowRsvpReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[997] + mi := &file_otg_proto_msgTypes[992] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) String() string { +func (x *PatternFlowRsvpReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) ProtoMessage() {} +func (*PatternFlowRsvpReservedCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[997] +func (x *PatternFlowRsvpReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[992] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105638,42 +106029,41 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{997} +// Deprecated: Use PatternFlowRsvpReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{992} } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetStart() uint32 { +func (x *PatternFlowRsvpReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetStep() uint32 { +func (x *PatternFlowRsvpReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetCount() uint32 { +func (x *PatternFlowRsvpReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// The minimum policed unit parameter should generally be set equal to the size of the -// smallest packet generated by the application. -type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit struct { +// Reserved +type PatternFlowRsvpReserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRsvpReserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRsvpReserved_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"` @@ -105681,28 +106071,28 @@ type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit struct { // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRsvpReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRsvpReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit{} +func (x *PatternFlowRsvpReserved) Reset() { + *x = PatternFlowRsvpReserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[998] + mi := &file_otg_proto_msgTypes[993] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) String() string { +func (x *PatternFlowRsvpReserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) ProtoMessage() {} +func (*PatternFlowRsvpReserved) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[998] +func (x *PatternFlowRsvpReserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[993] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105713,80 +106103,80 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{998} +// Deprecated: Use PatternFlowRsvpReserved.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpReserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{993} } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetChoice() PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum { +func (x *PatternFlowRsvpReserved) GetChoice() PatternFlowRsvpReserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_unspecified + return PatternFlowRsvpReserved_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetValue() uint32 { +func (x *PatternFlowRsvpReserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetValues() []uint32 { +func (x *PatternFlowRsvpReserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter { +func (x *PatternFlowRsvpReserved) GetIncrement() *PatternFlowRsvpReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter { +func (x *PatternFlowRsvpReserved) GetDecrement() *PatternFlowRsvpReservedCounter { if x != nil { return x.Decrement } return nil } -// integer counter pattern -type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter struct { +// ipv4 counter pattern +type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter 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"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,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"` + // 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 *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[999] + mi := &file_otg_proto_msgTypes[994] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[999] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[994] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105797,72 +106187,70 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) ProtoRef return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{999} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{994} } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetStart() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetStep() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetCount() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// The maximum packet size parameter should be set to the size of the largest packet -// the application might wish to generate. This value must, by definition, be equal -// to or larger than the value of The minimum policed unit. -type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize struct { +// IPv4 address of the egress node for the tunnel. +type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_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"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,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"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1000] + mi := &file_otg_proto_msgTypes[995] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1000] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[995] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105873,80 +106261,80 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1000} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{995} } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetChoice() PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_unspecified + return PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_unspecified } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetValue() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetValues() []uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter { if x != nil { return x.Decrement } return nil } -// ipv4 counter pattern -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter struct { +// integer counter pattern +type PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 0.0.0.0 - Start *string `protobuf:"bytes,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,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"` + // 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 *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1001] + mi := &file_otg_proto_msgTypes[996] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1001] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[996] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -105957,71 +106345,70 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) Proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1001} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{996} } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetStart() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } - return "" + return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetStep() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } - return "" + return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetCount() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// A 32-bit unicast, host address. Any network-reachable interface address is allowed -// here. Illegal addresses, such as certain loopback addresses, SHOULD NOT be used. -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address struct { +// Reserved field, MUST be zero. +type PatternFlowRSVPPathSessionLspTunnelIpv4Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_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"` + // default = 0 + Value *uint32 `protobuf:"varint,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"` + // default = [0] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1002] + mi := &file_otg_proto_msgTypes[997] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1002] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[997] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106032,40 +106419,40 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1002} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{997} } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetChoice() PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_unspecified + return PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_unspecified } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetValue() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } - return "" + return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetValues() []string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetIncrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetDecrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter { if x != nil { return x.Decrement } @@ -106073,13 +106460,13 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetDecrement } // integer counter pattern -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter struct { +type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = 32 + // default = 1 Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 @@ -106089,23 +106476,23 @@ type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter struct { Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1003] + mi := &file_otg_proto_msgTypes[998] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1003] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[998] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106116,70 +106503,71 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1003} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{998} } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetStart() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetStart() uint32 { if x != nil && x.Start != nil { return *x.Start } return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetStep() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetStep() uint32 { if x != nil && x.Step != nil { return *x.Step } return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetCount() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// Prefix-length of IPv4 address. -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength struct { +// A 16-bit identifier used in the SESSION that remains constant over the life of the +// tunnel. +type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 32 + // default = 1 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [32] + // default = [1] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength{} +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1004] + mi := &file_otg_proto_msgTypes[999] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) String() string { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1004] +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[999] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106190,81 +106578,80 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1004} +// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{999} } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetChoice() PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetChoice() PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_unspecified + return PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_unspecified } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetValue() uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetValues() []uint32 { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetValues() []uint32 { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetIncrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetIncrement() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetDecrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter { +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId) GetDecrement() *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter { if x != nil { return x.Decrement } return nil } -// 0x01 = Global label. This flag indicates that the label will be understood if received -// on any interface. -type PatternFlowRSVPPathRecordRouteType1LabelFlags struct { +// integer counter pattern +type PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models - // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum,oneof" json:"choice,omitempty"` + // default = 0 + Start *uint32 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` // Description missing in models // default = 1 - Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + Step *uint32 `protobuf:"varint,2,opt,name=step,proto3,oneof" json:"step,omitempty"` // Description missing in models - // default = [1] - Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // default = 1 + Count *uint32 `protobuf:"varint,3,opt,name=count,proto3,oneof" json:"count,omitempty"` } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1LabelFlags{} +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1005] + mi := &file_otg_proto_msgTypes[1000] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) String() string { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1LabelFlags) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1005] +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1000] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106275,66 +106662,70 @@ func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelFlags.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1LabelFlags) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1005} +// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1000} } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetChoice() PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum { - if x != nil && x.Choice != nil { - return *x.Choice +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_unspecified + return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetValue() uint32 { - if x != nil && x.Value != nil { - return *x.Value +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetValues() []uint32 { - if x != nil { - return x.Values +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count } - return nil + return 0 } -// The C-Type of the included Label Object. Copied from the Label object. -type PatternFlowRSVPPathRecordRouteType1LabelCType struct { +// TBD +type PatternFlowRSVPPathSessionExtTunnelIdAsInteger struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum,oneof" json:"choice,omitempty"` // Description missing in models - // default = 1 + // default = 0 Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` // Description missing in models - // default = [1] + // default = [0] Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1LabelCType{} +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsInteger{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1006] + mi := &file_otg_proto_msgTypes[1001] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) String() string { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1LabelCType) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1006] +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1001] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106345,66 +106736,80 @@ func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelCType.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1LabelCType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1006} +// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsInteger.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1001} } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetChoice() PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetChoice() PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_unspecified + return PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_unspecified } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetValue() uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetValue() uint32 { if x != nil && x.Value != nil { return *x.Value } return 0 } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetValues() []uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetValues() []uint32 { if x != nil { return x.Values } return nil } -// integer counter pattern -type PatternFlowRSVPPathObjectsCustomTypeCounter struct { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetIncrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger) GetDecrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// ipv4 counter pattern +type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter 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"` + // default = 0.0.0.0 + Start *string `protobuf:"bytes,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"` + // 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 *PatternFlowRSVPPathObjectsCustomTypeCounter) Reset() { - *x = PatternFlowRSVPPathObjectsCustomTypeCounter{} +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1007] + mi := &file_otg_proto_msgTypes[1002] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) String() string { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathObjectsCustomTypeCounter) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) ProtoMessage() {} -func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1007] +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1002] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106415,70 +106820,70 @@ func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathObjectsCustomTypeCounter.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathObjectsCustomTypeCounter) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1007} +// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1002} } -func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetStart() uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetStart() string { if x != nil && x.Start != nil { return *x.Start } - return 0 + return "" } -func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetStep() uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetStep() string { if x != nil && x.Step != nil { return *x.Step } - return 0 + return "" } -func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetCount() uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } -// User defined object type. -type PatternFlowRSVPPathObjectsCustomType struct { +// IPv4 address of the ingress endpoint for the tunnel. +type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description missing in models // default = Choice.Enum.value - Choice *PatternFlowRSVPPathObjectsCustomType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathObjectsCustomType_Choice_Enum,oneof" json:"choice,omitempty"` + Choice *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_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"` + // default = 0.0.0.0 + Value *string `protobuf:"bytes,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"` + // default = ['0.0.0.0'] + Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` // Description missing in models - Increment *PatternFlowRSVPPathObjectsCustomTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + Increment *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` // Description missing in models - Decrement *PatternFlowRSVPPathObjectsCustomTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` + Decrement *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *PatternFlowRSVPPathObjectsCustomType) Reset() { - *x = PatternFlowRSVPPathObjectsCustomType{} +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1008] + mi := &file_otg_proto_msgTypes[1003] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathObjectsCustomType) String() string { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathObjectsCustomType) ProtoMessage() {} +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) ProtoMessage() {} -func (x *PatternFlowRSVPPathObjectsCustomType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1008] +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1003] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106489,80 +106894,80 @@ func (x *PatternFlowRSVPPathObjectsCustomType) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathObjectsCustomType.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathObjectsCustomType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1008} +// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1003} } -func (x *PatternFlowRSVPPathObjectsCustomType) GetChoice() PatternFlowRSVPPathObjectsCustomType_Choice_Enum { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetChoice() PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum { if x != nil && x.Choice != nil { return *x.Choice } - return PatternFlowRSVPPathObjectsCustomType_Choice_unspecified + return PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_unspecified } -func (x *PatternFlowRSVPPathObjectsCustomType) GetValue() uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetValue() string { if x != nil && x.Value != nil { return *x.Value } - return 0 + return "" } -func (x *PatternFlowRSVPPathObjectsCustomType) GetValues() []uint32 { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetValues() []string { if x != nil { return x.Values } return nil } -func (x *PatternFlowRSVPPathObjectsCustomType) GetIncrement() *PatternFlowRSVPPathObjectsCustomTypeCounter { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetIncrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter { if x != nil { return x.Increment } return nil } -func (x *PatternFlowRSVPPathObjectsCustomType) GetDecrement() *PatternFlowRSVPPathObjectsCustomTypeCounter { +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4) GetDecrement() *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter { if x != nil { return x.Decrement } return nil } -// Version details -type Version struct { +// ipv4 counter pattern +type PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter 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 = 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 *Version) Reset() { - *x = Version{} +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1009] + mi := &file_otg_proto_msgTypes[1004] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Version) String() string { +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Version) ProtoMessage() {} +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) ProtoMessage() {} -func (x *Version) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1009] +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1004] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106573,59 +106978,71 @@ 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{1009} +// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1004} } -func (x *Version) GetApiSpecVersion() string { - if x != nil && x.ApiSpecVersion != nil { - return *x.ApiSpecVersion +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } return "" } -func (x *Version) GetSdkVersion() string { - if x != nil && x.SdkVersion != nil { - return *x.SdkVersion +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step } return "" } -func (x *Version) GetAppVersion() string { - if x != nil && x.AppVersion != nil { - return *x.AppVersion +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter) 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 { +// The IPv4 address of the interface through which the last RSVP-knowledgeable hop forwarded +// this message. +type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address 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 *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_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 *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *Success) Reset() { - *x = Success{} +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4Address{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1010] + mi := &file_otg_proto_msgTypes[1005] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Success) String() string { +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Success) ProtoMessage() {} +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) ProtoMessage() {} -func (x *Success) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1010] +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1005] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106636,91 +107053,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{1010} +// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1005} } -func (x *Success) GetWarning() *Warning { - if x != nil { - return x.Warning +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetChoice() PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - 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"` + return PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_unspecified } -func (x *Failure) Reset() { - *x = Failure{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1011] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } + return "" } -func (x *Failure) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Failure) ProtoMessage() {} - -func (x *Failure) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1011] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetValues() []string { + if x != nil { + return x.Values } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Failure.ProtoReflect.Descriptor instead. -func (*Failure) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1011} +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetIncrement() *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter { + if x != nil { + return x.Increment + } + return nil } -func (x *Failure) GetError() *Error { +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address) GetDecrement() *PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter { if x != nil { - return x.Error + return x.Decrement } return nil } -type SetConfigRequest struct { +// integer counter pattern +type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter 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 *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 *SetConfigRequest) Reset() { - *x = SetConfigRequest{} +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1012] + mi := &file_otg_proto_msgTypes[1006] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetConfigRequest) String() string { +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetConfigRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) ProtoMessage() {} -func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1012] +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1006] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106731,43 +107137,73 @@ 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{1012} +// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1006} } -func (x *SetConfigRequest) GetConfig() *Config { - if x != nil { - return x.Config +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type UpdateConfigRequest struct { +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Logical Interface Handle (LIH) is used to distinguish logical outgoing interfaces. +// A node receiving an LIH in a Path message saves its value and returns it in the HOP +// objects of subsequent Resv messages sent to the node that originated the LIH. The +// LIH should be identically zero if there is no logical interface handle. +type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle 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 = Choice.Enum.value + Choice *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_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 *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *UpdateConfigRequest) Reset() { - *x = UpdateConfigRequest{} +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1013] + mi := &file_otg_proto_msgTypes[1007] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigRequest) String() string { +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) ProtoMessage() {} -func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1013] +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1007] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106778,90 +107214,80 @@ 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{1013} +// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1007} } -func (x *UpdateConfigRequest) GetConfigUpdate() *ConfigUpdate { - if x != nil { - return x.ConfigUpdate +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetChoice() PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } - 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"` + return PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_unspecified } -func (x *SetConfigResponse) Reset() { - *x = SetConfigResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1014] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *SetConfigResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetConfigResponse) ProtoMessage() {} - -func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1014] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetValues() []uint32 { + if x != nil { + return x.Values } - return mi.MessageOf(x) + return nil } -// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. -func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1014} +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetIncrement() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter { + if x != nil { + return x.Increment + } + return nil } -func (x *SetConfigResponse) GetWarning() *Warning { +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle) GetDecrement() *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter { if x != nil { - return x.Warning + return x.Decrement } return nil } -type GetConfigResponse struct { +// integer counter pattern +type PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter 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 = 30000 + 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 *GetConfigResponse) Reset() { - *x = GetConfigResponse{} +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) Reset() { + *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1015] + mi := &file_otg_proto_msgTypes[1008] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetConfigResponse) String() string { +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetConfigResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) ProtoMessage() {} -func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1015] +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1008] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106872,43 +107298,70 @@ 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{1015} +// Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1008} } -func (x *GetConfigResponse) GetConfig() *Config { - if x != nil { - return x.Config +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type UpdateConfigResponse struct { +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// The refresh timeout period R used to generate this message;in milliseconds. +type PatternFlowRSVPPathTimeValuesType1RefreshPeriodR 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 *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 30000 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [30000] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *UpdateConfigResponse) Reset() { - *x = UpdateConfigResponse{} +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) Reset() { + *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodR{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1016] + mi := &file_otg_proto_msgTypes[1009] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UpdateConfigResponse) String() string { +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateConfigResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) ProtoMessage() {} -func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1016] +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1009] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106919,43 +107372,80 @@ 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{1016} +// Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1009} } -func (x *UpdateConfigResponse) GetWarning() *Warning { +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetChoice() PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_unspecified +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetValues() []uint32 { if x != nil { - return x.Warning + return x.Values } return nil } -type SetControlStateRequest struct { +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetIncrement() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR) GetDecrement() *PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter 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 = 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 *SetControlStateRequest) Reset() { - *x = SetControlStateRequest{} +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1017] + mi := &file_otg_proto_msgTypes[1010] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateRequest) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) ProtoMessage() {} -func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1017] +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1010] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106966,43 +107456,72 @@ 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{1017} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1010} } -func (x *SetControlStateRequest) GetControlState() *ControlState { - if x != nil { - return x.ControlState +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type SetControlStateResponse struct { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// The L bit is an attribute of the subobject. The L bit is set if the subobject represents +// a loose hop in the explicit route. If the bit is not set, the subobject represents +// a strict hop in the explicit route. +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit 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 *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_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 *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *SetControlStateResponse) Reset() { - *x = SetControlStateResponse{} +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1018] + mi := &file_otg_proto_msgTypes[1011] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlStateResponse) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlStateResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) ProtoMessage() {} -func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1018] +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1011] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107013,43 +107532,80 @@ 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{1018} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1011} } -func (x *SetControlStateResponse) GetWarning() *Warning { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetChoice() PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_unspecified +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetValues() []uint32 { if x != nil { - return x.Warning + return x.Values } return nil } -type SetControlActionRequest struct { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// ipv4 counter pattern +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter 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 = 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 *SetControlActionRequest) Reset() { - *x = SetControlActionRequest{} +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1019] + mi := &file_otg_proto_msgTypes[1012] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionRequest) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) ProtoMessage() {} -func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1019] +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1012] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107060,43 +107616,71 @@ 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{1019} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1012} } -func (x *SetControlActionRequest) GetControlAction() *ControlAction { - if x != nil { - return x.ControlAction +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return "" } -type SetControlActionResponse struct { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// This IPv4 address is treated as a prefix based on the prefix length value below. +// Bits beyond the prefix are ignored on receipt and SHOULD be set to zero on transmission. +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address 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"` + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_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 *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *SetControlActionResponse) Reset() { - *x = SetControlActionResponse{} +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1020] + mi := &file_otg_proto_msgTypes[1013] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetControlActionResponse) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetControlActionResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) ProtoMessage() {} -func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1020] +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1013] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107107,43 +107691,80 @@ func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. -func (*SetControlActionResponse) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1020} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1013} } -func (x *SetControlActionResponse) GetControlActionResponse() *ControlActionResponse { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetChoice() PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_unspecified +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetValues() []string { if x != nil { - return x.ControlActionResponse + return x.Values } return nil } -type GetMetricsRequest struct { +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter 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 *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 *GetMetricsRequest) Reset() { - *x = GetMetricsRequest{} +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1021] + mi := &file_otg_proto_msgTypes[1014] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsRequest) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) ProtoMessage() {} -func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1021] +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1014] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107154,43 +107775,72 @@ 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{1021} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1014} } -func (x *GetMetricsRequest) GetMetricsRequest() *MetricsRequest { - if x != nil { - return x.MetricsRequest +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetMetricsResponse struct { +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// The L bit is an attribute of the subobject. The L bit is set if the subobject represents +// a loose hop in the explicit route. If the bit is not set, the subobject represents +// a strict hop in the explicit route. +type PatternFlowRSVPPathExplicitRouteType1ASNumberLBit 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 *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_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 *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetMetricsResponse) Reset() { - *x = GetMetricsResponse{} +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1022] + mi := &file_otg_proto_msgTypes[1015] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetMetricsResponse) String() string { +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetMetricsResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) ProtoMessage() {} -func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1022] +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1015] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107201,43 +107851,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{1022} +// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1015} } -func (x *GetMetricsResponse) GetMetricsResponse() *MetricsResponse { +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetChoice() PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_unspecified +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetValues() []uint32 { if x != nil { - return x.MetricsResponse + return x.Values } return nil } -type GetStatesRequest struct { +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetIncrement() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit) GetDecrement() *PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter 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 + 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 *GetStatesRequest) Reset() { - *x = GetStatesRequest{} +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1023] + mi := &file_otg_proto_msgTypes[1016] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesRequest) String() string { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) ProtoMessage() {} -func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1023] +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1016] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107248,43 +107935,71 @@ 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{1023} +// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1016} } -func (x *GetStatesRequest) GetStatesRequest() *StatesRequest { - if x != nil { - return x.StatesRequest +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetStatesResponse struct { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// This field is reserved. It MUST be set to zero on transmission and MUST be ignored +// on receipt. +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved 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 *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_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 *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetStatesResponse) Reset() { - *x = GetStatesResponse{} +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1024] + mi := &file_otg_proto_msgTypes[1017] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStatesResponse) String() string { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStatesResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) ProtoMessage() {} -func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1024] +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1017] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107295,43 +108010,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{1024} +// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1017} } -func (x *GetStatesResponse) GetStatesResponse() *StatesResponse { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetChoice() PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_unspecified +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetValues() []uint32 { if x != nil { - return x.StatesResponse + return x.Values } return nil } -type GetCaptureRequest struct { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetIncrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved) GetDecrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// integer counter pattern +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter 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 = 2048 + 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 *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1025] + mi := &file_otg_proto_msgTypes[1018] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureRequest) String() string { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureRequest) ProtoMessage() {} +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) ProtoMessage() {} -func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1025] +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1018] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107342,43 +108094,71 @@ 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{1025} +// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1018} } -func (x *GetCaptureRequest) GetCaptureRequest() *CaptureRequest { - if x != nil { - return x.CaptureRequest +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return 0 } -type GetCaptureResponse struct { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// An identifier of the layer 3 protocol using this path. Standard Ethertype values +// are used e.g. The default value of 2048 ( 0x0800 ) represents Ethertype for IPv4. +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid 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 *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 2048 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [2048] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *GetCaptureResponse) Reset() { - *x = GetCaptureResponse{} +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1026] + mi := &file_otg_proto_msgTypes[1019] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCaptureResponse) String() string { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCaptureResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) ProtoMessage() {} -func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1026] +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1019] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107389,43 +108169,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{1026} +// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1019} } -func (x *GetCaptureResponse) GetResponseBytes() []byte { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetChoice() PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_unspecified +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetValues() []uint32 { if x != nil { - return x.ResponseBytes + return x.Values } return nil } -type GetVersionResponse struct { +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetIncrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid) GetDecrement() *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// ipv4 counter pattern +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter 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.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 *GetVersionResponse) Reset() { - *x = GetVersionResponse{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1027] + mi := &file_otg_proto_msgTypes[1020] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetVersionResponse) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetVersionResponse) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) ProtoMessage() {} -func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1027] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1020] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107436,41 +108253,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{1027} +// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1020} } -func (x *GetVersionResponse) GetVersion() *Version { - if x != nil { - return x.Version +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start } - return nil + return "" } -type LagProtocol_Choice struct { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// IPv4 address for a sender node. +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_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 *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *LagProtocol_Choice) Reset() { - *x = LagProtocol_Choice{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1028] + mi := &file_otg_proto_msgTypes[1021] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagProtocol_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagProtocol_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) ProtoMessage() {} -func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1028] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1021] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107481,72 +108327,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 PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1021} } -type LagPortLacp_ActorActivity struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_unspecified } -func (x *LagPortLacp_ActorActivity) Reset() { - *x = LagPortLacp_ActorActivity{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1029] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } + return "" } -func (x *LagPortLacp_ActorActivity) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetValues() []string { + if x != nil { + return x.Values + } + return nil } -func (*LagPortLacp_ActorActivity) ProtoMessage() {} - -func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1029] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter { + 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 *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter { + if x != nil { + return x.Decrement + } + return nil } -type EthernetConnection_Choice struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter 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 *EthernetConnection_Choice) Reset() { - *x = EthernetConnection_Choice{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1030] + mi := &file_otg_proto_msgTypes[1022] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EthernetConnection_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EthernetConnection_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) ProtoMessage() {} -func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1030] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1022] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107557,72 +108411,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} -} - -type DeviceVlan_Tpid struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1022} } -func (x *DeviceVlan_Tpid) Reset() { - *x = DeviceVlan_Tpid{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1031] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } + return 0 } -func (x *DeviceVlan_Tpid) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DeviceVlan_Tpid) ProtoMessage() {} - -func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1031] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. -func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{13, 0} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 } -type DeviceIpv4GatewayMAC_Choice struct { +// Reserved field, MUST be zero. +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_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 *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *DeviceIpv4GatewayMAC_Choice) Reset() { - *x = DeviceIpv4GatewayMAC_Choice{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1032] + mi := &file_otg_proto_msgTypes[1023] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceIpv4GatewayMAC_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) ProtoMessage() {} -func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1032] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1023] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107633,72 +108485,80 @@ func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{16, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1023} } -type DeviceIpv6GatewayMAC_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_unspecified } -func (x *DeviceIpv6GatewayMAC_Choice) Reset() { - *x = DeviceIpv6GatewayMAC_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1033] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *DeviceIpv6GatewayMAC_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} - -func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1033] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. -func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{19, 0} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter { + if x != nil { + return x.Decrement + } + return nil } -type DeviceDhcpv4Client_Choice struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // 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 *DeviceDhcpv4Client_Choice) Reset() { - *x = DeviceDhcpv4Client_Choice{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1034] + mi := &file_otg_proto_msgTypes[1024] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceDhcpv4Client_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceDhcpv4Client_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) ProtoMessage() {} -func (x *DeviceDhcpv4Client_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1034] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1024] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107709,72 +108569,71 @@ func (x *DeviceDhcpv4Client_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeviceDhcpv4Client_Choice.ProtoReflect.Descriptor instead. -func (*DeviceDhcpv4Client_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{20, 0} -} - -type Layer1_Speed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1024} } -func (x *Layer1_Speed) Reset() { - *x = Layer1_Speed{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1035] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) 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[1035] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) 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{22, 0} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 } -type Layer1_Media struct { +// A 16-bit identifier used in the SENDER_TEMPLATE that can be changed to allow a sender +// to share resources with itself. +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_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 *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *Layer1_Media) Reset() { - *x = Layer1_Media{} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1036] + mi := &file_otg_proto_msgTypes[1025] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Layer1_Media) String() string { +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Layer1_Media) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) ProtoMessage() {} -func (x *Layer1_Media) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1036] +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1025] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107785,72 +108644,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{22, 1} +// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1025} } -type Layer1FlowControl_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetChoice() PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_unspecified } -func (x *Layer1FlowControl_Choice) Reset() { - *x = Layer1FlowControl_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1037] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) 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 *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) 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[1037] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetIncrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter { + 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{24, 0} +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId) GetDecrement() *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter { + if x != nil { + return x.Decrement + } + return nil } -type Capture_Format struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServVersionCounter 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 *Capture_Format) Reset() { - *x = Capture_Format{} +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServVersionCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1038] + mi := &file_otg_proto_msgTypes[1026] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Capture_Format) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Capture_Format) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServVersionCounter) ProtoMessage() {} -func (x *Capture_Format) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1038] +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1026] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107861,34 +108728,70 @@ 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{27, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServVersionCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServVersionCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1026} } -type CaptureFilter_Choice struct { +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServVersionCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Message format version number. +type PatternFlowRSVPPathSenderTspecIntServVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServVersion_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 *PatternFlowRSVPPathSenderTspecIntServVersionCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServVersionCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *CaptureFilter_Choice) Reset() { - *x = CaptureFilter_Choice{} +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServVersion{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1039] + mi := &file_otg_proto_msgTypes[1027] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CaptureFilter_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CaptureFilter_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServVersion) ProtoMessage() {} -func (x *CaptureFilter_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1039] +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1027] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107899,72 +108802,80 @@ 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{28, 0} -} - -type IsisInterface_NetworkType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServVersion.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServVersion) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1027} } -func (x *IsisInterface_NetworkType) Reset() { - *x = IsisInterface_NetworkType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1040] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetChoice() PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice } + return PatternFlowRSVPPathSenderTspecIntServVersion_Choice_unspecified } -func (x *IsisInterface_NetworkType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 } -func (*IsisInterface_NetworkType) ProtoMessage() {} +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} -func (x *IsisInterface_NetworkType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1040] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServVersionCounter { + 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{39, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServVersion) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServVersionCounter { + if x != nil { + return x.Decrement + } + return nil } -type IsisInterface_LevelType struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServReserved1Counter 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 *IsisInterface_LevelType) Reset() { - *x = IsisInterface_LevelType{} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved1Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1041] + mi := &file_otg_proto_msgTypes[1028] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterface_LevelType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterface_LevelType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter) ProtoMessage() {} -func (x *IsisInterface_LevelType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1041] +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1028] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107975,34 +108886,70 @@ 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{39, 1} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1028} } -type IsisInterfaceAuthentication_AuthType struct { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1Counter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Reserved. +type PatternFlowRSVPPathSenderTspecIntServReserved1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServReserved1_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 *PatternFlowRSVPPathSenderTspecIntServReserved1Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServReserved1Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *IsisInterfaceAuthentication_AuthType) Reset() { - *x = IsisInterfaceAuthentication_AuthType{} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved1{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1042] + mi := &file_otg_proto_msgTypes[1029] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisInterfaceAuthentication_AuthType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServReserved1) ProtoMessage() {} -func (x *IsisInterfaceAuthentication_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1042] +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1029] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108013,72 +108960,80 @@ 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{44, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved1) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1029} } -type IsisAuthenticationBase_AuthType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetChoice() PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_unspecified } -func (x *IsisAuthenticationBase_AuthType) Reset() { - *x = IsisAuthenticationBase_AuthType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1043] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *IsisAuthenticationBase_AuthType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} - -func (x *IsisAuthenticationBase_AuthType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1043] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServReserved1Counter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. -func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{50, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServReserved1Counter { + if x != nil { + return x.Decrement + } + return nil } -type IsisV4RouteRange_OriginType struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 7 + 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 *IsisV4RouteRange_OriginType) Reset() { - *x = IsisV4RouteRange_OriginType{} +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1044] + mi := &file_otg_proto_msgTypes[1030] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_OriginType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_OriginType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) ProtoMessage() {} -func (x *IsisV4RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1044] +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1030] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108089,34 +109044,70 @@ 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{51, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1030} } -type IsisV4RouteRange_RedistributionType struct { +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Overall length (7 words not including header). +type PatternFlowRSVPPathSenderTspecIntServOverallLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 7 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [7] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *IsisV4RouteRange_RedistributionType) Reset() { - *x = IsisV4RouteRange_RedistributionType{} +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServOverallLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1045] + mi := &file_otg_proto_msgTypes[1031] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV4RouteRange_RedistributionType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServOverallLength) ProtoMessage() {} -func (x *IsisV4RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1045] +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1031] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108127,72 +109118,80 @@ 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{51, 1} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLength.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServOverallLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1031} } -type IsisV6RouteRange_OriginType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetChoice() PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_unspecified } -func (x *IsisV6RouteRange_OriginType) Reset() { - *x = IsisV6RouteRange_OriginType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1046] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *IsisV6RouteRange_OriginType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*IsisV6RouteRange_OriginType) ProtoMessage() {} - -func (x *IsisV6RouteRange_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1046] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. -func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{55, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter { + if x != nil { + return x.Decrement + } + return nil } -type IsisV6RouteRange_RedistributionType struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // 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 *IsisV6RouteRange_RedistributionType) Reset() { - *x = IsisV6RouteRange_RedistributionType{} +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1047] + mi := &file_otg_proto_msgTypes[1032] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisV6RouteRange_RedistributionType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) ProtoMessage() {} -func (x *IsisV6RouteRange_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1047] +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1032] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108203,34 +109202,70 @@ 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{55, 1} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1032} } -type DeviceBgpMessageHeaderError_Subcode struct { +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Service header, service number - '1' (Generic information) if in a PATH message. +type PatternFlowRSVPPathSenderTspecIntServServiceHeader struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader_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 *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { - *x = DeviceBgpMessageHeaderError_Subcode{} +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServServiceHeader{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1048] + mi := &file_otg_proto_msgTypes[1033] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpMessageHeaderError_Subcode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader) ProtoMessage() {} -func (x *DeviceBgpMessageHeaderError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1048] +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1033] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108241,72 +109276,80 @@ 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{57, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeader.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1033} } -type DeviceBgpOpenMessageError_Subcode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetChoice() PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_unspecified } -func (x *DeviceBgpOpenMessageError_Subcode) Reset() { - *x = DeviceBgpOpenMessageError_Subcode{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1049] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *DeviceBgpOpenMessageError_Subcode) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} - -func (x *DeviceBgpOpenMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1049] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. -func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{58, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter { + if x != nil { + return x.Decrement + } + return nil } -type DeviceBgpUpdateMessageError_Subcode struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServZeroBitCounter 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 *DeviceBgpUpdateMessageError_Subcode) Reset() { - *x = DeviceBgpUpdateMessageError_Subcode{} +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServZeroBitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1050] + mi := &file_otg_proto_msgTypes[1034] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpUpdateMessageError_Subcode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) ProtoMessage() {} -func (x *DeviceBgpUpdateMessageError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1050] +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1034] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108317,34 +109360,70 @@ 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{59, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1034} } -type DeviceBgpCeaseError_Subcode struct { +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// MUST be 0. +type PatternFlowRSVPPathSenderTspecIntServZeroBit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServZeroBit_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 *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *DeviceBgpCeaseError_Subcode) Reset() { - *x = DeviceBgpCeaseError_Subcode{} +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServZeroBit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1051] + mi := &file_otg_proto_msgTypes[1035] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeviceBgpCeaseError_Subcode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServZeroBit) ProtoMessage() {} -func (x *DeviceBgpCeaseError_Subcode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1051] +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1035] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108355,72 +109434,80 @@ 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{62, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBit.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServZeroBit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1035} } -type BgpV4Peer_AsType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetChoice() PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_unspecified } -func (x *BgpV4Peer_AsType) Reset() { - *x = BgpV4Peer_AsType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1052] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpV4Peer_AsType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpV4Peer_AsType) ProtoMessage() {} - -func (x *BgpV4Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1052] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. -func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{64, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServZeroBitCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpV4Peer_AsNumberWidth struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServReserved2Counter 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 *BgpV4Peer_AsNumberWidth) Reset() { - *x = BgpV4Peer_AsNumberWidth{} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved2Counter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1053] + mi := &file_otg_proto_msgTypes[1036] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4Peer_AsNumberWidth) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter) ProtoMessage() {} -func (x *BgpV4Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1053] +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1036] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108431,34 +109518,70 @@ 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{64, 1} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2Counter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1036} } -type BgpV4EthernetSegment_ActiveMode struct { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2Counter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Reserved. +type PatternFlowRSVPPathSenderTspecIntServReserved2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServReserved2_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 *PatternFlowRSVPPathSenderTspecIntServReserved2Counter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServReserved2Counter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpV4EthernetSegment_ActiveMode) Reset() { - *x = BgpV4EthernetSegment_ActiveMode{} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved2{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1054] + mi := &file_otg_proto_msgTypes[1037] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EthernetSegment_ActiveMode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServReserved2) ProtoMessage() {} -func (x *BgpV4EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1054] +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1037] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108469,72 +109592,80 @@ 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{66, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved2) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1037} } -type BgpRouteAdvanced_Origin struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetChoice() PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_unspecified } -func (x *BgpRouteAdvanced_Origin) Reset() { - *x = BgpRouteAdvanced_Origin{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1055] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpRouteAdvanced_Origin) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpRouteAdvanced_Origin) ProtoMessage() {} - -func (x *BgpRouteAdvanced_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1055] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServReserved2Counter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. -func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{68, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServReserved2Counter { + if x != nil { + return x.Decrement + } + return nil } -type BgpCommunity_Type struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 6 + 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 *BgpCommunity_Type) Reset() { - *x = BgpCommunity_Type{} +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1056] + mi := &file_otg_proto_msgTypes[1038] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpCommunity_Type) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpCommunity_Type) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) ProtoMessage() {} -func (x *BgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1056] +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1038] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108545,34 +109676,70 @@ 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{69, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1038} } -type BgpExtCommunity_Type struct { +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Length of service data, 6 words not including per-service header. +type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 6 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [6] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpExtCommunity_Type) Reset() { - *x = BgpExtCommunity_Type{} +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1057] + mi := &file_otg_proto_msgTypes[1039] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtCommunity_Type) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtCommunity_Type) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) ProtoMessage() {} -func (x *BgpExtCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1057] +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1039] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108583,72 +109750,80 @@ 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{70, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1039} } -type BgpExtCommunity_Subtype struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetChoice() PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_unspecified } -func (x *BgpExtCommunity_Subtype) Reset() { - *x = BgpExtCommunity_Subtype{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1058] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpExtCommunity_Subtype) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpExtCommunity_Subtype) ProtoMessage() {} - -func (x *BgpExtCommunity_Subtype) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1058] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. -func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{70, 1} +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpAsPath_AsSetMode struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 127 + 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 *BgpAsPath_AsSetMode) Reset() { - *x = BgpAsPath_AsSetMode{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1059] + mi := &file_otg_proto_msgTypes[1040] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPath_AsSetMode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPath_AsSetMode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) ProtoMessage() {} -func (x *BgpAsPath_AsSetMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1059] +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1040] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108659,34 +109834,70 @@ 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{71, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1040} } -type BgpAsPathSegment_Type struct { +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Parameter ID, parameter 127 (Token Bucket TSpec) +type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 127 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [127] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpAsPathSegment_Type) Reset() { - *x = BgpAsPathSegment_Type{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1060] + mi := &file_otg_proto_msgTypes[1041] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAsPathSegment_Type) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAsPathSegment_Type) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) ProtoMessage() {} -func (x *BgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1060] +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1041] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108697,72 +109908,80 @@ 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{72, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1041} } -type BgpV4EvpnEvis_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_unspecified } -func (x *BgpV4EvpnEvis_Choice) Reset() { - *x = BgpV4EvpnEvis_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1061] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpV4EvpnEvis_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} - -func (x *BgpV4EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1061] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. -func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{73, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpV4EviVxlan_ReplicationType struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter 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 *BgpV4EviVxlan_ReplicationType) Reset() { - *x = BgpV4EviVxlan_ReplicationType{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1062] + mi := &file_otg_proto_msgTypes[1042] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4EviVxlan_ReplicationType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) ProtoMessage() {} -func (x *BgpV4EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1062] +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1042] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108773,72 +109992,70 @@ 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{74, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1042} } -type BgpRouteDistinguisher_RdType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *BgpRouteDistinguisher_RdType) Reset() { - *x = BgpRouteDistinguisher_RdType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1063] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } + return 0 } -func (x *BgpRouteDistinguisher_RdType) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} - -func (x *BgpRouteDistinguisher_RdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1063] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. -func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{77, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 } -type BgpRouteTarget_RtType struct { +// Parameter 127 flags (none set) +type PatternFlowRSVPPathSenderTspecIntServParameter127Flag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag_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 *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpRouteTarget_RtType) Reset() { - *x = BgpRouteTarget_RtType{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127Flag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1064] + mi := &file_otg_proto_msgTypes[1043] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpRouteTarget_RtType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpRouteTarget_RtType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag) ProtoMessage() {} -func (x *BgpRouteTarget_RtType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1064] +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1043] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108849,72 +110066,80 @@ 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{78, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Flag.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1043} } -type BgpV4RouteRange_NextHopMode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_unspecified } -func (x *BgpV4RouteRange_NextHopMode) Reset() { - *x = BgpV4RouteRange_NextHopMode{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1065] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpV4RouteRange_NextHopMode) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} - -func (x *BgpV4RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1065] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. -func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{82, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpV4RouteRange_NextHopAddressType struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 5 + 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 *BgpV4RouteRange_NextHopAddressType) Reset() { - *x = BgpV4RouteRange_NextHopAddressType{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1066] + mi := &file_otg_proto_msgTypes[1044] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV4RouteRange_NextHopAddressType) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) ProtoMessage() {} -func (x *BgpV4RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1066] +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1044] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -108925,72 +110150,70 @@ 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{82, 1} -} - -type BgpExtendedCommunity_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1044} } -func (x *BgpExtendedCommunity_Choice) Reset() { - *x = BgpExtendedCommunity_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1067] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start } + return 0 } -func (x *BgpExtendedCommunity_Choice) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BgpExtendedCommunity_Choice) ProtoMessage() {} - -func (x *BgpExtendedCommunity_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1067] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{84, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 } -type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { +// Parameter 127 length, 5 words not including per-service header +type PatternFlowRSVPPathSenderTspecIntServParameter127Length struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 5 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [5] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127Length{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1068] + mi := &file_otg_proto_msgTypes[1045] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1068] +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1045] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109001,72 +110224,80 @@ 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{87, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Length.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1045} } -type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetChoice() PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_unspecified } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1069] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1069] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{90, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter 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 *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1070] + mi := &file_otg_proto_msgTypes[1046] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1070] +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1046] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109077,34 +110308,71 @@ 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{93, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1046} } -type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// The minimum policed unit parameter should generally be set equal to the size of the +// smallest packet generated by the application. +type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_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 *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1071] + mi := &file_otg_proto_msgTypes[1047] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) ProtoMessage() {} -func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1071] +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1047] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109115,72 +110383,80 @@ 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{96, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1047} } -type BgpExtendedCommunityTransitiveEvpnType_Choice struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetChoice() PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_unspecified } -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { - *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1072] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} - -func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1072] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. -func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{98, 0} +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { +// integer counter pattern +type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter 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 *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { - *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1073] + mi := &file_otg_proto_msgTypes[1048] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) ProtoMessage() {} -func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1073] +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1048] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109191,34 +110467,72 @@ 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{100, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1048} } -type BgpV6RouteRange_NextHopMode struct { +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// The maximum packet size parameter should be set to the size of the largest packet +// the application might wish to generate. This value must, by definition, be equal +// to or larger than the value of The minimum policed unit. +type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_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 *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpV6RouteRange_NextHopMode) Reset() { - *x = BgpV6RouteRange_NextHopMode{} +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1074] + mi := &file_otg_proto_msgTypes[1049] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6RouteRange_NextHopMode) String() string { +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) ProtoMessage() {} -func (x *BgpV6RouteRange_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1074] +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1049] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109229,72 +110543,80 @@ 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{102, 0} +// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1049} } -type BgpV6RouteRange_NextHopAddressType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetChoice() PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_unspecified } -func (x *BgpV6RouteRange_NextHopAddressType) Reset() { - *x = BgpV6RouteRange_NextHopAddressType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1075] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpV6RouteRange_NextHopAddressType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} - -func (x *BgpV6RouteRange_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1075] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetIncrement() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. -func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{102, 1} +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize) GetDecrement() *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpSrteV4Policy_NextHopMode struct { +// ipv4 counter pattern +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // 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 *BgpSrteV4Policy_NextHopMode) Reset() { - *x = BgpSrteV4Policy_NextHopMode{} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1076] + mi := &file_otg_proto_msgTypes[1050] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopMode) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1076] +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1050] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109305,34 +110627,71 @@ 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{103, 0} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1050} } -type BgpSrteV4Policy_NextHopAddressType struct { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetStart() string { + if x != nil && x.Start != nil { + return *x.Start + } + return "" +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetStep() string { + if x != nil && x.Step != nil { + return *x.Step + } + return "" +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// A 32-bit unicast, host address. Any network-reachable interface address is allowed +// here. Illegal addresses, such as certain loopback addresses, SHOULD NOT be used. +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_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 *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { - *x = BgpSrteV4Policy_NextHopAddressType{} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1077] + mi := &file_otg_proto_msgTypes[1051] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV4Policy_NextHopAddressType) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) ProtoMessage() {} -func (x *BgpSrteV4Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1077] +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1051] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109343,72 +110702,80 @@ 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{103, 1} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1051} } -type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetChoice() PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_unspecified } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { - *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1078] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value } + return "" } -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetValues() []string { + if x != nil { + return x.Values + } + return nil } -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} - -func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1078] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetIncrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. -func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{105, 0} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address) GetDecrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpSrteBindingSubTlv_BindingSidType struct { +// integer counter pattern +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = 32 + 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 *BgpSrteBindingSubTlv_BindingSidType) Reset() { - *x = BgpSrteBindingSubTlv_BindingSidType{} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1079] + mi := &file_otg_proto_msgTypes[1052] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) ProtoMessage() {} -func (x *BgpSrteBindingSubTlv_BindingSidType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1079] +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1052] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109419,34 +110786,70 @@ 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{107, 0} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1052} } -type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// Prefix-length of IPv4 address. +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum,oneof" json:"choice,omitempty"` + // Description missing in models + // default = 32 + Value *uint32 `protobuf:"varint,2,opt,name=value,proto3,oneof" json:"value,omitempty"` + // Description missing in models + // default = [32] + Values []uint32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` + // Description missing in models + Increment *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { - *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1080] + mi := &file_otg_proto_msgTypes[1053] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) ProtoMessage() {} -func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1080] +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1053] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109457,72 +110860,81 @@ 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{111, 0} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1053} } -type BgpSrteSegment_SegmentType struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetChoice() PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_unspecified } -func (x *BgpSrteSegment_SegmentType) Reset() { - *x = BgpSrteSegment_SegmentType{} - if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1081] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value } + return 0 } -func (x *BgpSrteSegment_SegmentType) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil } -func (*BgpSrteSegment_SegmentType) ProtoMessage() {} - -func (x *BgpSrteSegment_SegmentType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1081] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetIncrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter { + if x != nil { + return x.Increment } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. -func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{113, 0} +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength) GetDecrement() *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter { + if x != nil { + return x.Decrement + } + return nil } -type BgpSrteV6Policy_NextHopMode struct { +// 0x01 = Global label. This flag indicates that the label will be understood if received +// on any interface. +type PatternFlowRSVPPathRecordRouteType1LabelFlags struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1LabelFlags_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"` } -func (x *BgpSrteV6Policy_NextHopMode) Reset() { - *x = BgpSrteV6Policy_NextHopMode{} +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1LabelFlags{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1082] + mi := &file_otg_proto_msgTypes[1054] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopMode) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1LabelFlags) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1082] +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1054] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109533,34 +110945,66 @@ 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{127, 0} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelFlags.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1LabelFlags) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1054} } -type BgpSrteV6Policy_NextHopAddressType struct { +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetChoice() PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_unspecified +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +// The C-Type of the included Label Object. Copied from the Label object. +type PatternFlowRSVPPathRecordRouteType1LabelCType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathRecordRouteType1LabelCType_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"` } -func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { - *x = BgpSrteV6Policy_NextHopAddressType{} +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1LabelCType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1083] + mi := &file_otg_proto_msgTypes[1055] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpSrteV6Policy_NextHopAddressType) String() string { +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} +func (*PatternFlowRSVPPathRecordRouteType1LabelCType) ProtoMessage() {} -func (x *BgpSrteV6Policy_NextHopAddressType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1083] +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1055] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109571,34 +111015,66 @@ 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{127, 1} +// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelCType.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1LabelCType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1055} } -type BgpUpdateReplay_Choice struct { +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetChoice() PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_unspecified +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +// integer counter pattern +type PatternFlowRSVPPathObjectsCustomTypeCounter 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 *BgpUpdateReplay_Choice) Reset() { - *x = BgpUpdateReplay_Choice{} +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) Reset() { + *x = PatternFlowRSVPPathObjectsCustomTypeCounter{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1084] + mi := &file_otg_proto_msgTypes[1056] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpUpdateReplay_Choice) String() string { +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpUpdateReplay_Choice) ProtoMessage() {} +func (*PatternFlowRSVPPathObjectsCustomTypeCounter) ProtoMessage() {} -func (x *BgpUpdateReplay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1084] +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1056] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109609,34 +111085,70 @@ func (x *BgpUpdateReplay_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpUpdateReplay_Choice.ProtoReflect.Descriptor instead. -func (*BgpUpdateReplay_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{130, 0} +// Deprecated: Use PatternFlowRSVPPathObjectsCustomTypeCounter.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathObjectsCustomTypeCounter) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1056} } -type BgpAttributes_Origin struct { +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetStart() uint32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetStep() uint32 { + if x != nil && x.Step != nil { + return *x.Step + } + return 0 +} + +func (x *PatternFlowRSVPPathObjectsCustomTypeCounter) GetCount() uint32 { + if x != nil && x.Count != nil { + return *x.Count + } + return 0 +} + +// User defined object type. +type PatternFlowRSVPPathObjectsCustomType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Description missing in models + // default = Choice.Enum.value + Choice *PatternFlowRSVPPathObjectsCustomType_Choice_Enum `protobuf:"varint,1,opt,name=choice,proto3,enum=otg.PatternFlowRSVPPathObjectsCustomType_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 *PatternFlowRSVPPathObjectsCustomTypeCounter `protobuf:"bytes,5,opt,name=increment,proto3" json:"increment,omitempty"` + // Description missing in models + Decrement *PatternFlowRSVPPathObjectsCustomTypeCounter `protobuf:"bytes,6,opt,name=decrement,proto3" json:"decrement,omitempty"` } -func (x *BgpAttributes_Origin) Reset() { - *x = BgpAttributes_Origin{} +func (x *PatternFlowRSVPPathObjectsCustomType) Reset() { + *x = PatternFlowRSVPPathObjectsCustomType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1085] + mi := &file_otg_proto_msgTypes[1057] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributes_Origin) String() string { +func (x *PatternFlowRSVPPathObjectsCustomType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributes_Origin) ProtoMessage() {} +func (*PatternFlowRSVPPathObjectsCustomType) ProtoMessage() {} -func (x *BgpAttributes_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1085] +func (x *PatternFlowRSVPPathObjectsCustomType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1057] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109647,34 +111159,80 @@ func (x *BgpAttributes_Origin) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributes_Origin.ProtoReflect.Descriptor instead. -func (*BgpAttributes_Origin) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{141, 0} +// Deprecated: Use PatternFlowRSVPPathObjectsCustomType.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathObjectsCustomType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1057} } -type BgpAttributesAsPath_Choice struct { +func (x *PatternFlowRSVPPathObjectsCustomType) GetChoice() PatternFlowRSVPPathObjectsCustomType_Choice_Enum { + if x != nil && x.Choice != nil { + return *x.Choice + } + return PatternFlowRSVPPathObjectsCustomType_Choice_unspecified +} + +func (x *PatternFlowRSVPPathObjectsCustomType) GetValue() uint32 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *PatternFlowRSVPPathObjectsCustomType) GetValues() []uint32 { + if x != nil { + return x.Values + } + return nil +} + +func (x *PatternFlowRSVPPathObjectsCustomType) GetIncrement() *PatternFlowRSVPPathObjectsCustomTypeCounter { + if x != nil { + return x.Increment + } + return nil +} + +func (x *PatternFlowRSVPPathObjectsCustomType) GetDecrement() *PatternFlowRSVPPathObjectsCustomTypeCounter { + if x != nil { + return x.Decrement + } + return nil +} + +// 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 *BgpAttributesAsPath_Choice) Reset() { - *x = BgpAttributesAsPath_Choice{} +func (x *Version) Reset() { + *x = Version{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1086] + mi := &file_otg_proto_msgTypes[1058] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesAsPath_Choice) String() string { +func (x *Version) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAsPath_Choice) ProtoMessage() {} +func (*Version) ProtoMessage() {} -func (x *BgpAttributesAsPath_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1086] +func (x *Version) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1058] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109685,34 +111243,59 @@ func (x *BgpAttributesAsPath_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAsPath_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesAsPath_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{143, 0} +// Deprecated: Use Version.ProtoReflect.Descriptor instead. +func (*Version) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1058} } -type BgpAttributesFourByteAsPathSegment_Type 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 *BgpAttributesFourByteAsPathSegment_Type) Reset() { - *x = BgpAttributesFourByteAsPathSegment_Type{} +func (x *Success) Reset() { + *x = Success{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1087] + mi := &file_otg_proto_msgTypes[1059] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesFourByteAsPathSegment_Type) String() string { +func (x *Success) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesFourByteAsPathSegment_Type) ProtoMessage() {} +func (*Success) ProtoMessage() {} -func (x *BgpAttributesFourByteAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1087] +func (x *Success) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1059] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109723,34 +111306,44 @@ func (x *BgpAttributesFourByteAsPathSegment_Type) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesFourByteAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*BgpAttributesFourByteAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{145, 0} +// Deprecated: Use Success.ProtoReflect.Descriptor instead. +func (*Success) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1059} } -type BgpAttributesTwoByteAsPathSegment_Type 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 *BgpAttributesTwoByteAsPathSegment_Type) Reset() { - *x = BgpAttributesTwoByteAsPathSegment_Type{} +func (x *Failure) Reset() { + *x = Failure{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1088] + mi := &file_otg_proto_msgTypes[1060] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesTwoByteAsPathSegment_Type) String() string { +func (x *Failure) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesTwoByteAsPathSegment_Type) ProtoMessage() {} +func (*Failure) ProtoMessage() {} -func (x *BgpAttributesTwoByteAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1088] +func (x *Failure) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1060] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109761,34 +111354,43 @@ func (x *BgpAttributesTwoByteAsPathSegment_Type) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesTwoByteAsPathSegment_Type.ProtoReflect.Descriptor instead. -func (*BgpAttributesTwoByteAsPathSegment_Type) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{147, 0} +// Deprecated: Use Failure.ProtoReflect.Descriptor instead. +func (*Failure) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1060} } -type BgpAttributesAggregator_Choice 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 *BgpAttributesAggregator_Choice) Reset() { - *x = BgpAttributesAggregator_Choice{} +func (x *SetConfigRequest) Reset() { + *x = SetConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1089] + mi := &file_otg_proto_msgTypes[1061] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesAggregator_Choice) String() string { +func (x *SetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesAggregator_Choice) ProtoMessage() {} +func (*SetConfigRequest) ProtoMessage() {} -func (x *BgpAttributesAggregator_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1089] +func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1061] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109799,34 +111401,43 @@ func (x *BgpAttributesAggregator_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesAggregator_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesAggregator_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{149, 0} +// Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. +func (*SetConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1061} } -type BgpAttributesCommunity_Choice 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 *BgpAttributesCommunity_Choice) Reset() { - *x = BgpAttributesCommunity_Choice{} +func (x *UpdateConfigRequest) Reset() { + *x = UpdateConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1090] + mi := &file_otg_proto_msgTypes[1062] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesCommunity_Choice) String() string { +func (x *UpdateConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesCommunity_Choice) ProtoMessage() {} +func (*UpdateConfigRequest) ProtoMessage() {} -func (x *BgpAttributesCommunity_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1090] +func (x *UpdateConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1062] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109837,34 +111448,43 @@ func (x *BgpAttributesCommunity_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesCommunity_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesCommunity_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{151, 0} +// Deprecated: Use UpdateConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateConfigRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1062} } -type BgpAttributesNextHop_Choice 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 *BgpAttributesNextHop_Choice) Reset() { - *x = BgpAttributesNextHop_Choice{} +func (x *SetConfigResponse) Reset() { + *x = SetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1091] + mi := &file_otg_proto_msgTypes[1063] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesNextHop_Choice) String() string { +func (x *SetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesNextHop_Choice) ProtoMessage() {} +func (*SetConfigResponse) ProtoMessage() {} -func (x *BgpAttributesNextHop_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1091] +func (x *SetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1063] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109875,34 +111495,43 @@ func (x *BgpAttributesNextHop_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesNextHop_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesNextHop_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{153, 0} +// Deprecated: Use SetConfigResponse.ProtoReflect.Descriptor instead. +func (*SetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1063} } -type BgpAttributesMpReachNlri_Choice 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 *BgpAttributesMpReachNlri_Choice) Reset() { - *x = BgpAttributesMpReachNlri_Choice{} +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1092] + mi := &file_otg_proto_msgTypes[1064] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesMpReachNlri_Choice) String() string { +func (x *GetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesMpReachNlri_Choice) ProtoMessage() {} +func (*GetConfigResponse) ProtoMessage() {} -func (x *BgpAttributesMpReachNlri_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1092] +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1064] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109913,34 +111542,43 @@ func (x *BgpAttributesMpReachNlri_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesMpReachNlri_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesMpReachNlri_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{155, 0} +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1064} } -type BgpAttributesMpUnreachNlri_Choice 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 *BgpAttributesMpUnreachNlri_Choice) Reset() { - *x = BgpAttributesMpUnreachNlri_Choice{} +func (x *UpdateConfigResponse) Reset() { + *x = UpdateConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1093] + mi := &file_otg_proto_msgTypes[1065] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesMpUnreachNlri_Choice) String() string { +func (x *UpdateConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesMpUnreachNlri_Choice) ProtoMessage() {} +func (*UpdateConfigResponse) ProtoMessage() {} -func (x *BgpAttributesMpUnreachNlri_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1093] +func (x *UpdateConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1065] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109951,34 +111589,43 @@ func (x *BgpAttributesMpUnreachNlri_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesMpUnreachNlri_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesMpUnreachNlri_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{156, 0} +// Deprecated: Use UpdateConfigResponse.ProtoReflect.Descriptor instead. +func (*UpdateConfigResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1065} } -type BgpAttributesTunnelEncapsulation_Choice 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 + + ControlState *ControlState `protobuf:"bytes,1,opt,name=control_state,json=controlState,proto3" json:"control_state,omitempty"` } -func (x *BgpAttributesTunnelEncapsulation_Choice) Reset() { - *x = BgpAttributesTunnelEncapsulation_Choice{} +func (x *SetControlStateRequest) Reset() { + *x = SetControlStateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1094] + mi := &file_otg_proto_msgTypes[1066] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesTunnelEncapsulation_Choice) String() string { +func (x *SetControlStateRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesTunnelEncapsulation_Choice) ProtoMessage() {} +func (*SetControlStateRequest) ProtoMessage() {} -func (x *BgpAttributesTunnelEncapsulation_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1094] +func (x *SetControlStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1066] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -109989,34 +111636,43 @@ func (x *BgpAttributesTunnelEncapsulation_Choice) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesTunnelEncapsulation_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesTunnelEncapsulation_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{160, 0} +// Deprecated: Use SetControlStateRequest.ProtoReflect.Descriptor instead. +func (*SetControlStateRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1066} } -type BgpAttributesBsid_Choice 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 *BgpAttributesBsid_Choice) Reset() { - *x = BgpAttributesBsid_Choice{} +func (x *SetControlStateResponse) Reset() { + *x = SetControlStateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1095] + mi := &file_otg_proto_msgTypes[1067] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesBsid_Choice) String() string { +func (x *SetControlStateResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesBsid_Choice) ProtoMessage() {} +func (*SetControlStateResponse) ProtoMessage() {} -func (x *BgpAttributesBsid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1095] +func (x *SetControlStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1067] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110027,34 +111683,43 @@ func (x *BgpAttributesBsid_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesBsid_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesBsid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{162, 0} +// Deprecated: Use SetControlStateResponse.ProtoReflect.Descriptor instead. +func (*SetControlStateResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1067} } -type BgpAttributesSrPolicyExplicitNullPolicy_Choice 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 *BgpAttributesSrPolicyExplicitNullPolicy_Choice) Reset() { - *x = BgpAttributesSrPolicyExplicitNullPolicy_Choice{} +func (x *SetControlActionRequest) Reset() { + *x = SetControlActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1096] + mi := &file_otg_proto_msgTypes[1068] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) String() string { +func (x *SetControlActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSrPolicyExplicitNullPolicy_Choice) ProtoMessage() {} +func (*SetControlActionRequest) ProtoMessage() {} -func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1096] +func (x *SetControlActionRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1068] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110065,34 +111730,43 @@ func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSrPolicyExplicitNullPolicy_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesSrPolicyExplicitNullPolicy_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{172, 0} +// Deprecated: Use SetControlActionRequest.ProtoReflect.Descriptor instead. +func (*SetControlActionRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1068} } -type BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice 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 *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) Reset() { - *x = BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice{} +func (x *SetControlActionResponse) Reset() { + *x = SetControlActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1097] + mi := &file_otg_proto_msgTypes[1069] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) String() string { +func (x *SetControlActionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) ProtoMessage() {} +func (*SetControlActionResponse) ProtoMessage() {} -func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1097] +func (x *SetControlActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1069] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110103,34 +111777,43 @@ func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice.ProtoReflect.Descriptor instead. -func (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{175, 0} +// Deprecated: Use SetControlActionResponse.ProtoReflect.Descriptor instead. +func (*SetControlActionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1069} } -type BgpV6Peer_AsType 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 *BgpV6Peer_AsType) Reset() { - *x = BgpV6Peer_AsType{} +func (x *GetMetricsRequest) Reset() { + *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1098] + mi := &file_otg_proto_msgTypes[1070] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsType) String() string { +func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsType) ProtoMessage() {} +func (*GetMetricsRequest) ProtoMessage() {} -func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1098] +func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1070] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110141,34 +111824,43 @@ 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{190, 0} +// Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. +func (*GetMetricsRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1070} } -type BgpV6Peer_AsNumberWidth 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 *BgpV6Peer_AsNumberWidth) Reset() { - *x = BgpV6Peer_AsNumberWidth{} +func (x *GetMetricsResponse) Reset() { + *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1099] + mi := &file_otg_proto_msgTypes[1071] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6Peer_AsNumberWidth) String() string { +func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} +func (*GetMetricsResponse) ProtoMessage() {} -func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1099] +func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1071] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110179,34 +111871,43 @@ 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{190, 1} +// Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. +func (*GetMetricsResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1071} } -type BgpV6EthernetSegment_ActiveMode 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 *BgpV6EthernetSegment_ActiveMode) Reset() { - *x = BgpV6EthernetSegment_ActiveMode{} +func (x *GetStatesRequest) Reset() { + *x = GetStatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1100] + mi := &file_otg_proto_msgTypes[1072] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EthernetSegment_ActiveMode) String() string { +func (x *GetStatesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} +func (*GetStatesRequest) ProtoMessage() {} -func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1100] +func (x *GetStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1072] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110217,34 +111918,43 @@ 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{193, 0} +// Deprecated: Use GetStatesRequest.ProtoReflect.Descriptor instead. +func (*GetStatesRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1072} } -type BgpV6EvpnEvis_Choice 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 *BgpV6EvpnEvis_Choice) Reset() { - *x = BgpV6EvpnEvis_Choice{} +func (x *GetStatesResponse) Reset() { + *x = GetStatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1101] + mi := &file_otg_proto_msgTypes[1073] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EvpnEvis_Choice) String() string { +func (x *GetStatesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} +func (*GetStatesResponse) ProtoMessage() {} -func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1101] +func (x *GetStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1073] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110255,34 +111965,43 @@ 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{194, 0} +// Deprecated: Use GetStatesResponse.ProtoReflect.Descriptor instead. +func (*GetStatesResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1073} } -type BgpV6EviVxlan_ReplicationType 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 *BgpV6EviVxlan_ReplicationType) Reset() { - *x = BgpV6EviVxlan_ReplicationType{} +func (x *GetCaptureRequest) Reset() { + *x = GetCaptureRequest{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1102] + mi := &file_otg_proto_msgTypes[1074] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpV6EviVxlan_ReplicationType) String() string { +func (x *GetCaptureRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} +func (*GetCaptureRequest) ProtoMessage() {} -func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1102] +func (x *GetCaptureRequest) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1074] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110293,34 +112012,43 @@ 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{195, 0} +// Deprecated: Use GetCaptureRequest.ProtoReflect.Descriptor instead. +func (*GetCaptureRequest) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1074} } -type VxlanV4TunnelDestinationIPMode_Choice 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 *VxlanV4TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV4TunnelDestinationIPMode_Choice{} +func (x *GetCaptureResponse) Reset() { + *x = GetCaptureResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1103] + mi := &file_otg_proto_msgTypes[1075] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { +func (x *GetCaptureResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*GetCaptureResponse) ProtoMessage() {} -func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1103] +func (x *GetCaptureResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1075] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110331,34 +112059,43 @@ 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{200, 0} +// Deprecated: Use GetCaptureResponse.ProtoReflect.Descriptor instead. +func (*GetCaptureResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1075} } -type VxlanV6TunnelDestinationIPMode_Choice 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 *VxlanV6TunnelDestinationIPMode_Choice) Reset() { - *x = VxlanV6TunnelDestinationIPMode_Choice{} +func (x *GetVersionResponse) Reset() { + *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1104] + mi := &file_otg_proto_msgTypes[1076] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { +func (x *GetVersionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} +func (*GetVersionResponse) ProtoMessage() {} -func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1104] +func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1076] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110369,34 +112106,41 @@ 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{201, 0} +// Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. +func (*GetVersionResponse) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1076} } -type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle 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 *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { - *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} +func (x *LagProtocol_Choice) Reset() { + *x = LagProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1105] + mi := &file_otg_proto_msgTypes[1077] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { +func (x *LagProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} +func (*LagProtocol_Choice) ProtoMessage() {} -func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1105] +func (x *LagProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1077] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110407,34 +112151,34 @@ 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{212, 0} +// Deprecated: Use LagProtocol_Choice.ProtoReflect.Descriptor instead. +func (*LagProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{6, 0} } -type RsvpEro_PrependNeighborIp struct { +type LagPortLacp_ActorActivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEro_PrependNeighborIp) Reset() { - *x = RsvpEro_PrependNeighborIp{} +func (x *LagPortLacp_ActorActivity) Reset() { + *x = LagPortLacp_ActorActivity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1106] + mi := &file_otg_proto_msgTypes[1078] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEro_PrependNeighborIp) String() string { +func (x *LagPortLacp_ActorActivity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} +func (*LagPortLacp_ActorActivity) ProtoMessage() {} -func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1106] +func (x *LagPortLacp_ActorActivity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1078] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110445,34 +112189,34 @@ 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{218, 0} +// Deprecated: Use LagPortLacp_ActorActivity.ProtoReflect.Descriptor instead. +func (*LagPortLacp_ActorActivity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{9, 0} } -type RsvpEroSubobject_Type struct { +type EthernetConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_Type) Reset() { - *x = RsvpEroSubobject_Type{} +func (x *EthernetConnection_Choice) Reset() { + *x = EthernetConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1107] + mi := &file_otg_proto_msgTypes[1079] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_Type) String() string { +func (x *EthernetConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_Type) ProtoMessage() {} +func (*EthernetConnection_Choice) ProtoMessage() {} -func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1107] +func (x *EthernetConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1079] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110483,34 +112227,34 @@ 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{219, 0} +// Deprecated: Use EthernetConnection_Choice.ProtoReflect.Descriptor instead. +func (*EthernetConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{12, 0} } -type RsvpEroSubobject_HopType struct { +type DeviceVlan_Tpid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpEroSubobject_HopType) Reset() { - *x = RsvpEroSubobject_HopType{} +func (x *DeviceVlan_Tpid) Reset() { + *x = DeviceVlan_Tpid{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1108] + mi := &file_otg_proto_msgTypes[1080] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpEroSubobject_HopType) String() string { +func (x *DeviceVlan_Tpid) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpEroSubobject_HopType) ProtoMessage() {} +func (*DeviceVlan_Tpid) ProtoMessage() {} -func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1108] +func (x *DeviceVlan_Tpid) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1080] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110521,34 +112265,34 @@ 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{219, 1} +// Deprecated: Use DeviceVlan_Tpid.ProtoReflect.Descriptor instead. +func (*DeviceVlan_Tpid) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{13, 0} } -type FlowTxRx_Choice struct { +type DeviceIpv4GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTxRx_Choice) Reset() { - *x = FlowTxRx_Choice{} +func (x *DeviceIpv4GatewayMAC_Choice) Reset() { + *x = DeviceIpv4GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1109] + mi := &file_otg_proto_msgTypes[1081] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTxRx_Choice) String() string { +func (x *DeviceIpv4GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTxRx_Choice) ProtoMessage() {} +func (*DeviceIpv4GatewayMAC_Choice) ProtoMessage() {} -func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1109] +func (x *DeviceIpv4GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1081] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110559,34 +112303,34 @@ 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{225, 0} +// Deprecated: Use DeviceIpv4GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv4GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{16, 0} } -type FlowRouter_Mode struct { +type DeviceIpv6GatewayMAC_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRouter_Mode) Reset() { - *x = FlowRouter_Mode{} +func (x *DeviceIpv6GatewayMAC_Choice) Reset() { + *x = DeviceIpv6GatewayMAC_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1110] + mi := &file_otg_proto_msgTypes[1082] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRouter_Mode) String() string { +func (x *DeviceIpv6GatewayMAC_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRouter_Mode) ProtoMessage() {} +func (*DeviceIpv6GatewayMAC_Choice) ProtoMessage() {} -func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1110] +func (x *DeviceIpv6GatewayMAC_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1082] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110597,34 +112341,34 @@ 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{227, 0} +// Deprecated: Use DeviceIpv6GatewayMAC_Choice.ProtoReflect.Descriptor instead. +func (*DeviceIpv6GatewayMAC_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{19, 0} } -type FlowHeader_Choice struct { +type DeviceDhcpv4Client_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowHeader_Choice) Reset() { - *x = FlowHeader_Choice{} +func (x *DeviceDhcpv4Client_Choice) Reset() { + *x = DeviceDhcpv4Client_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1111] + mi := &file_otg_proto_msgTypes[1083] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowHeader_Choice) String() string { +func (x *DeviceDhcpv4Client_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowHeader_Choice) ProtoMessage() {} +func (*DeviceDhcpv4Client_Choice) ProtoMessage() {} -func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1111] +func (x *DeviceDhcpv4Client_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1083] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110635,34 +112379,34 @@ 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{228, 0} +// Deprecated: Use DeviceDhcpv4Client_Choice.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv4Client_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{20, 0} } -type FlowIpv4Options_Choice struct { +type DeviceDhcpv6ClientIaType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Options_Choice) Reset() { - *x = FlowIpv4Options_Choice{} +func (x *DeviceDhcpv6ClientIaType_Choice) Reset() { + *x = DeviceDhcpv6ClientIaType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1112] + mi := &file_otg_proto_msgTypes[1084] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Options_Choice) String() string { +func (x *DeviceDhcpv6ClientIaType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Options_Choice) ProtoMessage() {} +func (*DeviceDhcpv6ClientIaType_Choice) ProtoMessage() {} -func (x *FlowIpv4Options_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1112] +func (x *DeviceDhcpv6ClientIaType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1084] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110673,34 +112417,34 @@ 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{235, 0} +// Deprecated: Use DeviceDhcpv6ClientIaType_Choice.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientIaType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{25, 0} } -type FlowIpv4OptionsCustomLength_Choice struct { +type DeviceDhcpv6ClientDuidType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4OptionsCustomLength_Choice) Reset() { - *x = FlowIpv4OptionsCustomLength_Choice{} +func (x *DeviceDhcpv6ClientDuidType_Choice) Reset() { + *x = DeviceDhcpv6ClientDuidType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1113] + mi := &file_otg_proto_msgTypes[1085] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4OptionsCustomLength_Choice) String() string { +func (x *DeviceDhcpv6ClientDuidType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4OptionsCustomLength_Choice) ProtoMessage() {} +func (*DeviceDhcpv6ClientDuidType_Choice) ProtoMessage() {} -func (x *FlowIpv4OptionsCustomLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1113] +func (x *DeviceDhcpv6ClientDuidType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1085] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110711,34 +112455,34 @@ 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{238, 0} +// Deprecated: Use DeviceDhcpv6ClientDuidType_Choice.ProtoReflect.Descriptor instead. +func (*DeviceDhcpv6ClientDuidType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{27, 0} } -type FlowIpv4Priority_Choice struct { +type Dhcpv6ClientOptionsServerIdentifier_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Priority_Choice) Reset() { - *x = FlowIpv4Priority_Choice{} +func (x *Dhcpv6ClientOptionsServerIdentifier_Choice) Reset() { + *x = Dhcpv6ClientOptionsServerIdentifier_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1114] + mi := &file_otg_proto_msgTypes[1086] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Priority_Choice) String() string { +func (x *Dhcpv6ClientOptionsServerIdentifier_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Priority_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsServerIdentifier_Choice) ProtoMessage() {} -func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1114] +func (x *Dhcpv6ClientOptionsServerIdentifier_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1086] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110749,34 +112493,34 @@ 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{239, 0} +// Deprecated: Use Dhcpv6ClientOptionsServerIdentifier_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsServerIdentifier_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{30, 0} } -type FlowIpv4Auto_Choice struct { +type Dhcpv6ClientOptionsDuidUuidVersion_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIpv4Auto_Choice) Reset() { - *x = FlowIpv4Auto_Choice{} +func (x *Dhcpv6ClientOptionsDuidUuidVersion_Choice) Reset() { + *x = Dhcpv6ClientOptionsDuidUuidVersion_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1115] + mi := &file_otg_proto_msgTypes[1087] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIpv4Auto_Choice) String() string { +func (x *Dhcpv6ClientOptionsDuidUuidVersion_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIpv4Auto_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidUuidVersion_Choice) ProtoMessage() {} -func (x *FlowIpv4Auto_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1115] +func (x *Dhcpv6ClientOptionsDuidUuidVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1087] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110787,34 +112531,34 @@ func (x *FlowIpv4Auto_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowIpv4Auto_Choice.ProtoReflect.Descriptor instead. -func (*FlowIpv4Auto_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{242, 0} +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVersion_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidUuidVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{35, 0} } -type FlowIcmp_Choice struct { +type Dhcpv6ClientOptionsDuidUuidVariant_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmp_Choice) Reset() { - *x = FlowIcmp_Choice{} +func (x *Dhcpv6ClientOptionsDuidUuidVariant_Choice) Reset() { + *x = Dhcpv6ClientOptionsDuidUuidVariant_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1116] + mi := &file_otg_proto_msgTypes[1088] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmp_Choice) String() string { +func (x *Dhcpv6ClientOptionsDuidUuidVariant_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmp_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsDuidUuidVariant_Choice) ProtoMessage() {} -func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1116] +func (x *Dhcpv6ClientOptionsDuidUuidVariant_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1088] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110825,34 +112569,34 @@ 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{253, 0} +// Deprecated: Use Dhcpv6ClientOptionsDuidUuidVariant_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsDuidUuidVariant_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{36, 0} } -type FlowIcmpv6_Choice struct { +type Dhcpv6ClientOptionsOptionsRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowIcmpv6_Choice) Reset() { - *x = FlowIcmpv6_Choice{} +func (x *Dhcpv6ClientOptionsOptionsRequest_Choice) Reset() { + *x = Dhcpv6ClientOptionsOptionsRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1117] + mi := &file_otg_proto_msgTypes[1089] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowIcmpv6_Choice) String() string { +func (x *Dhcpv6ClientOptionsOptionsRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowIcmpv6_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsOptionsRequest_Choice) ProtoMessage() {} -func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1117] +func (x *Dhcpv6ClientOptionsOptionsRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1089] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110863,34 +112607,34 @@ 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{255, 0} +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequest_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsOptionsRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{38, 0} } -type FlowSnmpv2CData_Choice struct { +type Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSnmpv2CData_Choice) Reset() { - *x = FlowSnmpv2CData_Choice{} +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice) Reset() { + *x = Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1118] + mi := &file_otg_proto_msgTypes[1090] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CData_Choice) String() string { +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CData_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice) ProtoMessage() {} -func (x *FlowSnmpv2CData_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1118] +func (x *Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1090] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110901,34 +112645,34 @@ func (x *FlowSnmpv2CData_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CData_Choice.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CData_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{261, 0} +// Deprecated: Use Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{41, 0} } -type FlowSnmpv2CPDU_ErrorStatus struct { +type Dhcpv6ClientOptionsIncludedMessages_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSnmpv2CPDU_ErrorStatus) Reset() { - *x = FlowSnmpv2CPDU_ErrorStatus{} +func (x *Dhcpv6ClientOptionsIncludedMessages_Choice) Reset() { + *x = Dhcpv6ClientOptionsIncludedMessages_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1119] + mi := &file_otg_proto_msgTypes[1091] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CPDU_ErrorStatus) String() string { +func (x *Dhcpv6ClientOptionsIncludedMessages_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CPDU_ErrorStatus) ProtoMessage() {} +func (*Dhcpv6ClientOptionsIncludedMessages_Choice) ProtoMessage() {} -func (x *FlowSnmpv2CPDU_ErrorStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1119] +func (x *Dhcpv6ClientOptionsIncludedMessages_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1091] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110939,34 +112683,34 @@ func (x *FlowSnmpv2CPDU_ErrorStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CPDU_ErrorStatus.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CPDU_ErrorStatus) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{262, 0} +// Deprecated: Use Dhcpv6ClientOptionsIncludedMessages_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsIncludedMessages_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{42, 0} } -type FlowSnmpv2CVariableBindingValue_Choice struct { +type Dhcpv6ClientOptionsMessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSnmpv2CVariableBindingValue_Choice) Reset() { - *x = FlowSnmpv2CVariableBindingValue_Choice{} +func (x *Dhcpv6ClientOptionsMessageType_Choice) Reset() { + *x = Dhcpv6ClientOptionsMessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1120] + mi := &file_otg_proto_msgTypes[1092] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CVariableBindingValue_Choice) String() string { +func (x *Dhcpv6ClientOptionsMessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CVariableBindingValue_Choice) ProtoMessage() {} +func (*Dhcpv6ClientOptionsMessageType_Choice) ProtoMessage() {} -func (x *FlowSnmpv2CVariableBindingValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1120] +func (x *Dhcpv6ClientOptionsMessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1092] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110977,34 +112721,34 @@ func (x *FlowSnmpv2CVariableBindingValue_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CVariableBindingValue_Choice.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CVariableBindingValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{265, 0} +// Deprecated: Use Dhcpv6ClientOptionsMessageType_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientOptionsMessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{43, 0} } -type FlowSnmpv2CVariableBindingStringValue_Choice struct { +type Dhcpv6ServerOptionsIncludedMessages_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSnmpv2CVariableBindingStringValue_Choice) Reset() { - *x = FlowSnmpv2CVariableBindingStringValue_Choice{} +func (x *Dhcpv6ServerOptionsIncludedMessages_Choice) Reset() { + *x = Dhcpv6ServerOptionsIncludedMessages_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1121] + mi := &file_otg_proto_msgTypes[1093] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSnmpv2CVariableBindingStringValue_Choice) String() string { +func (x *Dhcpv6ServerOptionsIncludedMessages_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSnmpv2CVariableBindingStringValue_Choice) ProtoMessage() {} +func (*Dhcpv6ServerOptionsIncludedMessages_Choice) ProtoMessage() {} -func (x *FlowSnmpv2CVariableBindingStringValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1121] +func (x *Dhcpv6ServerOptionsIncludedMessages_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1093] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -111015,34 +112759,34 @@ func (x *FlowSnmpv2CVariableBindingStringValue_Choice) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use FlowSnmpv2CVariableBindingStringValue_Choice.ProtoReflect.Descriptor instead. -func (*FlowSnmpv2CVariableBindingStringValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{266, 0} +// Deprecated: Use Dhcpv6ServerOptionsIncludedMessages_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsIncludedMessages_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{46, 0} } -type FlowRsvp_Flag struct { +type Dhcpv6ServerOptionsMessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRsvp_Flag) Reset() { - *x = FlowRsvp_Flag{} +func (x *Dhcpv6ServerOptionsMessageType_Choice) Reset() { + *x = Dhcpv6ServerOptionsMessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1122] + mi := &file_otg_proto_msgTypes[1094] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRsvp_Flag) String() string { +func (x *Dhcpv6ServerOptionsMessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRsvp_Flag) ProtoMessage() {} +func (*Dhcpv6ServerOptionsMessageType_Choice) ProtoMessage() {} -func (x *FlowRsvp_Flag) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1122] +func (x *Dhcpv6ServerOptionsMessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1094] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -111053,34 +112797,34 @@ func (x *FlowRsvp_Flag) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRsvp_Flag.ProtoReflect.Descriptor instead. -func (*FlowRsvp_Flag) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{267, 0} +// Deprecated: Use Dhcpv6ServerOptionsMessageType_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerOptionsMessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{47, 0} } -type FlowRSVPLength_Choice struct { +type Layer1_Speed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPLength_Choice) Reset() { - *x = FlowRSVPLength_Choice{} +func (x *Layer1_Speed) Reset() { + *x = Layer1_Speed{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1123] + mi := &file_otg_proto_msgTypes[1095] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPLength_Choice) String() string { +func (x *Layer1_Speed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPLength_Choice) ProtoMessage() {} +func (*Layer1_Speed) ProtoMessage() {} -func (x *FlowRSVPLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1123] +func (x *Layer1_Speed) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1095] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -111091,34 +112835,34 @@ func (x *FlowRSVPLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{268, 0} +// Deprecated: Use Layer1_Speed.ProtoReflect.Descriptor instead. +func (*Layer1_Speed) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{52, 0} } -type FlowRSVPMessage_Choice struct { +type Layer1_Media struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPMessage_Choice) Reset() { - *x = FlowRSVPMessage_Choice{} +func (x *Layer1_Media) Reset() { + *x = Layer1_Media{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1124] + mi := &file_otg_proto_msgTypes[1096] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPMessage_Choice) String() string { +func (x *Layer1_Media) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPMessage_Choice) ProtoMessage() {} +func (*Layer1_Media) ProtoMessage() {} -func (x *FlowRSVPMessage_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1124] +func (x *Layer1_Media) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1096] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -111129,34 +112873,34 @@ func (x *FlowRSVPMessage_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPMessage_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPMessage_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{269, 0} +// Deprecated: Use Layer1_Media.ProtoReflect.Descriptor instead. +func (*Layer1_Media) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{52, 1} } -type FlowRSVPObjectLength_Choice struct { +type Layer1FlowControl_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPObjectLength_Choice) Reset() { - *x = FlowRSVPObjectLength_Choice{} +func (x *Layer1FlowControl_Choice) Reset() { + *x = Layer1FlowControl_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1125] + mi := &file_otg_proto_msgTypes[1097] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPObjectLength_Choice) String() string { +func (x *Layer1FlowControl_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPObjectLength_Choice) ProtoMessage() {} +func (*Layer1FlowControl_Choice) ProtoMessage() {} -func (x *FlowRSVPObjectLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1125] +func (x *Layer1FlowControl_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 { @@ -111167,34 +112911,34 @@ func (x *FlowRSVPObjectLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPObjectLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPObjectLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{272, 0} +// Deprecated: Use Layer1FlowControl_Choice.ProtoReflect.Descriptor instead. +func (*Layer1FlowControl_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{54, 0} } -type FlowRSVPPathObjectsClass_Choice struct { +type Capture_Format struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsClass_Choice) Reset() { - *x = FlowRSVPPathObjectsClass_Choice{} +func (x *Capture_Format) Reset() { + *x = Capture_Format{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1126] + mi := &file_otg_proto_msgTypes[1098] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClass_Choice) String() string { +func (x *Capture_Format) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClass_Choice) ProtoMessage() {} +func (*Capture_Format) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1126] +func (x *Capture_Format) 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 { @@ -111205,34 +112949,34 @@ func (x *FlowRSVPPathObjectsClass_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClass_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClass_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{273, 0} +// Deprecated: Use Capture_Format.ProtoReflect.Descriptor instead. +func (*Capture_Format) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{57, 0} } -type FlowRSVPPathObjectsSessionCType_Choice struct { +type CaptureFilter_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsSessionCType_Choice) Reset() { - *x = FlowRSVPPathObjectsSessionCType_Choice{} +func (x *CaptureFilter_Choice) Reset() { + *x = CaptureFilter_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1127] + mi := &file_otg_proto_msgTypes[1099] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSessionCType_Choice) String() string { +func (x *CaptureFilter_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSessionCType_Choice) ProtoMessage() {} +func (*CaptureFilter_Choice) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSessionCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1127] +func (x *CaptureFilter_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 { @@ -111243,34 +112987,34 @@ func (x *FlowRSVPPathObjectsSessionCType_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSessionCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSessionCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{275, 0} +// Deprecated: Use CaptureFilter_Choice.ProtoReflect.Descriptor instead. +func (*CaptureFilter_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{58, 0} } -type FlowRSVPPathSessionExtTunnelId_Choice struct { +type IsisInterface_NetworkType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathSessionExtTunnelId_Choice) Reset() { - *x = FlowRSVPPathSessionExtTunnelId_Choice{} +func (x *IsisInterface_NetworkType) Reset() { + *x = IsisInterface_NetworkType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1128] + mi := &file_otg_proto_msgTypes[1100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathSessionExtTunnelId_Choice) String() string { +func (x *IsisInterface_NetworkType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathSessionExtTunnelId_Choice) ProtoMessage() {} +func (*IsisInterface_NetworkType) ProtoMessage() {} -func (x *FlowRSVPPathSessionExtTunnelId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1128] +func (x *IsisInterface_NetworkType) 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 { @@ -111281,34 +113025,34 @@ func (x *FlowRSVPPathSessionExtTunnelId_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathSessionExtTunnelId_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathSessionExtTunnelId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{277, 0} -} +// Deprecated: Use IsisInterface_NetworkType.ProtoReflect.Descriptor instead. +func (*IsisInterface_NetworkType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69, 0} +} -type FlowRSVPPathObjectsRsvpHopCType_Choice struct { +type IsisInterface_LevelType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) Reset() { - *x = FlowRSVPPathObjectsRsvpHopCType_Choice{} +func (x *IsisInterface_LevelType) Reset() { + *x = IsisInterface_LevelType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1129] + mi := &file_otg_proto_msgTypes[1101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) String() string { +func (x *IsisInterface_LevelType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRsvpHopCType_Choice) ProtoMessage() {} +func (*IsisInterface_LevelType) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1129] +func (x *IsisInterface_LevelType) 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 { @@ -111319,34 +113063,34 @@ func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRsvpHopCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRsvpHopCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{279, 0} +// Deprecated: Use IsisInterface_LevelType.ProtoReflect.Descriptor instead. +func (*IsisInterface_LevelType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{69, 1} } -type FlowRSVPPathObjectsTimeValuesCType_Choice struct { +type IsisInterfaceAuthentication_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) Reset() { - *x = FlowRSVPPathObjectsTimeValuesCType_Choice{} +func (x *IsisInterfaceAuthentication_AuthType) Reset() { + *x = IsisInterfaceAuthentication_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1130] + mi := &file_otg_proto_msgTypes[1102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) String() string { +func (x *IsisInterfaceAuthentication_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsTimeValuesCType_Choice) ProtoMessage() {} +func (*IsisInterfaceAuthentication_AuthType) ProtoMessage() {} -func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1130] +func (x *IsisInterfaceAuthentication_AuthType) 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 { @@ -111357,34 +113101,34 @@ func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsTimeValuesCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsTimeValuesCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{282, 0} +// Deprecated: Use IsisInterfaceAuthentication_AuthType.ProtoReflect.Descriptor instead. +func (*IsisInterfaceAuthentication_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{74, 0} } -type FlowRSVPPathObjectsClassExplicitRouteCType_Choice struct { +type IsisAuthenticationBase_AuthType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) Reset() { - *x = FlowRSVPPathObjectsClassExplicitRouteCType_Choice{} +func (x *IsisAuthenticationBase_AuthType) Reset() { + *x = IsisAuthenticationBase_AuthType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1131] + mi := &file_otg_proto_msgTypes[1103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) String() string { +func (x *IsisAuthenticationBase_AuthType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice) ProtoMessage() {} +func (*IsisAuthenticationBase_AuthType) ProtoMessage() {} -func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1131] +func (x *IsisAuthenticationBase_AuthType) 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 { @@ -111395,34 +113139,34 @@ func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsClassExplicitRouteCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{285, 0} +// Deprecated: Use IsisAuthenticationBase_AuthType.ProtoReflect.Descriptor instead. +func (*IsisAuthenticationBase_AuthType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{80, 0} } -type FlowRSVPType1ExplicitRouteSubobjectsType_Choice struct { +type IsisV4RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) Reset() { - *x = FlowRSVPType1ExplicitRouteSubobjectsType_Choice{} +func (x *IsisV4RouteRange_OriginType) Reset() { + *x = IsisV4RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1132] + mi := &file_otg_proto_msgTypes[1104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) String() string { +func (x *IsisV4RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice) ProtoMessage() {} +func (*IsisV4RouteRange_OriginType) ProtoMessage() {} -func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1132] +func (x *IsisV4RouteRange_OriginType) 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 { @@ -111433,34 +113177,34 @@ func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjectsType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{288, 0} +// Deprecated: Use IsisV4RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{81, 0} } -type FlowRSVPExplicitRouteLength_Choice struct { +type IsisV4RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPExplicitRouteLength_Choice) Reset() { - *x = FlowRSVPExplicitRouteLength_Choice{} +func (x *IsisV4RouteRange_RedistributionType) Reset() { + *x = IsisV4RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1133] + mi := &file_otg_proto_msgTypes[1105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPExplicitRouteLength_Choice) String() string { +func (x *IsisV4RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPExplicitRouteLength_Choice) ProtoMessage() {} +func (*IsisV4RouteRange_RedistributionType) ProtoMessage() {} -func (x *FlowRSVPExplicitRouteLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1133] +func (x *IsisV4RouteRange_RedistributionType) 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 { @@ -111471,34 +113215,34 @@ func (x *FlowRSVPExplicitRouteLength_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPExplicitRouteLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPExplicitRouteLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{291, 0} +// Deprecated: Use IsisV4RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV4RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{81, 1} } -type FlowRSVPExplicitRouteASNumberLength_Choice struct { +type IsisV6RouteRange_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPExplicitRouteASNumberLength_Choice) Reset() { - *x = FlowRSVPExplicitRouteASNumberLength_Choice{} +func (x *IsisV6RouteRange_OriginType) Reset() { + *x = IsisV6RouteRange_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1134] + mi := &file_otg_proto_msgTypes[1106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPExplicitRouteASNumberLength_Choice) String() string { +func (x *IsisV6RouteRange_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPExplicitRouteASNumberLength_Choice) ProtoMessage() {} +func (*IsisV6RouteRange_OriginType) ProtoMessage() {} -func (x *FlowRSVPExplicitRouteASNumberLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1134] +func (x *IsisV6RouteRange_OriginType) 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 { @@ -111509,34 +113253,34 @@ func (x *FlowRSVPExplicitRouteASNumberLength_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPExplicitRouteASNumberLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPExplicitRouteASNumberLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{292, 0} +// Deprecated: Use IsisV6RouteRange_OriginType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 0} } -type FlowRSVPPathObjectsLabelRequestCType_Choice struct { +type IsisV6RouteRange_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) Reset() { - *x = FlowRSVPPathObjectsLabelRequestCType_Choice{} +func (x *IsisV6RouteRange_RedistributionType) Reset() { + *x = IsisV6RouteRange_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1135] + mi := &file_otg_proto_msgTypes[1107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) String() string { +func (x *IsisV6RouteRange_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsLabelRequestCType_Choice) ProtoMessage() {} +func (*IsisV6RouteRange_RedistributionType) ProtoMessage() {} -func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1135] +func (x *IsisV6RouteRange_RedistributionType) 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 { @@ -111547,34 +113291,34 @@ func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsLabelRequestCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsLabelRequestCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{294, 0} +// Deprecated: Use IsisV6RouteRange_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisV6RouteRange_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{85, 1} } -type FlowRSVPPathObjectsSessionAttributeCType_Choice struct { +type DeviceBgpMessageHeaderError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) Reset() { - *x = FlowRSVPPathObjectsSessionAttributeCType_Choice{} +func (x *DeviceBgpMessageHeaderError_Subcode) Reset() { + *x = DeviceBgpMessageHeaderError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1136] + mi := &file_otg_proto_msgTypes[1108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) String() string { +func (x *DeviceBgpMessageHeaderError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSessionAttributeCType_Choice) ProtoMessage() {} +func (*DeviceBgpMessageHeaderError_Subcode) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1136] +func (x *DeviceBgpMessageHeaderError_Subcode) 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 { @@ -111585,34 +113329,34 @@ func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSessionAttributeCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSessionAttributeCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{297, 0} +// Deprecated: Use DeviceBgpMessageHeaderError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpMessageHeaderError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{87, 0} } -type FlowRSVPLspTunnelFlag_Choice struct { +type DeviceBgpOpenMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPLspTunnelFlag_Choice) Reset() { - *x = FlowRSVPLspTunnelFlag_Choice{} +func (x *DeviceBgpOpenMessageError_Subcode) Reset() { + *x = DeviceBgpOpenMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1137] + mi := &file_otg_proto_msgTypes[1109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPLspTunnelFlag_Choice) String() string { +func (x *DeviceBgpOpenMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPLspTunnelFlag_Choice) ProtoMessage() {} +func (*DeviceBgpOpenMessageError_Subcode) ProtoMessage() {} -func (x *FlowRSVPLspTunnelFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1137] +func (x *DeviceBgpOpenMessageError_Subcode) 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 { @@ -111623,34 +113367,34 @@ func (x *FlowRSVPLspTunnelFlag_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPLspTunnelFlag_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPLspTunnelFlag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{300, 0} +// Deprecated: Use DeviceBgpOpenMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpOpenMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{88, 0} } -type FlowRSVPSessionAttributeNameLength_Choice struct { +type DeviceBgpUpdateMessageError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPSessionAttributeNameLength_Choice) Reset() { - *x = FlowRSVPSessionAttributeNameLength_Choice{} +func (x *DeviceBgpUpdateMessageError_Subcode) Reset() { + *x = DeviceBgpUpdateMessageError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1138] + mi := &file_otg_proto_msgTypes[1110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPSessionAttributeNameLength_Choice) String() string { +func (x *DeviceBgpUpdateMessageError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPSessionAttributeNameLength_Choice) ProtoMessage() {} +func (*DeviceBgpUpdateMessageError_Subcode) ProtoMessage() {} -func (x *FlowRSVPSessionAttributeNameLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1138] +func (x *DeviceBgpUpdateMessageError_Subcode) 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 { @@ -111661,34 +113405,34 @@ func (x *FlowRSVPSessionAttributeNameLength_Choice) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPSessionAttributeNameLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPSessionAttributeNameLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{301, 0} +// Deprecated: Use DeviceBgpUpdateMessageError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpUpdateMessageError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{89, 0} } -type FlowRSVPPathObjectsSenderTemplateCType_Choice struct { +type DeviceBgpCeaseError_Subcode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) Reset() { - *x = FlowRSVPPathObjectsSenderTemplateCType_Choice{} +func (x *DeviceBgpCeaseError_Subcode) Reset() { + *x = DeviceBgpCeaseError_Subcode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1139] + mi := &file_otg_proto_msgTypes[1111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) String() string { +func (x *DeviceBgpCeaseError_Subcode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSenderTemplateCType_Choice) ProtoMessage() {} +func (*DeviceBgpCeaseError_Subcode) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1139] +func (x *DeviceBgpCeaseError_Subcode) 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 { @@ -111699,34 +113443,34 @@ func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSenderTemplateCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSenderTemplateCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{303, 0} +// Deprecated: Use DeviceBgpCeaseError_Subcode.ProtoReflect.Descriptor instead. +func (*DeviceBgpCeaseError_Subcode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{92, 0} } -type FlowRSVPPathObjectsSenderTspecCType_Choice struct { +type BgpV4Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) Reset() { - *x = FlowRSVPPathObjectsSenderTspecCType_Choice{} +func (x *BgpV4Peer_AsType) Reset() { + *x = BgpV4Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1140] + mi := &file_otg_proto_msgTypes[1112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) String() string { +func (x *BgpV4Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsSenderTspecCType_Choice) ProtoMessage() {} +func (*BgpV4Peer_AsType) ProtoMessage() {} -func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1140] +func (x *BgpV4Peer_AsType) 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 { @@ -111737,34 +113481,34 @@ func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsSenderTspecCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsSenderTspecCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{306, 0} +// Deprecated: Use BgpV4Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 0} } -type FlowRSVPPathObjectsRecordRouteCType_Choice struct { +type BgpV4Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) Reset() { - *x = FlowRSVPPathObjectsRecordRouteCType_Choice{} +func (x *BgpV4Peer_AsNumberWidth) Reset() { + *x = BgpV4Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1141] + mi := &file_otg_proto_msgTypes[1113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) String() string { +func (x *BgpV4Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRecordRouteCType_Choice) ProtoMessage() {} +func (*BgpV4Peer_AsNumberWidth) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1141] +func (x *BgpV4Peer_AsNumberWidth) 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 { @@ -111775,34 +113519,34 @@ func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRecordRouteCType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRecordRouteCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{309, 0} +// Deprecated: Use BgpV4Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV4Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{94, 1} } -type FlowRSVPPathObjectsRecordRouteSubObjectType_Choice struct { +type BgpV4EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) Reset() { - *x = FlowRSVPPathObjectsRecordRouteSubObjectType_Choice{} +func (x *BgpV4EthernetSegment_ActiveMode) Reset() { + *x = BgpV4EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1142] + mi := &file_otg_proto_msgTypes[1114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) String() string { +func (x *BgpV4EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) ProtoMessage() {} +func (*BgpV4EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1142] +func (x *BgpV4EthernetSegment_ActiveMode) 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 { @@ -111813,34 +113557,34 @@ func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathObjectsRecordRouteSubObjectType_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{312, 0} +// Deprecated: Use BgpV4EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV4EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{96, 0} } -type FlowRSVPRecordRouteIPv4Flag_Choice struct { +type BgpRouteAdvanced_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPRecordRouteIPv4Flag_Choice) Reset() { - *x = FlowRSVPRecordRouteIPv4Flag_Choice{} +func (x *BgpRouteAdvanced_Origin) Reset() { + *x = BgpRouteAdvanced_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1143] + mi := &file_otg_proto_msgTypes[1115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPRecordRouteIPv4Flag_Choice) String() string { +func (x *BgpRouteAdvanced_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPRecordRouteIPv4Flag_Choice) ProtoMessage() {} +func (*BgpRouteAdvanced_Origin) ProtoMessage() {} -func (x *FlowRSVPRecordRouteIPv4Flag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1143] +func (x *BgpRouteAdvanced_Origin) 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 { @@ -111851,34 +113595,34 @@ func (x *FlowRSVPRecordRouteIPv4Flag_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPRecordRouteIPv4Flag_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPRecordRouteIPv4Flag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{314, 0} +// Deprecated: Use BgpRouteAdvanced_Origin.ProtoReflect.Descriptor instead. +func (*BgpRouteAdvanced_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{98, 0} } -type FlowRSVPPathRecordRouteLabel_Choice struct { +type BgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPPathRecordRouteLabel_Choice) Reset() { - *x = FlowRSVPPathRecordRouteLabel_Choice{} +func (x *BgpCommunity_Type) Reset() { + *x = BgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1144] + mi := &file_otg_proto_msgTypes[1116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPPathRecordRouteLabel_Choice) String() string { +func (x *BgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPPathRecordRouteLabel_Choice) ProtoMessage() {} +func (*BgpCommunity_Type) ProtoMessage() {} -func (x *FlowRSVPPathRecordRouteLabel_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1144] +func (x *BgpCommunity_Type) 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 { @@ -111889,34 +113633,34 @@ func (x *FlowRSVPPathRecordRouteLabel_Choice) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPPathRecordRouteLabel_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPPathRecordRouteLabel_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{316, 0} +// Deprecated: Use BgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{99, 0} } -type FlowRSVPRouteRecordLength_Choice struct { +type BgpExtCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRSVPRouteRecordLength_Choice) Reset() { - *x = FlowRSVPRouteRecordLength_Choice{} +func (x *BgpExtCommunity_Type) Reset() { + *x = BgpExtCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1145] + mi := &file_otg_proto_msgTypes[1117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRSVPRouteRecordLength_Choice) String() string { +func (x *BgpExtCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRSVPRouteRecordLength_Choice) ProtoMessage() {} +func (*BgpExtCommunity_Type) ProtoMessage() {} -func (x *FlowRSVPRouteRecordLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1145] +func (x *BgpExtCommunity_Type) 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 { @@ -111927,34 +113671,34 @@ func (x *FlowRSVPRouteRecordLength_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FlowRSVPRouteRecordLength_Choice.ProtoReflect.Descriptor instead. -func (*FlowRSVPRouteRecordLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{317, 0} +// Deprecated: Use BgpExtCommunity_Type.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 0} } -type FlowSize_Choice struct { +type BgpExtCommunity_Subtype struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSize_Choice) Reset() { - *x = FlowSize_Choice{} +func (x *BgpExtCommunity_Subtype) Reset() { + *x = BgpExtCommunity_Subtype{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1146] + mi := &file_otg_proto_msgTypes[1118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSize_Choice) String() string { +func (x *BgpExtCommunity_Subtype) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSize_Choice) ProtoMessage() {} +func (*BgpExtCommunity_Subtype) ProtoMessage() {} -func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1146] +func (x *BgpExtCommunity_Subtype) 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 { @@ -111965,34 +113709,34 @@ 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{319, 0} +// Deprecated: Use BgpExtCommunity_Subtype.ProtoReflect.Descriptor instead. +func (*BgpExtCommunity_Subtype) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{100, 1} } -type FlowSizeWeightPairs_Choice struct { +type BgpAsPath_AsSetMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Choice) Reset() { - *x = FlowSizeWeightPairs_Choice{} +func (x *BgpAsPath_AsSetMode) Reset() { + *x = BgpAsPath_AsSetMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1147] + mi := &file_otg_proto_msgTypes[1119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Choice) String() string { +func (x *BgpAsPath_AsSetMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} +func (*BgpAsPath_AsSetMode) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1147] +func (x *BgpAsPath_AsSetMode) 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 { @@ -112003,34 +113747,34 @@ 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{322, 0} +// Deprecated: Use BgpAsPath_AsSetMode.ProtoReflect.Descriptor instead. +func (*BgpAsPath_AsSetMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{101, 0} } -type FlowSizeWeightPairs_Predefined struct { +type BgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowSizeWeightPairs_Predefined) Reset() { - *x = FlowSizeWeightPairs_Predefined{} +func (x *BgpAsPathSegment_Type) Reset() { + *x = BgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1148] + mi := &file_otg_proto_msgTypes[1120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowSizeWeightPairs_Predefined) String() string { +func (x *BgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} +func (*BgpAsPathSegment_Type) ProtoMessage() {} -func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1148] +func (x *BgpAsPathSegment_Type) 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 { @@ -112041,34 +113785,34 @@ 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{322, 1} +// Deprecated: Use BgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{102, 0} } -type FlowRate_Choice struct { +type BgpV4EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRate_Choice) Reset() { - *x = FlowRate_Choice{} +func (x *BgpV4EvpnEvis_Choice) Reset() { + *x = BgpV4EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1149] + mi := &file_otg_proto_msgTypes[1121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRate_Choice) String() string { +func (x *BgpV4EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRate_Choice) ProtoMessage() {} +func (*BgpV4EvpnEvis_Choice) ProtoMessage() {} -func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1149] +func (x *BgpV4EvpnEvis_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 { @@ -112079,34 +113823,34 @@ 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{324, 0} +// Deprecated: Use BgpV4EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV4EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{103, 0} } -type FlowDuration_Choice struct { +type BgpV4EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDuration_Choice) Reset() { - *x = FlowDuration_Choice{} +func (x *BgpV4EviVxlan_ReplicationType) Reset() { + *x = BgpV4EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1150] + mi := &file_otg_proto_msgTypes[1122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDuration_Choice) String() string { +func (x *BgpV4EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDuration_Choice) ProtoMessage() {} +func (*BgpV4EviVxlan_ReplicationType) ProtoMessage() {} -func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1150] +func (x *BgpV4EviVxlan_ReplicationType) 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 { @@ -112117,34 +113861,34 @@ 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{325, 0} +// Deprecated: Use BgpV4EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV4EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{104, 0} } -type FlowDelay_Choice struct { +type BgpRouteDistinguisher_RdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDelay_Choice) Reset() { - *x = FlowDelay_Choice{} +func (x *BgpRouteDistinguisher_RdType) Reset() { + *x = BgpRouteDistinguisher_RdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1151] + mi := &file_otg_proto_msgTypes[1123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDelay_Choice) String() string { +func (x *BgpRouteDistinguisher_RdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDelay_Choice) ProtoMessage() {} +func (*BgpRouteDistinguisher_RdType) ProtoMessage() {} -func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1151] +func (x *BgpRouteDistinguisher_RdType) 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 { @@ -112155,34 +113899,34 @@ 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{327, 0} +// Deprecated: Use BgpRouteDistinguisher_RdType.ProtoReflect.Descriptor instead. +func (*BgpRouteDistinguisher_RdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{107, 0} } -type FlowDurationInterBurstGap_Choice struct { +type BgpRouteTarget_RtType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowDurationInterBurstGap_Choice) Reset() { - *x = FlowDurationInterBurstGap_Choice{} +func (x *BgpRouteTarget_RtType) Reset() { + *x = BgpRouteTarget_RtType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1152] + mi := &file_otg_proto_msgTypes[1124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowDurationInterBurstGap_Choice) String() string { +func (x *BgpRouteTarget_RtType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} +func (*BgpRouteTarget_RtType) ProtoMessage() {} -func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1152] +func (x *BgpRouteTarget_RtType) 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 { @@ -112193,34 +113937,34 @@ 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{331, 0} +// Deprecated: Use BgpRouteTarget_RtType.ProtoReflect.Descriptor instead. +func (*BgpRouteTarget_RtType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{108, 0} } -type FlowLatencyMetrics_Mode struct { +type BgpV4RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowLatencyMetrics_Mode) Reset() { - *x = FlowLatencyMetrics_Mode{} +func (x *BgpV4RouteRange_NextHopMode) Reset() { + *x = BgpV4RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1153] + mi := &file_otg_proto_msgTypes[1125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowLatencyMetrics_Mode) String() string { +func (x *BgpV4RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowLatencyMetrics_Mode) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopMode) ProtoMessage() {} -func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1153] +func (x *BgpV4RouteRange_NextHopMode) 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 { @@ -112231,34 +113975,34 @@ 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{333, 0} +// Deprecated: Use BgpV4RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{112, 0} } -type FlowRxTxRatio_Choice struct { +type BgpV4RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowRxTxRatio_Choice) Reset() { - *x = FlowRxTxRatio_Choice{} +func (x *BgpV4RouteRange_NextHopAddressType) Reset() { + *x = BgpV4RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1154] + mi := &file_otg_proto_msgTypes[1126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowRxTxRatio_Choice) String() string { +func (x *BgpV4RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowRxTxRatio_Choice) ProtoMessage() {} +func (*BgpV4RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1154] +func (x *BgpV4RouteRange_NextHopAddressType) 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 { @@ -112269,34 +114013,34 @@ 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{335, 0} +// Deprecated: Use BgpV4RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV4RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{112, 1} } -type EventRequest_Type struct { +type BgpExtendedCommunity_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *EventRequest_Type) Reset() { - *x = EventRequest_Type{} +func (x *BgpExtendedCommunity_Choice) Reset() { + *x = BgpExtendedCommunity_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1155] + mi := &file_otg_proto_msgTypes[1127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *EventRequest_Type) String() string { +func (x *BgpExtendedCommunity_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*EventRequest_Type) ProtoMessage() {} +func (*BgpExtendedCommunity_Choice) ProtoMessage() {} -func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1155] +func (x *BgpExtendedCommunity_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 { @@ -112307,34 +114051,34 @@ 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{341, 0} +// Deprecated: Use BgpExtendedCommunity_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunity_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{114, 0} } -type LldpConnection_Choice struct { +type BgpExtendedCommunityTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpConnection_Choice) Reset() { - *x = LldpConnection_Choice{} +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1156] + mi := &file_otg_proto_msgTypes[1128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpConnection_Choice) String() string { +func (x *BgpExtendedCommunityTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpConnection_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1156] +func (x *BgpExtendedCommunityTransitive2OctetAsType_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 { @@ -112345,34 +114089,34 @@ 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{344, 0} +// Deprecated: Use BgpExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{117, 0} } -type LldpChassisId_Choice struct { +type BgpExtendedCommunityTransitiveIpv4AddressType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisId_Choice) Reset() { - *x = LldpChassisId_Choice{} +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveIpv4AddressType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1157] + mi := &file_otg_proto_msgTypes[1129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisId_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisId_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} -func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1157] +func (x *BgpExtendedCommunityTransitiveIpv4AddressType_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 { @@ -112383,34 +114127,34 @@ 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{345, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{120, 0} } -type LldpPortId_Choice struct { +type BgpExtendedCommunityTransitive4OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortId_Choice) Reset() { - *x = LldpPortId_Choice{} +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityTransitive4OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1158] + mi := &file_otg_proto_msgTypes[1130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortId_Choice) String() string { +func (x *BgpExtendedCommunityTransitive4OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortId_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} -func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1158] +func (x *BgpExtendedCommunityTransitive4OctetAsType_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 { @@ -112421,34 +114165,34 @@ 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{346, 0} +// Deprecated: Use BgpExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{123, 0} } -type LldpChassisMacSubType_Choice struct { +type BgpExtendedCommunityTransitiveOpaqueType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpChassisMacSubType_Choice) Reset() { - *x = LldpChassisMacSubType_Choice{} +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveOpaqueType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1159] + mi := &file_otg_proto_msgTypes[1131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpChassisMacSubType_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveOpaqueType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpChassisMacSubType_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} -func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1159] +func (x *BgpExtendedCommunityTransitiveOpaqueType_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 { @@ -112459,34 +114203,34 @@ 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{347, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{126, 0} } -type LldpPortInterfaceNameSubType_Choice struct { +type BgpExtendedCommunityTransitiveEvpnType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpPortInterfaceNameSubType_Choice) Reset() { - *x = LldpPortInterfaceNameSubType_Choice{} +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) Reset() { + *x = BgpExtendedCommunityTransitiveEvpnType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1160] + mi := &file_otg_proto_msgTypes[1132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpPortInterfaceNameSubType_Choice) String() string { +func (x *BgpExtendedCommunityTransitiveEvpnType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) ProtoMessage() {} -func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1160] +func (x *BgpExtendedCommunityTransitiveEvpnType_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 { @@ -112497,34 +114241,34 @@ 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{348, 0} +// Deprecated: Use BgpExtendedCommunityTransitiveEvpnType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityTransitiveEvpnType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{128, 0} } -type LldpSystemName_Choice struct { +type BgpExtendedCommunityNonTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpSystemName_Choice) Reset() { - *x = LldpSystemName_Choice{} +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { + *x = BgpExtendedCommunityNonTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1161] + mi := &file_otg_proto_msgTypes[1133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpSystemName_Choice) String() string { +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpSystemName_Choice) ProtoMessage() {} +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1161] +func (x *BgpExtendedCommunityNonTransitive2OctetAsType_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 { @@ -112535,34 +114279,34 @@ 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{349, 0} +// Deprecated: Use BgpExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{130, 0} } -type Error_Kind struct { +type BgpV6RouteRange_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Error_Kind) Reset() { - *x = Error_Kind{} +func (x *BgpV6RouteRange_NextHopMode) Reset() { + *x = BgpV6RouteRange_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1162] + mi := &file_otg_proto_msgTypes[1134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Error_Kind) String() string { +func (x *BgpV6RouteRange_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Error_Kind) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopMode) ProtoMessage() {} -func (x *Error_Kind) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1162] +func (x *BgpV6RouteRange_NextHopMode) 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 { @@ -112573,34 +114317,34 @@ 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{350, 0} +// Deprecated: Use BgpV6RouteRange_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132, 0} } -type ConfigUpdate_Choice struct { +type BgpV6RouteRange_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ConfigUpdate_Choice) Reset() { - *x = ConfigUpdate_Choice{} +func (x *BgpV6RouteRange_NextHopAddressType) Reset() { + *x = BgpV6RouteRange_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1163] + mi := &file_otg_proto_msgTypes[1135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConfigUpdate_Choice) String() string { +func (x *BgpV6RouteRange_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConfigUpdate_Choice) ProtoMessage() {} +func (*BgpV6RouteRange_NextHopAddressType) ProtoMessage() {} -func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1163] +func (x *BgpV6RouteRange_NextHopAddressType) 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 { @@ -112611,34 +114355,34 @@ 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{352, 0} +// Deprecated: Use BgpV6RouteRange_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpV6RouteRange_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{132, 1} } -type FlowsUpdate_PropertyNames struct { +type BgpSrteV4Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowsUpdate_PropertyNames) Reset() { - *x = FlowsUpdate_PropertyNames{} +func (x *BgpSrteV4Policy_NextHopMode) Reset() { + *x = BgpSrteV4Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1164] + mi := &file_otg_proto_msgTypes[1136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowsUpdate_PropertyNames) String() string { +func (x *BgpSrteV4Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowsUpdate_PropertyNames) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopMode) ProtoMessage() {} -func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1164] +func (x *BgpSrteV4Policy_NextHopMode) 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 { @@ -112649,34 +114393,34 @@ 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{353, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133, 0} } -type ControlState_Choice struct { +type BgpSrteV4Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlState_Choice) Reset() { - *x = ControlState_Choice{} +func (x *BgpSrteV4Policy_NextHopAddressType) Reset() { + *x = BgpSrteV4Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1165] + mi := &file_otg_proto_msgTypes[1137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlState_Choice) String() string { +func (x *BgpSrteV4Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlState_Choice) ProtoMessage() {} +func (*BgpSrteV4Policy_NextHopAddressType) ProtoMessage() {} -func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1165] +func (x *BgpSrteV4Policy_NextHopAddressType) 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 { @@ -112687,34 +114431,34 @@ 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{354, 0} +// Deprecated: Use BgpSrteV4Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV4Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{133, 1} } -type StatePort_Choice struct { +type BgpSrteRemoteEndpointSubTlv_AddressFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePort_Choice) Reset() { - *x = StatePort_Choice{} +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) Reset() { + *x = BgpSrteRemoteEndpointSubTlv_AddressFamily{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1166] + mi := &file_otg_proto_msgTypes[1138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePort_Choice) String() string { +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePort_Choice) ProtoMessage() {} +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) ProtoMessage() {} -func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1166] +func (x *BgpSrteRemoteEndpointSubTlv_AddressFamily) 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 { @@ -112725,34 +114469,34 @@ 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{355, 0} +// Deprecated: Use BgpSrteRemoteEndpointSubTlv_AddressFamily.ProtoReflect.Descriptor instead. +func (*BgpSrteRemoteEndpointSubTlv_AddressFamily) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{135, 0} } -type StateTraffic_Choice struct { +type BgpSrteBindingSubTlv_BindingSidType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTraffic_Choice) Reset() { - *x = StateTraffic_Choice{} +func (x *BgpSrteBindingSubTlv_BindingSidType) Reset() { + *x = BgpSrteBindingSubTlv_BindingSidType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1167] + mi := &file_otg_proto_msgTypes[1139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTraffic_Choice) String() string { +func (x *BgpSrteBindingSubTlv_BindingSidType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTraffic_Choice) ProtoMessage() {} +func (*BgpSrteBindingSubTlv_BindingSidType) ProtoMessage() {} -func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1167] +func (x *BgpSrteBindingSubTlv_BindingSidType) 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 { @@ -112763,34 +114507,34 @@ 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{356, 0} +// Deprecated: Use BgpSrteBindingSubTlv_BindingSidType.ProtoReflect.Descriptor instead. +func (*BgpSrteBindingSubTlv_BindingSidType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{137, 0} } -type StateProtocol_Choice struct { +type BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocol_Choice) Reset() { - *x = StateProtocol_Choice{} +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Reset() { + *x = BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1168] + mi := &file_otg_proto_msgTypes[1140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocol_Choice) String() string { +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocol_Choice) ProtoMessage() {} +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) ProtoMessage() {} -func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1168] +func (x *BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) 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 { @@ -112801,34 +114545,34 @@ 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{357, 0} +// Deprecated: Use BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy.ProtoReflect.Descriptor instead. +func (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{141, 0} } -type StatePortLink_State struct { +type BgpSrteSegment_SegmentType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortLink_State) Reset() { - *x = StatePortLink_State{} +func (x *BgpSrteSegment_SegmentType) Reset() { + *x = BgpSrteSegment_SegmentType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1169] + mi := &file_otg_proto_msgTypes[1141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortLink_State) String() string { +func (x *BgpSrteSegment_SegmentType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortLink_State) ProtoMessage() {} +func (*BgpSrteSegment_SegmentType) ProtoMessage() {} -func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1169] +func (x *BgpSrteSegment_SegmentType) 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 { @@ -112839,34 +114583,34 @@ 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{358, 0} +// Deprecated: Use BgpSrteSegment_SegmentType.ProtoReflect.Descriptor instead. +func (*BgpSrteSegment_SegmentType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{143, 0} } -type StatePortCapture_State struct { +type BgpSrteV6Policy_NextHopMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatePortCapture_State) Reset() { - *x = StatePortCapture_State{} +func (x *BgpSrteV6Policy_NextHopMode) Reset() { + *x = BgpSrteV6Policy_NextHopMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1170] + mi := &file_otg_proto_msgTypes[1142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatePortCapture_State) String() string { +func (x *BgpSrteV6Policy_NextHopMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatePortCapture_State) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopMode) ProtoMessage() {} -func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1170] +func (x *BgpSrteV6Policy_NextHopMode) 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 { @@ -112877,34 +114621,34 @@ 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{359, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopMode.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 0} } -type StateTrafficFlowTransmit_State struct { +type BgpSrteV6Policy_NextHopAddressType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateTrafficFlowTransmit_State) Reset() { - *x = StateTrafficFlowTransmit_State{} +func (x *BgpSrteV6Policy_NextHopAddressType) Reset() { + *x = BgpSrteV6Policy_NextHopAddressType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1171] + mi := &file_otg_proto_msgTypes[1143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateTrafficFlowTransmit_State) String() string { +func (x *BgpSrteV6Policy_NextHopAddressType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateTrafficFlowTransmit_State) ProtoMessage() {} +func (*BgpSrteV6Policy_NextHopAddressType) ProtoMessage() {} -func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1171] +func (x *BgpSrteV6Policy_NextHopAddressType) 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 { @@ -112915,34 +114659,34 @@ 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{360, 0} +// Deprecated: Use BgpSrteV6Policy_NextHopAddressType.ProtoReflect.Descriptor instead. +func (*BgpSrteV6Policy_NextHopAddressType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{157, 1} } -type StateProtocolAll_State struct { +type BgpUpdateReplay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolAll_State) Reset() { - *x = StateProtocolAll_State{} +func (x *BgpUpdateReplay_Choice) Reset() { + *x = BgpUpdateReplay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1172] + mi := &file_otg_proto_msgTypes[1144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolAll_State) String() string { +func (x *BgpUpdateReplay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolAll_State) ProtoMessage() {} +func (*BgpUpdateReplay_Choice) ProtoMessage() {} -func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1172] +func (x *BgpUpdateReplay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -112953,34 +114697,34 @@ 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{361, 0} +// Deprecated: Use BgpUpdateReplay_Choice.ProtoReflect.Descriptor instead. +func (*BgpUpdateReplay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{160, 0} } -type StateProtocolRoute_State struct { +type BgpAttributes_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolRoute_State) Reset() { - *x = StateProtocolRoute_State{} +func (x *BgpAttributes_Origin) Reset() { + *x = BgpAttributes_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1173] + mi := &file_otg_proto_msgTypes[1145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolRoute_State) String() string { +func (x *BgpAttributes_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolRoute_State) ProtoMessage() {} +func (*BgpAttributes_Origin) ProtoMessage() {} -func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1173] +func (x *BgpAttributes_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -112991,34 +114735,34 @@ 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{362, 0} +// Deprecated: Use BgpAttributes_Origin.ProtoReflect.Descriptor instead. +func (*BgpAttributes_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{171, 0} } -type StateProtocolLacp_Choice struct { +type BgpAttributesAsPath_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacp_Choice) Reset() { - *x = StateProtocolLacp_Choice{} +func (x *BgpAttributesAsPath_Choice) Reset() { + *x = BgpAttributesAsPath_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1174] + mi := &file_otg_proto_msgTypes[1146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacp_Choice) String() string { +func (x *BgpAttributesAsPath_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacp_Choice) ProtoMessage() {} +func (*BgpAttributesAsPath_Choice) ProtoMessage() {} -func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1174] +func (x *BgpAttributesAsPath_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113029,34 +114773,34 @@ 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{363, 0} +// Deprecated: Use BgpAttributesAsPath_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesAsPath_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{173, 0} } -type StateProtocolLacpAdmin_State struct { +type BgpAttributesFourByteAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpAdmin_State) Reset() { - *x = StateProtocolLacpAdmin_State{} +func (x *BgpAttributesFourByteAsPathSegment_Type) Reset() { + *x = BgpAttributesFourByteAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1175] + mi := &file_otg_proto_msgTypes[1147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpAdmin_State) String() string { +func (x *BgpAttributesFourByteAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpAdmin_State) ProtoMessage() {} +func (*BgpAttributesFourByteAsPathSegment_Type) ProtoMessage() {} -func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1175] +func (x *BgpAttributesFourByteAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113067,34 +114811,34 @@ 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{364, 0} +// Deprecated: Use BgpAttributesFourByteAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAttributesFourByteAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{175, 0} } -type StateProtocolLacpMemberPorts_State struct { +type BgpAttributesTwoByteAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolLacpMemberPorts_State) Reset() { - *x = StateProtocolLacpMemberPorts_State{} +func (x *BgpAttributesTwoByteAsPathSegment_Type) Reset() { + *x = BgpAttributesTwoByteAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1176] + mi := &file_otg_proto_msgTypes[1148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolLacpMemberPorts_State) String() string { +func (x *BgpAttributesTwoByteAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolLacpMemberPorts_State) ProtoMessage() {} +func (*BgpAttributesTwoByteAsPathSegment_Type) ProtoMessage() {} -func (x *StateProtocolLacpMemberPorts_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1176] +func (x *BgpAttributesTwoByteAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113105,34 +114849,34 @@ 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{365, 0} +// Deprecated: Use BgpAttributesTwoByteAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*BgpAttributesTwoByteAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{177, 0} } -type StateProtocolBgp_Choice struct { +type BgpAttributesAggregator_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolBgp_Choice) Reset() { - *x = StateProtocolBgp_Choice{} +func (x *BgpAttributesAggregator_Choice) Reset() { + *x = BgpAttributesAggregator_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1177] + mi := &file_otg_proto_msgTypes[1149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolBgp_Choice) String() string { +func (x *BgpAttributesAggregator_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgp_Choice) ProtoMessage() {} +func (*BgpAttributesAggregator_Choice) ProtoMessage() {} -func (x *StateProtocolBgp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1177] +func (x *BgpAttributesAggregator_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113143,34 +114887,34 @@ 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{366, 0} +// Deprecated: Use BgpAttributesAggregator_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesAggregator_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{179, 0} } -type StateProtocolBgpPeers_State struct { +type BgpAttributesCommunity_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolBgpPeers_State) Reset() { - *x = StateProtocolBgpPeers_State{} +func (x *BgpAttributesCommunity_Choice) Reset() { + *x = BgpAttributesCommunity_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1178] + mi := &file_otg_proto_msgTypes[1150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolBgpPeers_State) String() string { +func (x *BgpAttributesCommunity_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolBgpPeers_State) ProtoMessage() {} +func (*BgpAttributesCommunity_Choice) ProtoMessage() {} -func (x *StateProtocolBgpPeers_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1178] +func (x *BgpAttributesCommunity_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113181,34 +114925,34 @@ 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{367, 0} +// Deprecated: Use BgpAttributesCommunity_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesCommunity_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{181, 0} } -type StateProtocolIsis_Choice struct { +type BgpAttributesNextHop_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolIsis_Choice) Reset() { - *x = StateProtocolIsis_Choice{} +func (x *BgpAttributesNextHop_Choice) Reset() { + *x = BgpAttributesNextHop_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1179] + mi := &file_otg_proto_msgTypes[1151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolIsis_Choice) String() string { +func (x *BgpAttributesNextHop_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsis_Choice) ProtoMessage() {} +func (*BgpAttributesNextHop_Choice) ProtoMessage() {} -func (x *StateProtocolIsis_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1179] +func (x *BgpAttributesNextHop_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113219,34 +114963,34 @@ 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{368, 0} +// Deprecated: Use BgpAttributesNextHop_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesNextHop_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{183, 0} } -type StateProtocolIsisRouters_State struct { +type BgpAttributesMpReachNlri_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StateProtocolIsisRouters_State) Reset() { - *x = StateProtocolIsisRouters_State{} +func (x *BgpAttributesMpReachNlri_Choice) Reset() { + *x = BgpAttributesMpReachNlri_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1180] + mi := &file_otg_proto_msgTypes[1152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StateProtocolIsisRouters_State) String() string { +func (x *BgpAttributesMpReachNlri_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StateProtocolIsisRouters_State) ProtoMessage() {} +func (*BgpAttributesMpReachNlri_Choice) ProtoMessage() {} -func (x *StateProtocolIsisRouters_State) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1180] +func (x *BgpAttributesMpReachNlri_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113257,34 +115001,34 @@ 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{369, 0} +// Deprecated: Use BgpAttributesMpReachNlri_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesMpReachNlri_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{185, 0} } -type ControlAction_Choice struct { +type BgpAttributesMpUnreachNlri_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ControlAction_Choice) Reset() { - *x = ControlAction_Choice{} +func (x *BgpAttributesMpUnreachNlri_Choice) Reset() { + *x = BgpAttributesMpUnreachNlri_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1181] + mi := &file_otg_proto_msgTypes[1153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ControlAction_Choice) String() string { +func (x *BgpAttributesMpUnreachNlri_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ControlAction_Choice) ProtoMessage() {} +func (*BgpAttributesMpUnreachNlri_Choice) ProtoMessage() {} -func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1181] +func (x *BgpAttributesMpUnreachNlri_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113295,34 +115039,34 @@ 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{370, 0} +// Deprecated: Use BgpAttributesMpUnreachNlri_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesMpUnreachNlri_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{186, 0} } -type ActionResponse_Choice struct { +type BgpAttributesTunnelEncapsulation_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponse_Choice) Reset() { - *x = ActionResponse_Choice{} +func (x *BgpAttributesTunnelEncapsulation_Choice) Reset() { + *x = BgpAttributesTunnelEncapsulation_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1182] + mi := &file_otg_proto_msgTypes[1154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponse_Choice) String() string { +func (x *BgpAttributesTunnelEncapsulation_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponse_Choice) ProtoMessage() {} +func (*BgpAttributesTunnelEncapsulation_Choice) ProtoMessage() {} -func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1182] +func (x *BgpAttributesTunnelEncapsulation_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113333,34 +115077,34 @@ 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{372, 0} +// Deprecated: Use BgpAttributesTunnelEncapsulation_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesTunnelEncapsulation_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{190, 0} } -type ActionProtocol_Choice struct { +type BgpAttributesBsid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocol_Choice) Reset() { - *x = ActionProtocol_Choice{} +func (x *BgpAttributesBsid_Choice) Reset() { + *x = BgpAttributesBsid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1183] + mi := &file_otg_proto_msgTypes[1155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocol_Choice) String() string { +func (x *BgpAttributesBsid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocol_Choice) ProtoMessage() {} +func (*BgpAttributesBsid_Choice) ProtoMessage() {} -func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1183] +func (x *BgpAttributesBsid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113371,34 +115115,34 @@ 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{373, 0} +// Deprecated: Use BgpAttributesBsid_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesBsid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{192, 0} } -type ActionResponseProtocol_Choice struct { +type BgpAttributesSrPolicyExplicitNullPolicy_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocol_Choice) Reset() { - *x = ActionResponseProtocol_Choice{} +func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) Reset() { + *x = BgpAttributesSrPolicyExplicitNullPolicy_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1184] + mi := &file_otg_proto_msgTypes[1156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocol_Choice) String() string { +func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocol_Choice) ProtoMessage() {} +func (*BgpAttributesSrPolicyExplicitNullPolicy_Choice) ProtoMessage() {} -func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1184] +func (x *BgpAttributesSrPolicyExplicitNullPolicy_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113409,34 +115153,34 @@ 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{374, 0} +// Deprecated: Use BgpAttributesSrPolicyExplicitNullPolicy_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesSrPolicyExplicitNullPolicy_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{202, 0} } -type ActionProtocolIpv4_Choice struct { +type BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv4_Choice) Reset() { - *x = ActionProtocolIpv4_Choice{} +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) Reset() { + *x = BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1185] + mi := &file_otg_proto_msgTypes[1157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv4_Choice) String() string { +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv4_Choice) ProtoMessage() {} +func (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) ProtoMessage() {} -func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1185] +func (x *BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113447,34 +115191,34 @@ 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{375, 0} +// Deprecated: Use BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice.ProtoReflect.Descriptor instead. +func (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{205, 0} } -type ActionResponseProtocolIpv4_Choice struct { +type BgpV6Peer_AsType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4_Choice) Reset() { - *x = ActionResponseProtocolIpv4_Choice{} +func (x *BgpV6Peer_AsType) Reset() { + *x = BgpV6Peer_AsType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1186] + mi := &file_otg_proto_msgTypes[1158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4_Choice) String() string { +func (x *BgpV6Peer_AsType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} +func (*BgpV6Peer_AsType) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1186] +func (x *BgpV6Peer_AsType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113485,34 +115229,34 @@ 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{376, 0} +// Deprecated: Use BgpV6Peer_AsType.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{220, 0} } -type ActionResponseProtocolIpv4PingResponse_Result struct { +type BgpV6Peer_AsNumberWidth struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv4PingResponse_Result{} +func (x *BgpV6Peer_AsNumberWidth) Reset() { + *x = BgpV6Peer_AsNumberWidth{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1187] + mi := &file_otg_proto_msgTypes[1159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { +func (x *BgpV6Peer_AsNumberWidth) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} +func (*BgpV6Peer_AsNumberWidth) ProtoMessage() {} -func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1187] +func (x *BgpV6Peer_AsNumberWidth) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113523,34 +115267,34 @@ 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{380, 0} +// Deprecated: Use BgpV6Peer_AsNumberWidth.ProtoReflect.Descriptor instead. +func (*BgpV6Peer_AsNumberWidth) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{220, 1} } -type ActionProtocolIpv6_Choice struct { +type BgpV6EthernetSegment_ActiveMode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolIpv6_Choice) Reset() { - *x = ActionProtocolIpv6_Choice{} +func (x *BgpV6EthernetSegment_ActiveMode) Reset() { + *x = BgpV6EthernetSegment_ActiveMode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1188] + mi := &file_otg_proto_msgTypes[1160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolIpv6_Choice) String() string { +func (x *BgpV6EthernetSegment_ActiveMode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolIpv6_Choice) ProtoMessage() {} +func (*BgpV6EthernetSegment_ActiveMode) ProtoMessage() {} -func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1188] +func (x *BgpV6EthernetSegment_ActiveMode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113561,34 +115305,34 @@ 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{381, 0} +// Deprecated: Use BgpV6EthernetSegment_ActiveMode.ProtoReflect.Descriptor instead. +func (*BgpV6EthernetSegment_ActiveMode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{223, 0} } -type ActionResponseProtocolIpv6_Choice struct { +type BgpV6EvpnEvis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6_Choice) Reset() { - *x = ActionResponseProtocolIpv6_Choice{} +func (x *BgpV6EvpnEvis_Choice) Reset() { + *x = BgpV6EvpnEvis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1189] + mi := &file_otg_proto_msgTypes[1161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6_Choice) String() string { +func (x *BgpV6EvpnEvis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} +func (*BgpV6EvpnEvis_Choice) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1189] +func (x *BgpV6EvpnEvis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113599,34 +115343,34 @@ 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{382, 0} +// Deprecated: Use BgpV6EvpnEvis_Choice.ProtoReflect.Descriptor instead. +func (*BgpV6EvpnEvis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{224, 0} } -type ActionResponseProtocolIpv6PingResponse_Result struct { +type BgpV6EviVxlan_ReplicationType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { - *x = ActionResponseProtocolIpv6PingResponse_Result{} +func (x *BgpV6EviVxlan_ReplicationType) Reset() { + *x = BgpV6EviVxlan_ReplicationType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1190] + mi := &file_otg_proto_msgTypes[1162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { +func (x *BgpV6EviVxlan_ReplicationType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} +func (*BgpV6EviVxlan_ReplicationType) ProtoMessage() {} -func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1190] +func (x *BgpV6EviVxlan_ReplicationType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113637,34 +115381,34 @@ 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{386, 0} +// Deprecated: Use BgpV6EviVxlan_ReplicationType.ProtoReflect.Descriptor instead. +func (*BgpV6EviVxlan_ReplicationType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{225, 0} } -type ActionProtocolBgp_Choice struct { +type VxlanV4TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgp_Choice) Reset() { - *x = ActionProtocolBgp_Choice{} +func (x *VxlanV4TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV4TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1191] + mi := &file_otg_proto_msgTypes[1163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgp_Choice) String() string { +func (x *VxlanV4TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgp_Choice) ProtoMessage() {} +func (*VxlanV4TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1191] +func (x *VxlanV4TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113675,34 +115419,34 @@ 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{387, 0} +// Deprecated: Use VxlanV4TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV4TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{230, 0} } -type ActionProtocolBgpNotification_Choice struct { +type VxlanV6TunnelDestinationIPMode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ActionProtocolBgpNotification_Choice) Reset() { - *x = ActionProtocolBgpNotification_Choice{} +func (x *VxlanV6TunnelDestinationIPMode_Choice) Reset() { + *x = VxlanV6TunnelDestinationIPMode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1192] + mi := &file_otg_proto_msgTypes[1164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ActionProtocolBgpNotification_Choice) String() string { +func (x *VxlanV6TunnelDestinationIPMode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} +func (*VxlanV6TunnelDestinationIPMode_Choice) ProtoMessage() {} -func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1192] +func (x *VxlanV6TunnelDestinationIPMode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113713,34 +115457,34 @@ 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{388, 0} +// Deprecated: Use VxlanV6TunnelDestinationIPMode_Choice.ProtoReflect.Descriptor instead. +func (*VxlanV6TunnelDestinationIPMode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{231, 0} } -type MetricsRequest_Choice struct { +type RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsRequest_Choice) Reset() { - *x = MetricsRequest_Choice{} +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Reset() { + *x = RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1193] + mi := &file_otg_proto_msgTypes[1165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsRequest_Choice) String() string { +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsRequest_Choice) ProtoMessage() {} +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoMessage() {} -func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1193] +func (x *RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113751,34 +115495,34 @@ 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{390, 0} +// Deprecated: Use RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{242, 0} } -type MetricsResponse_Choice struct { +type RsvpEro_PrependNeighborIp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *MetricsResponse_Choice) Reset() { - *x = MetricsResponse_Choice{} +func (x *RsvpEro_PrependNeighborIp) Reset() { + *x = RsvpEro_PrependNeighborIp{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1194] + mi := &file_otg_proto_msgTypes[1166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MetricsResponse_Choice) String() string { +func (x *RsvpEro_PrependNeighborIp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MetricsResponse_Choice) ProtoMessage() {} +func (*RsvpEro_PrependNeighborIp) ProtoMessage() {} -func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1194] +func (x *RsvpEro_PrependNeighborIp) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113789,34 +115533,34 @@ 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{391, 0} +// Deprecated: Use RsvpEro_PrependNeighborIp.ProtoReflect.Descriptor instead. +func (*RsvpEro_PrependNeighborIp) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{248, 0} } -type PortMetricsRequest_ColumnNames struct { +type RsvpEroSubobject_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetricsRequest_ColumnNames) Reset() { - *x = PortMetricsRequest_ColumnNames{} +func (x *RsvpEroSubobject_Type) Reset() { + *x = RsvpEroSubobject_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1195] + mi := &file_otg_proto_msgTypes[1167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetricsRequest_ColumnNames) String() string { +func (x *RsvpEroSubobject_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} +func (*RsvpEroSubobject_Type) ProtoMessage() {} -func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1195] +func (x *RsvpEroSubobject_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113827,34 +115571,34 @@ 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{392, 0} +// Deprecated: Use RsvpEroSubobject_Type.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249, 0} } -type PortMetric_Link struct { +type RsvpEroSubobject_HopType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Link) Reset() { - *x = PortMetric_Link{} +func (x *RsvpEroSubobject_HopType) Reset() { + *x = RsvpEroSubobject_HopType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1196] + mi := &file_otg_proto_msgTypes[1168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Link) String() string { +func (x *RsvpEroSubobject_HopType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Link) ProtoMessage() {} +func (*RsvpEroSubobject_HopType) ProtoMessage() {} -func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1196] +func (x *RsvpEroSubobject_HopType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113865,34 +115609,34 @@ 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{393, 0} +// Deprecated: Use RsvpEroSubobject_HopType.ProtoReflect.Descriptor instead. +func (*RsvpEroSubobject_HopType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{249, 1} } -type PortMetric_Capture struct { +type Dhcpv6ServerIaType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Capture) Reset() { - *x = PortMetric_Capture{} +func (x *Dhcpv6ServerIaType_Choice) Reset() { + *x = Dhcpv6ServerIaType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1197] + mi := &file_otg_proto_msgTypes[1169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Capture) String() string { +func (x *Dhcpv6ServerIaType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Capture) ProtoMessage() {} +func (*Dhcpv6ServerIaType_Choice) ProtoMessage() {} -func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1197] +func (x *Dhcpv6ServerIaType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113903,34 +115647,34 @@ 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{393, 1} +// Deprecated: Use Dhcpv6ServerIaType_Choice.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerIaType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{257, 0} } -type PortMetric_Transmit struct { +type FlowTxRx_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PortMetric_Transmit) Reset() { - *x = PortMetric_Transmit{} +func (x *FlowTxRx_Choice) Reset() { + *x = FlowTxRx_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1198] + mi := &file_otg_proto_msgTypes[1170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PortMetric_Transmit) String() string { +func (x *FlowTxRx_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PortMetric_Transmit) ProtoMessage() {} +func (*FlowTxRx_Choice) ProtoMessage() {} -func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1198] +func (x *FlowTxRx_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113941,34 +115685,34 @@ 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{393, 2} +// Deprecated: Use FlowTxRx_Choice.ProtoReflect.Descriptor instead. +func (*FlowTxRx_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{264, 0} } -type FlowMetricsRequest_MetricNames struct { +type FlowRouter_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricsRequest_MetricNames) Reset() { - *x = FlowMetricsRequest_MetricNames{} +func (x *FlowRouter_Mode) Reset() { + *x = FlowRouter_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1199] + mi := &file_otg_proto_msgTypes[1171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricsRequest_MetricNames) String() string { +func (x *FlowRouter_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} +func (*FlowRouter_Mode) ProtoMessage() {} -func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1199] +func (x *FlowRouter_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -113979,34 +115723,34 @@ 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{394, 0} +// Deprecated: Use FlowRouter_Mode.ProtoReflect.Descriptor instead. +func (*FlowRouter_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{266, 0} } -type FlowTaggedMetricsFilter_MetricNames struct { +type FlowHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { - *x = FlowTaggedMetricsFilter_MetricNames{} +func (x *FlowHeader_Choice) Reset() { + *x = FlowHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1200] + mi := &file_otg_proto_msgTypes[1172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowTaggedMetricsFilter_MetricNames) String() string { +func (x *FlowHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} +func (*FlowHeader_Choice) ProtoMessage() {} -func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1200] +func (x *FlowHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114017,34 +115761,34 @@ 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{395, 0} +// Deprecated: Use FlowHeader_Choice.ProtoReflect.Descriptor instead. +func (*FlowHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{267, 0} } -type FlowMetric_Transmit struct { +type FlowIpv4Options_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetric_Transmit) Reset() { - *x = FlowMetric_Transmit{} +func (x *FlowIpv4Options_Choice) Reset() { + *x = FlowIpv4Options_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1201] + mi := &file_otg_proto_msgTypes[1173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetric_Transmit) String() string { +func (x *FlowIpv4Options_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetric_Transmit) ProtoMessage() {} +func (*FlowIpv4Options_Choice) ProtoMessage() {} -func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1201] +func (x *FlowIpv4Options_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114055,34 +115799,34 @@ 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{397, 0} +// Deprecated: Use FlowIpv4Options_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Options_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{274, 0} } -type FlowMetricTagValue_Choice struct { +type FlowIpv4OptionsCustomLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FlowMetricTagValue_Choice) Reset() { - *x = FlowMetricTagValue_Choice{} +func (x *FlowIpv4OptionsCustomLength_Choice) Reset() { + *x = FlowIpv4OptionsCustomLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1202] + mi := &file_otg_proto_msgTypes[1174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FlowMetricTagValue_Choice) String() string { +func (x *FlowIpv4OptionsCustomLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FlowMetricTagValue_Choice) ProtoMessage() {} +func (*FlowIpv4OptionsCustomLength_Choice) ProtoMessage() {} -func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1202] +func (x *FlowIpv4OptionsCustomLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114093,34 +115837,34 @@ 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{400, 0} +// Deprecated: Use FlowIpv4OptionsCustomLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4OptionsCustomLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{277, 0} } -type Bgpv4MetricsRequest_ColumnNames struct { +type FlowIpv4Priority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { - *x = Bgpv4MetricsRequest_ColumnNames{} +func (x *FlowIpv4Priority_Choice) Reset() { + *x = FlowIpv4Priority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1203] + mi := &file_otg_proto_msgTypes[1175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4MetricsRequest_ColumnNames) String() string { +func (x *FlowIpv4Priority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowIpv4Priority_Choice) ProtoMessage() {} -func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1203] +func (x *FlowIpv4Priority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114131,34 +115875,34 @@ 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{403, 0} +// Deprecated: Use FlowIpv4Priority_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Priority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{278, 0} } -type Bgpv4Metric_SessionState struct { +type FlowIpv4Auto_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_SessionState) Reset() { - *x = Bgpv4Metric_SessionState{} +func (x *FlowIpv4Auto_Choice) Reset() { + *x = FlowIpv4Auto_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1204] + mi := &file_otg_proto_msgTypes[1176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_SessionState) String() string { +func (x *FlowIpv4Auto_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_SessionState) ProtoMessage() {} +func (*FlowIpv4Auto_Choice) ProtoMessage() {} -func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1204] +func (x *FlowIpv4Auto_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114169,34 +115913,34 @@ 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{404, 0} +// Deprecated: Use FlowIpv4Auto_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv4Auto_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{281, 0} } -type Bgpv4Metric_FsmState struct { +type FlowIpv6Auto_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv4Metric_FsmState) Reset() { - *x = Bgpv4Metric_FsmState{} +func (x *FlowIpv6Auto_Choice) Reset() { + *x = FlowIpv6Auto_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1205] + mi := &file_otg_proto_msgTypes[1177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv4Metric_FsmState) String() string { +func (x *FlowIpv6Auto_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv4Metric_FsmState) ProtoMessage() {} +func (*FlowIpv6Auto_Choice) ProtoMessage() {} -func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1205] +func (x *FlowIpv6Auto_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114207,34 +115951,34 @@ 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{404, 1} +// Deprecated: Use FlowIpv6Auto_Choice.ProtoReflect.Descriptor instead. +func (*FlowIpv6Auto_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{283, 0} } -type Bgpv6MetricsRequest_ColumnNames struct { +type FlowIcmp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { - *x = Bgpv6MetricsRequest_ColumnNames{} +func (x *FlowIcmp_Choice) Reset() { + *x = FlowIcmp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1206] + mi := &file_otg_proto_msgTypes[1178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6MetricsRequest_ColumnNames) String() string { +func (x *FlowIcmp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowIcmp_Choice) ProtoMessage() {} -func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1206] +func (x *FlowIcmp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114245,34 +115989,34 @@ 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{405, 0} +// Deprecated: Use FlowIcmp_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{293, 0} } -type Bgpv6Metric_SessionState struct { +type FlowIcmpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_SessionState) Reset() { - *x = Bgpv6Metric_SessionState{} +func (x *FlowIcmpv6_Choice) Reset() { + *x = FlowIcmpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1207] + mi := &file_otg_proto_msgTypes[1179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_SessionState) String() string { +func (x *FlowIcmpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_SessionState) ProtoMessage() {} +func (*FlowIcmpv6_Choice) ProtoMessage() {} -func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1207] +func (x *FlowIcmpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114283,34 +116027,34 @@ 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{406, 0} +// Deprecated: Use FlowIcmpv6_Choice.ProtoReflect.Descriptor instead. +func (*FlowIcmpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{295, 0} } -type Bgpv6Metric_FsmState struct { +type FlowSnmpv2CData_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Bgpv6Metric_FsmState) Reset() { - *x = Bgpv6Metric_FsmState{} +func (x *FlowSnmpv2CData_Choice) Reset() { + *x = FlowSnmpv2CData_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1208] + mi := &file_otg_proto_msgTypes[1180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bgpv6Metric_FsmState) String() string { +func (x *FlowSnmpv2CData_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bgpv6Metric_FsmState) ProtoMessage() {} +func (*FlowSnmpv2CData_Choice) ProtoMessage() {} -func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1208] +func (x *FlowSnmpv2CData_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114321,34 +116065,34 @@ 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{406, 1} +// Deprecated: Use FlowSnmpv2CData_Choice.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CData_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{301, 0} } -type IsisMetricsRequest_ColumnNames struct { +type FlowSnmpv2CPDU_ErrorStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisMetricsRequest_ColumnNames) Reset() { - *x = IsisMetricsRequest_ColumnNames{} +func (x *FlowSnmpv2CPDU_ErrorStatus) Reset() { + *x = FlowSnmpv2CPDU_ErrorStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1209] + mi := &file_otg_proto_msgTypes[1181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisMetricsRequest_ColumnNames) String() string { +func (x *FlowSnmpv2CPDU_ErrorStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowSnmpv2CPDU_ErrorStatus) ProtoMessage() {} -func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1209] +func (x *FlowSnmpv2CPDU_ErrorStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114359,34 +116103,34 @@ 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{407, 0} +// Deprecated: Use FlowSnmpv2CPDU_ErrorStatus.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CPDU_ErrorStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{302, 0} } -type LagMetricsRequest_ColumnNames struct { +type FlowSnmpv2CVariableBindingValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetricsRequest_ColumnNames) Reset() { - *x = LagMetricsRequest_ColumnNames{} +func (x *FlowSnmpv2CVariableBindingValue_Choice) Reset() { + *x = FlowSnmpv2CVariableBindingValue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1210] + mi := &file_otg_proto_msgTypes[1182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetricsRequest_ColumnNames) String() string { +func (x *FlowSnmpv2CVariableBindingValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowSnmpv2CVariableBindingValue_Choice) ProtoMessage() {} -func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1210] +func (x *FlowSnmpv2CVariableBindingValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114397,34 +116141,34 @@ 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{409, 0} +// Deprecated: Use FlowSnmpv2CVariableBindingValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{305, 0} } -type LagMetric_OperStatus struct { +type FlowSnmpv2CVariableBindingStringValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LagMetric_OperStatus) Reset() { - *x = LagMetric_OperStatus{} +func (x *FlowSnmpv2CVariableBindingStringValue_Choice) Reset() { + *x = FlowSnmpv2CVariableBindingStringValue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1211] + mi := &file_otg_proto_msgTypes[1183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LagMetric_OperStatus) String() string { +func (x *FlowSnmpv2CVariableBindingStringValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LagMetric_OperStatus) ProtoMessage() {} +func (*FlowSnmpv2CVariableBindingStringValue_Choice) ProtoMessage() {} -func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1211] +func (x *FlowSnmpv2CVariableBindingStringValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114435,34 +116179,34 @@ 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{410, 0} +// Deprecated: Use FlowSnmpv2CVariableBindingStringValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowSnmpv2CVariableBindingStringValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{306, 0} } -type LacpMetricsRequest_ColumnNames struct { +type FlowRsvp_Flag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetricsRequest_ColumnNames) Reset() { - *x = LacpMetricsRequest_ColumnNames{} +func (x *FlowRsvp_Flag) Reset() { + *x = FlowRsvp_Flag{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1212] + mi := &file_otg_proto_msgTypes[1184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetricsRequest_ColumnNames) String() string { +func (x *FlowRsvp_Flag) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowRsvp_Flag) ProtoMessage() {} -func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1212] +func (x *FlowRsvp_Flag) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114473,34 +116217,34 @@ 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{411, 0} +// Deprecated: Use FlowRsvp_Flag.ProtoReflect.Descriptor instead. +func (*FlowRsvp_Flag) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{307, 0} } -type LacpMetric_Activity struct { +type FlowRSVPLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Activity) Reset() { - *x = LacpMetric_Activity{} +func (x *FlowRSVPLength_Choice) Reset() { + *x = FlowRSVPLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1213] + mi := &file_otg_proto_msgTypes[1185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Activity) String() string { +func (x *FlowRSVPLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Activity) ProtoMessage() {} +func (*FlowRSVPLength_Choice) ProtoMessage() {} -func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1213] +func (x *FlowRSVPLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114511,34 +116255,34 @@ 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{412, 0} +// Deprecated: Use FlowRSVPLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{308, 0} } -type LacpMetric_Timeout struct { +type FlowRSVPMessage_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Timeout) Reset() { - *x = LacpMetric_Timeout{} +func (x *FlowRSVPMessage_Choice) Reset() { + *x = FlowRSVPMessage_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1214] + mi := &file_otg_proto_msgTypes[1186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Timeout) String() string { +func (x *FlowRSVPMessage_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Timeout) ProtoMessage() {} +func (*FlowRSVPMessage_Choice) ProtoMessage() {} -func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1214] +func (x *FlowRSVPMessage_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114549,34 +116293,34 @@ 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{412, 1} +// Deprecated: Use FlowRSVPMessage_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPMessage_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{309, 0} } -type LacpMetric_Synchronization struct { +type FlowRSVPObjectLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LacpMetric_Synchronization) Reset() { - *x = LacpMetric_Synchronization{} +func (x *FlowRSVPObjectLength_Choice) Reset() { + *x = FlowRSVPObjectLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1215] + mi := &file_otg_proto_msgTypes[1187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LacpMetric_Synchronization) String() string { +func (x *FlowRSVPObjectLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LacpMetric_Synchronization) ProtoMessage() {} +func (*FlowRSVPObjectLength_Choice) ProtoMessage() {} -func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1215] +func (x *FlowRSVPObjectLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114587,34 +116331,34 @@ 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{412, 2} +// Deprecated: Use FlowRSVPObjectLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPObjectLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{312, 0} } -type LldpMetricsRequest_ColumnNames struct { +type FlowRSVPPathObjectsClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpMetricsRequest_ColumnNames) Reset() { - *x = LldpMetricsRequest_ColumnNames{} +func (x *FlowRSVPPathObjectsClass_Choice) Reset() { + *x = FlowRSVPPathObjectsClass_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1216] + mi := &file_otg_proto_msgTypes[1188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpMetricsRequest_ColumnNames) String() string { +func (x *FlowRSVPPathObjectsClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowRSVPPathObjectsClass_Choice) ProtoMessage() {} -func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1216] +func (x *FlowRSVPPathObjectsClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114625,34 +116369,34 @@ 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{413, 0} +// Deprecated: Use FlowRSVPPathObjectsClass_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{313, 0} } -type RsvpMetricsRequest_ColumnNames struct { +type FlowRSVPPathObjectsSessionCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpMetricsRequest_ColumnNames) Reset() { - *x = RsvpMetricsRequest_ColumnNames{} +func (x *FlowRSVPPathObjectsSessionCType_Choice) Reset() { + *x = FlowRSVPPathObjectsSessionCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1217] + mi := &file_otg_proto_msgTypes[1189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpMetricsRequest_ColumnNames) String() string { +func (x *FlowRSVPPathObjectsSessionCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowRSVPPathObjectsSessionCType_Choice) ProtoMessage() {} -func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1217] +func (x *FlowRSVPPathObjectsSessionCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114663,34 +116407,34 @@ 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{415, 0} +// Deprecated: Use FlowRSVPPathObjectsSessionCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSessionCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{315, 0} } -type Dhcpv4ClientMetricsRequest_ColumnNames struct { +type FlowRSVPPathSessionExtTunnelId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Dhcpv4ClientMetricsRequest_ColumnNames) Reset() { - *x = Dhcpv4ClientMetricsRequest_ColumnNames{} +func (x *FlowRSVPPathSessionExtTunnelId_Choice) Reset() { + *x = FlowRSVPPathSessionExtTunnelId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1218] + mi := &file_otg_proto_msgTypes[1190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ClientMetricsRequest_ColumnNames) String() string { +func (x *FlowRSVPPathSessionExtTunnelId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ClientMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowRSVPPathSessionExtTunnelId_Choice) ProtoMessage() {} -func (x *Dhcpv4ClientMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1218] +func (x *FlowRSVPPathSessionExtTunnelId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114701,34 +116445,34 @@ func (x *Dhcpv4ClientMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ClientMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Dhcpv4ClientMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{417, 0} +// Deprecated: Use FlowRSVPPathSessionExtTunnelId_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathSessionExtTunnelId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{317, 0} } -type Dhcpv4ServerMetricsRequest_ColumnNames struct { +type FlowRSVPPathObjectsRsvpHopCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *Dhcpv4ServerMetricsRequest_ColumnNames) Reset() { - *x = Dhcpv4ServerMetricsRequest_ColumnNames{} +func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) Reset() { + *x = FlowRSVPPathObjectsRsvpHopCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1219] + mi := &file_otg_proto_msgTypes[1191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Dhcpv4ServerMetricsRequest_ColumnNames) String() string { +func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Dhcpv4ServerMetricsRequest_ColumnNames) ProtoMessage() {} +func (*FlowRSVPPathObjectsRsvpHopCType_Choice) ProtoMessage() {} -func (x *Dhcpv4ServerMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1219] +func (x *FlowRSVPPathObjectsRsvpHopCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114739,34 +116483,34 @@ func (x *Dhcpv4ServerMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use Dhcpv4ServerMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. -func (*Dhcpv4ServerMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{419, 0} +// Deprecated: Use FlowRSVPPathObjectsRsvpHopCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRsvpHopCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{319, 0} } -type StatesRequest_Choice struct { +type FlowRSVPPathObjectsTimeValuesCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesRequest_Choice) Reset() { - *x = StatesRequest_Choice{} +func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) Reset() { + *x = FlowRSVPPathObjectsTimeValuesCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1220] + mi := &file_otg_proto_msgTypes[1192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesRequest_Choice) String() string { +func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesRequest_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsTimeValuesCType_Choice) ProtoMessage() {} -func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1220] +func (x *FlowRSVPPathObjectsTimeValuesCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114777,34 +116521,34 @@ 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{421, 0} +// Deprecated: Use FlowRSVPPathObjectsTimeValuesCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsTimeValuesCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{322, 0} } -type StatesResponse_Choice struct { +type FlowRSVPPathObjectsClassExplicitRouteCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *StatesResponse_Choice) Reset() { - *x = StatesResponse_Choice{} +func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) Reset() { + *x = FlowRSVPPathObjectsClassExplicitRouteCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1221] + mi := &file_otg_proto_msgTypes[1193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StatesResponse_Choice) String() string { +func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StatesResponse_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice) ProtoMessage() {} -func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1221] +func (x *FlowRSVPPathObjectsClassExplicitRouteCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114815,34 +116559,34 @@ 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{422, 0} +// Deprecated: Use FlowRSVPPathObjectsClassExplicitRouteCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{325, 0} } -type BgpPrefixStateRequest_PrefixFilters struct { +type FlowRSVPType1ExplicitRouteSubobjectsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { - *x = BgpPrefixStateRequest_PrefixFilters{} +func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) Reset() { + *x = FlowRSVPType1ExplicitRouteSubobjectsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1222] + mi := &file_otg_proto_msgTypes[1194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixStateRequest_PrefixFilters) String() string { +func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} +func (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice) ProtoMessage() {} -func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1222] +func (x *FlowRSVPType1ExplicitRouteSubobjectsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114853,34 +116597,34 @@ 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{427, 0} +// Deprecated: Use FlowRSVPType1ExplicitRouteSubobjectsType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{328, 0} } -type BgpPrefixIpv4UnicastFilter_Origin struct { +type FlowRSVPExplicitRouteLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv4UnicastFilter_Origin{} +func (x *FlowRSVPExplicitRouteLength_Choice) Reset() { + *x = FlowRSVPExplicitRouteLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1223] + mi := &file_otg_proto_msgTypes[1195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { +func (x *FlowRSVPExplicitRouteLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} +func (*FlowRSVPExplicitRouteLength_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1223] +func (x *FlowRSVPExplicitRouteLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114891,34 +116635,34 @@ 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{428, 0} +// Deprecated: Use FlowRSVPExplicitRouteLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPExplicitRouteLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{331, 0} } -type BgpPrefixIpv6UnicastFilter_Origin struct { +type FlowRSVPExplicitRouteASNumberLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { - *x = BgpPrefixIpv6UnicastFilter_Origin{} +func (x *FlowRSVPExplicitRouteASNumberLength_Choice) Reset() { + *x = FlowRSVPExplicitRouteASNumberLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1224] + mi := &file_otg_proto_msgTypes[1196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { +func (x *FlowRSVPExplicitRouteASNumberLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} +func (*FlowRSVPExplicitRouteASNumberLength_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1224] +func (x *FlowRSVPExplicitRouteASNumberLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114929,34 +116673,34 @@ 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{429, 0} +// Deprecated: Use FlowRSVPExplicitRouteASNumberLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPExplicitRouteASNumberLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{332, 0} } -type BgpPrefixIpv4UnicastState_Origin struct { +type FlowRSVPPathObjectsLabelRequestCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { - *x = BgpPrefixIpv4UnicastState_Origin{} +func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) Reset() { + *x = FlowRSVPPathObjectsLabelRequestCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1225] + mi := &file_otg_proto_msgTypes[1197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv4UnicastState_Origin) String() string { +func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} +func (*FlowRSVPPathObjectsLabelRequestCType_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1225] +func (x *FlowRSVPPathObjectsLabelRequestCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114967,34 +116711,34 @@ 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{431, 0} +// Deprecated: Use FlowRSVPPathObjectsLabelRequestCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsLabelRequestCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{334, 0} } -type BgpPrefixIpv6UnicastState_Origin struct { +type FlowRSVPPathObjectsSessionAttributeCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { - *x = BgpPrefixIpv6UnicastState_Origin{} +func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) Reset() { + *x = FlowRSVPPathObjectsSessionAttributeCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1226] + mi := &file_otg_proto_msgTypes[1198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BgpPrefixIpv6UnicastState_Origin) String() string { +func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} +func (*FlowRSVPPathObjectsSessionAttributeCType_Choice) ProtoMessage() {} -func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1226] +func (x *FlowRSVPPathObjectsSessionAttributeCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115005,34 +116749,34 @@ 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{432, 0} +// Deprecated: Use FlowRSVPPathObjectsSessionAttributeCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSessionAttributeCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{337, 0} } -type ResultExtendedCommunityStructured_Choice struct { +type FlowRSVPLspTunnelFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityStructured_Choice) Reset() { - *x = ResultExtendedCommunityStructured_Choice{} +func (x *FlowRSVPLspTunnelFlag_Choice) Reset() { + *x = FlowRSVPLspTunnelFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1227] + mi := &file_otg_proto_msgTypes[1199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityStructured_Choice) String() string { +func (x *FlowRSVPLspTunnelFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityStructured_Choice) ProtoMessage() {} +func (*FlowRSVPLspTunnelFlag_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityStructured_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1227] +func (x *FlowRSVPLspTunnelFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115043,34 +116787,34 @@ func (x *ResultExtendedCommunityStructured_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityStructured_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityStructured_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{434, 0} +// Deprecated: Use FlowRSVPLspTunnelFlag_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPLspTunnelFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{340, 0} } -type ResultExtendedCommunityTransitive2OctetAsType_Choice struct { +type FlowRSVPSessionAttributeNameLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) Reset() { - *x = ResultExtendedCommunityTransitive2OctetAsType_Choice{} +func (x *FlowRSVPSessionAttributeNameLength_Choice) Reset() { + *x = FlowRSVPSessionAttributeNameLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1228] + mi := &file_otg_proto_msgTypes[1200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) String() string { +func (x *FlowRSVPSessionAttributeNameLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*FlowRSVPSessionAttributeNameLength_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1228] +func (x *FlowRSVPSessionAttributeNameLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115081,34 +116825,34 @@ func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{437, 0} +// Deprecated: Use FlowRSVPSessionAttributeNameLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPSessionAttributeNameLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{341, 0} } -type ResultExtendedCommunityTransitiveIpv4AddressType_Choice struct { +type FlowRSVPPathObjectsSenderTemplateCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { - *x = ResultExtendedCommunityTransitiveIpv4AddressType_Choice{} +func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) Reset() { + *x = FlowRSVPPathObjectsSenderTemplateCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1229] + mi := &file_otg_proto_msgTypes[1201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { +func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsSenderTemplateCType_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1229] +func (x *FlowRSVPPathObjectsSenderTemplateCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115119,34 +116863,34 @@ func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{440, 0} +// Deprecated: Use FlowRSVPPathObjectsSenderTemplateCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSenderTemplateCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{343, 0} } -type ResultExtendedCommunityTransitive4OctetAsType_Choice struct { +type FlowRSVPPathObjectsSenderTspecCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) Reset() { - *x = ResultExtendedCommunityTransitive4OctetAsType_Choice{} +func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) Reset() { + *x = FlowRSVPPathObjectsSenderTspecCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1230] + mi := &file_otg_proto_msgTypes[1202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) String() string { +func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsSenderTspecCType_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1230] +func (x *FlowRSVPPathObjectsSenderTspecCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115157,34 +116901,34 @@ func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{443, 0} +// Deprecated: Use FlowRSVPPathObjectsSenderTspecCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsSenderTspecCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{346, 0} } -type ResultExtendedCommunityTransitiveOpaqueType_Choice struct { +type FlowRSVPPathObjectsRecordRouteCType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) Reset() { - *x = ResultExtendedCommunityTransitiveOpaqueType_Choice{} +func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) Reset() { + *x = FlowRSVPPathObjectsRecordRouteCType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1231] + mi := &file_otg_proto_msgTypes[1203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) String() string { +func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsRecordRouteCType_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1231] +func (x *FlowRSVPPathObjectsRecordRouteCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115195,34 +116939,34 @@ func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{446, 0} +// Deprecated: Use FlowRSVPPathObjectsRecordRouteCType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRecordRouteCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{349, 0} } -type ResultExtendedCommunityNonTransitive2OctetAsType_Choice struct { +type FlowRSVPPathObjectsRecordRouteSubObjectType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { - *x = ResultExtendedCommunityNonTransitive2OctetAsType_Choice{} +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) Reset() { + *x = FlowRSVPPathObjectsRecordRouteSubObjectType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1232] + mi := &file_otg_proto_msgTypes[1204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} +func (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) ProtoMessage() {} -func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1232] +func (x *FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115233,34 +116977,34 @@ func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. -func (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{448, 0} +// Deprecated: Use FlowRSVPPathObjectsRecordRouteSubObjectType_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{352, 0} } -type ResultBgpCommunity_Type struct { +type FlowRSVPRecordRouteIPv4Flag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpCommunity_Type) Reset() { - *x = ResultBgpCommunity_Type{} +func (x *FlowRSVPRecordRouteIPv4Flag_Choice) Reset() { + *x = FlowRSVPRecordRouteIPv4Flag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1233] + mi := &file_otg_proto_msgTypes[1205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpCommunity_Type) String() string { +func (x *FlowRSVPRecordRouteIPv4Flag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpCommunity_Type) ProtoMessage() {} +func (*FlowRSVPRecordRouteIPv4Flag_Choice) ProtoMessage() {} -func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1233] +func (x *FlowRSVPRecordRouteIPv4Flag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115271,34 +117015,34 @@ 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{449, 0} +// Deprecated: Use FlowRSVPRecordRouteIPv4Flag_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPRecordRouteIPv4Flag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{354, 0} } -type ResultBgpAsPathSegment_Type struct { +type FlowRSVPPathRecordRouteLabel_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ResultBgpAsPathSegment_Type) Reset() { - *x = ResultBgpAsPathSegment_Type{} +func (x *FlowRSVPPathRecordRouteLabel_Choice) Reset() { + *x = FlowRSVPPathRecordRouteLabel_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1234] + mi := &file_otg_proto_msgTypes[1206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ResultBgpAsPathSegment_Type) String() string { +func (x *FlowRSVPPathRecordRouteLabel_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} +func (*FlowRSVPPathRecordRouteLabel_Choice) ProtoMessage() {} -func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1234] +func (x *FlowRSVPPathRecordRouteLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115309,34 +117053,34 @@ 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{451, 0} +// Deprecated: Use FlowRSVPPathRecordRouteLabel_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPPathRecordRouteLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{356, 0} } -type IsisLspState_PduType struct { +type FlowRSVPRouteRecordLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspState_PduType) Reset() { - *x = IsisLspState_PduType{} +func (x *FlowRSVPRouteRecordLength_Choice) Reset() { + *x = FlowRSVPRouteRecordLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1235] + mi := &file_otg_proto_msgTypes[1207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspState_PduType) String() string { +func (x *FlowRSVPRouteRecordLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspState_PduType) ProtoMessage() {} +func (*FlowRSVPRouteRecordLength_Choice) ProtoMessage() {} -func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1235] +func (x *FlowRSVPRouteRecordLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115347,34 +117091,34 @@ 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{454, 0} +// Deprecated: Use FlowRSVPRouteRecordLength_Choice.ProtoReflect.Descriptor instead. +func (*FlowRSVPRouteRecordLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{357, 0} } -type IsisLspV4Prefix_RedistributionType struct { +type FlowSize_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_RedistributionType) Reset() { - *x = IsisLspV4Prefix_RedistributionType{} +func (x *FlowSize_Choice) Reset() { + *x = FlowSize_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1236] + mi := &file_otg_proto_msgTypes[1208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_RedistributionType) String() string { +func (x *FlowSize_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} +func (*FlowSize_Choice) ProtoMessage() {} -func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1236] +func (x *FlowSize_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115385,34 +117129,34 @@ 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{463, 0} +// Deprecated: Use FlowSize_Choice.ProtoReflect.Descriptor instead. +func (*FlowSize_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{359, 0} } -type IsisLspV4Prefix_OriginType struct { +type FlowSizeWeightPairs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV4Prefix_OriginType) Reset() { - *x = IsisLspV4Prefix_OriginType{} +func (x *FlowSizeWeightPairs_Choice) Reset() { + *x = FlowSizeWeightPairs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1237] + mi := &file_otg_proto_msgTypes[1209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV4Prefix_OriginType) String() string { +func (x *FlowSizeWeightPairs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} +func (*FlowSizeWeightPairs_Choice) ProtoMessage() {} -func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1237] +func (x *FlowSizeWeightPairs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115423,34 +117167,34 @@ 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{463, 1} +// Deprecated: Use FlowSizeWeightPairs_Choice.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{362, 0} } -type IsisLspExtendedV4Prefix_RedistributionType struct { +type FlowSizeWeightPairs_Predefined struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { - *x = IsisLspExtendedV4Prefix_RedistributionType{} +func (x *FlowSizeWeightPairs_Predefined) Reset() { + *x = FlowSizeWeightPairs_Predefined{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1238] + mi := &file_otg_proto_msgTypes[1210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { +func (x *FlowSizeWeightPairs_Predefined) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} +func (*FlowSizeWeightPairs_Predefined) ProtoMessage() {} -func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1238] +func (x *FlowSizeWeightPairs_Predefined) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115461,34 +117205,34 @@ 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{465, 0} +// Deprecated: Use FlowSizeWeightPairs_Predefined.ProtoReflect.Descriptor instead. +func (*FlowSizeWeightPairs_Predefined) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{362, 1} } -type IsisLspV6Prefix_RedistributionType struct { +type FlowRate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_RedistributionType) Reset() { - *x = IsisLspV6Prefix_RedistributionType{} +func (x *FlowRate_Choice) Reset() { + *x = FlowRate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1239] + mi := &file_otg_proto_msgTypes[1211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_RedistributionType) String() string { +func (x *FlowRate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} +func (*FlowRate_Choice) ProtoMessage() {} -func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1239] +func (x *FlowRate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115499,34 +117243,34 @@ 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{467, 0} +// Deprecated: Use FlowRate_Choice.ProtoReflect.Descriptor instead. +func (*FlowRate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{364, 0} } -type IsisLspV6Prefix_OriginType struct { +type FlowDuration_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *IsisLspV6Prefix_OriginType) Reset() { - *x = IsisLspV6Prefix_OriginType{} +func (x *FlowDuration_Choice) Reset() { + *x = FlowDuration_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1240] + mi := &file_otg_proto_msgTypes[1212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *IsisLspV6Prefix_OriginType) String() string { +func (x *FlowDuration_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} +func (*FlowDuration_Choice) ProtoMessage() {} -func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1240] +func (x *FlowDuration_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115537,34 +117281,34 @@ 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{467, 1} +// Deprecated: Use FlowDuration_Choice.ProtoReflect.Descriptor instead. +func (*FlowDuration_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{365, 0} } -type LldpNeighborsState_ChassisIdType struct { +type FlowDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_ChassisIdType) Reset() { - *x = LldpNeighborsState_ChassisIdType{} +func (x *FlowDelay_Choice) Reset() { + *x = FlowDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1241] + mi := &file_otg_proto_msgTypes[1213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_ChassisIdType) String() string { +func (x *FlowDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} +func (*FlowDelay_Choice) ProtoMessage() {} -func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1241] +func (x *FlowDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115575,34 +117319,34 @@ 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{470, 0} +// Deprecated: Use FlowDelay_Choice.ProtoReflect.Descriptor instead. +func (*FlowDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{367, 0} } -type LldpNeighborsState_PortIdType struct { +type FlowDurationInterBurstGap_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpNeighborsState_PortIdType) Reset() { - *x = LldpNeighborsState_PortIdType{} +func (x *FlowDurationInterBurstGap_Choice) Reset() { + *x = FlowDurationInterBurstGap_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1242] + mi := &file_otg_proto_msgTypes[1214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpNeighborsState_PortIdType) String() string { +func (x *FlowDurationInterBurstGap_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpNeighborsState_PortIdType) ProtoMessage() {} +func (*FlowDurationInterBurstGap_Choice) ProtoMessage() {} -func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1242] +func (x *FlowDurationInterBurstGap_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115613,34 +117357,34 @@ 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{470, 1} +// Deprecated: Use FlowDurationInterBurstGap_Choice.ProtoReflect.Descriptor instead. +func (*FlowDurationInterBurstGap_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{371, 0} } -type LldpCapabilityState_CapabilityName struct { +type FlowLatencyMetrics_Mode struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *LldpCapabilityState_CapabilityName) Reset() { - *x = LldpCapabilityState_CapabilityName{} +func (x *FlowLatencyMetrics_Mode) Reset() { + *x = FlowLatencyMetrics_Mode{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1243] + mi := &file_otg_proto_msgTypes[1215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LldpCapabilityState_CapabilityName) String() string { +func (x *FlowLatencyMetrics_Mode) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} +func (*FlowLatencyMetrics_Mode) ProtoMessage() {} -func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1243] +func (x *FlowLatencyMetrics_Mode) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115651,34 +117395,34 @@ 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{472, 0} +// Deprecated: Use FlowLatencyMetrics_Mode.ProtoReflect.Descriptor instead. +func (*FlowLatencyMetrics_Mode) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{373, 0} } -type RsvpLspState_SessionStatus struct { +type FlowRxTxRatio_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_SessionStatus) Reset() { - *x = RsvpLspState_SessionStatus{} +func (x *FlowRxTxRatio_Choice) Reset() { + *x = FlowRxTxRatio_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1244] + mi := &file_otg_proto_msgTypes[1216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_SessionStatus) String() string { +func (x *FlowRxTxRatio_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_SessionStatus) ProtoMessage() {} +func (*FlowRxTxRatio_Choice) ProtoMessage() {} -func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1244] +func (x *FlowRxTxRatio_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115689,34 +117433,34 @@ 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{476, 0} +// Deprecated: Use FlowRxTxRatio_Choice.ProtoReflect.Descriptor instead. +func (*FlowRxTxRatio_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{375, 0} } -type RsvpLspState_LastFlapReason struct { +type EventRequest_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspState_LastFlapReason) Reset() { - *x = RsvpLspState_LastFlapReason{} +func (x *EventRequest_Type) Reset() { + *x = EventRequest_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1245] + mi := &file_otg_proto_msgTypes[1217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspState_LastFlapReason) String() string { +func (x *EventRequest_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspState_LastFlapReason) ProtoMessage() {} +func (*EventRequest_Type) ProtoMessage() {} -func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1245] +func (x *EventRequest_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115727,34 +117471,34 @@ 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{476, 1} +// Deprecated: Use EventRequest_Type.ProtoReflect.Descriptor instead. +func (*EventRequest_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{381, 0} } -type RsvpLspIpv4Ero_Type struct { +type LldpConnection_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *RsvpLspIpv4Ero_Type) Reset() { - *x = RsvpLspIpv4Ero_Type{} +func (x *LldpConnection_Choice) Reset() { + *x = LldpConnection_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1246] + mi := &file_otg_proto_msgTypes[1218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RsvpLspIpv4Ero_Type) String() string { +func (x *LldpConnection_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} +func (*LldpConnection_Choice) ProtoMessage() {} -func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1246] +func (x *LldpConnection_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115765,34 +117509,34 @@ 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{478, 0} +// Deprecated: Use LldpConnection_Choice.ProtoReflect.Descriptor instead. +func (*LldpConnection_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{384, 0} } -type PatternFlowEthernetDst_Choice struct { +type LldpChassisId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetDst_Choice) Reset() { - *x = PatternFlowEthernetDst_Choice{} +func (x *LldpChassisId_Choice) Reset() { + *x = LldpChassisId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1247] + mi := &file_otg_proto_msgTypes[1219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetDst_Choice) String() string { +func (x *LldpChassisId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} +func (*LldpChassisId_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1247] +func (x *LldpChassisId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115803,34 +117547,34 @@ 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{487, 0} +// Deprecated: Use LldpChassisId_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{385, 0} } -type PatternFlowEthernetSrc_Choice struct { +type LldpPortId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetSrc_Choice) Reset() { - *x = PatternFlowEthernetSrc_Choice{} +func (x *LldpPortId_Choice) Reset() { + *x = LldpPortId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1248] + mi := &file_otg_proto_msgTypes[1220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetSrc_Choice) String() string { +func (x *LldpPortId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} +func (*LldpPortId_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1248] +func (x *LldpPortId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115841,34 +117585,34 @@ 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{490, 0} +// Deprecated: Use LldpPortId_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{386, 0} } -type PatternFlowEthernetEtherType_Choice struct { +type LldpChassisMacSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetEtherType_Choice) Reset() { - *x = PatternFlowEthernetEtherType_Choice{} +func (x *LldpChassisMacSubType_Choice) Reset() { + *x = LldpChassisMacSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1249] + mi := &file_otg_proto_msgTypes[1221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetEtherType_Choice) String() string { +func (x *LldpChassisMacSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} +func (*LldpChassisMacSubType_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1249] +func (x *LldpChassisMacSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115879,34 +117623,34 @@ 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{493, 0} +// Deprecated: Use LldpChassisMacSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpChassisMacSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{387, 0} } -type PatternFlowEthernetPfcQueue_Choice struct { +type LldpPortInterfaceNameSubType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { - *x = PatternFlowEthernetPfcQueue_Choice{} +func (x *LldpPortInterfaceNameSubType_Choice) Reset() { + *x = LldpPortInterfaceNameSubType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1250] + mi := &file_otg_proto_msgTypes[1222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPfcQueue_Choice) String() string { +func (x *LldpPortInterfaceNameSubType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} +func (*LldpPortInterfaceNameSubType_Choice) ProtoMessage() {} -func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1250] +func (x *LldpPortInterfaceNameSubType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115917,34 +117661,34 @@ 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{496, 0} +// Deprecated: Use LldpPortInterfaceNameSubType_Choice.ProtoReflect.Descriptor instead. +func (*LldpPortInterfaceNameSubType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{388, 0} } -type PatternFlowVlanPriority_Choice struct { +type LldpSystemName_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanPriority_Choice) Reset() { - *x = PatternFlowVlanPriority_Choice{} +func (x *LldpSystemName_Choice) Reset() { + *x = LldpSystemName_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1251] + mi := &file_otg_proto_msgTypes[1223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanPriority_Choice) String() string { +func (x *LldpSystemName_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} +func (*LldpSystemName_Choice) ProtoMessage() {} -func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1251] +func (x *LldpSystemName_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115955,34 +117699,34 @@ 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{499, 0} +// Deprecated: Use LldpSystemName_Choice.ProtoReflect.Descriptor instead. +func (*LldpSystemName_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{389, 0} } -type PatternFlowVlanCfi_Choice struct { +type Error_Kind struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanCfi_Choice) Reset() { - *x = PatternFlowVlanCfi_Choice{} +func (x *Error_Kind) Reset() { + *x = Error_Kind{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1252] + mi := &file_otg_proto_msgTypes[1224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanCfi_Choice) String() string { +func (x *Error_Kind) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} +func (*Error_Kind) ProtoMessage() {} -func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1252] +func (x *Error_Kind) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115993,34 +117737,34 @@ 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{502, 0} +// Deprecated: Use Error_Kind.ProtoReflect.Descriptor instead. +func (*Error_Kind) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{390, 0} } -type PatternFlowVlanId_Choice struct { +type ConfigUpdate_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanId_Choice) Reset() { - *x = PatternFlowVlanId_Choice{} +func (x *ConfigUpdate_Choice) Reset() { + *x = ConfigUpdate_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1253] + mi := &file_otg_proto_msgTypes[1225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanId_Choice) String() string { +func (x *ConfigUpdate_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanId_Choice) ProtoMessage() {} +func (*ConfigUpdate_Choice) ProtoMessage() {} -func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1253] +func (x *ConfigUpdate_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116031,34 +117775,34 @@ 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{505, 0} +// Deprecated: Use ConfigUpdate_Choice.ProtoReflect.Descriptor instead. +func (*ConfigUpdate_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{392, 0} } -type PatternFlowVlanTpid_Choice struct { +type FlowsUpdate_PropertyNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVlanTpid_Choice) Reset() { - *x = PatternFlowVlanTpid_Choice{} +func (x *FlowsUpdate_PropertyNames) Reset() { + *x = FlowsUpdate_PropertyNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1254] + mi := &file_otg_proto_msgTypes[1226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVlanTpid_Choice) String() string { +func (x *FlowsUpdate_PropertyNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} +func (*FlowsUpdate_PropertyNames) ProtoMessage() {} -func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1254] +func (x *FlowsUpdate_PropertyNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116069,34 +117813,34 @@ 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{508, 0} +// Deprecated: Use FlowsUpdate_PropertyNames.ProtoReflect.Descriptor instead. +func (*FlowsUpdate_PropertyNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{393, 0} } -type PatternFlowVxlanFlags_Choice struct { +type ControlState_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanFlags_Choice) Reset() { - *x = PatternFlowVxlanFlags_Choice{} +func (x *ControlState_Choice) Reset() { + *x = ControlState_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1255] + mi := &file_otg_proto_msgTypes[1227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanFlags_Choice) String() string { +func (x *ControlState_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} +func (*ControlState_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1255] +func (x *ControlState_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116107,34 +117851,34 @@ 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{511, 0} +// Deprecated: Use ControlState_Choice.ProtoReflect.Descriptor instead. +func (*ControlState_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{394, 0} } -type PatternFlowVxlanReserved0_Choice struct { +type StatePort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved0_Choice) Reset() { - *x = PatternFlowVxlanReserved0_Choice{} +func (x *StatePort_Choice) Reset() { + *x = StatePort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1256] + mi := &file_otg_proto_msgTypes[1228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved0_Choice) String() string { +func (x *StatePort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} +func (*StatePort_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1256] +func (x *StatePort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116145,34 +117889,34 @@ 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{514, 0} +// Deprecated: Use StatePort_Choice.ProtoReflect.Descriptor instead. +func (*StatePort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{395, 0} } -type PatternFlowVxlanVni_Choice struct { +type StateTraffic_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanVni_Choice) Reset() { - *x = PatternFlowVxlanVni_Choice{} +func (x *StateTraffic_Choice) Reset() { + *x = StateTraffic_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1257] + mi := &file_otg_proto_msgTypes[1229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanVni_Choice) String() string { +func (x *StateTraffic_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} +func (*StateTraffic_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1257] +func (x *StateTraffic_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116183,34 +117927,34 @@ 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{517, 0} +// Deprecated: Use StateTraffic_Choice.ProtoReflect.Descriptor instead. +func (*StateTraffic_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{396, 0} } -type PatternFlowVxlanReserved1_Choice struct { +type StateProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowVxlanReserved1_Choice) Reset() { - *x = PatternFlowVxlanReserved1_Choice{} +func (x *StateProtocol_Choice) Reset() { + *x = StateProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1258] + mi := &file_otg_proto_msgTypes[1230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowVxlanReserved1_Choice) String() string { +func (x *StateProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} +func (*StateProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1258] +func (x *StateProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116221,34 +117965,34 @@ 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{520, 0} +// Deprecated: Use StateProtocol_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{397, 0} } -type PatternFlowIpv4Version_Choice struct { +type StatePortLink_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Version_Choice) Reset() { - *x = PatternFlowIpv4Version_Choice{} +func (x *StatePortLink_State) Reset() { + *x = StatePortLink_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1259] + mi := &file_otg_proto_msgTypes[1231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Version_Choice) String() string { +func (x *StatePortLink_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} +func (*StatePortLink_State) ProtoMessage() {} -func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1259] +func (x *StatePortLink_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116259,34 +118003,34 @@ 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{523, 0} +// Deprecated: Use StatePortLink_State.ProtoReflect.Descriptor instead. +func (*StatePortLink_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{398, 0} } -type PatternFlowIpv4HeaderLength_Choice struct { +type StatePortCapture_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { - *x = PatternFlowIpv4HeaderLength_Choice{} +func (x *StatePortCapture_State) Reset() { + *x = StatePortCapture_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1260] + mi := &file_otg_proto_msgTypes[1232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderLength_Choice) String() string { +func (x *StatePortCapture_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} +func (*StatePortCapture_State) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1260] +func (x *StatePortCapture_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116297,34 +118041,34 @@ 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{526, 0} +// Deprecated: Use StatePortCapture_State.ProtoReflect.Descriptor instead. +func (*StatePortCapture_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{399, 0} } -type PatternFlowIpv4TotalLength_Choice struct { +type StateTrafficFlowTransmit_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TotalLength_Choice) Reset() { - *x = PatternFlowIpv4TotalLength_Choice{} +func (x *StateTrafficFlowTransmit_State) Reset() { + *x = StateTrafficFlowTransmit_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1261] + mi := &file_otg_proto_msgTypes[1233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TotalLength_Choice) String() string { +func (x *StateTrafficFlowTransmit_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} +func (*StateTrafficFlowTransmit_State) ProtoMessage() {} -func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1261] +func (x *StateTrafficFlowTransmit_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116335,34 +118079,34 @@ 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{529, 0} +// Deprecated: Use StateTrafficFlowTransmit_State.ProtoReflect.Descriptor instead. +func (*StateTrafficFlowTransmit_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{400, 0} } -type PatternFlowIpv4Identification_Choice struct { +type StateProtocolAll_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Identification_Choice) Reset() { - *x = PatternFlowIpv4Identification_Choice{} +func (x *StateProtocolAll_State) Reset() { + *x = StateProtocolAll_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1262] + mi := &file_otg_proto_msgTypes[1234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Identification_Choice) String() string { +func (x *StateProtocolAll_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} +func (*StateProtocolAll_State) ProtoMessage() {} -func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1262] +func (x *StateProtocolAll_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116373,34 +118117,34 @@ 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{532, 0} +// Deprecated: Use StateProtocolAll_State.ProtoReflect.Descriptor instead. +func (*StateProtocolAll_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{401, 0} } -type PatternFlowIpv4Reserved_Choice struct { +type StateProtocolRoute_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Reserved_Choice) Reset() { - *x = PatternFlowIpv4Reserved_Choice{} +func (x *StateProtocolRoute_State) Reset() { + *x = StateProtocolRoute_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1263] + mi := &file_otg_proto_msgTypes[1235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Reserved_Choice) String() string { +func (x *StateProtocolRoute_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} +func (*StateProtocolRoute_State) ProtoMessage() {} -func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1263] +func (x *StateProtocolRoute_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116411,34 +118155,34 @@ 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{535, 0} +// Deprecated: Use StateProtocolRoute_State.ProtoReflect.Descriptor instead. +func (*StateProtocolRoute_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{402, 0} } -type PatternFlowIpv4DontFragment_Choice struct { +type StateProtocolLacp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DontFragment_Choice) Reset() { - *x = PatternFlowIpv4DontFragment_Choice{} +func (x *StateProtocolLacp_Choice) Reset() { + *x = StateProtocolLacp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1264] + mi := &file_otg_proto_msgTypes[1236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DontFragment_Choice) String() string { +func (x *StateProtocolLacp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} +func (*StateProtocolLacp_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1264] +func (x *StateProtocolLacp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116449,34 +118193,34 @@ 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{538, 0} +// Deprecated: Use StateProtocolLacp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolLacp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{403, 0} } -type PatternFlowIpv4MoreFragments_Choice struct { +type StateProtocolLacpAdmin_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { - *x = PatternFlowIpv4MoreFragments_Choice{} +func (x *StateProtocolLacpAdmin_State) Reset() { + *x = StateProtocolLacpAdmin_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1265] + mi := &file_otg_proto_msgTypes[1237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4MoreFragments_Choice) String() string { +func (x *StateProtocolLacpAdmin_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} +func (*StateProtocolLacpAdmin_State) ProtoMessage() {} -func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1265] +func (x *StateProtocolLacpAdmin_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116487,34 +118231,34 @@ 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{541, 0} +// Deprecated: Use StateProtocolLacpAdmin_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpAdmin_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{404, 0} } -type PatternFlowIpv4FragmentOffset_Choice struct { +type StateProtocolLacpMemberPorts_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { - *x = PatternFlowIpv4FragmentOffset_Choice{} +func (x *StateProtocolLacpMemberPorts_State) Reset() { + *x = StateProtocolLacpMemberPorts_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1266] + mi := &file_otg_proto_msgTypes[1238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { +func (x *StateProtocolLacpMemberPorts_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} +func (*StateProtocolLacpMemberPorts_State) ProtoMessage() {} -func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1266] +func (x *StateProtocolLacpMemberPorts_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116525,34 +118269,34 @@ 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{544, 0} +// Deprecated: Use StateProtocolLacpMemberPorts_State.ProtoReflect.Descriptor instead. +func (*StateProtocolLacpMemberPorts_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{405, 0} } -type PatternFlowIpv4TimeToLive_Choice struct { +type StateProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { - *x = PatternFlowIpv4TimeToLive_Choice{} +func (x *StateProtocolBgp_Choice) Reset() { + *x = StateProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1267] + mi := &file_otg_proto_msgTypes[1239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TimeToLive_Choice) String() string { +func (x *StateProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} +func (*StateProtocolBgp_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1267] +func (x *StateProtocolBgp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116563,34 +118307,34 @@ 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{547, 0} +// Deprecated: Use StateProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{406, 0} } -type PatternFlowIpv4Protocol_Choice struct { +type StateProtocolBgpPeers_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Protocol_Choice) Reset() { - *x = PatternFlowIpv4Protocol_Choice{} +func (x *StateProtocolBgpPeers_State) Reset() { + *x = StateProtocolBgpPeers_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1268] + mi := &file_otg_proto_msgTypes[1240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Protocol_Choice) String() string { +func (x *StateProtocolBgpPeers_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} +func (*StateProtocolBgpPeers_State) ProtoMessage() {} -func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1268] +func (x *StateProtocolBgpPeers_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116601,34 +118345,34 @@ 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{550, 0} +// Deprecated: Use StateProtocolBgpPeers_State.ProtoReflect.Descriptor instead. +func (*StateProtocolBgpPeers_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{407, 0} } -type PatternFlowIpv4HeaderChecksum_Choice struct { +type StateProtocolIsis_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Choice{} +func (x *StateProtocolIsis_Choice) Reset() { + *x = StateProtocolIsis_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1269] + mi := &file_otg_proto_msgTypes[1241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { +func (x *StateProtocolIsis_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} +func (*StateProtocolIsis_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1269] +func (x *StateProtocolIsis_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116639,34 +118383,34 @@ 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{551, 0} +// Deprecated: Use StateProtocolIsis_Choice.ProtoReflect.Descriptor instead. +func (*StateProtocolIsis_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{408, 0} } -type PatternFlowIpv4HeaderChecksum_Generated struct { +type StateProtocolIsisRouters_State struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { - *x = PatternFlowIpv4HeaderChecksum_Generated{} +func (x *StateProtocolIsisRouters_State) Reset() { + *x = StateProtocolIsisRouters_State{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1270] + mi := &file_otg_proto_msgTypes[1242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { +func (x *StateProtocolIsisRouters_State) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} +func (*StateProtocolIsisRouters_State) ProtoMessage() {} -func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1270] +func (x *StateProtocolIsisRouters_State) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116677,34 +118421,34 @@ 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{551, 1} +// Deprecated: Use StateProtocolIsisRouters_State.ProtoReflect.Descriptor instead. +func (*StateProtocolIsisRouters_State) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{409, 0} } -type PatternFlowIpv4Src_Choice struct { +type ControlAction_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Src_Choice) Reset() { - *x = PatternFlowIpv4Src_Choice{} +func (x *ControlAction_Choice) Reset() { + *x = ControlAction_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1271] + mi := &file_otg_proto_msgTypes[1243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Src_Choice) String() string { +func (x *ControlAction_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} +func (*ControlAction_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1271] +func (x *ControlAction_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116715,34 +118459,34 @@ 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{555, 0} +// Deprecated: Use ControlAction_Choice.ProtoReflect.Descriptor instead. +func (*ControlAction_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{410, 0} } -type PatternFlowIpv4Dst_Choice struct { +type ActionResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4Dst_Choice) Reset() { - *x = PatternFlowIpv4Dst_Choice{} +func (x *ActionResponse_Choice) Reset() { + *x = ActionResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1272] + mi := &file_otg_proto_msgTypes[1244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4Dst_Choice) String() string { +func (x *ActionResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} +func (*ActionResponse_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1272] +func (x *ActionResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116753,34 +118497,34 @@ 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{559, 0} +// Deprecated: Use ActionResponse_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{412, 0} } -type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice struct { +type ActionProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice{} +func (x *ActionProtocol_Choice) Reset() { + *x = ActionProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1273] + mi := &file_otg_proto_msgTypes[1245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) String() string { +func (x *ActionProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoMessage() {} +func (*ActionProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1273] +func (x *ActionProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116791,34 +118535,34 @@ 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{561, 0} +// Deprecated: Use ActionProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{413, 0} } -type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice struct { +type ActionResponseProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionClass_Choice{} +func (x *ActionResponseProtocol_Choice) Reset() { + *x = ActionResponseProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1274] + mi := &file_otg_proto_msgTypes[1246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) String() string { +func (x *ActionResponseProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoMessage() {} +func (*ActionResponseProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1274] +func (x *ActionResponseProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116829,34 +118573,34 @@ 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{563, 0} +// Deprecated: Use ActionResponseProtocol_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{414, 0} } -type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice struct { +type ActionProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Reset() { - *x = PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice{} +func (x *ActionProtocolIpv4_Choice) Reset() { + *x = ActionProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1275] + mi := &file_otg_proto_msgTypes[1247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) String() string { +func (x *ActionProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoMessage() {} +func (*ActionProtocolIpv4_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1275] +func (x *ActionProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116867,34 +118611,34 @@ 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{565, 0} +// Deprecated: Use ActionProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{415, 0} } -type PatternFlowIpv4PriorityRaw_Choice struct { +type ActionResponseProtocolIpv4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { - *x = PatternFlowIpv4PriorityRaw_Choice{} +func (x *ActionResponseProtocolIpv4_Choice) Reset() { + *x = ActionResponseProtocolIpv4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1276] + mi := &file_otg_proto_msgTypes[1248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { +func (x *ActionResponseProtocolIpv4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv4_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1276] +func (x *ActionResponseProtocolIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116905,34 +118649,34 @@ 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{568, 0} +// Deprecated: Use ActionResponseProtocolIpv4_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{416, 0} } -type PatternFlowIpv4DscpPhb_Choice struct { +type ActionResponseProtocolIpv4PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { - *x = PatternFlowIpv4DscpPhb_Choice{} +func (x *ActionResponseProtocolIpv4PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv4PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1277] + mi := &file_otg_proto_msgTypes[1249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpPhb_Choice) String() string { +func (x *ActionResponseProtocolIpv4PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv4PingResponse_Result) ProtoMessage() {} -func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1277] +func (x *ActionResponseProtocolIpv4PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116943,34 +118687,34 @@ 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{571, 0} +// Deprecated: Use ActionResponseProtocolIpv4PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv4PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{420, 0} } -type PatternFlowIpv4DscpEcn_Choice struct { +type ActionProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { - *x = PatternFlowIpv4DscpEcn_Choice{} +func (x *ActionProtocolIpv6_Choice) Reset() { + *x = ActionProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1278] + mi := &file_otg_proto_msgTypes[1250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4DscpEcn_Choice) String() string { +func (x *ActionProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} +func (*ActionProtocolIpv6_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1278] +func (x *ActionProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -116981,34 +118725,34 @@ 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{574, 0} +// Deprecated: Use ActionProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{421, 0} } -type PatternFlowIpv4TosPrecedence_Choice struct { +type ActionResponseProtocolIpv6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { - *x = PatternFlowIpv4TosPrecedence_Choice{} +func (x *ActionResponseProtocolIpv6_Choice) Reset() { + *x = ActionResponseProtocolIpv6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1279] + mi := &file_otg_proto_msgTypes[1251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { +func (x *ActionResponseProtocolIpv6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv6_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1279] +func (x *ActionResponseProtocolIpv6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117019,34 +118763,34 @@ 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{577, 0} +// Deprecated: Use ActionResponseProtocolIpv6_Choice.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{422, 0} } -type PatternFlowIpv4TosDelay_Choice struct { +type ActionResponseProtocolIpv6PingResponse_Result struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosDelay_Choice) Reset() { - *x = PatternFlowIpv4TosDelay_Choice{} +func (x *ActionResponseProtocolIpv6PingResponse_Result) Reset() { + *x = ActionResponseProtocolIpv6PingResponse_Result{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1280] + mi := &file_otg_proto_msgTypes[1252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosDelay_Choice) String() string { +func (x *ActionResponseProtocolIpv6PingResponse_Result) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} +func (*ActionResponseProtocolIpv6PingResponse_Result) ProtoMessage() {} -func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1280] +func (x *ActionResponseProtocolIpv6PingResponse_Result) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117057,34 +118801,34 @@ 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{580, 0} +// Deprecated: Use ActionResponseProtocolIpv6PingResponse_Result.ProtoReflect.Descriptor instead. +func (*ActionResponseProtocolIpv6PingResponse_Result) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{426, 0} } -type PatternFlowIpv4TosThroughput_Choice struct { +type ActionProtocolBgp_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { - *x = PatternFlowIpv4TosThroughput_Choice{} +func (x *ActionProtocolBgp_Choice) Reset() { + *x = ActionProtocolBgp_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1281] + mi := &file_otg_proto_msgTypes[1253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosThroughput_Choice) String() string { +func (x *ActionProtocolBgp_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} +func (*ActionProtocolBgp_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1281] +func (x *ActionProtocolBgp_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117095,34 +118839,34 @@ 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{583, 0} +// Deprecated: Use ActionProtocolBgp_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgp_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{427, 0} } -type PatternFlowIpv4TosReliability_Choice struct { +type ActionProtocolBgpNotification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosReliability_Choice) Reset() { - *x = PatternFlowIpv4TosReliability_Choice{} +func (x *ActionProtocolBgpNotification_Choice) Reset() { + *x = ActionProtocolBgpNotification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1282] + mi := &file_otg_proto_msgTypes[1254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosReliability_Choice) String() string { +func (x *ActionProtocolBgpNotification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} +func (*ActionProtocolBgpNotification_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1282] +func (x *ActionProtocolBgpNotification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117133,34 +118877,34 @@ 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{586, 0} +// Deprecated: Use ActionProtocolBgpNotification_Choice.ProtoReflect.Descriptor instead. +func (*ActionProtocolBgpNotification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{428, 0} } -type PatternFlowIpv4TosMonetary_Choice struct { +type MetricsRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { - *x = PatternFlowIpv4TosMonetary_Choice{} +func (x *MetricsRequest_Choice) Reset() { + *x = MetricsRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1283] + mi := &file_otg_proto_msgTypes[1255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosMonetary_Choice) String() string { +func (x *MetricsRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} +func (*MetricsRequest_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1283] +func (x *MetricsRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117171,34 +118915,34 @@ 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{589, 0} +// Deprecated: Use MetricsRequest_Choice.ProtoReflect.Descriptor instead. +func (*MetricsRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{430, 0} } -type PatternFlowIpv4TosUnused_Choice struct { +type MetricsResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv4TosUnused_Choice) Reset() { - *x = PatternFlowIpv4TosUnused_Choice{} +func (x *MetricsResponse_Choice) Reset() { + *x = MetricsResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1284] + mi := &file_otg_proto_msgTypes[1256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv4TosUnused_Choice) String() string { +func (x *MetricsResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} +func (*MetricsResponse_Choice) ProtoMessage() {} -func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1284] +func (x *MetricsResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117209,34 +118953,34 @@ 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{592, 0} +// Deprecated: Use MetricsResponse_Choice.ProtoReflect.Descriptor instead. +func (*MetricsResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{431, 0} } -type PatternFlowIpv6Version_Choice struct { +type PortMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Version_Choice) Reset() { - *x = PatternFlowIpv6Version_Choice{} +func (x *PortMetricsRequest_ColumnNames) Reset() { + *x = PortMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1285] + mi := &file_otg_proto_msgTypes[1257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Version_Choice) String() string { +func (x *PortMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} +func (*PortMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1285] +func (x *PortMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117247,34 +118991,34 @@ 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{595, 0} +// Deprecated: Use PortMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*PortMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{432, 0} } -type PatternFlowIpv6TrafficClass_Choice struct { +type PortMetric_Link struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { - *x = PatternFlowIpv6TrafficClass_Choice{} +func (x *PortMetric_Link) Reset() { + *x = PortMetric_Link{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1286] + mi := &file_otg_proto_msgTypes[1258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6TrafficClass_Choice) String() string { +func (x *PortMetric_Link) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} +func (*PortMetric_Link) ProtoMessage() {} -func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1286] +func (x *PortMetric_Link) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117285,34 +119029,34 @@ 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{598, 0} +// Deprecated: Use PortMetric_Link.ProtoReflect.Descriptor instead. +func (*PortMetric_Link) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 0} } -type PatternFlowIpv6FlowLabel_Choice struct { +type PortMetric_Capture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { - *x = PatternFlowIpv6FlowLabel_Choice{} +func (x *PortMetric_Capture) Reset() { + *x = PortMetric_Capture{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1287] + mi := &file_otg_proto_msgTypes[1259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6FlowLabel_Choice) String() string { +func (x *PortMetric_Capture) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} +func (*PortMetric_Capture) ProtoMessage() {} -func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1287] +func (x *PortMetric_Capture) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117323,34 +119067,34 @@ 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{602, 0} +// Deprecated: Use PortMetric_Capture.ProtoReflect.Descriptor instead. +func (*PortMetric_Capture) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 1} } -type PatternFlowIpv6PayloadLength_Choice struct { +type PortMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { - *x = PatternFlowIpv6PayloadLength_Choice{} +func (x *PortMetric_Transmit) Reset() { + *x = PortMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1288] + mi := &file_otg_proto_msgTypes[1260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6PayloadLength_Choice) String() string { +func (x *PortMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} +func (*PortMetric_Transmit) ProtoMessage() {} -func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1288] +func (x *PortMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117361,34 +119105,34 @@ 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{605, 0} +// Deprecated: Use PortMetric_Transmit.ProtoReflect.Descriptor instead. +func (*PortMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{433, 2} } -type PatternFlowIpv6NextHeader_Choice struct { +type FlowMetricsRequest_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6NextHeader_Choice) Reset() { - *x = PatternFlowIpv6NextHeader_Choice{} +func (x *FlowMetricsRequest_MetricNames) Reset() { + *x = FlowMetricsRequest_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1289] + mi := &file_otg_proto_msgTypes[1261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6NextHeader_Choice) String() string { +func (x *FlowMetricsRequest_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} +func (*FlowMetricsRequest_MetricNames) ProtoMessage() {} -func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1289] +func (x *FlowMetricsRequest_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117399,34 +119143,34 @@ 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{608, 0} +// Deprecated: Use FlowMetricsRequest_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowMetricsRequest_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{434, 0} } -type PatternFlowIpv6HopLimit_Choice struct { +type FlowTaggedMetricsFilter_MetricNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6HopLimit_Choice) Reset() { - *x = PatternFlowIpv6HopLimit_Choice{} +func (x *FlowTaggedMetricsFilter_MetricNames) Reset() { + *x = FlowTaggedMetricsFilter_MetricNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1290] + mi := &file_otg_proto_msgTypes[1262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6HopLimit_Choice) String() string { +func (x *FlowTaggedMetricsFilter_MetricNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} +func (*FlowTaggedMetricsFilter_MetricNames) ProtoMessage() {} -func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1290] +func (x *FlowTaggedMetricsFilter_MetricNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117437,34 +119181,34 @@ 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{611, 0} +// Deprecated: Use FlowTaggedMetricsFilter_MetricNames.ProtoReflect.Descriptor instead. +func (*FlowTaggedMetricsFilter_MetricNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{435, 0} } -type PatternFlowIpv6Src_Choice struct { +type FlowMetric_Transmit struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Src_Choice) Reset() { - *x = PatternFlowIpv6Src_Choice{} +func (x *FlowMetric_Transmit) Reset() { + *x = FlowMetric_Transmit{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1291] + mi := &file_otg_proto_msgTypes[1263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Src_Choice) String() string { +func (x *FlowMetric_Transmit) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} +func (*FlowMetric_Transmit) ProtoMessage() {} -func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1291] +func (x *FlowMetric_Transmit) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117475,34 +119219,34 @@ 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{614, 0} +// Deprecated: Use FlowMetric_Transmit.ProtoReflect.Descriptor instead. +func (*FlowMetric_Transmit) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{437, 0} } -type PatternFlowIpv6Dst_Choice struct { +type FlowMetricTagValue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIpv6Dst_Choice) Reset() { - *x = PatternFlowIpv6Dst_Choice{} +func (x *FlowMetricTagValue_Choice) Reset() { + *x = FlowMetricTagValue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1292] + mi := &file_otg_proto_msgTypes[1264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIpv6Dst_Choice) String() string { +func (x *FlowMetricTagValue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} +func (*FlowMetricTagValue_Choice) ProtoMessage() {} -func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1292] +func (x *FlowMetricTagValue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117513,34 +119257,34 @@ 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{617, 0} +// Deprecated: Use FlowMetricTagValue_Choice.ProtoReflect.Descriptor instead. +func (*FlowMetricTagValue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{440, 0} } -type PatternFlowPfcPauseDst_Choice struct { +type Bgpv4MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseDst_Choice) Reset() { - *x = PatternFlowPfcPauseDst_Choice{} +func (x *Bgpv4MetricsRequest_ColumnNames) Reset() { + *x = Bgpv4MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1293] + mi := &file_otg_proto_msgTypes[1265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseDst_Choice) String() string { +func (x *Bgpv4MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} +func (*Bgpv4MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1293] +func (x *Bgpv4MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117551,34 +119295,34 @@ 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{620, 0} +// Deprecated: Use Bgpv4MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv4MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{443, 0} } -type PatternFlowPfcPauseSrc_Choice struct { +type Bgpv4Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseSrc_Choice) Reset() { - *x = PatternFlowPfcPauseSrc_Choice{} +func (x *Bgpv4Metric_SessionState) Reset() { + *x = Bgpv4Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1294] + mi := &file_otg_proto_msgTypes[1266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseSrc_Choice) String() string { +func (x *Bgpv4Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} +func (*Bgpv4Metric_SessionState) ProtoMessage() {} -func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1294] +func (x *Bgpv4Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117589,34 +119333,34 @@ 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{623, 0} +// Deprecated: Use Bgpv4Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{444, 0} } -type PatternFlowPfcPauseEtherType_Choice struct { +type Bgpv4Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { - *x = PatternFlowPfcPauseEtherType_Choice{} +func (x *Bgpv4Metric_FsmState) Reset() { + *x = Bgpv4Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1295] + mi := &file_otg_proto_msgTypes[1267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseEtherType_Choice) String() string { +func (x *Bgpv4Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} +func (*Bgpv4Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1295] +func (x *Bgpv4Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117627,34 +119371,34 @@ 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{626, 0} +// Deprecated: Use Bgpv4Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv4Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{444, 1} } -type PatternFlowPfcPauseControlOpCode_Choice struct { +type Bgpv6MetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { - *x = PatternFlowPfcPauseControlOpCode_Choice{} +func (x *Bgpv6MetricsRequest_ColumnNames) Reset() { + *x = Bgpv6MetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1296] + mi := &file_otg_proto_msgTypes[1268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { +func (x *Bgpv6MetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} +func (*Bgpv6MetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1296] +func (x *Bgpv6MetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117665,34 +119409,34 @@ 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{629, 0} +// Deprecated: Use Bgpv6MetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Bgpv6MetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{445, 0} } -type PatternFlowPfcPauseClassEnableVector_Choice struct { +type Bgpv6Metric_SessionState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { - *x = PatternFlowPfcPauseClassEnableVector_Choice{} +func (x *Bgpv6Metric_SessionState) Reset() { + *x = Bgpv6Metric_SessionState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1297] + mi := &file_otg_proto_msgTypes[1269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { +func (x *Bgpv6Metric_SessionState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} +func (*Bgpv6Metric_SessionState) ProtoMessage() {} -func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1297] +func (x *Bgpv6Metric_SessionState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117703,34 +119447,34 @@ 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{632, 0} +// Deprecated: Use Bgpv6Metric_SessionState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_SessionState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{446, 0} } -type PatternFlowPfcPausePauseClass0_Choice struct { +type Bgpv6Metric_FsmState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass0_Choice{} +func (x *Bgpv6Metric_FsmState) Reset() { + *x = Bgpv6Metric_FsmState{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1298] + mi := &file_otg_proto_msgTypes[1270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { +func (x *Bgpv6Metric_FsmState) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} +func (*Bgpv6Metric_FsmState) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1298] +func (x *Bgpv6Metric_FsmState) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117741,34 +119485,34 @@ 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{635, 0} +// Deprecated: Use Bgpv6Metric_FsmState.ProtoReflect.Descriptor instead. +func (*Bgpv6Metric_FsmState) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{446, 1} } -type PatternFlowPfcPausePauseClass1_Choice struct { +type IsisMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass1_Choice{} +func (x *IsisMetricsRequest_ColumnNames) Reset() { + *x = IsisMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1299] + mi := &file_otg_proto_msgTypes[1271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { +func (x *IsisMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} +func (*IsisMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1299] +func (x *IsisMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117779,34 +119523,34 @@ 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{638, 0} +// Deprecated: Use IsisMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*IsisMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{447, 0} } -type PatternFlowPfcPausePauseClass2_Choice struct { +type LagMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass2_Choice{} +func (x *LagMetricsRequest_ColumnNames) Reset() { + *x = LagMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1300] + mi := &file_otg_proto_msgTypes[1272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { +func (x *LagMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} +func (*LagMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1300] +func (x *LagMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117817,34 +119561,34 @@ 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{641, 0} +// Deprecated: Use LagMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LagMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{449, 0} } -type PatternFlowPfcPausePauseClass3_Choice struct { +type LagMetric_OperStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass3_Choice{} +func (x *LagMetric_OperStatus) Reset() { + *x = LagMetric_OperStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1301] + mi := &file_otg_proto_msgTypes[1273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { +func (x *LagMetric_OperStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} +func (*LagMetric_OperStatus) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1301] +func (x *LagMetric_OperStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117855,34 +119599,34 @@ 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{644, 0} +// Deprecated: Use LagMetric_OperStatus.ProtoReflect.Descriptor instead. +func (*LagMetric_OperStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{450, 0} } -type PatternFlowPfcPausePauseClass4_Choice struct { +type LacpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass4_Choice{} +func (x *LacpMetricsRequest_ColumnNames) Reset() { + *x = LacpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1302] + mi := &file_otg_proto_msgTypes[1274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { +func (x *LacpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} +func (*LacpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1302] +func (x *LacpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117893,34 +119637,34 @@ 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{647, 0} +// Deprecated: Use LacpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LacpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{451, 0} } -type PatternFlowPfcPausePauseClass5_Choice struct { +type LacpMetric_Activity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass5_Choice{} +func (x *LacpMetric_Activity) Reset() { + *x = LacpMetric_Activity{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1303] + mi := &file_otg_proto_msgTypes[1275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { +func (x *LacpMetric_Activity) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} +func (*LacpMetric_Activity) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1303] +func (x *LacpMetric_Activity) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117931,34 +119675,34 @@ 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{650, 0} +// Deprecated: Use LacpMetric_Activity.ProtoReflect.Descriptor instead. +func (*LacpMetric_Activity) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{452, 0} } -type PatternFlowPfcPausePauseClass6_Choice struct { +type LacpMetric_Timeout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass6_Choice{} +func (x *LacpMetric_Timeout) Reset() { + *x = LacpMetric_Timeout{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1304] + mi := &file_otg_proto_msgTypes[1276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { +func (x *LacpMetric_Timeout) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} +func (*LacpMetric_Timeout) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1304] +func (x *LacpMetric_Timeout) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -117969,34 +119713,34 @@ 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{653, 0} +// Deprecated: Use LacpMetric_Timeout.ProtoReflect.Descriptor instead. +func (*LacpMetric_Timeout) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{452, 1} } -type PatternFlowPfcPausePauseClass7_Choice struct { +type LacpMetric_Synchronization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { - *x = PatternFlowPfcPausePauseClass7_Choice{} +func (x *LacpMetric_Synchronization) Reset() { + *x = LacpMetric_Synchronization{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1305] + mi := &file_otg_proto_msgTypes[1277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { +func (x *LacpMetric_Synchronization) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} +func (*LacpMetric_Synchronization) ProtoMessage() {} -func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1305] +func (x *LacpMetric_Synchronization) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118007,34 +119751,34 @@ 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{656, 0} +// Deprecated: Use LacpMetric_Synchronization.ProtoReflect.Descriptor instead. +func (*LacpMetric_Synchronization) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{452, 2} } -type PatternFlowEthernetPauseDst_Choice struct { +type LldpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseDst_Choice) Reset() { - *x = PatternFlowEthernetPauseDst_Choice{} +func (x *LldpMetricsRequest_ColumnNames) Reset() { + *x = LldpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1306] + mi := &file_otg_proto_msgTypes[1278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseDst_Choice) String() string { +func (x *LldpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} +func (*LldpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1306] +func (x *LldpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118045,34 +119789,34 @@ 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{659, 0} +// Deprecated: Use LldpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*LldpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{453, 0} } -type PatternFlowEthernetPauseSrc_Choice struct { +type RsvpMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { - *x = PatternFlowEthernetPauseSrc_Choice{} +func (x *RsvpMetricsRequest_ColumnNames) Reset() { + *x = RsvpMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1307] + mi := &file_otg_proto_msgTypes[1279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseSrc_Choice) String() string { +func (x *RsvpMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} +func (*RsvpMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1307] +func (x *RsvpMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118083,34 +119827,34 @@ 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{662, 0} +// Deprecated: Use RsvpMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*RsvpMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{455, 0} } -type PatternFlowEthernetPauseEtherType_Choice struct { +type Dhcpv4ClientMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { - *x = PatternFlowEthernetPauseEtherType_Choice{} +func (x *Dhcpv4ClientMetricsRequest_ColumnNames) Reset() { + *x = Dhcpv4ClientMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1308] + mi := &file_otg_proto_msgTypes[1280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { +func (x *Dhcpv4ClientMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} +func (*Dhcpv4ClientMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1308] +func (x *Dhcpv4ClientMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118121,34 +119865,34 @@ 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{665, 0} +// Deprecated: Use Dhcpv4ClientMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Dhcpv4ClientMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{457, 0} } -type PatternFlowEthernetPauseControlOpCode_Choice struct { +type Dhcpv4ServerMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { - *x = PatternFlowEthernetPauseControlOpCode_Choice{} +func (x *Dhcpv4ServerMetricsRequest_ColumnNames) Reset() { + *x = Dhcpv4ServerMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1309] + mi := &file_otg_proto_msgTypes[1281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { +func (x *Dhcpv4ServerMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} +func (*Dhcpv4ServerMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1309] +func (x *Dhcpv4ServerMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118159,34 +119903,34 @@ 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{668, 0} +// Deprecated: Use Dhcpv4ServerMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Dhcpv4ServerMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{459, 0} } -type PatternFlowEthernetPauseTime_Choice struct { +type Dhcpv6ClientMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowEthernetPauseTime_Choice) Reset() { - *x = PatternFlowEthernetPauseTime_Choice{} +func (x *Dhcpv6ClientMetricsRequest_ColumnNames) Reset() { + *x = Dhcpv6ClientMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1310] + mi := &file_otg_proto_msgTypes[1282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowEthernetPauseTime_Choice) String() string { +func (x *Dhcpv6ClientMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} +func (*Dhcpv6ClientMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1310] +func (x *Dhcpv6ClientMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118197,34 +119941,34 @@ 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{671, 0} +// Deprecated: Use Dhcpv6ClientMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Dhcpv6ClientMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{461, 0} } -type PatternFlowTcpSrcPort_Choice struct { +type Dhcpv6ServerMetricsRequest_ColumnNames struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSrcPort_Choice) Reset() { - *x = PatternFlowTcpSrcPort_Choice{} +func (x *Dhcpv6ServerMetricsRequest_ColumnNames) Reset() { + *x = Dhcpv6ServerMetricsRequest_ColumnNames{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1311] + mi := &file_otg_proto_msgTypes[1283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSrcPort_Choice) String() string { +func (x *Dhcpv6ServerMetricsRequest_ColumnNames) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} +func (*Dhcpv6ServerMetricsRequest_ColumnNames) ProtoMessage() {} -func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1311] +func (x *Dhcpv6ServerMetricsRequest_ColumnNames) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118235,34 +119979,34 @@ 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{675, 0} +// Deprecated: Use Dhcpv6ServerMetricsRequest_ColumnNames.ProtoReflect.Descriptor instead. +func (*Dhcpv6ServerMetricsRequest_ColumnNames) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{463, 0} } -type PatternFlowTcpDstPort_Choice struct { +type StatesRequest_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDstPort_Choice) Reset() { - *x = PatternFlowTcpDstPort_Choice{} +func (x *StatesRequest_Choice) Reset() { + *x = StatesRequest_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1312] + mi := &file_otg_proto_msgTypes[1284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDstPort_Choice) String() string { +func (x *StatesRequest_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} +func (*StatesRequest_Choice) ProtoMessage() {} -func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1312] +func (x *StatesRequest_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118273,34 +120017,34 @@ 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{679, 0} +// Deprecated: Use StatesRequest_Choice.ProtoReflect.Descriptor instead. +func (*StatesRequest_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{465, 0} } -type PatternFlowTcpSeqNum_Choice struct { +type StatesResponse_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpSeqNum_Choice) Reset() { - *x = PatternFlowTcpSeqNum_Choice{} +func (x *StatesResponse_Choice) Reset() { + *x = StatesResponse_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1313] + mi := &file_otg_proto_msgTypes[1285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpSeqNum_Choice) String() string { +func (x *StatesResponse_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} +func (*StatesResponse_Choice) ProtoMessage() {} -func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1313] +func (x *StatesResponse_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118311,34 +120055,34 @@ 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{682, 0} +// Deprecated: Use StatesResponse_Choice.ProtoReflect.Descriptor instead. +func (*StatesResponse_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{466, 0} } -type PatternFlowTcpAckNum_Choice struct { +type BgpPrefixStateRequest_PrefixFilters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpAckNum_Choice) Reset() { - *x = PatternFlowTcpAckNum_Choice{} +func (x *BgpPrefixStateRequest_PrefixFilters) Reset() { + *x = BgpPrefixStateRequest_PrefixFilters{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1314] + mi := &file_otg_proto_msgTypes[1286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpAckNum_Choice) String() string { +func (x *BgpPrefixStateRequest_PrefixFilters) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} +func (*BgpPrefixStateRequest_PrefixFilters) ProtoMessage() {} -func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1314] +func (x *BgpPrefixStateRequest_PrefixFilters) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118349,34 +120093,34 @@ 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{685, 0} +// Deprecated: Use BgpPrefixStateRequest_PrefixFilters.ProtoReflect.Descriptor instead. +func (*BgpPrefixStateRequest_PrefixFilters) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{471, 0} } -type PatternFlowTcpDataOffset_Choice struct { +type BgpPrefixIpv4UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpDataOffset_Choice) Reset() { - *x = PatternFlowTcpDataOffset_Choice{} +func (x *BgpPrefixIpv4UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv4UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1315] + mi := &file_otg_proto_msgTypes[1287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpDataOffset_Choice) String() string { +func (x *BgpPrefixIpv4UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1315] +func (x *BgpPrefixIpv4UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118387,34 +120131,34 @@ 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{688, 0} +// Deprecated: Use BgpPrefixIpv4UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{472, 0} } -type PatternFlowTcpEcnNs_Choice struct { +type BgpPrefixIpv6UnicastFilter_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnNs_Choice) Reset() { - *x = PatternFlowTcpEcnNs_Choice{} +func (x *BgpPrefixIpv6UnicastFilter_Origin) Reset() { + *x = BgpPrefixIpv6UnicastFilter_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1316] + mi := &file_otg_proto_msgTypes[1288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnNs_Choice) String() string { +func (x *BgpPrefixIpv6UnicastFilter_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastFilter_Origin) ProtoMessage() {} -func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1316] +func (x *BgpPrefixIpv6UnicastFilter_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118425,34 +120169,34 @@ 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{691, 0} +// Deprecated: Use BgpPrefixIpv6UnicastFilter_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastFilter_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{473, 0} } -type PatternFlowTcpEcnCwr_Choice struct { +type BgpPrefixIpv4UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnCwr_Choice) Reset() { - *x = PatternFlowTcpEcnCwr_Choice{} +func (x *BgpPrefixIpv4UnicastState_Origin) Reset() { + *x = BgpPrefixIpv4UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1317] + mi := &file_otg_proto_msgTypes[1289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnCwr_Choice) String() string { +func (x *BgpPrefixIpv4UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} +func (*BgpPrefixIpv4UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1317] +func (x *BgpPrefixIpv4UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118463,34 +120207,34 @@ 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{694, 0} +// Deprecated: Use BgpPrefixIpv4UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv4UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{475, 0} } -type PatternFlowTcpEcnEcho_Choice struct { +type BgpPrefixIpv6UnicastState_Origin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpEcnEcho_Choice) Reset() { - *x = PatternFlowTcpEcnEcho_Choice{} +func (x *BgpPrefixIpv6UnicastState_Origin) Reset() { + *x = BgpPrefixIpv6UnicastState_Origin{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1318] + mi := &file_otg_proto_msgTypes[1290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpEcnEcho_Choice) String() string { +func (x *BgpPrefixIpv6UnicastState_Origin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} +func (*BgpPrefixIpv6UnicastState_Origin) ProtoMessage() {} -func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1318] +func (x *BgpPrefixIpv6UnicastState_Origin) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118501,34 +120245,34 @@ 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{697, 0} +// Deprecated: Use BgpPrefixIpv6UnicastState_Origin.ProtoReflect.Descriptor instead. +func (*BgpPrefixIpv6UnicastState_Origin) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{476, 0} } -type PatternFlowTcpCtlUrg_Choice struct { +type ResultExtendedCommunityStructured_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlUrg_Choice) Reset() { - *x = PatternFlowTcpCtlUrg_Choice{} +func (x *ResultExtendedCommunityStructured_Choice) Reset() { + *x = ResultExtendedCommunityStructured_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1319] + mi := &file_otg_proto_msgTypes[1291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlUrg_Choice) String() string { +func (x *ResultExtendedCommunityStructured_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityStructured_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1319] +func (x *ResultExtendedCommunityStructured_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118539,34 +120283,34 @@ 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{700, 0} +// Deprecated: Use ResultExtendedCommunityStructured_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityStructured_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{478, 0} } -type PatternFlowTcpCtlAck_Choice struct { +type ResultExtendedCommunityTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlAck_Choice) Reset() { - *x = PatternFlowTcpCtlAck_Choice{} +func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) Reset() { + *x = ResultExtendedCommunityTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1320] + mi := &file_otg_proto_msgTypes[1292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlAck_Choice) String() string { +func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1320] +func (x *ResultExtendedCommunityTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118577,34 +120321,34 @@ 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{703, 0} +// Deprecated: Use ResultExtendedCommunityTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{481, 0} } -type PatternFlowTcpCtlPsh_Choice struct { +type ResultExtendedCommunityTransitiveIpv4AddressType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlPsh_Choice) Reset() { - *x = PatternFlowTcpCtlPsh_Choice{} +func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) Reset() { + *x = ResultExtendedCommunityTransitiveIpv4AddressType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1321] + mi := &file_otg_proto_msgTypes[1293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlPsh_Choice) String() string { +func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1321] +func (x *ResultExtendedCommunityTransitiveIpv4AddressType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118615,34 +120359,34 @@ 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{706, 0} +// Deprecated: Use ResultExtendedCommunityTransitiveIpv4AddressType_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{484, 0} } -type PatternFlowTcpCtlRst_Choice struct { +type ResultExtendedCommunityTransitive4OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlRst_Choice) Reset() { - *x = PatternFlowTcpCtlRst_Choice{} +func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) Reset() { + *x = ResultExtendedCommunityTransitive4OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1322] + mi := &file_otg_proto_msgTypes[1294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlRst_Choice) String() string { +func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityTransitive4OctetAsType_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1322] +func (x *ResultExtendedCommunityTransitive4OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118653,34 +120397,34 @@ 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{709, 0} +// Deprecated: Use ResultExtendedCommunityTransitive4OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitive4OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{487, 0} } -type PatternFlowTcpCtlSyn_Choice struct { +type ResultExtendedCommunityTransitiveOpaqueType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlSyn_Choice) Reset() { - *x = PatternFlowTcpCtlSyn_Choice{} +func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) Reset() { + *x = ResultExtendedCommunityTransitiveOpaqueType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1323] + mi := &file_otg_proto_msgTypes[1295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlSyn_Choice) String() string { +func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityTransitiveOpaqueType_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1323] +func (x *ResultExtendedCommunityTransitiveOpaqueType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1295] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118691,34 +120435,34 @@ 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{712, 0} +// Deprecated: Use ResultExtendedCommunityTransitiveOpaqueType_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityTransitiveOpaqueType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{490, 0} } -type PatternFlowTcpCtlFin_Choice struct { +type ResultExtendedCommunityNonTransitive2OctetAsType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpCtlFin_Choice) Reset() { - *x = PatternFlowTcpCtlFin_Choice{} +func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) Reset() { + *x = ResultExtendedCommunityNonTransitive2OctetAsType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1324] + mi := &file_otg_proto_msgTypes[1296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpCtlFin_Choice) String() string { +func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} +func (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoMessage() {} -func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1324] +func (x *ResultExtendedCommunityNonTransitive2OctetAsType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118729,34 +120473,34 @@ 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{715, 0} +// Deprecated: Use ResultExtendedCommunityNonTransitive2OctetAsType_Choice.ProtoReflect.Descriptor instead. +func (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{492, 0} } -type PatternFlowTcpWindow_Choice struct { +type ResultBgpCommunity_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpWindow_Choice) Reset() { - *x = PatternFlowTcpWindow_Choice{} +func (x *ResultBgpCommunity_Type) Reset() { + *x = ResultBgpCommunity_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1325] + mi := &file_otg_proto_msgTypes[1297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpWindow_Choice) String() string { +func (x *ResultBgpCommunity_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} +func (*ResultBgpCommunity_Type) ProtoMessage() {} -func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1325] +func (x *ResultBgpCommunity_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118767,34 +120511,34 @@ 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{718, 0} +// Deprecated: Use ResultBgpCommunity_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpCommunity_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{493, 0} } -type PatternFlowTcpChecksum_Choice struct { +type ResultBgpAsPathSegment_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpChecksum_Choice) Reset() { - *x = PatternFlowTcpChecksum_Choice{} +func (x *ResultBgpAsPathSegment_Type) Reset() { + *x = ResultBgpAsPathSegment_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1326] + mi := &file_otg_proto_msgTypes[1298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpChecksum_Choice) String() string { +func (x *ResultBgpAsPathSegment_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpChecksum_Choice) ProtoMessage() {} +func (*ResultBgpAsPathSegment_Type) ProtoMessage() {} -func (x *PatternFlowTcpChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1326] +func (x *ResultBgpAsPathSegment_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118805,34 +120549,34 @@ func (x *PatternFlowTcpChecksum_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 0} +// Deprecated: Use ResultBgpAsPathSegment_Type.ProtoReflect.Descriptor instead. +func (*ResultBgpAsPathSegment_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{495, 0} } -type PatternFlowTcpChecksum_Generated struct { +type IsisLspState_PduType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowTcpChecksum_Generated) Reset() { - *x = PatternFlowTcpChecksum_Generated{} +func (x *IsisLspState_PduType) Reset() { + *x = IsisLspState_PduType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1327] + mi := &file_otg_proto_msgTypes[1299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowTcpChecksum_Generated) String() string { +func (x *IsisLspState_PduType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowTcpChecksum_Generated) ProtoMessage() {} +func (*IsisLspState_PduType) ProtoMessage() {} -func (x *PatternFlowTcpChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1327] +func (x *IsisLspState_PduType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118843,34 +120587,34 @@ func (x *PatternFlowTcpChecksum_Generated) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowTcpChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowTcpChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{719, 1} +// Deprecated: Use IsisLspState_PduType.ProtoReflect.Descriptor instead. +func (*IsisLspState_PduType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{498, 0} } -type PatternFlowUdpSrcPort_Choice struct { +type IsisLspV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpSrcPort_Choice) Reset() { - *x = PatternFlowUdpSrcPort_Choice{} +func (x *IsisLspV4Prefix_RedistributionType) Reset() { + *x = IsisLspV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1328] + mi := &file_otg_proto_msgTypes[1300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpSrcPort_Choice) String() string { +func (x *IsisLspV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1328] +func (x *IsisLspV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118881,34 +120625,34 @@ 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{723, 0} +// Deprecated: Use IsisLspV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{507, 0} } -type PatternFlowUdpDstPort_Choice struct { +type IsisLspV4Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpDstPort_Choice) Reset() { - *x = PatternFlowUdpDstPort_Choice{} +func (x *IsisLspV4Prefix_OriginType) Reset() { + *x = IsisLspV4Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1329] + mi := &file_otg_proto_msgTypes[1301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpDstPort_Choice) String() string { +func (x *IsisLspV4Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} +func (*IsisLspV4Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1329] +func (x *IsisLspV4Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118919,34 +120663,34 @@ 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{727, 0} +// Deprecated: Use IsisLspV4Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV4Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{507, 1} } -type PatternFlowUdpLength_Choice struct { +type IsisLspExtendedV4Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpLength_Choice) Reset() { - *x = PatternFlowUdpLength_Choice{} +func (x *IsisLspExtendedV4Prefix_RedistributionType) Reset() { + *x = IsisLspExtendedV4Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1330] + mi := &file_otg_proto_msgTypes[1302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpLength_Choice) String() string { +func (x *IsisLspExtendedV4Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpLength_Choice) ProtoMessage() {} +func (*IsisLspExtendedV4Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1330] +func (x *IsisLspExtendedV4Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118957,34 +120701,34 @@ 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{730, 0} +// Deprecated: Use IsisLspExtendedV4Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspExtendedV4Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{509, 0} } -type PatternFlowUdpChecksum_Choice struct { +type IsisLspV6Prefix_RedistributionType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Choice) Reset() { - *x = PatternFlowUdpChecksum_Choice{} +func (x *IsisLspV6Prefix_RedistributionType) Reset() { + *x = IsisLspV6Prefix_RedistributionType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1331] + mi := &file_otg_proto_msgTypes[1303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Choice) String() string { +func (x *IsisLspV6Prefix_RedistributionType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} +func (*IsisLspV6Prefix_RedistributionType) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1331] +func (x *IsisLspV6Prefix_RedistributionType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118995,34 +120739,34 @@ 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{731, 0} +// Deprecated: Use IsisLspV6Prefix_RedistributionType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_RedistributionType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511, 0} } -type PatternFlowUdpChecksum_Generated struct { +type IsisLspV6Prefix_OriginType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowUdpChecksum_Generated) Reset() { - *x = PatternFlowUdpChecksum_Generated{} +func (x *IsisLspV6Prefix_OriginType) Reset() { + *x = IsisLspV6Prefix_OriginType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1332] + mi := &file_otg_proto_msgTypes[1304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowUdpChecksum_Generated) String() string { +func (x *IsisLspV6Prefix_OriginType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} +func (*IsisLspV6Prefix_OriginType) ProtoMessage() {} -func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1332] +func (x *IsisLspV6Prefix_OriginType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119033,34 +120777,34 @@ 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{731, 1} +// Deprecated: Use IsisLspV6Prefix_OriginType.ProtoReflect.Descriptor instead. +func (*IsisLspV6Prefix_OriginType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{511, 1} } -type PatternFlowGreChecksumPresent_Choice struct { +type LldpNeighborsState_ChassisIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksumPresent_Choice) Reset() { - *x = PatternFlowGreChecksumPresent_Choice{} +func (x *LldpNeighborsState_ChassisIdType) Reset() { + *x = LldpNeighborsState_ChassisIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1333] + mi := &file_otg_proto_msgTypes[1305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksumPresent_Choice) String() string { +func (x *LldpNeighborsState_ChassisIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} +func (*LldpNeighborsState_ChassisIdType) ProtoMessage() {} -func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1333] +func (x *LldpNeighborsState_ChassisIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119071,34 +120815,34 @@ 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{734, 0} +// Deprecated: Use LldpNeighborsState_ChassisIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_ChassisIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514, 0} } -type PatternFlowGreReserved0_Choice struct { +type LldpNeighborsState_PortIdType struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved0_Choice) Reset() { - *x = PatternFlowGreReserved0_Choice{} +func (x *LldpNeighborsState_PortIdType) Reset() { + *x = LldpNeighborsState_PortIdType{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1334] + mi := &file_otg_proto_msgTypes[1306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved0_Choice) String() string { +func (x *LldpNeighborsState_PortIdType) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} +func (*LldpNeighborsState_PortIdType) ProtoMessage() {} -func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1334] +func (x *LldpNeighborsState_PortIdType) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119109,34 +120853,34 @@ 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{737, 0} +// Deprecated: Use LldpNeighborsState_PortIdType.ProtoReflect.Descriptor instead. +func (*LldpNeighborsState_PortIdType) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{514, 1} } -type PatternFlowGreVersion_Choice struct { +type LldpCapabilityState_CapabilityName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreVersion_Choice) Reset() { - *x = PatternFlowGreVersion_Choice{} +func (x *LldpCapabilityState_CapabilityName) Reset() { + *x = LldpCapabilityState_CapabilityName{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1335] + mi := &file_otg_proto_msgTypes[1307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreVersion_Choice) String() string { +func (x *LldpCapabilityState_CapabilityName) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreVersion_Choice) ProtoMessage() {} +func (*LldpCapabilityState_CapabilityName) ProtoMessage() {} -func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1335] +func (x *LldpCapabilityState_CapabilityName) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119147,34 +120891,34 @@ 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{740, 0} +// Deprecated: Use LldpCapabilityState_CapabilityName.ProtoReflect.Descriptor instead. +func (*LldpCapabilityState_CapabilityName) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{516, 0} } -type PatternFlowGreProtocol_Choice struct { +type RsvpLspState_SessionStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreProtocol_Choice) Reset() { - *x = PatternFlowGreProtocol_Choice{} +func (x *RsvpLspState_SessionStatus) Reset() { + *x = RsvpLspState_SessionStatus{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1336] + mi := &file_otg_proto_msgTypes[1308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreProtocol_Choice) String() string { +func (x *RsvpLspState_SessionStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} +func (*RsvpLspState_SessionStatus) ProtoMessage() {} -func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1336] +func (x *RsvpLspState_SessionStatus) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119185,34 +120929,34 @@ 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{743, 0} +// Deprecated: Use RsvpLspState_SessionStatus.ProtoReflect.Descriptor instead. +func (*RsvpLspState_SessionStatus) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520, 0} } -type PatternFlowGreChecksum_Choice struct { +type RsvpLspState_LastFlapReason struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Choice) Reset() { - *x = PatternFlowGreChecksum_Choice{} +func (x *RsvpLspState_LastFlapReason) Reset() { + *x = RsvpLspState_LastFlapReason{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1337] + mi := &file_otg_proto_msgTypes[1309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Choice) String() string { +func (x *RsvpLspState_LastFlapReason) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} +func (*RsvpLspState_LastFlapReason) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1337] +func (x *RsvpLspState_LastFlapReason) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119223,34 +120967,34 @@ 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{744, 0} +// Deprecated: Use RsvpLspState_LastFlapReason.ProtoReflect.Descriptor instead. +func (*RsvpLspState_LastFlapReason) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{520, 1} } -type PatternFlowGreChecksum_Generated struct { +type RsvpLspIpv4Ero_Type struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreChecksum_Generated) Reset() { - *x = PatternFlowGreChecksum_Generated{} +func (x *RsvpLspIpv4Ero_Type) Reset() { + *x = RsvpLspIpv4Ero_Type{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1338] + mi := &file_otg_proto_msgTypes[1310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreChecksum_Generated) String() string { +func (x *RsvpLspIpv4Ero_Type) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} +func (*RsvpLspIpv4Ero_Type) ProtoMessage() {} -func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1338] +func (x *RsvpLspIpv4Ero_Type) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119261,34 +121005,34 @@ 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{744, 1} +// Deprecated: Use RsvpLspIpv4Ero_Type.ProtoReflect.Descriptor instead. +func (*RsvpLspIpv4Ero_Type) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{522, 0} } -type PatternFlowGreReserved1_Choice struct { +type PatternFlowEthernetDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGreReserved1_Choice) Reset() { - *x = PatternFlowGreReserved1_Choice{} +func (x *PatternFlowEthernetDst_Choice) Reset() { + *x = PatternFlowEthernetDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1339] + mi := &file_otg_proto_msgTypes[1311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGreReserved1_Choice) String() string { +func (x *PatternFlowEthernetDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} +func (*PatternFlowEthernetDst_Choice) ProtoMessage() {} -func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1339] +func (x *PatternFlowEthernetDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119299,34 +121043,34 @@ 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{747, 0} +// Deprecated: Use PatternFlowEthernetDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{536, 0} } -type PatternFlowGtpv1Version_Choice struct { +type PatternFlowEthernetSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Version_Choice) Reset() { - *x = PatternFlowGtpv1Version_Choice{} +func (x *PatternFlowEthernetSrc_Choice) Reset() { + *x = PatternFlowEthernetSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1340] + mi := &file_otg_proto_msgTypes[1312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Version_Choice) String() string { +func (x *PatternFlowEthernetSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowEthernetSrc_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1340] +func (x *PatternFlowEthernetSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119337,34 +121081,34 @@ 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{750, 0} +// Deprecated: Use PatternFlowEthernetSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{539, 0} } -type PatternFlowGtpv1ProtocolType_Choice struct { +type PatternFlowEthernetEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { - *x = PatternFlowGtpv1ProtocolType_Choice{} +func (x *PatternFlowEthernetEtherType_Choice) Reset() { + *x = PatternFlowEthernetEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1341] + mi := &file_otg_proto_msgTypes[1313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { +func (x *PatternFlowEthernetEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowEthernetEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1341] +func (x *PatternFlowEthernetEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119375,34 +121119,34 @@ 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{753, 0} +// Deprecated: Use PatternFlowEthernetEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{542, 0} } -type PatternFlowGtpv1Reserved_Choice struct { +type PatternFlowEthernetPfcQueue_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Reserved_Choice) Reset() { - *x = PatternFlowGtpv1Reserved_Choice{} +func (x *PatternFlowEthernetPfcQueue_Choice) Reset() { + *x = PatternFlowEthernetPfcQueue_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1342] + mi := &file_otg_proto_msgTypes[1314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Reserved_Choice) String() string { +func (x *PatternFlowEthernetPfcQueue_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPfcQueue_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1342] +func (x *PatternFlowEthernetPfcQueue_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119413,34 +121157,34 @@ 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{756, 0} +// Deprecated: Use PatternFlowEthernetPfcQueue_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPfcQueue_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{545, 0} } -type PatternFlowGtpv1EFlag_Choice struct { +type PatternFlowVlanPriority_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1EFlag_Choice) Reset() { - *x = PatternFlowGtpv1EFlag_Choice{} +func (x *PatternFlowVlanPriority_Choice) Reset() { + *x = PatternFlowVlanPriority_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1343] + mi := &file_otg_proto_msgTypes[1315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1EFlag_Choice) String() string { +func (x *PatternFlowVlanPriority_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} +func (*PatternFlowVlanPriority_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1343] +func (x *PatternFlowVlanPriority_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119451,34 +121195,34 @@ 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{759, 0} +// Deprecated: Use PatternFlowVlanPriority_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanPriority_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{548, 0} } -type PatternFlowGtpv1SFlag_Choice struct { +type PatternFlowVlanCfi_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SFlag_Choice) Reset() { - *x = PatternFlowGtpv1SFlag_Choice{} +func (x *PatternFlowVlanCfi_Choice) Reset() { + *x = PatternFlowVlanCfi_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1344] + mi := &file_otg_proto_msgTypes[1316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SFlag_Choice) String() string { +func (x *PatternFlowVlanCfi_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} +func (*PatternFlowVlanCfi_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1344] +func (x *PatternFlowVlanCfi_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119489,34 +121233,34 @@ 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{762, 0} +// Deprecated: Use PatternFlowVlanCfi_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanCfi_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{551, 0} } -type PatternFlowGtpv1PnFlag_Choice struct { +type PatternFlowVlanId_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { - *x = PatternFlowGtpv1PnFlag_Choice{} +func (x *PatternFlowVlanId_Choice) Reset() { + *x = PatternFlowVlanId_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1345] + mi := &file_otg_proto_msgTypes[1317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1PnFlag_Choice) String() string { +func (x *PatternFlowVlanId_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} +func (*PatternFlowVlanId_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1345] +func (x *PatternFlowVlanId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119527,34 +121271,34 @@ 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{765, 0} +// Deprecated: Use PatternFlowVlanId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{554, 0} } -type PatternFlowGtpv1MessageType_Choice struct { +type PatternFlowVlanTpid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageType_Choice) Reset() { - *x = PatternFlowGtpv1MessageType_Choice{} +func (x *PatternFlowVlanTpid_Choice) Reset() { + *x = PatternFlowVlanTpid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1346] + mi := &file_otg_proto_msgTypes[1318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageType_Choice) String() string { +func (x *PatternFlowVlanTpid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} +func (*PatternFlowVlanTpid_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1346] +func (x *PatternFlowVlanTpid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119565,34 +121309,34 @@ 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{768, 0} +// Deprecated: Use PatternFlowVlanTpid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVlanTpid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{557, 0} } -type PatternFlowGtpv1MessageLength_Choice struct { +type PatternFlowVxlanFlags_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { - *x = PatternFlowGtpv1MessageLength_Choice{} +func (x *PatternFlowVxlanFlags_Choice) Reset() { + *x = PatternFlowVxlanFlags_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1347] + mi := &file_otg_proto_msgTypes[1319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1MessageLength_Choice) String() string { +func (x *PatternFlowVxlanFlags_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowVxlanFlags_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1347] +func (x *PatternFlowVxlanFlags_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119603,34 +121347,34 @@ 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{771, 0} +// Deprecated: Use PatternFlowVxlanFlags_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanFlags_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{560, 0} } -type PatternFlowGtpv1Teid_Choice struct { +type PatternFlowVxlanReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1Teid_Choice) Reset() { - *x = PatternFlowGtpv1Teid_Choice{} +func (x *PatternFlowVxlanReserved0_Choice) Reset() { + *x = PatternFlowVxlanReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1348] + mi := &file_otg_proto_msgTypes[1320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1Teid_Choice) String() string { +func (x *PatternFlowVxlanReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1348] +func (x *PatternFlowVxlanReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119641,34 +121385,34 @@ 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{774, 0} +// Deprecated: Use PatternFlowVxlanReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{563, 0} } -type PatternFlowGtpv1SquenceNumber_Choice struct { +type PatternFlowVxlanVni_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { - *x = PatternFlowGtpv1SquenceNumber_Choice{} +func (x *PatternFlowVxlanVni_Choice) Reset() { + *x = PatternFlowVxlanVni_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1349] + mi := &file_otg_proto_msgTypes[1321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { +func (x *PatternFlowVxlanVni_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowVxlanVni_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1349] +func (x *PatternFlowVxlanVni_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119679,34 +121423,34 @@ 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{777, 0} +// Deprecated: Use PatternFlowVxlanVni_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanVni_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{566, 0} } -type PatternFlowGtpv1NPduNumber_Choice struct { +type PatternFlowVxlanReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { - *x = PatternFlowGtpv1NPduNumber_Choice{} +func (x *PatternFlowVxlanReserved1_Choice) Reset() { + *x = PatternFlowVxlanReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1350] + mi := &file_otg_proto_msgTypes[1322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { +func (x *PatternFlowVxlanReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} +func (*PatternFlowVxlanReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1350] +func (x *PatternFlowVxlanReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119717,34 +121461,34 @@ 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{780, 0} +// Deprecated: Use PatternFlowVxlanReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowVxlanReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{569, 0} } -type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { +type PatternFlowIpv4Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { - *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} +func (x *PatternFlowIpv4Version_Choice) Reset() { + *x = PatternFlowIpv4Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1351] + mi := &file_otg_proto_msgTypes[1323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { +func (x *PatternFlowIpv4Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Version_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1351] +func (x *PatternFlowIpv4Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119755,34 +121499,34 @@ 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{783, 0} +// Deprecated: Use PatternFlowIpv4Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{572, 0} } -type PatternFlowGtpExtensionExtensionLength_Choice struct { +type PatternFlowIpv4HeaderLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { - *x = PatternFlowGtpExtensionExtensionLength_Choice{} +func (x *PatternFlowIpv4HeaderLength_Choice) Reset() { + *x = PatternFlowIpv4HeaderLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1352] + mi := &file_otg_proto_msgTypes[1324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { +func (x *PatternFlowIpv4HeaderLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderLength_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1352] +func (x *PatternFlowIpv4HeaderLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119793,34 +121537,34 @@ 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{786, 0} +// Deprecated: Use PatternFlowIpv4HeaderLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{575, 0} } -type PatternFlowGtpExtensionContents_Choice struct { +type PatternFlowIpv4TotalLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionContents_Choice) Reset() { - *x = PatternFlowGtpExtensionContents_Choice{} +func (x *PatternFlowIpv4TotalLength_Choice) Reset() { + *x = PatternFlowIpv4TotalLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1353] + mi := &file_otg_proto_msgTypes[1325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionContents_Choice) String() string { +func (x *PatternFlowIpv4TotalLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TotalLength_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1353] +func (x *PatternFlowIpv4TotalLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119831,34 +121575,34 @@ 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{789, 0} +// Deprecated: Use PatternFlowIpv4TotalLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TotalLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{578, 0} } -type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { +type PatternFlowIpv4Identification_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { - *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} +func (x *PatternFlowIpv4Identification_Choice) Reset() { + *x = PatternFlowIpv4Identification_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1354] + mi := &file_otg_proto_msgTypes[1326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { +func (x *PatternFlowIpv4Identification_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Identification_Choice) ProtoMessage() {} -func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1354] +func (x *PatternFlowIpv4Identification_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119869,34 +121613,34 @@ 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{792, 0} +// Deprecated: Use PatternFlowIpv4Identification_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Identification_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{581, 0} } -type PatternFlowGtpv2Version_Choice struct { +type PatternFlowIpv4Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Version_Choice) Reset() { - *x = PatternFlowGtpv2Version_Choice{} +func (x *PatternFlowIpv4Reserved_Choice) Reset() { + *x = PatternFlowIpv4Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1355] + mi := &file_otg_proto_msgTypes[1327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Version_Choice) String() string { +func (x *PatternFlowIpv4Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1355] +func (x *PatternFlowIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119907,34 +121651,34 @@ 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{795, 0} +// Deprecated: Use PatternFlowIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{584, 0} } -type PatternFlowGtpv2PiggybackingFlag_Choice struct { +type PatternFlowIpv4DontFragment_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { - *x = PatternFlowGtpv2PiggybackingFlag_Choice{} +func (x *PatternFlowIpv4DontFragment_Choice) Reset() { + *x = PatternFlowIpv4DontFragment_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1356] + mi := &file_otg_proto_msgTypes[1328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { +func (x *PatternFlowIpv4DontFragment_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DontFragment_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1356] +func (x *PatternFlowIpv4DontFragment_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119945,34 +121689,34 @@ 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{798, 0} +// Deprecated: Use PatternFlowIpv4DontFragment_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DontFragment_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{587, 0} } -type PatternFlowGtpv2TeidFlag_Choice struct { +type PatternFlowIpv4MoreFragments_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { - *x = PatternFlowGtpv2TeidFlag_Choice{} +func (x *PatternFlowIpv4MoreFragments_Choice) Reset() { + *x = PatternFlowIpv4MoreFragments_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1357] + mi := &file_otg_proto_msgTypes[1329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { +func (x *PatternFlowIpv4MoreFragments_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} +func (*PatternFlowIpv4MoreFragments_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1357] +func (x *PatternFlowIpv4MoreFragments_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -119983,34 +121727,34 @@ 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{801, 0} +// Deprecated: Use PatternFlowIpv4MoreFragments_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4MoreFragments_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{590, 0} } -type PatternFlowGtpv2Spare1_Choice struct { +type PatternFlowIpv4FragmentOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare1_Choice) Reset() { - *x = PatternFlowGtpv2Spare1_Choice{} +func (x *PatternFlowIpv4FragmentOffset_Choice) Reset() { + *x = PatternFlowIpv4FragmentOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1358] + mi := &file_otg_proto_msgTypes[1330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare1_Choice) String() string { +func (x *PatternFlowIpv4FragmentOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} +func (*PatternFlowIpv4FragmentOffset_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1358] +func (x *PatternFlowIpv4FragmentOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120021,34 +121765,34 @@ 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{804, 0} +// Deprecated: Use PatternFlowIpv4FragmentOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4FragmentOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{593, 0} } -type PatternFlowGtpv2MessageType_Choice struct { +type PatternFlowIpv4TimeToLive_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageType_Choice) Reset() { - *x = PatternFlowGtpv2MessageType_Choice{} +func (x *PatternFlowIpv4TimeToLive_Choice) Reset() { + *x = PatternFlowIpv4TimeToLive_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1359] + mi := &file_otg_proto_msgTypes[1331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageType_Choice) String() string { +func (x *PatternFlowIpv4TimeToLive_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TimeToLive_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1359] +func (x *PatternFlowIpv4TimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120059,34 +121803,34 @@ 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{807, 0} +// Deprecated: Use PatternFlowIpv4TimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{596, 0} } -type PatternFlowGtpv2MessageLength_Choice struct { +type PatternFlowIpv4Protocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { - *x = PatternFlowGtpv2MessageLength_Choice{} +func (x *PatternFlowIpv4Protocol_Choice) Reset() { + *x = PatternFlowIpv4Protocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1360] + mi := &file_otg_proto_msgTypes[1332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2MessageLength_Choice) String() string { +func (x *PatternFlowIpv4Protocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Protocol_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1360] +func (x *PatternFlowIpv4Protocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120097,34 +121841,34 @@ 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{810, 0} +// Deprecated: Use PatternFlowIpv4Protocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Protocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{599, 0} } -type PatternFlowGtpv2Teid_Choice struct { +type PatternFlowIpv4HeaderChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Teid_Choice) Reset() { - *x = PatternFlowGtpv2Teid_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Choice) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1361] + mi := &file_otg_proto_msgTypes[1333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Teid_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1361] +func (x *PatternFlowIpv4HeaderChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120135,34 +121879,34 @@ 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{813, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600, 0} } -type PatternFlowGtpv2SequenceNumber_Choice struct { +type PatternFlowIpv4HeaderChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { - *x = PatternFlowGtpv2SequenceNumber_Choice{} +func (x *PatternFlowIpv4HeaderChecksum_Generated) Reset() { + *x = PatternFlowIpv4HeaderChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1362] + mi := &file_otg_proto_msgTypes[1334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { +func (x *PatternFlowIpv4HeaderChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowIpv4HeaderChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1362] +func (x *PatternFlowIpv4HeaderChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120173,34 +121917,34 @@ 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{816, 0} +// Deprecated: Use PatternFlowIpv4HeaderChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4HeaderChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{600, 1} } -type PatternFlowGtpv2Spare2_Choice struct { +type PatternFlowIpv4Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowGtpv2Spare2_Choice) Reset() { - *x = PatternFlowGtpv2Spare2_Choice{} +func (x *PatternFlowIpv4Src_Choice) Reset() { + *x = PatternFlowIpv4Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1363] + mi := &file_otg_proto_msgTypes[1335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowGtpv2Spare2_Choice) String() string { +func (x *PatternFlowIpv4Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Src_Choice) ProtoMessage() {} -func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1363] +func (x *PatternFlowIpv4Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120211,34 +121955,34 @@ 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{819, 0} +// Deprecated: Use PatternFlowIpv4Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{604, 0} } -type PatternFlowArpHardwareType_Choice struct { +type PatternFlowIpv4Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareType_Choice) Reset() { - *x = PatternFlowArpHardwareType_Choice{} +func (x *PatternFlowIpv4Dst_Choice) Reset() { + *x = PatternFlowIpv4Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1364] + mi := &file_otg_proto_msgTypes[1336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareType_Choice) String() string { +func (x *PatternFlowIpv4Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4Dst_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1364] +func (x *PatternFlowIpv4Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120249,34 +121993,34 @@ 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{822, 0} +// Deprecated: Use PatternFlowIpv4Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{608, 0} } -type PatternFlowArpProtocolType_Choice struct { +type PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolType_Choice) Reset() { - *x = PatternFlowArpProtocolType_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1365] + mi := &file_otg_proto_msgTypes[1337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolType_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1365] +func (x *PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120287,34 +122031,34 @@ 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{825, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{610, 0} } -type PatternFlowArpHardwareLength_Choice struct { +type PatternFlowIpv4OptionsCustomTypeOptionClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpHardwareLength_Choice) Reset() { - *x = PatternFlowArpHardwareLength_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionClass_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1366] + mi := &file_otg_proto_msgTypes[1338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpHardwareLength_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoMessage() {} -func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1366] +func (x *PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120325,34 +122069,34 @@ 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{828, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{612, 0} } -type PatternFlowArpProtocolLength_Choice struct { +type PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpProtocolLength_Choice) Reset() { - *x = PatternFlowArpProtocolLength_Choice{} +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Reset() { + *x = PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1367] + mi := &file_otg_proto_msgTypes[1339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpProtocolLength_Choice) String() string { +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoMessage() {} -func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1367] +func (x *PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120363,34 +122107,34 @@ 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{831, 0} +// Deprecated: Use PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{614, 0} } -type PatternFlowArpOperation_Choice struct { +type PatternFlowIpv4PriorityRaw_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpOperation_Choice) Reset() { - *x = PatternFlowArpOperation_Choice{} +func (x *PatternFlowIpv4PriorityRaw_Choice) Reset() { + *x = PatternFlowIpv4PriorityRaw_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1368] + mi := &file_otg_proto_msgTypes[1340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpOperation_Choice) String() string { +func (x *PatternFlowIpv4PriorityRaw_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpOperation_Choice) ProtoMessage() {} +func (*PatternFlowIpv4PriorityRaw_Choice) ProtoMessage() {} -func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1368] +func (x *PatternFlowIpv4PriorityRaw_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120401,34 +122145,34 @@ 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{834, 0} +// Deprecated: Use PatternFlowIpv4PriorityRaw_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4PriorityRaw_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{617, 0} } -type PatternFlowArpSenderHardwareAddr_Choice struct { +type PatternFlowIpv4DscpPhb_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { - *x = PatternFlowArpSenderHardwareAddr_Choice{} +func (x *PatternFlowIpv4DscpPhb_Choice) Reset() { + *x = PatternFlowIpv4DscpPhb_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1369] + mi := &file_otg_proto_msgTypes[1341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { +func (x *PatternFlowIpv4DscpPhb_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpPhb_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1369] +func (x *PatternFlowIpv4DscpPhb_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120439,34 +122183,34 @@ 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{837, 0} +// Deprecated: Use PatternFlowIpv4DscpPhb_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpPhb_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{620, 0} } -type PatternFlowArpSenderProtocolAddr_Choice struct { +type PatternFlowIpv4DscpEcn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { - *x = PatternFlowArpSenderProtocolAddr_Choice{} +func (x *PatternFlowIpv4DscpEcn_Choice) Reset() { + *x = PatternFlowIpv4DscpEcn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1370] + mi := &file_otg_proto_msgTypes[1342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpSenderProtocolAddr_Choice) String() string { +func (x *PatternFlowIpv4DscpEcn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpSenderProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowIpv4DscpEcn_Choice) ProtoMessage() {} -func (x *PatternFlowArpSenderProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1370] +func (x *PatternFlowIpv4DscpEcn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120477,34 +122221,34 @@ 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{840, 0} +// Deprecated: Use PatternFlowIpv4DscpEcn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4DscpEcn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{623, 0} } -type PatternFlowArpTargetHardwareAddr_Choice struct { +type PatternFlowIpv4TosPrecedence_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetHardwareAddr_Choice) Reset() { - *x = PatternFlowArpTargetHardwareAddr_Choice{} +func (x *PatternFlowIpv4TosPrecedence_Choice) Reset() { + *x = PatternFlowIpv4TosPrecedence_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1371] + mi := &file_otg_proto_msgTypes[1343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetHardwareAddr_Choice) String() string { +func (x *PatternFlowIpv4TosPrecedence_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetHardwareAddr_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosPrecedence_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetHardwareAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1371] +func (x *PatternFlowIpv4TosPrecedence_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120515,34 +122259,34 @@ 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{843, 0} +// Deprecated: Use PatternFlowIpv4TosPrecedence_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosPrecedence_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{626, 0} } -type PatternFlowArpTargetProtocolAddr_Choice struct { +type PatternFlowIpv4TosDelay_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowArpTargetProtocolAddr_Choice) Reset() { - *x = PatternFlowArpTargetProtocolAddr_Choice{} +func (x *PatternFlowIpv4TosDelay_Choice) Reset() { + *x = PatternFlowIpv4TosDelay_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1372] + mi := &file_otg_proto_msgTypes[1344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowArpTargetProtocolAddr_Choice) String() string { +func (x *PatternFlowIpv4TosDelay_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowArpTargetProtocolAddr_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosDelay_Choice) ProtoMessage() {} -func (x *PatternFlowArpTargetProtocolAddr_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1372] +func (x *PatternFlowIpv4TosDelay_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120553,34 +122297,34 @@ 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{846, 0} +// Deprecated: Use PatternFlowIpv4TosDelay_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosDelay_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{629, 0} } -type PatternFlowIcmpEchoType_Choice struct { +type PatternFlowIpv4TosThroughput_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoType_Choice) Reset() { - *x = PatternFlowIcmpEchoType_Choice{} +func (x *PatternFlowIpv4TosThroughput_Choice) Reset() { + *x = PatternFlowIpv4TosThroughput_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1373] + mi := &file_otg_proto_msgTypes[1345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoType_Choice) String() string { +func (x *PatternFlowIpv4TosThroughput_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoType_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosThroughput_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1373] +func (x *PatternFlowIpv4TosThroughput_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120591,34 +122335,34 @@ 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{849, 0} +// Deprecated: Use PatternFlowIpv4TosThroughput_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosThroughput_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{632, 0} } -type PatternFlowIcmpEchoCode_Choice struct { +type PatternFlowIpv4TosReliability_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoCode_Choice) Reset() { - *x = PatternFlowIcmpEchoCode_Choice{} +func (x *PatternFlowIpv4TosReliability_Choice) Reset() { + *x = PatternFlowIpv4TosReliability_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1374] + mi := &file_otg_proto_msgTypes[1346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoCode_Choice) String() string { +func (x *PatternFlowIpv4TosReliability_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosReliability_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1374] +func (x *PatternFlowIpv4TosReliability_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120629,34 +122373,34 @@ 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{852, 0} +// Deprecated: Use PatternFlowIpv4TosReliability_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosReliability_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{635, 0} } -type PatternFlowIcmpEchoChecksum_Choice struct { +type PatternFlowIpv4TosMonetary_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpEchoChecksum_Choice{} +func (x *PatternFlowIpv4TosMonetary_Choice) Reset() { + *x = PatternFlowIpv4TosMonetary_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1375] + mi := &file_otg_proto_msgTypes[1347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Choice) String() string { +func (x *PatternFlowIpv4TosMonetary_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowIpv4TosMonetary_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1375] +func (x *PatternFlowIpv4TosMonetary_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120667,34 +122411,34 @@ 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{853, 0} +// Deprecated: Use PatternFlowIpv4TosMonetary_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosMonetary_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{638, 0} } -type PatternFlowIcmpEchoChecksum_Generated struct { +type PatternFlowIpv4TosUnused_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpEchoChecksum_Generated{} +func (x *PatternFlowIpv4TosUnused_Choice) Reset() { + *x = PatternFlowIpv4TosUnused_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1376] + mi := &file_otg_proto_msgTypes[1348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoChecksum_Generated) String() string { +func (x *PatternFlowIpv4TosUnused_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowIpv4TosUnused_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1376] +func (x *PatternFlowIpv4TosUnused_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120705,34 +122449,34 @@ 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{853, 1} +// Deprecated: Use PatternFlowIpv4TosUnused_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv4TosUnused_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{641, 0} } -type PatternFlowIcmpEchoIdentifier_Choice struct { +type PatternFlowIpv6Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpEchoIdentifier_Choice{} +func (x *PatternFlowIpv6Version_Choice) Reset() { + *x = PatternFlowIpv6Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1377] + mi := &file_otg_proto_msgTypes[1349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoIdentifier_Choice) String() string { +func (x *PatternFlowIpv6Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Version_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1377] +func (x *PatternFlowIpv6Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120743,34 +122487,34 @@ 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{856, 0} +// Deprecated: Use PatternFlowIpv6Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{644, 0} } -type PatternFlowIcmpEchoSequenceNumber_Choice struct { +type PatternFlowIpv6TrafficClass_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpEchoSequenceNumber_Choice{} +func (x *PatternFlowIpv6TrafficClass_Choice) Reset() { + *x = PatternFlowIpv6TrafficClass_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1378] + mi := &file_otg_proto_msgTypes[1350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) String() string { +func (x *PatternFlowIpv6TrafficClass_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpEchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowIpv6TrafficClass_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpEchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1378] +func (x *PatternFlowIpv6TrafficClass_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120781,34 +122525,34 @@ 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{859, 0} +// Deprecated: Use PatternFlowIpv6TrafficClass_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6TrafficClass_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{647, 0} } -type PatternFlowIcmpCommonChecksum_Choice struct { +type PatternFlowIpv6FlowLabel_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpCommonChecksum_Choice{} +func (x *PatternFlowIpv6FlowLabel_Choice) Reset() { + *x = PatternFlowIpv6FlowLabel_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1379] + mi := &file_otg_proto_msgTypes[1351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Choice) String() string { +func (x *PatternFlowIpv6FlowLabel_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowIpv6FlowLabel_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1379] +func (x *PatternFlowIpv6FlowLabel_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120819,34 +122563,34 @@ 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{860, 0} +// Deprecated: Use PatternFlowIpv6FlowLabel_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6FlowLabel_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{651, 0} } -type PatternFlowIcmpCommonChecksum_Generated struct { +type PatternFlowIpv6PayloadLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpCommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpCommonChecksum_Generated{} +func (x *PatternFlowIpv6PayloadLength_Choice) Reset() { + *x = PatternFlowIpv6PayloadLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1380] + mi := &file_otg_proto_msgTypes[1352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpCommonChecksum_Generated) String() string { +func (x *PatternFlowIpv6PayloadLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpCommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowIpv6PayloadLength_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpCommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1380] +func (x *PatternFlowIpv6PayloadLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120857,34 +122601,34 @@ 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{860, 1} +// Deprecated: Use PatternFlowIpv6PayloadLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6PayloadLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{654, 0} } -type PatternFlowIcmpNextFieldsIdentifier_Choice struct { +type PatternFlowIpv6NextHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsIdentifier_Choice{} +func (x *PatternFlowIpv6NextHeader_Choice) Reset() { + *x = PatternFlowIpv6NextHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1381] + mi := &file_otg_proto_msgTypes[1353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) String() string { +func (x *PatternFlowIpv6NextHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowIpv6NextHeader_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1381] +func (x *PatternFlowIpv6NextHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120895,34 +122639,34 @@ 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{863, 0} +// Deprecated: Use PatternFlowIpv6NextHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6NextHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{657, 0} } -type PatternFlowIcmpNextFieldsSequenceNumber_Choice struct { +type PatternFlowIpv6HopLimit_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpNextFieldsSequenceNumber_Choice{} +func (x *PatternFlowIpv6HopLimit_Choice) Reset() { + *x = PatternFlowIpv6HopLimit_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1382] + mi := &file_otg_proto_msgTypes[1354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) String() string { +func (x *PatternFlowIpv6HopLimit_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowIpv6HopLimit_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpNextFieldsSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1382] +func (x *PatternFlowIpv6HopLimit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120933,34 +122677,34 @@ 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{866, 0} +// Deprecated: Use PatternFlowIpv6HopLimit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6HopLimit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{660, 0} } -type PatternFlowIcmpv6EchoType_Choice struct { +type PatternFlowIpv6Src_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoType_Choice) Reset() { - *x = PatternFlowIcmpv6EchoType_Choice{} +func (x *PatternFlowIpv6Src_Choice) Reset() { + *x = PatternFlowIpv6Src_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1383] + mi := &file_otg_proto_msgTypes[1355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoType_Choice) String() string { +func (x *PatternFlowIpv6Src_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoType_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Src_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1383] +func (x *PatternFlowIpv6Src_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -120971,34 +122715,34 @@ 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{869, 0} +// Deprecated: Use PatternFlowIpv6Src_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Src_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{663, 0} } -type PatternFlowIcmpv6EchoCode_Choice struct { +type PatternFlowIpv6Dst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoCode_Choice) Reset() { - *x = PatternFlowIcmpv6EchoCode_Choice{} +func (x *PatternFlowIpv6Dst_Choice) Reset() { + *x = PatternFlowIpv6Dst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1384] + mi := &file_otg_proto_msgTypes[1356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoCode_Choice) String() string { +func (x *PatternFlowIpv6Dst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoCode_Choice) ProtoMessage() {} +func (*PatternFlowIpv6Dst_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoCode_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1384] +func (x *PatternFlowIpv6Dst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121009,34 +122753,34 @@ 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{872, 0} +// Deprecated: Use PatternFlowIpv6Dst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowIpv6Dst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{666, 0} } -type PatternFlowIcmpv6EchoIdentifier_Choice struct { +type PatternFlowPfcPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) Reset() { - *x = PatternFlowIcmpv6EchoIdentifier_Choice{} +func (x *PatternFlowPfcPauseDst_Choice) Reset() { + *x = PatternFlowPfcPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1385] + mi := &file_otg_proto_msgTypes[1357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) String() string { +func (x *PatternFlowPfcPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoIdentifier_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoIdentifier_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1385] +func (x *PatternFlowPfcPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121047,34 +122791,34 @@ 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{875, 0} +// Deprecated: Use PatternFlowPfcPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{669, 0} } -type PatternFlowIcmpv6EchoSequenceNumber_Choice struct { +type PatternFlowPfcPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) Reset() { - *x = PatternFlowIcmpv6EchoSequenceNumber_Choice{} +func (x *PatternFlowPfcPauseSrc_Choice) Reset() { + *x = PatternFlowPfcPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1386] + mi := &file_otg_proto_msgTypes[1358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) String() string { +func (x *PatternFlowPfcPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoSequenceNumber_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1386] +func (x *PatternFlowPfcPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121085,34 +122829,34 @@ 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{878, 0} +// Deprecated: Use PatternFlowPfcPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{672, 0} } -type PatternFlowIcmpv6EchoChecksum_Choice struct { +type PatternFlowPfcPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Choice{} +func (x *PatternFlowPfcPauseEtherType_Choice) Reset() { + *x = PatternFlowPfcPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1387] + mi := &file_otg_proto_msgTypes[1359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Choice) String() string { +func (x *PatternFlowPfcPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1387] +func (x *PatternFlowPfcPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121123,34 +122867,34 @@ 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{879, 0} +// Deprecated: Use PatternFlowPfcPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{675, 0} } -type PatternFlowIcmpv6EchoChecksum_Generated struct { +type PatternFlowPfcPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6EchoChecksum_Generated{} +func (x *PatternFlowPfcPauseControlOpCode_Choice) Reset() { + *x = PatternFlowPfcPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1388] + mi := &file_otg_proto_msgTypes[1360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6EchoChecksum_Generated) String() string { +func (x *PatternFlowPfcPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6EchoChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6EchoChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1388] +func (x *PatternFlowPfcPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121161,34 +122905,34 @@ 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{879, 1} +// Deprecated: Use PatternFlowPfcPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{678, 0} } -type PatternFlowIcmpv6CommonChecksum_Choice struct { +type PatternFlowPfcPauseClassEnableVector_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Choice{} +func (x *PatternFlowPfcPauseClassEnableVector_Choice) Reset() { + *x = PatternFlowPfcPauseClassEnableVector_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1389] + mi := &file_otg_proto_msgTypes[1361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Choice) String() string { +func (x *PatternFlowPfcPauseClassEnableVector_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPauseClassEnableVector_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1389] +func (x *PatternFlowPfcPauseClassEnableVector_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121199,34 +122943,34 @@ 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{880, 0} +// Deprecated: Use PatternFlowPfcPauseClassEnableVector_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPauseClassEnableVector_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{681, 0} } -type PatternFlowIcmpv6CommonChecksum_Generated struct { +type PatternFlowPfcPausePauseClass0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) Reset() { - *x = PatternFlowIcmpv6CommonChecksum_Generated{} +func (x *PatternFlowPfcPausePauseClass0_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1390] + mi := &file_otg_proto_msgTypes[1362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIcmpv6CommonChecksum_Generated) String() string { +func (x *PatternFlowPfcPausePauseClass0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIcmpv6CommonChecksum_Generated) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass0_Choice) ProtoMessage() {} -func (x *PatternFlowIcmpv6CommonChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1390] +func (x *PatternFlowPfcPausePauseClass0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121237,34 +122981,34 @@ 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{880, 1} +// Deprecated: Use PatternFlowPfcPausePauseClass0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{684, 0} } -type PatternFlowPppAddress_Choice struct { +type PatternFlowPfcPausePauseClass1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppAddress_Choice) Reset() { - *x = PatternFlowPppAddress_Choice{} +func (x *PatternFlowPfcPausePauseClass1_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1391] + mi := &file_otg_proto_msgTypes[1363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppAddress_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppAddress_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass1_Choice) ProtoMessage() {} -func (x *PatternFlowPppAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1391] +func (x *PatternFlowPfcPausePauseClass1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121275,34 +123019,34 @@ 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{883, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{687, 0} } -type PatternFlowPppControl_Choice struct { +type PatternFlowPfcPausePauseClass2_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppControl_Choice) Reset() { - *x = PatternFlowPppControl_Choice{} +func (x *PatternFlowPfcPausePauseClass2_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass2_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1392] + mi := &file_otg_proto_msgTypes[1364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppControl_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass2_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppControl_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass2_Choice) ProtoMessage() {} -func (x *PatternFlowPppControl_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1392] +func (x *PatternFlowPfcPausePauseClass2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121313,34 +123057,34 @@ 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{886, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{690, 0} } -type PatternFlowPppProtocolType_Choice struct { +type PatternFlowPfcPausePauseClass3_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowPppProtocolType_Choice) Reset() { - *x = PatternFlowPppProtocolType_Choice{} +func (x *PatternFlowPfcPausePauseClass3_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass3_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1393] + mi := &file_otg_proto_msgTypes[1365] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowPppProtocolType_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass3_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowPppProtocolType_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass3_Choice) ProtoMessage() {} -func (x *PatternFlowPppProtocolType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1393] +func (x *PatternFlowPfcPausePauseClass3_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1365] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121351,34 +123095,34 @@ 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{889, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass3_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass3_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{693, 0} } -type PatternFlowIgmpv1Version_Choice struct { +type PatternFlowPfcPausePauseClass4_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Version_Choice) Reset() { - *x = PatternFlowIgmpv1Version_Choice{} +func (x *PatternFlowPfcPausePauseClass4_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass4_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1394] + mi := &file_otg_proto_msgTypes[1366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Version_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass4_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Version_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass4_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Version_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1394] +func (x *PatternFlowPfcPausePauseClass4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121389,34 +123133,34 @@ 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{892, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass4_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{696, 0} } -type PatternFlowIgmpv1Type_Choice struct { +type PatternFlowPfcPausePauseClass5_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Type_Choice) Reset() { - *x = PatternFlowIgmpv1Type_Choice{} +func (x *PatternFlowPfcPausePauseClass5_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass5_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1395] + mi := &file_otg_proto_msgTypes[1367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Type_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass5_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Type_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass5_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Type_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1395] +func (x *PatternFlowPfcPausePauseClass5_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121427,34 +123171,34 @@ 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{895, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass5_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass5_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{699, 0} } -type PatternFlowIgmpv1Unused_Choice struct { +type PatternFlowPfcPausePauseClass6_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Unused_Choice) Reset() { - *x = PatternFlowIgmpv1Unused_Choice{} +func (x *PatternFlowPfcPausePauseClass6_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass6_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1396] + mi := &file_otg_proto_msgTypes[1368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Unused_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass6_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Unused_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass6_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Unused_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1396] +func (x *PatternFlowPfcPausePauseClass6_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121465,34 +123209,34 @@ 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{898, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass6_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass6_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{702, 0} } -type PatternFlowIgmpv1Checksum_Choice struct { +type PatternFlowPfcPausePauseClass7_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Choice) Reset() { - *x = PatternFlowIgmpv1Checksum_Choice{} +func (x *PatternFlowPfcPausePauseClass7_Choice) Reset() { + *x = PatternFlowPfcPausePauseClass7_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1397] + mi := &file_otg_proto_msgTypes[1369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum_Choice) String() string { +func (x *PatternFlowPfcPausePauseClass7_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Choice) ProtoMessage() {} +func (*PatternFlowPfcPausePauseClass7_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1397] +func (x *PatternFlowPfcPausePauseClass7_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121503,34 +123247,34 @@ 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{899, 0} +// Deprecated: Use PatternFlowPfcPausePauseClass7_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowPfcPausePauseClass7_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{705, 0} } -type PatternFlowIgmpv1Checksum_Generated struct { +type PatternFlowEthernetPauseDst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1Checksum_Generated) Reset() { - *x = PatternFlowIgmpv1Checksum_Generated{} +func (x *PatternFlowEthernetPauseDst_Choice) Reset() { + *x = PatternFlowEthernetPauseDst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1398] + mi := &file_otg_proto_msgTypes[1370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1Checksum_Generated) String() string { +func (x *PatternFlowEthernetPauseDst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1Checksum_Generated) ProtoMessage() {} +func (*PatternFlowEthernetPauseDst_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1Checksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1398] +func (x *PatternFlowEthernetPauseDst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121541,34 +123285,34 @@ 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{899, 1} +// Deprecated: Use PatternFlowEthernetPauseDst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseDst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{708, 0} } -type PatternFlowIgmpv1GroupAddress_Choice struct { +type PatternFlowEthernetPauseSrc_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowIgmpv1GroupAddress_Choice) Reset() { - *x = PatternFlowIgmpv1GroupAddress_Choice{} +func (x *PatternFlowEthernetPauseSrc_Choice) Reset() { + *x = PatternFlowEthernetPauseSrc_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1399] + mi := &file_otg_proto_msgTypes[1371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowIgmpv1GroupAddress_Choice) String() string { +func (x *PatternFlowEthernetPauseSrc_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowIgmpv1GroupAddress_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseSrc_Choice) ProtoMessage() {} -func (x *PatternFlowIgmpv1GroupAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1399] +func (x *PatternFlowEthernetPauseSrc_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121579,34 +123323,34 @@ 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{902, 0} +// Deprecated: Use PatternFlowEthernetPauseSrc_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseSrc_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{711, 0} } -type PatternFlowMplsLabel_Choice struct { +type PatternFlowEthernetPauseEtherType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsLabel_Choice) Reset() { - *x = PatternFlowMplsLabel_Choice{} +func (x *PatternFlowEthernetPauseEtherType_Choice) Reset() { + *x = PatternFlowEthernetPauseEtherType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1400] + mi := &file_otg_proto_msgTypes[1372] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsLabel_Choice) String() string { +func (x *PatternFlowEthernetPauseEtherType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsLabel_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseEtherType_Choice) ProtoMessage() {} -func (x *PatternFlowMplsLabel_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1400] +func (x *PatternFlowEthernetPauseEtherType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1372] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121617,34 +123361,34 @@ 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{905, 0} +// Deprecated: Use PatternFlowEthernetPauseEtherType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseEtherType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{714, 0} } -type PatternFlowMplsTrafficClass_Choice struct { +type PatternFlowEthernetPauseControlOpCode_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTrafficClass_Choice) Reset() { - *x = PatternFlowMplsTrafficClass_Choice{} +func (x *PatternFlowEthernetPauseControlOpCode_Choice) Reset() { + *x = PatternFlowEthernetPauseControlOpCode_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1401] + mi := &file_otg_proto_msgTypes[1373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTrafficClass_Choice) String() string { +func (x *PatternFlowEthernetPauseControlOpCode_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTrafficClass_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseControlOpCode_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTrafficClass_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1401] +func (x *PatternFlowEthernetPauseControlOpCode_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121655,34 +123399,34 @@ 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{908, 0} +// Deprecated: Use PatternFlowEthernetPauseControlOpCode_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseControlOpCode_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{717, 0} } -type PatternFlowMplsBottomOfStack_Choice struct { +type PatternFlowEthernetPauseTime_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsBottomOfStack_Choice) Reset() { - *x = PatternFlowMplsBottomOfStack_Choice{} +func (x *PatternFlowEthernetPauseTime_Choice) Reset() { + *x = PatternFlowEthernetPauseTime_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1402] + mi := &file_otg_proto_msgTypes[1374] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsBottomOfStack_Choice) String() string { +func (x *PatternFlowEthernetPauseTime_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsBottomOfStack_Choice) ProtoMessage() {} +func (*PatternFlowEthernetPauseTime_Choice) ProtoMessage() {} -func (x *PatternFlowMplsBottomOfStack_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1402] +func (x *PatternFlowEthernetPauseTime_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1374] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121693,34 +123437,34 @@ 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{911, 0} +// Deprecated: Use PatternFlowEthernetPauseTime_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowEthernetPauseTime_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{720, 0} } -type PatternFlowMplsTimeToLive_Choice struct { +type PatternFlowTcpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowMplsTimeToLive_Choice) Reset() { - *x = PatternFlowMplsTimeToLive_Choice{} +func (x *PatternFlowTcpSrcPort_Choice) Reset() { + *x = PatternFlowTcpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1403] + mi := &file_otg_proto_msgTypes[1375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowMplsTimeToLive_Choice) String() string { +func (x *PatternFlowTcpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowMplsTimeToLive_Choice) ProtoMessage() {} +func (*PatternFlowTcpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowMplsTimeToLive_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1403] +func (x *PatternFlowTcpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121731,34 +123475,34 @@ 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{914, 0} +// Deprecated: Use PatternFlowTcpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{724, 0} } -type PatternFlowSnmpv2CVersion_Choice struct { +type PatternFlowTcpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVersion_Choice) Reset() { - *x = PatternFlowSnmpv2CVersion_Choice{} +func (x *PatternFlowTcpDstPort_Choice) Reset() { + *x = PatternFlowTcpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1404] + mi := &file_otg_proto_msgTypes[1376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVersion_Choice) String() string { +func (x *PatternFlowTcpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVersion_Choice) ProtoMessage() {} +func (*PatternFlowTcpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVersion_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1404] +func (x *PatternFlowTcpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121769,34 +123513,34 @@ func (x *PatternFlowSnmpv2CVersion_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVersion_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVersion_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{916, 0} +// Deprecated: Use PatternFlowTcpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{728, 0} } -type PatternFlowSnmpv2CPDURequestId_Choice struct { +type PatternFlowTcpSeqNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CPDURequestId_Choice) Reset() { - *x = PatternFlowSnmpv2CPDURequestId_Choice{} +func (x *PatternFlowTcpSeqNum_Choice) Reset() { + *x = PatternFlowTcpSeqNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1405] + mi := &file_otg_proto_msgTypes[1377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CPDURequestId_Choice) String() string { +func (x *PatternFlowTcpSeqNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CPDURequestId_Choice) ProtoMessage() {} +func (*PatternFlowTcpSeqNum_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CPDURequestId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1405] +func (x *PatternFlowTcpSeqNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121807,34 +123551,34 @@ func (x *PatternFlowSnmpv2CPDURequestId_Choice) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CPDURequestId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDURequestId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{918, 0} +// Deprecated: Use PatternFlowTcpSeqNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpSeqNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{731, 0} } -type PatternFlowSnmpv2CPDUErrorIndex_Choice struct { +type PatternFlowTcpAckNum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) Reset() { - *x = PatternFlowSnmpv2CPDUErrorIndex_Choice{} +func (x *PatternFlowTcpAckNum_Choice) Reset() { + *x = PatternFlowTcpAckNum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1406] + mi := &file_otg_proto_msgTypes[1378] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) String() string { +func (x *PatternFlowTcpAckNum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CPDUErrorIndex_Choice) ProtoMessage() {} +func (*PatternFlowTcpAckNum_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1406] +func (x *PatternFlowTcpAckNum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1378] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121845,34 +123589,34 @@ func (x *PatternFlowSnmpv2CPDUErrorIndex_Choice) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CPDUErrorIndex_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CPDUErrorIndex_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{920, 0} +// Deprecated: Use PatternFlowTcpAckNum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpAckNum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{734, 0} } -type PatternFlowSnmpv2CBulkPDURequestId_Choice struct { +type PatternFlowTcpDataOffset_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) Reset() { - *x = PatternFlowSnmpv2CBulkPDURequestId_Choice{} +func (x *PatternFlowTcpDataOffset_Choice) Reset() { + *x = PatternFlowTcpDataOffset_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1407] + mi := &file_otg_proto_msgTypes[1379] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) String() string { +func (x *PatternFlowTcpDataOffset_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDURequestId_Choice) ProtoMessage() {} +func (*PatternFlowTcpDataOffset_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1407] +func (x *PatternFlowTcpDataOffset_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1379] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121883,34 +123627,34 @@ func (x *PatternFlowSnmpv2CBulkPDURequestId_Choice) ProtoReflect() protoreflect. return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDURequestId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDURequestId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{922, 0} +// Deprecated: Use PatternFlowTcpDataOffset_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpDataOffset_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{737, 0} } -type PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice struct { +type PatternFlowTcpEcnNs_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) Reset() { - *x = PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice{} +func (x *PatternFlowTcpEcnNs_Choice) Reset() { + *x = PatternFlowTcpEcnNs_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1408] + mi := &file_otg_proto_msgTypes[1380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) String() string { +func (x *PatternFlowTcpEcnNs_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnNs_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1408] +func (x *PatternFlowTcpEcnNs_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121921,34 +123665,34 @@ func (x *PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) ProtoReflect() protorefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{923, 0} +// Deprecated: Use PatternFlowTcpEcnNs_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnNs_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{740, 0} } -type PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice struct { +type PatternFlowTcpEcnCwr_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) Reset() { - *x = PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice{} +func (x *PatternFlowTcpEcnCwr_Choice) Reset() { + *x = PatternFlowTcpEcnCwr_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1409] + mi := &file_otg_proto_msgTypes[1381] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) String() string { +func (x *PatternFlowTcpEcnCwr_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnCwr_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1409] +func (x *PatternFlowTcpEcnCwr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1381] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121959,34 +123703,34 @@ func (x *PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{925, 0} +// Deprecated: Use PatternFlowTcpEcnCwr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnCwr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{743, 0} } -type PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice struct { +type PatternFlowTcpEcnEcho_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice{} +func (x *PatternFlowTcpEcnEcho_Choice) Reset() { + *x = PatternFlowTcpEcnEcho_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1410] + mi := &file_otg_proto_msgTypes[1382] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) String() string { +func (x *PatternFlowTcpEcnEcho_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpEcnEcho_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1410] +func (x *PatternFlowTcpEcnEcho_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1382] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -121997,34 +123741,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{927, 0} +// Deprecated: Use PatternFlowTcpEcnEcho_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpEcnEcho_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{746, 0} } -type PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice struct { +type PatternFlowTcpCtlUrg_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice{} +func (x *PatternFlowTcpCtlUrg_Choice) Reset() { + *x = PatternFlowTcpCtlUrg_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1411] + mi := &file_otg_proto_msgTypes[1383] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) String() string { +func (x *PatternFlowTcpCtlUrg_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlUrg_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1411] +func (x *PatternFlowTcpCtlUrg_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1383] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122035,34 +123779,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{929, 0} +// Deprecated: Use PatternFlowTcpCtlUrg_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlUrg_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{749, 0} } -type PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice struct { +type PatternFlowTcpCtlAck_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice{} +func (x *PatternFlowTcpCtlAck_Choice) Reset() { + *x = PatternFlowTcpCtlAck_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1412] + mi := &file_otg_proto_msgTypes[1384] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) String() string { +func (x *PatternFlowTcpCtlAck_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlAck_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1412] +func (x *PatternFlowTcpCtlAck_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1384] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122073,34 +123817,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{931, 0} +// Deprecated: Use PatternFlowTcpCtlAck_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlAck_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{752, 0} } -type PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice struct { +type PatternFlowTcpCtlPsh_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice{} +func (x *PatternFlowTcpCtlPsh_Choice) Reset() { + *x = PatternFlowTcpCtlPsh_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1413] + mi := &file_otg_proto_msgTypes[1385] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) String() string { +func (x *PatternFlowTcpCtlPsh_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlPsh_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1413] +func (x *PatternFlowTcpCtlPsh_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1385] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122111,34 +123855,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{933, 0} +// Deprecated: Use PatternFlowTcpCtlPsh_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlPsh_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{755, 0} } -type PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice struct { +type PatternFlowTcpCtlRst_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice{} +func (x *PatternFlowTcpCtlRst_Choice) Reset() { + *x = PatternFlowTcpCtlRst_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1414] + mi := &file_otg_proto_msgTypes[1386] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) String() string { +func (x *PatternFlowTcpCtlRst_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlRst_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1414] +func (x *PatternFlowTcpCtlRst_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1386] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122149,34 +123893,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{935, 0} +// Deprecated: Use PatternFlowTcpCtlRst_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlRst_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{758, 0} } -type PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice struct { +type PatternFlowTcpCtlSyn_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) Reset() { - *x = PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice{} +func (x *PatternFlowTcpCtlSyn_Choice) Reset() { + *x = PatternFlowTcpCtlSyn_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1415] + mi := &file_otg_proto_msgTypes[1387] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) String() string { +func (x *PatternFlowTcpCtlSyn_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlSyn_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1415] +func (x *PatternFlowTcpCtlSyn_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1387] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122187,34 +123931,34 @@ func (x *PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{937, 0} +// Deprecated: Use PatternFlowTcpCtlSyn_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlSyn_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{761, 0} } -type PatternFlowSnmpv2CCommonRequestId_Choice struct { +type PatternFlowTcpCtlFin_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowSnmpv2CCommonRequestId_Choice) Reset() { - *x = PatternFlowSnmpv2CCommonRequestId_Choice{} +func (x *PatternFlowTcpCtlFin_Choice) Reset() { + *x = PatternFlowTcpCtlFin_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1416] + mi := &file_otg_proto_msgTypes[1388] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowSnmpv2CCommonRequestId_Choice) String() string { +func (x *PatternFlowTcpCtlFin_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowSnmpv2CCommonRequestId_Choice) ProtoMessage() {} +func (*PatternFlowTcpCtlFin_Choice) ProtoMessage() {} -func (x *PatternFlowSnmpv2CCommonRequestId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1416] +func (x *PatternFlowTcpCtlFin_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1388] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122225,34 +123969,34 @@ func (x *PatternFlowSnmpv2CCommonRequestId_Choice) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use PatternFlowSnmpv2CCommonRequestId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowSnmpv2CCommonRequestId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{939, 0} +// Deprecated: Use PatternFlowTcpCtlFin_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpCtlFin_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{764, 0} } -type PatternFlowRsvpRsvpChecksum_Choice struct { +type PatternFlowTcpWindow_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRsvpRsvpChecksum_Choice) Reset() { - *x = PatternFlowRsvpRsvpChecksum_Choice{} +func (x *PatternFlowTcpWindow_Choice) Reset() { + *x = PatternFlowTcpWindow_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1417] + mi := &file_otg_proto_msgTypes[1389] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpRsvpChecksum_Choice) String() string { +func (x *PatternFlowTcpWindow_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpRsvpChecksum_Choice) ProtoMessage() {} +func (*PatternFlowTcpWindow_Choice) ProtoMessage() {} -func (x *PatternFlowRsvpRsvpChecksum_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1417] +func (x *PatternFlowTcpWindow_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1389] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122263,34 +124007,34 @@ func (x *PatternFlowRsvpRsvpChecksum_Choice) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpRsvpChecksum_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpRsvpChecksum_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{940, 0} +// Deprecated: Use PatternFlowTcpWindow_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpWindow_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{767, 0} } -type PatternFlowRsvpRsvpChecksum_Generated struct { +type PatternFlowTcpChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRsvpRsvpChecksum_Generated) Reset() { - *x = PatternFlowRsvpRsvpChecksum_Generated{} +func (x *PatternFlowTcpChecksum_Choice) Reset() { + *x = PatternFlowTcpChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1418] + mi := &file_otg_proto_msgTypes[1390] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpRsvpChecksum_Generated) String() string { +func (x *PatternFlowTcpChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpRsvpChecksum_Generated) ProtoMessage() {} +func (*PatternFlowTcpChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowRsvpRsvpChecksum_Generated) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1418] +func (x *PatternFlowTcpChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1390] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122301,34 +124045,34 @@ func (x *PatternFlowRsvpRsvpChecksum_Generated) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpRsvpChecksum_Generated.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpRsvpChecksum_Generated) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{940, 1} +// Deprecated: Use PatternFlowTcpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{768, 0} } -type PatternFlowRsvpTimeToLive_Choice struct { +type PatternFlowTcpChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRsvpTimeToLive_Choice) Reset() { - *x = PatternFlowRsvpTimeToLive_Choice{} +func (x *PatternFlowTcpChecksum_Generated) Reset() { + *x = PatternFlowTcpChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1419] + mi := &file_otg_proto_msgTypes[1391] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpTimeToLive_Choice) String() string { +func (x *PatternFlowTcpChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpTimeToLive_Choice) ProtoMessage() {} +func (*PatternFlowTcpChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowRsvpTimeToLive_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1419] +func (x *PatternFlowTcpChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1391] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122339,34 +124083,34 @@ func (x *PatternFlowRsvpTimeToLive_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpTimeToLive_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpTimeToLive_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{942, 0} +// Deprecated: Use PatternFlowTcpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowTcpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{768, 1} } -type PatternFlowRsvpReserved_Choice struct { +type PatternFlowUdpSrcPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRsvpReserved_Choice) Reset() { - *x = PatternFlowRsvpReserved_Choice{} +func (x *PatternFlowUdpSrcPort_Choice) Reset() { + *x = PatternFlowUdpSrcPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1420] + mi := &file_otg_proto_msgTypes[1392] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRsvpReserved_Choice) String() string { +func (x *PatternFlowUdpSrcPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRsvpReserved_Choice) ProtoMessage() {} +func (*PatternFlowUdpSrcPort_Choice) ProtoMessage() {} -func (x *PatternFlowRsvpReserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1420] +func (x *PatternFlowUdpSrcPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1392] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122377,34 +124121,34 @@ func (x *PatternFlowRsvpReserved_Choice) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRsvpReserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRsvpReserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{944, 0} +// Deprecated: Use PatternFlowUdpSrcPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpSrcPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{772, 0} } -type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice struct { +type PatternFlowUdpDstPort_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice{} +func (x *PatternFlowUdpDstPort_Choice) Reset() { + *x = PatternFlowUdpDstPort_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1421] + mi := &file_otg_proto_msgTypes[1393] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) String() string { +func (x *PatternFlowUdpDstPort_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) ProtoMessage() {} +func (*PatternFlowUdpDstPort_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1421] +func (x *PatternFlowUdpDstPort_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1393] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122415,34 +124159,34 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{946, 0} +// Deprecated: Use PatternFlowUdpDstPort_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpDstPort_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{776, 0} } -type PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice struct { +type PatternFlowUdpLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice{} +func (x *PatternFlowUdpLength_Choice) Reset() { + *x = PatternFlowUdpLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1422] + mi := &file_otg_proto_msgTypes[1394] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) String() string { +func (x *PatternFlowUdpLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) ProtoMessage() {} +func (*PatternFlowUdpLength_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1422] +func (x *PatternFlowUdpLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1394] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122453,34 +124197,34 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{948, 0} +// Deprecated: Use PatternFlowUdpLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{779, 0} } -type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice struct { +type PatternFlowUdpChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) Reset() { - *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice{} +func (x *PatternFlowUdpChecksum_Choice) Reset() { + *x = PatternFlowUdpChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1423] + mi := &file_otg_proto_msgTypes[1395] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) String() string { +func (x *PatternFlowUdpChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1423] +func (x *PatternFlowUdpChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1395] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122491,34 +124235,34 @@ func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{950, 0} +// Deprecated: Use PatternFlowUdpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780, 0} } -type PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice struct { +type PatternFlowUdpChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice{} +func (x *PatternFlowUdpChecksum_Generated) Reset() { + *x = PatternFlowUdpChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1424] + mi := &file_otg_proto_msgTypes[1396] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) String() string { +func (x *PatternFlowUdpChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) ProtoMessage() {} +func (*PatternFlowUdpChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1424] +func (x *PatternFlowUdpChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1396] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122529,34 +124273,34 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{952, 0} +// Deprecated: Use PatternFlowUdpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowUdpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{780, 1} } -type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice struct { +type PatternFlowGreChecksumPresent_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) Reset() { - *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice{} +func (x *PatternFlowGreChecksumPresent_Choice) Reset() { + *x = PatternFlowGreChecksumPresent_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1425] + mi := &file_otg_proto_msgTypes[1397] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) String() string { +func (x *PatternFlowGreChecksumPresent_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksumPresent_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1425] +func (x *PatternFlowGreChecksumPresent_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1397] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122567,34 +124311,34 @@ func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{954, 0} +// Deprecated: Use PatternFlowGreChecksumPresent_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksumPresent_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{783, 0} } -type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice struct { +type PatternFlowGreReserved0_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice{} +func (x *PatternFlowGreReserved0_Choice) Reset() { + *x = PatternFlowGreReserved0_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1426] + mi := &file_otg_proto_msgTypes[1398] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) String() string { +func (x *PatternFlowGreReserved0_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved0_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1426] +func (x *PatternFlowGreReserved0_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1398] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122605,34 +124349,34 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{956, 0} +// Deprecated: Use PatternFlowGreReserved0_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved0_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{786, 0} } -type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice struct { +type PatternFlowGreVersion_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) Reset() { - *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice{} +func (x *PatternFlowGreVersion_Choice) Reset() { + *x = PatternFlowGreVersion_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1427] + mi := &file_otg_proto_msgTypes[1399] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) String() string { +func (x *PatternFlowGreVersion_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) ProtoMessage() {} +func (*PatternFlowGreVersion_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1427] +func (x *PatternFlowGreVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1399] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122643,34 +124387,34 @@ func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) ProtoRefle return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{958, 0} +// Deprecated: Use PatternFlowGreVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{789, 0} } -type PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice struct { +type PatternFlowGreProtocol_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) Reset() { - *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice{} +func (x *PatternFlowGreProtocol_Choice) Reset() { + *x = PatternFlowGreProtocol_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1428] + mi := &file_otg_proto_msgTypes[1400] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) String() string { +func (x *PatternFlowGreProtocol_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) ProtoMessage() {} +func (*PatternFlowGreProtocol_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1428] +func (x *PatternFlowGreProtocol_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1400] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122681,34 +124425,34 @@ func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) ProtoReflect() return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{960, 0} +// Deprecated: Use PatternFlowGreProtocol_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreProtocol_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{792, 0} } -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice struct { +type PatternFlowGreChecksum_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice{} +func (x *PatternFlowGreChecksum_Choice) Reset() { + *x = PatternFlowGreChecksum_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1429] + mi := &file_otg_proto_msgTypes[1401] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) String() string { +func (x *PatternFlowGreChecksum_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1429] +func (x *PatternFlowGreChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1401] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122719,34 +124463,34 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{962, 0} +// Deprecated: Use PatternFlowGreChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{793, 0} } -type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice struct { +type PatternFlowGreChecksum_Generated struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice{} +func (x *PatternFlowGreChecksum_Generated) Reset() { + *x = PatternFlowGreChecksum_Generated{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1430] + mi := &file_otg_proto_msgTypes[1402] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) String() string { +func (x *PatternFlowGreChecksum_Generated) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) ProtoMessage() {} +func (*PatternFlowGreChecksum_Generated) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1430] +func (x *PatternFlowGreChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1402] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122757,34 +124501,34 @@ func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{964, 0} +// Deprecated: Use PatternFlowGreChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowGreChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{793, 1} } -type PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice struct { +type PatternFlowGreReserved1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) Reset() { - *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice{} +func (x *PatternFlowGreReserved1_Choice) Reset() { + *x = PatternFlowGreReserved1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1431] + mi := &file_otg_proto_msgTypes[1403] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) String() string { +func (x *PatternFlowGreReserved1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) ProtoMessage() {} +func (*PatternFlowGreReserved1_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1431] +func (x *PatternFlowGreReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1403] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122795,34 +124539,34 @@ func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) ProtoReflect( return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{966, 0} +// Deprecated: Use PatternFlowGreReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGreReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{796, 0} } -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice struct { +type PatternFlowGtpv1Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice{} +func (x *PatternFlowGtpv1Version_Choice) Reset() { + *x = PatternFlowGtpv1Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1432] + mi := &file_otg_proto_msgTypes[1404] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) String() string { +func (x *PatternFlowGtpv1Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Version_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1432] +func (x *PatternFlowGtpv1Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1404] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122833,34 +124577,34 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) ProtoR return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{968, 0} +// Deprecated: Use PatternFlowGtpv1Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{799, 0} } -type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice struct { +type PatternFlowGtpv1ProtocolType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) Reset() { - *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice{} +func (x *PatternFlowGtpv1ProtocolType_Choice) Reset() { + *x = PatternFlowGtpv1ProtocolType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1433] + mi := &file_otg_proto_msgTypes[1405] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) String() string { +func (x *PatternFlowGtpv1ProtocolType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1ProtocolType_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1433] +func (x *PatternFlowGtpv1ProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1405] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122871,34 +124615,34 @@ func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{970, 0} +// Deprecated: Use PatternFlowGtpv1ProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1ProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{802, 0} } -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice struct { +type PatternFlowGtpv1Reserved_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice{} +func (x *PatternFlowGtpv1Reserved_Choice) Reset() { + *x = PatternFlowGtpv1Reserved_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1434] + mi := &file_otg_proto_msgTypes[1406] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) String() string { +func (x *PatternFlowGtpv1Reserved_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Reserved_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1434] +func (x *PatternFlowGtpv1Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1406] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122909,34 +124653,34 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_C return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{972, 0} +// Deprecated: Use PatternFlowGtpv1Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{805, 0} } -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice struct { +type PatternFlowGtpv1EFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice{} +func (x *PatternFlowGtpv1EFlag_Choice) Reset() { + *x = PatternFlowGtpv1EFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1435] + mi := &file_otg_proto_msgTypes[1407] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) String() string { +func (x *PatternFlowGtpv1EFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1EFlag_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1435] +func (x *PatternFlowGtpv1EFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1407] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122947,34 +124691,34 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) ProtoRef return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{974, 0} +// Deprecated: Use PatternFlowGtpv1EFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1EFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{808, 0} } -type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice struct { +type PatternFlowGtpv1SFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice{} +func (x *PatternFlowGtpv1SFlag_Choice) Reset() { + *x = PatternFlowGtpv1SFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1436] + mi := &file_otg_proto_msgTypes[1408] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) String() string { +func (x *PatternFlowGtpv1SFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SFlag_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1436] +func (x *PatternFlowGtpv1SFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1408] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122985,34 +124729,34 @@ func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) ProtoReflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{976, 0} +// Deprecated: Use PatternFlowGtpv1SFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{811, 0} } -type PatternFlowRSVPPathSenderTspecIntServVersion_Choice struct { +type PatternFlowGtpv1PnFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServVersion_Choice{} +func (x *PatternFlowGtpv1PnFlag_Choice) Reset() { + *x = PatternFlowGtpv1PnFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1437] + mi := &file_otg_proto_msgTypes[1409] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) String() string { +func (x *PatternFlowGtpv1PnFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1PnFlag_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1437] +func (x *PatternFlowGtpv1PnFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1409] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123023,34 +124767,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServVersion_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{978, 0} +// Deprecated: Use PatternFlowGtpv1PnFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1PnFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{814, 0} } -type PatternFlowRSVPPathSenderTspecIntServReserved1_Choice struct { +type PatternFlowGtpv1MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved1_Choice{} +func (x *PatternFlowGtpv1MessageType_Choice) Reset() { + *x = PatternFlowGtpv1MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1438] + mi := &file_otg_proto_msgTypes[1410] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) String() string { +func (x *PatternFlowGtpv1MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1438] +func (x *PatternFlowGtpv1MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1410] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123061,34 +124805,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved1_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{980, 0} +// Deprecated: Use PatternFlowGtpv1MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{817, 0} } -type PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice struct { +type PatternFlowGtpv1MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice{} +func (x *PatternFlowGtpv1MessageLength_Choice) Reset() { + *x = PatternFlowGtpv1MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1439] + mi := &file_otg_proto_msgTypes[1411] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) String() string { +func (x *PatternFlowGtpv1MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1439] +func (x *PatternFlowGtpv1MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1411] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123099,34 +124843,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{982, 0} +// Deprecated: Use PatternFlowGtpv1MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{820, 0} } -type PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice struct { +type PatternFlowGtpv1Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice{} +func (x *PatternFlowGtpv1Teid_Choice) Reset() { + *x = PatternFlowGtpv1Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1440] + mi := &file_otg_proto_msgTypes[1412] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) String() string { +func (x *PatternFlowGtpv1Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1Teid_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1440] +func (x *PatternFlowGtpv1Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1412] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123137,34 +124881,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) ProtoReflect return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{984, 0} +// Deprecated: Use PatternFlowGtpv1Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{823, 0} } -type PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice struct { +type PatternFlowGtpv1SquenceNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice{} +func (x *PatternFlowGtpv1SquenceNumber_Choice) Reset() { + *x = PatternFlowGtpv1SquenceNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1441] + mi := &file_otg_proto_msgTypes[1413] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) String() string { +func (x *PatternFlowGtpv1SquenceNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1SquenceNumber_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1441] +func (x *PatternFlowGtpv1SquenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1413] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123175,34 +124919,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{986, 0} +// Deprecated: Use PatternFlowGtpv1SquenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1SquenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{826, 0} } -type PatternFlowRSVPPathSenderTspecIntServReserved2_Choice struct { +type PatternFlowGtpv1NPduNumber_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServReserved2_Choice{} +func (x *PatternFlowGtpv1NPduNumber_Choice) Reset() { + *x = PatternFlowGtpv1NPduNumber_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1442] + mi := &file_otg_proto_msgTypes[1414] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) String() string { +func (x *PatternFlowGtpv1NPduNumber_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NPduNumber_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1442] +func (x *PatternFlowGtpv1NPduNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1414] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123213,34 +124957,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServReserved2_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{988, 0} +// Deprecated: Use PatternFlowGtpv1NPduNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NPduNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{829, 0} } -type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice struct { +type PatternFlowGtpv1NextExtensionHeaderType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice{} +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) Reset() { + *x = PatternFlowGtpv1NextExtensionHeaderType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1443] + mi := &file_otg_proto_msgTypes[1415] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) String() string { +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) ProtoMessage() {} +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1443] +func (x *PatternFlowGtpv1NextExtensionHeaderType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1415] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123251,34 +124995,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) ProtoR return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{990, 0} +// Deprecated: Use PatternFlowGtpv1NextExtensionHeaderType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv1NextExtensionHeaderType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{832, 0} } -type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice struct { +type PatternFlowGtpExtensionExtensionLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice{} +func (x *PatternFlowGtpExtensionExtensionLength_Choice) Reset() { + *x = PatternFlowGtpExtensionExtensionLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1444] + mi := &file_otg_proto_msgTypes[1416] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) String() string { +func (x *PatternFlowGtpExtensionExtensionLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionExtensionLength_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1444] +func (x *PatternFlowGtpExtensionExtensionLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1416] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123289,34 +125033,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{992, 0} +// Deprecated: Use PatternFlowGtpExtensionExtensionLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionExtensionLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{835, 0} } -type PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice struct { +type PatternFlowGtpExtensionContents_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice{} +func (x *PatternFlowGtpExtensionContents_Choice) Reset() { + *x = PatternFlowGtpExtensionContents_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1445] + mi := &file_otg_proto_msgTypes[1417] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) String() string { +func (x *PatternFlowGtpExtensionContents_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionContents_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1445] +func (x *PatternFlowGtpExtensionContents_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1417] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123327,34 +125071,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) ProtoRefl return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{994, 0} +// Deprecated: Use PatternFlowGtpExtensionContents_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionContents_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{838, 0} } -type PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice struct { +type PatternFlowGtpExtensionNextExtensionHeader_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice{} +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) Reset() { + *x = PatternFlowGtpExtensionNextExtensionHeader_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1446] + mi := &file_otg_proto_msgTypes[1418] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) String() string { +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) ProtoMessage() {} +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1446] +func (x *PatternFlowGtpExtensionNextExtensionHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1418] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123365,34 +125109,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{996, 0} +// Deprecated: Use PatternFlowGtpExtensionNextExtensionHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpExtensionNextExtensionHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{841, 0} } -type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice struct { +type PatternFlowGtpv2Version_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice{} +func (x *PatternFlowGtpv2Version_Choice) Reset() { + *x = PatternFlowGtpv2Version_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1447] + mi := &file_otg_proto_msgTypes[1419] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) String() string { +func (x *PatternFlowGtpv2Version_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Version_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1447] +func (x *PatternFlowGtpv2Version_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1419] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123403,34 +125147,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) ProtoRe return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{998, 0} +// Deprecated: Use PatternFlowGtpv2Version_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Version_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{844, 0} } -type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice struct { +type PatternFlowGtpv2PiggybackingFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) Reset() { - *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice{} +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) Reset() { + *x = PatternFlowGtpv2PiggybackingFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1448] + mi := &file_otg_proto_msgTypes[1420] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) String() string { +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2PiggybackingFlag_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1448] +func (x *PatternFlowGtpv2PiggybackingFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1420] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123441,34 +125185,34 @@ func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) ProtoRef return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1000, 0} +// Deprecated: Use PatternFlowGtpv2PiggybackingFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2PiggybackingFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{847, 0} } -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice struct { +type PatternFlowGtpv2TeidFlag_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice{} +func (x *PatternFlowGtpv2TeidFlag_Choice) Reset() { + *x = PatternFlowGtpv2TeidFlag_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1449] + mi := &file_otg_proto_msgTypes[1421] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) String() string { +func (x *PatternFlowGtpv2TeidFlag_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2TeidFlag_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1449] +func (x *PatternFlowGtpv2TeidFlag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1421] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123479,34 +125223,34 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) Proto return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1002, 0} +// Deprecated: Use PatternFlowGtpv2TeidFlag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2TeidFlag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{850, 0} } -type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice struct { +type PatternFlowGtpv2Spare1_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice{} +func (x *PatternFlowGtpv2Spare1_Choice) Reset() { + *x = PatternFlowGtpv2Spare1_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1450] + mi := &file_otg_proto_msgTypes[1422] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) String() string { +func (x *PatternFlowGtpv2Spare1_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Spare1_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1450] +func (x *PatternFlowGtpv2Spare1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1422] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123517,34 +125261,34 @@ func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) Prot return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1004, 0} +// Deprecated: Use PatternFlowGtpv2Spare1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{853, 0} } -type PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice struct { +type PatternFlowGtpv2MessageType_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice{} +func (x *PatternFlowGtpv2MessageType_Choice) Reset() { + *x = PatternFlowGtpv2MessageType_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1451] + mi := &file_otg_proto_msgTypes[1423] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) String() string { +func (x *PatternFlowGtpv2MessageType_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageType_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1451] +func (x *PatternFlowGtpv2MessageType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1423] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123555,34 +125299,34 @@ func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1005, 0} +// Deprecated: Use PatternFlowGtpv2MessageType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{856, 0} } -type PatternFlowRSVPPathRecordRouteType1LabelCType_Choice struct { +type PatternFlowGtpv2MessageLength_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) Reset() { - *x = PatternFlowRSVPPathRecordRouteType1LabelCType_Choice{} +func (x *PatternFlowGtpv2MessageLength_Choice) Reset() { + *x = PatternFlowGtpv2MessageLength_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1452] + mi := &file_otg_proto_msgTypes[1424] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) String() string { +func (x *PatternFlowGtpv2MessageLength_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2MessageLength_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1452] +func (x *PatternFlowGtpv2MessageLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1424] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123593,34 +125337,34 @@ func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathRecordRouteType1LabelCType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1006, 0} +// Deprecated: Use PatternFlowGtpv2MessageLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2MessageLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{859, 0} } -type PatternFlowRSVPPathObjectsCustomType_Choice struct { +type PatternFlowGtpv2Teid_Choice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *PatternFlowRSVPPathObjectsCustomType_Choice) Reset() { - *x = PatternFlowRSVPPathObjectsCustomType_Choice{} +func (x *PatternFlowGtpv2Teid_Choice) Reset() { + *x = PatternFlowGtpv2Teid_Choice{} if protoimpl.UnsafeEnabled { - mi := &file_otg_proto_msgTypes[1453] + mi := &file_otg_proto_msgTypes[1425] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PatternFlowRSVPPathObjectsCustomType_Choice) String() string { +func (x *PatternFlowGtpv2Teid_Choice) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PatternFlowRSVPPathObjectsCustomType_Choice) ProtoMessage() {} +func (*PatternFlowGtpv2Teid_Choice) ProtoMessage() {} -func (x *PatternFlowRSVPPathObjectsCustomType_Choice) ProtoReflect() protoreflect.Message { - mi := &file_otg_proto_msgTypes[1453] +func (x *PatternFlowGtpv2Teid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1425] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -123631,3463 +125375,7363 @@ func (x *PatternFlowRSVPPathObjectsCustomType_Choice) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use PatternFlowRSVPPathObjectsCustomType_Choice.ProtoReflect.Descriptor instead. -func (*PatternFlowRSVPPathObjectsCustomType_Choice) Descriptor() ([]byte, []int) { - return file_otg_proto_rawDescGZIP(), []int{1008, 0} +// Deprecated: Use PatternFlowGtpv2Teid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Teid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{862, 0} } -var File_otg_proto protoreflect.FileDescriptor +type PatternFlowGtpv2SequenceNumber_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, 0x86, 0x03, 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, 0x12, 0x44, 0x0a, 0x11, 0x64, 0x68, - 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x10, - 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, - 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, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 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, 0x36, 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, 0x36, 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, 0x36, 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, 0x36, 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, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, - 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x17, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, - 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x47, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x0d, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x65, 0x62, 0x69, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0x97, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, - 0x31, 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, 0x31, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, - 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, - 0x63, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, - 0x75, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x04, 0x52, 0x11, 0x69, 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, - 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x05, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, - 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, - 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x75, 0x74, - 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0c, - 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, - 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0xa9, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x22, 0x9f, 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, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, - 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, - 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x02, - 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, - 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, - 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x10, - 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, - 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x67, 0x62, 0x70, - 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x35, 0x5f, - 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, - 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, - 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, - 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0a, - 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, 0x30, 0x5f, 0x67, 0x62, - 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, - 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x38, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0d, 0x1a, 0x42, 0x0a, 0x05, - 0x4d, 0x65, 0x64, 0x69, 0x61, 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, 0x0a, - 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, - 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, - 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, - 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x89, 0x04, 0x0a, 0x15, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, - 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, - 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, - 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, - 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, - 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, - 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, - 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, - 0x31, 0x30, 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, - 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, - 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, - 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, - 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, - 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0xdd, 0x02, 0x0a, - 0x11, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, - 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, - 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, - 0x31, 0x71, 0x62, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, - 0x62, 0x62, 0x52, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, - 0x34, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, - 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x52, 0x09, 0x69, 0x65, 0x65, 0x65, - 0x38, 0x30, 0x32, 0x33, 0x78, 0x1a, 0x45, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x69, 0x65, 0x65, 0x65, - 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, - 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x11, 0x0a, 0x0f, - 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, - 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, - 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, - 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, - 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, - 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, - 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, - 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, - 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xda, 0x02, - 0x0a, 0x07, 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, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 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, 0x63, 0x61, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x0d, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 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, 0x2a, 0x0a, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x30, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x12, 0x24, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, - 0x70, 0x76, 0x34, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, - 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 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, 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, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, - 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x62, 0x69, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x12, 0x17, 0x0a, - 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, - 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x0f, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x23, - 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, - 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x70, 0x66, - 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x63, 0x66, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x63, 0x66, 0x69, 0x12, 0x21, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x22, 0xd9, 0x05, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, - 0x12, 0x2b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, - 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0b, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, - 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0e, - 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, - 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3a, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0x8c, 0x03, 0x0a, - 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2b, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0d, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x32, 0x0a, - 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x12, 0x2e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xb5, 0x03, 0x0a, 0x06, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, - 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, - 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x73, 0x69, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x04, - 0x69, 0x73, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, - 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x26, 0x0a, 0x05, - 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, - 0x78, 0x6c, 0x61, 0x6e, 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, 0x12, 0x23, 0x0a, - 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x52, 0x04, 0x72, 0x73, - 0x76, 0x70, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0a, - 0x64, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, - 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xc9, 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x05, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, - 0x2d, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x38, - 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, - 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, - 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x69, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, 0x64, - 0x22, 0xb4, 0x07, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 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, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x52, 0x0a, 0x6c, 0x31, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x38, 0x0a, - 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0a, 0x6c, 0x32, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, - 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, - 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, - 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, - 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x6c, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x72, 0x6c, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0b, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 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, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, 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, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, - 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, - 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, - 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0c, 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, - 0x54, 0x12, 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x04, 0x6d, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, - 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0xff, 0x02, 0x0a, 0x0b, - 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, - 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, - 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x73, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, - 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x95, 0x02, - 0x0a, 0x1b, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, - 0x03, 0x70, 0x62, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, - 0x30, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x01, 0x52, 0x03, 0x70, 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, - 0x62, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, - 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x03, 0x70, 0x62, 0x33, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, - 0x03, 0x70, 0x62, 0x35, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x70, 0x62, 0x37, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, - 0x62, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x70, 0x62, 0x31, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x70, 0x62, 0x33, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x70, 0x62, 0x35, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x70, 0x62, 0x37, 0x22, 0x86, 0x02, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, - 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, - 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, - 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, - 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, - 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, - 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, - 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, - 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, - 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, - 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, - 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, - 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, - 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, - 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, - 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, - 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, - 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, - 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, - 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, - 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, - 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, - 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, - 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, - 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, - 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, - 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, - 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, - 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, - 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, - 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x4c, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, - 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, 0x05, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, - 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, - 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, - 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, 0x70, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, - 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0c, 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, - 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, - 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, - 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, 0x4d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, - 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, - 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x49, 0x73, - 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, - 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x52, 0x08, 0x61, 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x12, 0x3c, 0x0a, - 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x52, - 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, - 0x64, 0x35, 0x22, 0xfc, 0x01, 0x0a, 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, - 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, - 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, - 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, - 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x22, 0xbd, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, - 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 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, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 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, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x05, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, - 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 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, 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, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 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, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 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, 0xaa, 0x01, 0x0a, 0x0e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaa, - 0x01, 0x0a, 0x0e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xab, 0x01, 0x0a, 0x0f, - 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x1b, - 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xbd, 0x05, 0x0a, 0x10, 0x49, 0x73, - 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 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, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x04, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x07, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 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, 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, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 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, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, - 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 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, 0xbd, 0x01, 0x0a, 0x0f, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, - 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, - 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, - 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, - 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x99, 0x02, 0x0a, 0x1b, 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, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 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, 0x2e, 0x53, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x93, 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, 0x2e, 0x0a, - 0x2a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, - 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, - 0x21, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x32, 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb3, 0x03, 0x0a, 0x19, 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, 0x12, 0x4a, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 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, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0xbd, 0x02, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 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, 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x31, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, - 0x62, 0x67, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, - 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, - 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, - 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, - 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, 0x12, 0x4c, 0x0a, 0x07, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 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, 0x2e, 0x53, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x28, 0x0a, 0x24, 0x6d, 0x61, 0x6c, 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, - 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, - 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, - 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, - 0x26, 0x0a, 0x22, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, - 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, - 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x5f, 0x6e, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, - 0x24, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x39, 0x10, 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, - 0x10, 0x0a, 0x12, 0x23, 0x0a, 0x1f, 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, - 0x73, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x31, 0x31, 0x10, 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x1b, 0x0a, 0x19, 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, - 0x22, 0x22, 0x0a, 0x20, 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, 0x22, 0xec, 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, - 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, - 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x82, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, - 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, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, - 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, - 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, - 0x12, 0x27, 0x0a, 0x23, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, - 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, - 0x1f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, - 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, - 0x63, 0x6f, 0x64, 0x65, 0x39, 0x10, 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, - 0x6f, 0x64, 0x65, 0x22, 0x63, 0x0a, 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xae, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x38, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, - 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, - 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, - 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, - 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, - 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, - 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, - 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, - 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x10, - 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, - 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x0d, - 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x35, 0x0a, - 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 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, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, - 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x57, 0x69, 0x64, 0x74, 0x68, 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, 0x07, - 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, - 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x67, 0x70, - 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, - 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, - 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x66, - 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, - 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, - 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, - 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, - 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, 0x69, 0x6e, 0x67, 0x6c, - 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, - 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, - 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x22, 0x5d, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, - 0xd1, 0x04, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 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, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x1d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, - 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 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, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 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, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, - 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, - 0x6e, 0x63, 0x65, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x03, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, - 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x04, 0x52, 0x16, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 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, 0x23, 0x0a, 0x21, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 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, 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, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x8f, 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 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, 0x40, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 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, 0xbc, - 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb3, 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, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, - 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, - 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, - 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, - 0x0a, 0x07, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0x7c, 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, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, - 0x12, 0x16, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, - 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 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, 0x1a, 0xbe, 0x01, 0x0a, 0x09, - 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xb0, 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, 0x1b, 0x0a, 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, - 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, - 0x65, 0x71, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x71, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, - 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, - 0x0a, 0x18, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, - 0x10, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0xba, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, - 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 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, 0x2f, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, - 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 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, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, - 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xad, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, - 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x13, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, - 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, - 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, - 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, - 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x22, 0xd8, 0x04, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, - 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, - 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, - 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0xbd, 0x02, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, - 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x01, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, - 0x70, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, - 0x70, 0x65, 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, 0x61, - 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, - 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0xdb, 0x01, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 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, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, - 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, - 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf3, 0x03, - 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, - 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x11, 0x6b, 0x65, 0x65, 0x70, 0x41, 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, - 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, - 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, - 0x64, 0x35, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, - 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, - 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, - 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, - 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, - 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x22, 0x9a, 0x0d, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x69, - 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, - 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x04, 0x76, - 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, - 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, - 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x0f, - 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, 0x70, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x6c, 0x69, - 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x04, 0x65, - 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x63, 0x6f, - 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x17, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x45, 0x6e, 0x63, - 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x64, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x53, 0x72, 0x54, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, 0x69, 0x70, 0x76, - 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x48, 0x12, - 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, - 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, 0x13, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, 0x13, 0x69, 0x70, - 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, - 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, - 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, - 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, - 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, - 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, - 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xbb, 0x07, 0x0a, 0x0f, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, - 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, - 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 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, - 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, - 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, - 0x22, 0x93, 0x08, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 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, 0x6a, 0x0a, - 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, - 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x1c, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6a, - 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, - 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x5d, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, - 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x74, - 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x6e, 0x6f, 0x6e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x1a, 0xe7, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdc, 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, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, - 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, - 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 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, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, - 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, - 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, - 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc4, 0x03, 0x0a, 0x2a, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, - 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, - 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, - 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc8, 0x01, 0x0a, - 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, - 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, - 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, - 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, - 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, - 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, - 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, - 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc4, - 0x03, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, - 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, - 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x22, 0x9b, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, - 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa8, - 0x03, 0x0a, 0x28, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 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, 0x57, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, - 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x0c, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x15, - 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, - 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 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, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x2f, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, 0x22, 0x0a, 0x0a, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x22, - 0xa8, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, - 0x76, 0x70, 0x6e, 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, 0x62, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, - 0x61, 0x63, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x1a, 0x39, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x3a, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, 0x6b, - 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, - 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, - 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xcd, 0x02, 0x0a, 0x2d, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x75, 0x0a, 0x16, 0x6c, 0x69, - 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, - 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x14, 0x6c, 0x69, 0x6e, - 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 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, 0x1a, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x1e, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, - 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 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, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x07, 0x0a, 0x0f, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, - 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, - 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, - 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, - 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 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, - 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, - 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x69, 0x70, 0x76, - 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0d, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x12, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, - 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, - 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, - 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, - 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, - 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, - 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, - 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, - 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x12, 0x41, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, - 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, - 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, 0x0a, 0x13, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, - 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x1d, - 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3c, 0x0a, - 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, - 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 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, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, - 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, - 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, - 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x5b, - 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x49, 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, 0x6e, 0x6f, 0x5f, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x6f, 0x75, - 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0c, 0x0a, - 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, - 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, - 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, 0x01, 0x0a, 0x17, - 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 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, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x6e, - 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, - 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, - 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, - 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, - 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, - 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x22, 0xc4, 0x07, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x12, 0x35, 0x0a, 0x06, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x43, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, - 0x44, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, - 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x12, - 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, - 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, 0x12, 0x35, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x49, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x35, 0x0a, 0x06, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, - 0x65, 0x4b, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 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, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, - 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, - 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, - 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x10, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, - 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, - 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x02, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, - 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xf5, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, - 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, 0x0a, - 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, - 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, - 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, - 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, - 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x74, 0x74, 0x6c, 0x22, 0xdb, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, - 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, - 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, - 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, - 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, - 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, - 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, - 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x19, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, - 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, - 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, - 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, - 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, - 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x88, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, - 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, - 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, - 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0xc1, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, - 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, - 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x04, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, - 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, - 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, - 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, - 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, - 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, +func (x *PatternFlowGtpv2SequenceNumber_Choice) Reset() { + *x = PatternFlowGtpv2SequenceNumber_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1426] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGtpv2SequenceNumber_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGtpv2SequenceNumber_Choice) ProtoMessage() {} + +func (x *PatternFlowGtpv2SequenceNumber_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1426] + 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 PatternFlowGtpv2SequenceNumber_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2SequenceNumber_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{865, 0} +} + +type PatternFlowGtpv2Spare2_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowGtpv2Spare2_Choice) Reset() { + *x = PatternFlowGtpv2Spare2_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1427] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowGtpv2Spare2_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowGtpv2Spare2_Choice) ProtoMessage() {} + +func (x *PatternFlowGtpv2Spare2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1427] + 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 PatternFlowGtpv2Spare2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowGtpv2Spare2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{868, 0} +} + +type PatternFlowArpHardwareType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpHardwareType_Choice) Reset() { + *x = PatternFlowArpHardwareType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1428] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpHardwareType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpHardwareType_Choice) ProtoMessage() {} + +func (x *PatternFlowArpHardwareType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1428] + 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 PatternFlowArpHardwareType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{871, 0} +} + +type PatternFlowArpProtocolType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpProtocolType_Choice) Reset() { + *x = PatternFlowArpProtocolType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1429] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpProtocolType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpProtocolType_Choice) ProtoMessage() {} + +func (x *PatternFlowArpProtocolType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1429] + 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 PatternFlowArpProtocolType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{874, 0} +} + +type PatternFlowArpHardwareLength_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpHardwareLength_Choice) Reset() { + *x = PatternFlowArpHardwareLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1430] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpHardwareLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpHardwareLength_Choice) ProtoMessage() {} + +func (x *PatternFlowArpHardwareLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1430] + 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 PatternFlowArpHardwareLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpHardwareLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{877, 0} +} + +type PatternFlowArpProtocolLength_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpProtocolLength_Choice) Reset() { + *x = PatternFlowArpProtocolLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1431] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpProtocolLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpProtocolLength_Choice) ProtoMessage() {} + +func (x *PatternFlowArpProtocolLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1431] + 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 PatternFlowArpProtocolLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpProtocolLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{880, 0} +} + +type PatternFlowArpOperation_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpOperation_Choice) Reset() { + *x = PatternFlowArpOperation_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1432] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpOperation_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpOperation_Choice) ProtoMessage() {} + +func (x *PatternFlowArpOperation_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1432] + 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 PatternFlowArpOperation_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpOperation_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{883, 0} +} + +type PatternFlowArpSenderHardwareAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) Reset() { + *x = PatternFlowArpSenderHardwareAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1433] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowArpSenderHardwareAddr_Choice) ProtoMessage() {} + +func (x *PatternFlowArpSenderHardwareAddr_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1433] + 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 PatternFlowArpSenderHardwareAddr_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowArpSenderHardwareAddr_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{886, 0} +} + +type PatternFlowArpSenderProtocolAddr_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowArpSenderProtocolAddr_Choice) Reset() { + *x = PatternFlowArpSenderProtocolAddr_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1434] + 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[1434] + 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{889, 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[1435] + 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[1435] + 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{892, 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[1436] + 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[1436] + 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{895, 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[1437] + 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[1437] + 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{898, 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[1438] + 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[1438] + 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{901, 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[1439] + 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[1439] + 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{902, 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[1440] + 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[1440] + 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{902, 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[1441] + 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[1441] + 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{905, 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[1442] + 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[1442] + 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{908, 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[1443] + 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[1443] + 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{909, 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[1444] + 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[1444] + 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{909, 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[1445] + 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[1445] + 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{912, 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[1446] + 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[1446] + 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{915, 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[1447] + 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[1447] + 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{918, 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[1448] + 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[1448] + 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{921, 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[1449] + 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[1449] + 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{924, 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[1450] + 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[1450] + 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{927, 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[1451] + 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[1451] + 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{928, 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[1452] + 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[1452] + 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{928, 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[1453] + 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[1453] + 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{929, 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[1454] + 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[1454] + 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{929, 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[1455] + 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[1455] + 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{932, 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[1456] + 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[1456] + 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{935, 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[1457] + 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[1457] + 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{938, 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[1458] + 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[1458] + 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{941, 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[1459] + 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[1459] + 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{944, 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[1460] + 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[1460] + 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{947, 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[1461] + 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[1461] + 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{948, 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[1462] + 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[1462] + 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{948, 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[1463] + 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[1463] + 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{951, 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[1464] + 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[1464] + 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{954, 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[1465] + 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[1465] + 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{957, 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[1466] + 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[1466] + 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{960, 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[1467] + 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[1467] + 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{963, 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[1468] + 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[1468] + 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{965, 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[1469] + 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[1469] + 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{967, 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[1470] + 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[1470] + 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{969, 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[1471] + 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[1471] + 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{971, 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[1472] + 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[1472] + 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{972, 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[1473] + 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[1473] + 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{974, 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[1474] + 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[1474] + 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{976, 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[1475] + 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[1475] + 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{978, 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[1476] + 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[1476] + 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{980, 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[1477] + 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[1477] + 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{982, 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[1478] + 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[1478] + 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{984, 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[1479] + 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[1479] + 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{986, 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[1480] + 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[1480] + 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{988, 0} +} + +type PatternFlowRsvpRsvpChecksum_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRsvpRsvpChecksum_Choice) Reset() { + *x = PatternFlowRsvpRsvpChecksum_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1481] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRsvpRsvpChecksum_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRsvpRsvpChecksum_Choice) ProtoMessage() {} + +func (x *PatternFlowRsvpRsvpChecksum_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1481] + 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 PatternFlowRsvpRsvpChecksum_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpRsvpChecksum_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{989, 0} +} + +type PatternFlowRsvpRsvpChecksum_Generated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRsvpRsvpChecksum_Generated) Reset() { + *x = PatternFlowRsvpRsvpChecksum_Generated{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1482] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRsvpRsvpChecksum_Generated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRsvpRsvpChecksum_Generated) ProtoMessage() {} + +func (x *PatternFlowRsvpRsvpChecksum_Generated) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1482] + 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 PatternFlowRsvpRsvpChecksum_Generated.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpRsvpChecksum_Generated) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{989, 1} +} + +type PatternFlowRsvpTimeToLive_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRsvpTimeToLive_Choice) Reset() { + *x = PatternFlowRsvpTimeToLive_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1483] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRsvpTimeToLive_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRsvpTimeToLive_Choice) ProtoMessage() {} + +func (x *PatternFlowRsvpTimeToLive_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1483] + 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 PatternFlowRsvpTimeToLive_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpTimeToLive_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{991, 0} +} + +type PatternFlowRsvpReserved_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRsvpReserved_Choice) Reset() { + *x = PatternFlowRsvpReserved_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1484] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRsvpReserved_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRsvpReserved_Choice) ProtoMessage() {} + +func (x *PatternFlowRsvpReserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1484] + 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 PatternFlowRsvpReserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRsvpReserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{993, 0} +} + +type PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1485] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1485] + 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 PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{995, 0} +} + +type PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1486] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1486] + 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 PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{997, 0} +} + +type PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) Reset() { + *x = PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1487] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1487] + 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 PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{999, 0} +} + +type PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1488] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1488] + 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 PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1001, 0} +} + +type PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) Reset() { + *x = PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1489] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1489] + 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 PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1003, 0} +} + +type PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1490] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1490] + 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 PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1005, 0} +} + +type PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) Reset() { + *x = PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1491] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1491] + 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 PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1007, 0} +} + +type PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) Reset() { + *x = PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1492] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1492] + 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 PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1009, 0} +} + +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1493] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1493] + 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 PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1011, 0} +} + +type PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1494] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1494] + 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 PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1013, 0} +} + +type PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) Reset() { + *x = PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1495] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1495] + 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 PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1015, 0} +} + +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1496] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1496] + 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 PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1017, 0} +} + +type PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) Reset() { + *x = PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1497] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1497] + 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 PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1019, 0} +} + +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1498] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1498] + 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 PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1021, 0} +} + +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1499] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1499] + 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 PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1023, 0} +} + +type PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1500] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1500] + 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 PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1025, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServVersion_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServVersion_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1501] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServVersion_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1501] + 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 PatternFlowRSVPPathSenderTspecIntServVersion_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1027, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServReserved1_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved1_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1502] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1502] + 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 PatternFlowRSVPPathSenderTspecIntServReserved1_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1029, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1503] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1503] + 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 PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1031, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1504] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1504] + 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 PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1033, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1505] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1505] + 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 PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1035, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServReserved2_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServReserved2_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1506] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1506] + 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 PatternFlowRSVPPathSenderTspecIntServReserved2_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1037, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1507] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1507] + 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 PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1039, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1508] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1508] + 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 PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1041, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1509] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1509] + 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 PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1043, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1510] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1510] + 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 PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1045, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1511] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1511] + 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 PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1047, 0} +} + +type PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) Reset() { + *x = PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1512] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1512] + 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 PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1049, 0} +} + +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1513] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1513] + 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 PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1051, 0} +} + +type PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1514] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1514] + 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 PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1053, 0} +} + +type PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1515] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1515] + 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 PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1054, 0} +} + +type PatternFlowRSVPPathRecordRouteType1LabelCType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) Reset() { + *x = PatternFlowRSVPPathRecordRouteType1LabelCType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1516] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1516] + 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 PatternFlowRSVPPathRecordRouteType1LabelCType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1055, 0} +} + +type PatternFlowRSVPPathObjectsCustomType_Choice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PatternFlowRSVPPathObjectsCustomType_Choice) Reset() { + *x = PatternFlowRSVPPathObjectsCustomType_Choice{} + if protoimpl.UnsafeEnabled { + mi := &file_otg_proto_msgTypes[1517] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PatternFlowRSVPPathObjectsCustomType_Choice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatternFlowRSVPPathObjectsCustomType_Choice) ProtoMessage() {} + +func (x *PatternFlowRSVPPathObjectsCustomType_Choice) ProtoReflect() protoreflect.Message { + mi := &file_otg_proto_msgTypes[1517] + 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 PatternFlowRSVPPathObjectsCustomType_Choice.ProtoReflect.Descriptor instead. +func (*PatternFlowRSVPPathObjectsCustomType_Choice) Descriptor() ([]byte, []int) { + return file_otg_proto_rawDescGZIP(), []int{1057, 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, 0xcc, 0x03, 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, 0x12, 0x44, 0x0a, 0x11, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x10, + 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x12, 0x44, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 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, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x70, 0x76, 0x36, 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, 0x36, 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, 0x36, + 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, + 0x36, 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, 0x36, 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, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x12, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x09, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x17, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x15, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x47, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 0x10, + 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x22, 0xf0, 0x01, 0x0a, 0x12, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x4d, + 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0c, 0x72, 0x65, + 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, + 0x0f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, + 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x65, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xef, 0x02, 0x0a, + 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x61, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x09, + 0x64, 0x75, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x64, 0x75, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xd6, + 0x01, 0x0a, 0x20, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x70, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x16, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, 0x63, 0x70, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0xb1, 0x02, 0x0a, 0x19, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0c, + 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, 0x64, + 0x6f, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0b, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x76, + 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x04, 0x66, 0x71, 0x64, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x46, 0x71, 0x64, 0x6e, 0x52, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x22, 0xe6, 0x02, 0x0a, 0x18, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x61, 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, 0x36, 0x0a, 0x04, 0x69, 0x61, 0x6e, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x04, 0x69, 0x61, 0x6e, 0x61, 0x12, 0x36, 0x0a, 0x04, 0x69, 0x61, 0x70, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x61, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x69, 0x61, 0x70, 0x64, + 0x12, 0x3a, 0x0a, 0x06, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x61, 0x54, 0x69, 0x6d, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x1a, 0x4b, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, 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, 0x61, 0x6e, 0x61, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x61, 0x74, + 0x61, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x61, 0x70, 0x64, 0x10, 0x03, 0x12, 0x0a, 0x0a, + 0x06, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x1d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x61, 0x54, 0x69, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x02, 0x74, 0x31, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x32, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x32, 0x88, 0x01, 0x01, 0x42, + 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x31, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x32, 0x22, 0xbf, 0x02, + 0x0a, 0x1a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x69, 0x64, 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, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x69, 0x64, 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, 0x2f, 0x0a, 0x03, 0x6c, 0x6c, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x44, 0x75, + 0x69, 0x64, 0x52, 0x03, 0x6c, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x02, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x69, 0x64, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x02, 0x6c, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x6f, + 0x44, 0x75, 0x69, 0x64, 0x52, 0x02, 0x6c, 0x6c, 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, 0x07, 0x0a, 0x03, 0x6c, + 0x6c, 0x74, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x65, 0x6e, 0x10, 0x02, 0x12, 0x06, 0x0a, 0x02, + 0x6c, 0x6c, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x89, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x69, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x28, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x69, 0x73, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x76, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, + 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4e, 0x6f, 0x44, 0x75, 0x69, 0x64, 0x22, 0xca, 0x03, 0x0a, 0x23, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x6c, 0x6c, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, + 0x69, 0x64, 0x4c, 0x6c, 0x74, 0x52, 0x07, 0x64, 0x75, 0x69, 0x64, 0x4c, 0x6c, 0x74, 0x12, 0x37, + 0x0a, 0x07, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x45, 0x6e, 0x52, + 0x06, 0x64, 0x75, 0x69, 0x64, 0x45, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x64, 0x75, 0x69, 0x64, 0x5f, + 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x4c, 0x6c, 0x52, 0x06, 0x64, 0x75, 0x69, 0x64, 0x4c, 0x6c, + 0x12, 0x3d, 0x0a, 0x09, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, + 0x64, 0x55, 0x75, 0x69, 0x64, 0x52, 0x08, 0x64, 0x75, 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 0x1a, + 0x58, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 0x0c, 0x0a, 0x08, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x6c, 0x6c, 0x74, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x64, 0x75, 0x69, 0x64, 0x5f, 0x6c, 0x6c, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x75, + 0x69, 0x64, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, + 0x4c, 0x6c, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x12, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x97, 0x01, + 0x0a, 0x19, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x45, 0x6e, 0x12, 0x30, 0x0a, 0x11, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x73, 0x0a, 0x19, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, + 0x69, 0x64, 0x4c, 0x6c, 0x12, 0x56, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x83, 0x04, 0x0a, + 0x1b, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x41, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, + 0x69, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x6f, 0x77, 0x88, + 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x69, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x69, 0x41, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, + 0x73, 0x65, 0x71, 0x5f, 0x68, 0x69, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x15, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x53, 0x65, 0x71, 0x48, 0x69, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, + 0x65, 0x71, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0b, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x65, 0x71, 0x4c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x04, + 0x6e, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x6c, 0x6f, 0x77, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, + 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x69, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x68, 0x69, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6c, 0x6f, 0x77, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x22, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, + 0x69, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 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, 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, 0x07, + 0x0a, 0x03, 0x76, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x76, 0x5f, 0x32, 0x10, 0x02, + 0x12, 0x07, 0x0a, 0x03, 0x76, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x76, 0x5f, 0x34, + 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x76, 0x5f, 0x35, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x22, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, + 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x50, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x44, 0x75, 0x69, 0x64, 0x55, 0x75, 0x69, 0x64, 0x56, + 0x61, 0x72, 0x69, 0x61, 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, 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, 0x07, 0x0a, 0x03, 0x6e, 0x63, 0x73, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x64, + 0x63, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x10, 0x03, 0x12, 0x10, + 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x10, 0x04, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x23, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 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, 0xb6, 0x02, 0x0a, 0x21, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x36, + 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0x7d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x73, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x76, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x71, 0x64, 0x6e, 0x10, 0x03, 0x12, 0x10, 0x0a, + 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x73, 0x7a, 0x74, 0x70, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x3d, 0x0a, 0x19, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x17, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xeb, 0x01, 0x0a, 0x1e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x16, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, 0x63, 0x70, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9c, 0x02, + 0x0a, 0x31, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 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, 0x40, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6d, 0x73, + 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x2f, 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, 0x0d, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x80, 0x02, 0x0a, + 0x23, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, + 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 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, 0x40, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x2f, 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, 0x0d, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0xee, 0x01, 0x0a, 0x1e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, + 0x1a, 0x73, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x69, 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, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, + 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x10, 0x04, 0x12, 0x09, + 0x0a, 0x05, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x62, + 0x69, 0x6e, 0x64, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x95, 0x02, 0x0a, 0x1d, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, + 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x68, 0x63, + 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x16, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, 0x63, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, + 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x95, 0x02, 0x0a, 0x1d, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x69, 0x73, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x62, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x52, 0x16, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, + 0x63, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x65, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x80, 0x02, 0x0a, 0x23, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 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, 0x40, 0x0a, 0x09, 0x6d, + 0x73, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x73, 0x1a, 0x39, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, 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, 0x0d, 0x0a, 0x09, 0x6d, 0x73, 0x67, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x1e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 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, 0x1a, 0x4d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x10, + 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x68, + 0x0a, 0x22, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, + 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa8, 0x02, 0x0a, 0x17, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x46, 0x71, 0x64, 0x6e, 0x12, 0x1a, 0x0a, 0x06, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x88, 0x01, 0x01, + 0x12, 0x1a, 0x0a, 0x06, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x4e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, + 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x62, + 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x68, 0x63, + 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x16, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, 0x63, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, + 0x0f, 0x62, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x42, 0x6f, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x0e, + 0x62, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x62, + 0x0a, 0x18, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x68, 0x63, + 0x70, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x16, 0x61, 0x73, 0x73, 0x6f, + 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x44, 0x68, 0x63, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0x54, 0x0a, 0x21, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x21, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x22, 0x97, 0x07, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 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, 0x31, 0x0a, 0x05, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, + 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x13, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x69, + 0x65, 0x65, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0d, 0x61, + 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x45, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x06, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xa9, 0x02, 0x0a, 0x05, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x22, 0x9f, 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, 0x14, + 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, + 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, + 0x03, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x68, + 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x5f, 0x31, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x31, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, + 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x32, 0x35, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x07, + 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x5f, 0x67, 0x62, 0x70, + 0x73, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x35, 0x30, 0x5f, + 0x67, 0x62, 0x70, 0x73, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, + 0x31, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x32, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x10, 0x0b, 0x12, 0x12, + 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x30, 0x5f, 0x67, 0x62, 0x70, 0x73, + 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x30, 0x5f, + 0x67, 0x62, 0x70, 0x73, 0x10, 0x0d, 0x1a, 0x42, 0x0a, 0x05, 0x4d, 0x65, 0x64, 0x69, 0x61, 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, 0x0a, 0x0a, 0x06, 0x63, 0x6f, 0x70, 0x70, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x62, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x09, 0x0a, 0x05, 0x73, 0x67, 0x6d, 0x69, 0x69, 0x10, 0x03, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x65, 0x65, 0x65, 0x5f, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x89, 0x04, 0x0a, 0x15, 0x4c, + 0x61, 0x79, 0x65, 0x72, 0x31, 0x41, 0x75, 0x74, 0x6f, 0x4e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, + 0x30, 0x30, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, + 0x30, 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x02, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x30, + 0x48, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x46, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x34, 0x0a, 0x14, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, + 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x31, 0x30, 0x48, 0x64, 0x4d, 0x62, + 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0c, + 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x06, 0x52, 0x05, 0x72, 0x73, 0x46, 0x65, 0x63, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x30, 0x5f, + 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, 0x30, 0x5f, 0x66, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x31, + 0x30, 0x5f, 0x68, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x72, 0x73, 0x5f, 0x66, 0x65, 0x63, 0x22, 0xdd, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x79, 0x65, 0x72, + 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x2e, 0x0a, 0x10, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x01, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x0d, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, 0x71, 0x62, 0x62, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, + 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x52, 0x0b, 0x69, 0x65, + 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, 0x34, 0x0a, 0x0b, 0x69, 0x65, 0x65, + 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x33, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, + 0x30, 0x32, 0x33, 0x78, 0x52, 0x09, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x1a, + 0x45, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, 0x32, 0x5f, 0x31, + 0x71, 0x62, 0x62, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x69, 0x65, 0x65, 0x65, 0x5f, 0x38, 0x30, + 0x32, 0x5f, 0x33, 0x78, 0x10, 0x02, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x31, + 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x33, 0x78, 0x22, 0xeb, 0x03, 0x0a, 0x11, 0x4c, 0x61, + 0x79, 0x65, 0x72, 0x31, 0x49, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x71, 0x62, 0x62, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x66, 0x63, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x70, + 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, + 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, + 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x33, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x70, 0x66, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x09, 0x70, 0x66, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x70, 0x66, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x37, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x08, 0x52, 0x09, 0x70, 0x66, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, + 0x63, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xda, 0x02, 0x0a, 0x07, 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, 0x2c, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x21, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 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, 0x63, 0x61, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x63, 0x61, 0x70, 0x6e, 0x67, + 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x0d, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 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, 0x2a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, + 0x30, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x12, 0x24, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x56, 0x6c, 0x61, + 0x6e, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x12, 0x24, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x52, 0x04, 0x69, + 0x70, 0x76, 0x36, 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, 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, 0x08, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x69, 0x74, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, + 0x62, 0x69, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x04, 0x52, 0x06, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x62, 0x69, 0x74, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x6e, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x23, 0x0a, + 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x64, + 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x03, 0x63, 0x66, 0x69, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xd9, 0x05, 0x0a, 0x0b, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x49, 0x70, 0x76, 0x34, 0x12, 0x2b, 0x0a, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x34, + 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x36, + 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x3a, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x66, 0x72, + 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x12, 0x3a, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0e, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x23, 0x0a, 0x03, + 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, + 0x63, 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0x8c, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x49, 0x70, 0x76, 0x36, 0x12, 0x2b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0c, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x30, 0x0a, 0x0a, 0x66, + 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x38, 0x0a, + 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x32, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, + 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x09, 0x68, + 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x73, + 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x73, 0x72, 0x63, + 0x12, 0x23, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x52, 0x03, 0x64, 0x73, 0x74, 0x22, 0xb5, 0x03, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x31, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, + 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x12, 0x26, + 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x03, 0x62, 0x67, 0x70, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 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, 0x12, 0x23, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x12, 0x36, 0x0a, 0x0b, + 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, + 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0a, 0x64, 0x68, 0x63, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, + 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x29, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, + 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x6f, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xc9, + 0x03, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, + 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x2d, 0x0a, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, + 0x74, 0x68, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x17, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x69, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x69, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x74, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x74, 0x69, + 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x69, 0x69, 0x64, 0x22, 0xb4, 0x07, 0x0a, 0x0d, 0x49, + 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 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, 0x1b, 0x0a, 0x06, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, + 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x0b, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0a, 0x6c, 0x31, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0a, 0x6c, 0x32, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0x39, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, + 0x6f, 0x67, 0x79, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x49, 0x64, 0x73, 0x12, 0x41, 0x0a, 0x13, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x45, 0x52, 0x12, 0x74, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x48, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x12, 0x49, 0x0a, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, + 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x69, + 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, + 0x73, 0x72, 0x6c, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0a, 0x73, 0x72, 0x6c, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x49, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3a, 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, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, + 0x02, 0x1a, 0x4d, 0x0a, 0x09, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x40, + 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, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x5f, 0x32, 0x10, 0x03, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0c, + 0x64, 0x65, 0x61, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x22, 0x62, 0x0a, 0x06, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x54, 0x12, 0x18, 0x0a, 0x05, 0x6d, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x74, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x6c, 0x69, + 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6d, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x22, 0xff, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x54, 0x45, 0x12, 0x36, 0x0a, 0x14, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0b, 0x6d, + 0x61, 0x78, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, + 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x03, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x13, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x52, 0x12, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x42, + 0x17, 0x0a, 0x15, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6d, + 0x61, 0x78, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x95, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x6e, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x30, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x03, 0x70, 0x62, 0x30, 0x88, 0x01, 0x01, 0x12, 0x15, + 0x0a, 0x03, 0x70, 0x62, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x70, + 0x62, 0x31, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x32, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x03, 0x70, 0x62, 0x32, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x70, 0x62, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x70, 0x62, 0x33, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x34, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x03, 0x70, 0x62, 0x34, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, + 0x35, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x03, 0x70, 0x62, 0x35, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, + 0x52, 0x03, 0x70, 0x62, 0x36, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x62, 0x37, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x03, 0x70, 0x62, 0x37, 0x88, 0x01, 0x01, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x31, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x33, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x34, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x35, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x62, 0x37, 0x22, + 0x86, 0x02, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x50, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, 0x41, 0x75, 0x74, + 0x68, 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, 0x07, + 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbc, 0x03, 0x0a, 0x15, 0x49, 0x73, 0x69, + 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, + 0x75, 0x74, 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x4d, 0x74, 0x75, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, + 0x72, 0x65, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x61, 0x75, 0x74, + 0x6f, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x41, 0x72, 0x65, 0x61, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, + 0x61, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x13, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x33, 0x77, 0x61, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x70, 0x32, 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x15, 0x70, 0x32, 0x70, 0x48, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x54, 0x6f, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x63, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, + 0x73, 0x74, 0x5f, 0x6d, 0x74, 0x75, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, + 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x42, 0x22, 0x0a, 0x20, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x73, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x33, 0x77, 0x61, 0x79, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x70, 0x32, + 0x70, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xde, 0x03, 0x0a, 0x1b, 0x49, 0x73, 0x69, 0x73, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x50, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x0c, 0x65, 0x78, 0x74, 0x72, 0x61, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x74, 0x6f, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x03, 0x52, 0x0d, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x54, 0x6f, 0x31, + 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x04, 0x52, 0x0f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x31, 0x50, 0x6c, 0x75, + 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x68, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x5f, 0x34, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x34, 0x30, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x38, 0x30, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x74, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x31, 0x5f, + 0x74, 0x6f, 0x5f, 0x31, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x31, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x31, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x34, 0x30, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x38, 0x30, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x49, 0x73, 0x69, + 0x73, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, + 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x54, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x69, 0x64, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x65, + 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x10, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, + 0x64, 0x4c, 0x73, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x65, 0x61, 0x72, + 0x6e, 0x65, 0x64, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb2, + 0x05, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, + 0x35, 0x0a, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x50, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x72, + 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x72, 0x65, + 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x61, 0x72, 0x65, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x6c, 0x73, + 0x70, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x4c, 0x69, 0x66, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x73, 0x6e, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, + 0x52, 0x0c, 0x70, 0x73, 0x6e, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0c, 0x63, 0x73, 0x6e, 0x70, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6d, + 0x61, 0x78, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x4c, 0x73, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1d, 0x6c, 0x73, 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x19, 0x6c, 0x73, 0x70, + 0x4d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x69, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, + 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x78, 0x5f, + 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6c, 0x69, 0x66, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x6d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x62, 0x69, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, + 0x09, 0x61, 0x72, 0x65, 0x61, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x08, 0x61, + 0x72, 0x65, 0x61, 0x41, 0x75, 0x74, 0x68, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x41, 0x75, 0x74, 0x68, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x64, 0x35, 0x22, 0xfc, 0x01, 0x0a, + 0x16, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x08, + 0x41, 0x75, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x02, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x64, 0x35, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0xbd, 0x05, 0x0a, 0x10, + 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, 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, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x34, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, + 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x04, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x05, 0x78, 0x46, 0x6c, + 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, + 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x07, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 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, + 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, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 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, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 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, 0xaa, 0x01, 0x0a, 0x0e, + 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x1b, 0x0a, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x56, 0x36, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x4d, 0x41, 0x43, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 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, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x22, 0xbd, 0x05, 0x0a, 0x10, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, + 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x63, + 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, 0x2d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 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, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x11, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x05, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, + 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, + 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x05, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x88, 0x01, 0x01, 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, 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, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 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, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 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, 0xbd, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x22, 0x99, 0x02, 0x0a, 0x1b, 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, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 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, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x9f, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x93, 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, 0x2e, 0x0a, 0x2a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, + 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x62, 0x61, 0x64, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x23, + 0x0a, 0x1f, 0x62, 0x61, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x33, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, + 0xb3, 0x03, 0x0a, 0x19, 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, 0x12, 0x4a, 0x0a, + 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 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, 0x2e, 0x53, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x02, 0x0a, 0x07, 0x53, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xb1, 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, + 0x2d, 0x0a, 0x29, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, 0x12, 0x20, + 0x0a, 0x1c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x73, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x10, 0x02, + 0x12, 0x1f, 0x0a, 0x1b, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x69, 0x64, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x10, + 0x03, 0x12, 0x31, 0x0a, 0x2d, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x34, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x35, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x32, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x29, + 0x0a, 0x25, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x32, 0x5f, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, + 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xe5, 0x04, 0x0a, 0x1b, 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, 0x12, 0x4c, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 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, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x88, 0x01, 0x01, 0x1a, 0xeb, 0x03, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, + 0xdf, 0x03, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x6d, 0x61, 0x6c, + 0x66, 0x6f, 0x72, 0x6d, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x31, 0x10, 0x01, 0x12, 0x30, 0x0a, 0x2c, 0x75, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, + 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x32, 0x10, 0x02, 0x12, 0x2b, 0x0a, 0x27, 0x77, 0x65, 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x33, + 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x34, 0x10, 0x04, 0x12, 0x26, 0x0a, 0x22, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, + 0x05, 0x12, 0x28, 0x0a, 0x24, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, + 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x61, + 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, + 0x26, 0x0a, 0x22, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x68, 0x6f, 0x70, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, + 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, 0x10, + 0x09, 0x12, 0x29, 0x0a, 0x25, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x33, + 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x30, 0x10, 0x0a, 0x12, 0x23, 0x0a, 0x1f, + 0x61, 0x62, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x70, 0x61, 0x74, 0x68, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x33, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x31, 0x10, + 0x0b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x1b, 0x0a, + 0x19, 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, 0x22, 0x22, 0x0a, 0x20, 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, 0x22, 0xec, + 0x03, 0x0a, 0x13, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x2e, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x82, 0x03, 0x0a, + 0x07, 0x53, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0xf6, 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, 0x2c, 0x0a, 0x28, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x31, 0x10, 0x01, + 0x12, 0x21, 0x0a, 0x1d, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x33, 0x10, 0x03, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, + 0x65, 0x34, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, + 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x35, 0x10, 0x05, 0x12, 0x27, 0x0a, 0x23, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, + 0x36, 0x10, 0x06, 0x12, 0x32, 0x0a, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, + 0x63, 0x6f, 0x64, 0x65, 0x37, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, + 0x66, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x38, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, + 0x62, 0x66, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x36, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x39, 0x10, + 0x09, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x63, 0x0a, + 0x14, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, + 0x64, 0x65, 0x22, 0xae, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, + 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, + 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x70, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x18, 0x6c, + 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, + 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, + 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, + 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, + 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, + 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, + 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, + 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, + 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, 0x62, + 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, + 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcc, 0x04, 0x0a, 0x14, + 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x66, + 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, + 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x65, + 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, + 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 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, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x5d, 0x0a, 0x1c, 0x42, 0x67, + 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x22, 0xd1, 0x04, 0x0a, 0x10, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x4c, + 0x0a, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 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, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x1d, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, + 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 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, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 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, 0x12, 0x2a, 0x0a, 0x0e, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x2e, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 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, 0x23, 0x0a, 0x21, 0x5f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 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, + 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, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xbe, 0x02, + 0x0a, 0x0c, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x34, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 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, 0x8f, + 0x04, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 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, 0x40, 0x0a, 0x07, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x2e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 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, 0xbc, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x22, 0xb3, 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, 0x1b, 0x0a, 0x17, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x5f, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x10, + 0x04, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x10, 0x05, 0x12, 0x2a, 0x0a, 0x26, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x73, 0x5f, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x10, 0x06, 0x1a, 0x87, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x7c, 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, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x11, 0x0a, + 0x0d, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x05, + 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, + 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0xd3, 0x02, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, + 0x0a, 0x0b, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x2e, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x09, 0x61, 0x73, 0x53, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x1a, 0xbe, 0x01, 0x0a, 0x09, 0x41, 0x73, 0x53, 0x65, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0xb0, 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, 0x1b, 0x0a, + 0x17, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, + 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x04, 0x12, 0x19, 0x0a, + 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x70, 0x72, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x41, 0x73, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 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, 0xba, 0x01, 0x0a, + 0x0d, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, + 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, 0x2f, 0x0a, 0x09, 0x65, + 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 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, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 0x07, 0x0a, 0x0d, 0x42, 0x67, + 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, + 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, + 0x72, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, + 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, + 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 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, + 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, + 0x70, 0x56, 0x34, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, + 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, + 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, + 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, + 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, + 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, + 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0xd8, + 0x04, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, + 0x41, 0x43, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0c, + 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, + 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, + 0x32, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x19, 0x0a, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x6c, 0x33, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x15, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, + 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, + 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, + 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, + 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x32, 0x76, 0x6e, 0x69, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, + 0x33, 0x76, 0x6e, 0x69, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x02, 0x0a, 0x15, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x2e, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x16, 0x61, 0x75, 0x74, + 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x12, 0x61, 0x75, 0x74, + 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x64, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, 0x64, 0x54, 0x79, 0x70, 0x65, 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, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, + 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x72, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x0e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x07, + 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2e, 0x52, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x07, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x51, 0x0a, 0x06, 0x52, + 0x74, 0x54, 0x79, 0x70, 0x65, 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, 0x61, 0x73, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x10, 0x03, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf3, 0x03, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6b, 0x65, + 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x11, 0x6b, 0x65, 0x65, 0x70, 0x41, + 0x6c, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x2c, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x06, 0x6d, 0x64, 0x35, 0x4b, 0x65, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x73, 0x73, + 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x06, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0c, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x5f, 0x61, 0x6c, 0x69, 0x76, 0x65, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x6d, 0x64, 0x35, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, + 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x9a, 0x0d, + 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, + 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x04, 0x76, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x6c, 0x69, + 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x76, 0x70, 0x6e, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x0f, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x6e, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x04, 0x65, 0x76, 0x70, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x40, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, + 0x52, 0x10, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, + 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0c, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x34, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, + 0x0a, 0x08, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x0d, 0x52, 0x07, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x17, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x0e, 0x52, 0x14, 0x69, 0x70, 0x76, 0x34, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0f, 0x52, 0x13, 0x69, 0x70, + 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, + 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x10, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x11, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x76, + 0x70, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x48, 0x12, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x48, 0x13, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4d, 0x70, + 0x6c, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6d, 0x64, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x48, 0x14, 0x52, 0x07, 0x69, 0x70, + 0x76, 0x36, 0x4d, 0x64, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, + 0x76, 0x70, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x48, 0x15, 0x52, 0x14, 0x69, 0x70, 0x76, + 0x36, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x70, 0x6c, 0x73, 0x56, 0x70, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x70, 0x65, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x48, 0x17, 0x52, 0x0e, 0x69, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x48, 0x18, 0x52, + 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x64, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x76, 0x70, 0x6c, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x6f, + 0x6e, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x76, 0x70, + 0x6e, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, + 0x70, 0x6e, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6d, 0x64, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x1b, 0x42, + 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x13, 0x75, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x49, 0x70, 0x76, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x22, 0xbb, 0x07, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 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, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x0a, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0x93, 0x08, 0x0a, 0x14, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 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, 0x6a, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x73, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6a, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x63, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, + 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x19, 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, + 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0xe7, 0x01, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdc, 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, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, + 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, + 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x65, 0x76, 0x70, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, + 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 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, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc4, 0x03, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 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, 0x6c, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, + 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x38, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x38, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 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, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, + 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xbf, 0x01, 0x0a, 0x35, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc4, 0x03, 0x0a, 0x2a, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, + 0x65, 0x74, 0x41, 0x73, 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, 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x6c, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x79, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9b, 0x01, 0x0a, 0x35, 0x42, + 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, + 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa8, 0x03, 0x0a, 0x28, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 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, 0x57, 0x0a, + 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 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, 0x11, 0x0a, 0x0d, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, + 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x64, 0x0a, 0x2f, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x22, 0xa8, 0x02, 0x0a, 0x26, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 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, 0x62, 0x0a, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x45, 0x76, 0x70, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x52, 0x10, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x39, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x63, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x3a, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, + 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, + 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0xcd, 0x02, 0x0a, 0x2d, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, + 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x75, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, + 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, + 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 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, 0x1a, + 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xcc, 0x01, 0x0a, 0x1e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 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, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbb, 0x07, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 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, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xba, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, + 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, + 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, + 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, + 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x07, 0x61, + 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, + 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, + 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, + 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, + 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, + 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, + 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, + 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x41, 0x0a, 0x0f, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, + 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, + 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, + 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, + 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, + 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, + 0xf1, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, + 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x0d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 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, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x22, 0x39, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9f, + 0x03, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x5c, 0x0a, 0x10, 0x62, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x42, 0x69, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x69, 0x70, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x03, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, + 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, + 0x69, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x5b, 0x0a, 0x0e, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 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, 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, + 0x74, 0x5f, 0x73, 0x69, 0x64, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x69, 0x64, 0x10, 0x03, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x6f, 0x75, 0x72, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x22, 0x4d, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x23, 0x0a, 0x0a, 0x70, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, + 0x5f, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x2c, + 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x22, 0x4f, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x24, 0x0a, 0x0b, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x24, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x88, 0x01, 0x0a, 0x1a, 0x65, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x46, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x2e, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x9d, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x22, 0x81, 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, 0x11, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x6e, 0x6c, 0x70, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x6c, 0x70, 0x10, 0x04, 0x12, + 0x14, 0x0a, 0x10, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x65, + 0x6e, 0x6c, 0x70, 0x10, 0x05, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x77, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xc4, + 0x07, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x35, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x43, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x44, 0x12, 0x35, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, + 0x65, 0x45, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, + 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x12, 0x35, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, + 0x74, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4b, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0xab, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 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, 0x0a, 0x0a, 0x06, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, + 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x01, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x73, 0x5f, + 0x62, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x04, 0x73, 0x42, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xf5, + 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, + 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, + 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x61, + 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xc4, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, - 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xde, 0x04, 0x0a, 0x19, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, + 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, 0x02, 0x74, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x02, 0x74, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x18, 0x0a, 0x05, 0x73, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, + 0x52, 0x04, 0x73, 0x42, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x74, 0x63, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x5f, 0x62, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0xdb, 0x01, + 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, + 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, + 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, + 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x19, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, - 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x05, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, - 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x06, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, - 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, + 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, + 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, + 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, + 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, + 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0x88, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x45, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, + 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, + 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, + 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, + 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x8e, 0x02, 0x0a, 0x19, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, + 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, + 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc1, 0x03, 0x0a, 0x19, + 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x15, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, + 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xab, 0x03, 0x0a, - 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, - 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, - 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, - 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, - 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, - 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, - 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, - 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, - 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xb9, 0x08, 0x0a, 0x0f, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, - 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x69, - 0x70, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, - 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0b, - 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, - 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x12, 0x6e, + 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0x8e, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x48, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, + 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x72, 0x74, 0x65, 0x53, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x52, 0x09, 0x73, 0x72, + 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xa2, 0x02, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x49, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, + 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x07, + 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, + 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, + 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, + 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, + 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xde, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4a, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, 0x62, + 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x14, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x04, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x15, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x07, 0x73, 0x72, + 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, + 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, + 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, + 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, + 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xab, 0x03, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x53, 0x72, + 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4b, 0x54, 0x79, 0x70, 0x65, 0x53, 0x75, + 0x62, 0x54, 0x6c, 0x76, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x04, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x6c, 0x0a, 0x1a, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, + 0x65, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x17, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x22, 0xb9, 0x08, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, + 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, + 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x64, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, + 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, + 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, + 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, + 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 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, 0x3c, 0x0a, 0x0e, 0x65, + 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, + 0x6c, 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x12, 0x6e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x64, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x64, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x0b, - 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3c, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, - 0x0e, 0x65, 0x78, 0x74, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x38, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x52, 0x0a, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x40, 0x0a, 0x0b, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 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, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x69, 0x70, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x10, - 0x02, 0x1a, 0x41, 0x0a, 0x12, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, - 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, - 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 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, 0x10, + 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x18, + 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x22, 0xdd, 0x05, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, + 0x6c, 0x76, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, - 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, - 0x54, 0x6c, 0x76, 0x12, 0x41, 0x0a, 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, - 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, + 0x12, 0x3b, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, + 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x53, 0x72, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x41, 0x0a, + 0x0f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x53, 0x72, 0x74, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, + 0x76, 0x52, 0x0d, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x12, 0x4a, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, + 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, + 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, + 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, + 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, 0x0a, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, - 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, - 0x6c, 0x76, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, - 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, - 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x4b, 0x0a, 0x13, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, - 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, - 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, - 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, - 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3c, - 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, - 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, - 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, - 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6c, 0x67, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x92, 0x02, 0x0a, 0x0f, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 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, 0x3f, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, - 0x5f, 0x70, 0x64, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x50, - 0x64, 0x75, 0x73, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x50, - 0x64, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x52, 0x61, 0x77, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x13, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x64, 0x5f, 0x70, 0x64, 0x75, 0x73, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x61, - 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x40, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x52, 0x61, 0x77, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x07, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x08, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, - 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x22, 0x50, 0x0a, 0x11, 0x42, 0x67, 0x70, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x64, 0x50, 0x64, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x53, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, + 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, + 0x6c, 0x76, 0x12, 0x74, 0x0a, 0x22, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x6c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x45, 0x78, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x52, 0x1d, 0x65, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x53, 0x75, 0x62, 0x54, 0x6c, 0x76, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x67, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x6c, 0x67, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x6c, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, + 0x74, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x92, 0x02, 0x0a, 0x0f, 0x42, 0x67, + 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x3d, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 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, 0x3f, 0x0a, 0x0f, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x64, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x50, 0x64, 0x75, 0x73, 0x52, 0x0e, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x50, 0x64, 0x75, 0x73, 0x12, 0x2d, 0x0a, + 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x61, 0x77, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x52, 0x08, 0x72, 0x61, 0x77, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x45, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 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, + 0x13, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x64, + 0x75, 0x73, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x40, + 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x52, 0x61, 0x77, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, + 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x22, 0x7a, 0x0a, 0x12, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, + 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, + 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x11, + 0x42, 0x67, 0x70, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x50, 0x64, 0x75, + 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x47, - 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x0f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xc0, + 0x02, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x12, + 0x1e, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x3b, 0x0a, 0x0f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x0e, 0x70, 0x61, + 0x74, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x19, + 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x5f, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x52, 0x17, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x73, 0x12, 0x58, 0x0a, 0x17, 0x74, 0x72, + 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, + 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x15, 0x74, + 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, + 0x6c, 0x72, 0x69, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, + 0x70, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x54, 0x72, 0x61, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, + 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x4f, + 0x6e, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 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, + 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x4f, 0x6e, + 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x1b, + 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x70, + 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x3a, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, + 0xab, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, + 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xe2, 0x09, + 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x4b, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4f, 0x74, 0x68, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0f, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x73, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x08, + 0x61, 0x73, 0x34, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, - 0x6e, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, - 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x17, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x73, - 0x12, 0x58, 0x0a, 0x17, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x6e, 0x6c, 0x72, 0x69, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x54, 0x72, - 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, 0x69, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x52, 0x15, 0x74, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x4f, - 0x6e, 0x65, 0x54, 0x72, 0x61, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x6c, 0x72, - 0x69, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, - 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, - 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x9c, 0x01, - 0x0a, 0x14, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, 0x49, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, - 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, 0x70, - 0x61, 0x74, 0x68, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x9c, 0x01, 0x0a, - 0x14, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, - 0x01, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x52, 0x06, 0x70, 0x61, - 0x74, 0x68, 0x49, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x3a, 0x0a, 0x13, 0x42, - 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x50, 0x61, 0x74, 0x68, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, - 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, - 0x36, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x65, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x22, 0xe2, 0x09, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x31, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x34, 0x0a, 0x08, 0x61, 0x73, 0x34, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, + 0x65, 0x73, 0x41, 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, 0x52, 0x07, 0x61, 0x73, 0x34, 0x50, 0x61, + 0x74, 0x68, 0x12, 0x34, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x07, 0x61, 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x62, - 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, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, - 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x3f, 0x0a, 0x19, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x6f, 0x6d, - 0x69, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x74, - 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x12, 0x3c, 0x0a, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x46, 0x0a, 0x0e, 0x61, 0x73, 0x34, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x34, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0d, 0x61, 0x73, 0x34, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, - 0x69, 0x52, 0x07, 0x6d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x12, 0x3e, 0x0a, 0x0a, 0x6d, 0x70, - 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, + 0x07, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x62, 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, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, + 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x10, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x19, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, + 0x17, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0a, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0e, 0x61, 0x73, 0x34, + 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x34, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x0d, 0x61, 0x73, 0x34, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x39, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x58, 0x0a, 0x14, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, + 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x4d, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x52, - 0x09, 0x6d, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 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, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x22, 0xf6, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x67, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x66, - 0x6c, 0x61, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x66, 0x6c, 0x61, 0x67, - 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x12, 0x66, 0x6c, 0x61, 0x67, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x72, - 0x61, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, - 0x6c, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xd6, 0x02, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x65, 0x73, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, + 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x70, + 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x52, 0x07, 0x6d, 0x70, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x12, 0x3e, 0x0a, 0x0a, 0x6d, 0x70, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x55, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x52, 0x09, 0x6d, 0x70, 0x55, 0x6e, 0x72, + 0x65, 0x61, 0x63, 0x68, 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, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x22, 0xf6, 0x02, 0x0a, 0x1b, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x61, + 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0e, 0x66, 0x6c, 0x61, 0x67, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x03, 0x52, 0x12, 0x66, 0x6c, 0x61, 0x67, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd6, 0x02, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, - 0x61, 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, 0x51, 0x0a, 0x11, + 0x61, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 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, 0x51, 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x46, 0x6f, 0x75, 0x72, 0x42, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x42, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4e, 0x0a, 0x10, 0x74, 0x77, 0x6f, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x54, 0x77, 0x6f, + 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0d, 0x74, 0x77, 0x6f, 0x42, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 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, 0x15, 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x0e, 0x66, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x4e, 0x0a, 0x10, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x0d, 0x74, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 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, 0x15, 0x0a, 0x11, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x74, 0x77, 0x6f, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x21, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, - 0x68, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x43, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x22, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, - 0x72, 0x42, 0x79, 0x74, 0x65, 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, 0x66, - 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x42, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x21, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x77, - 0x6f, 0x42, 0x79, 0x74, 0x65, 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, 0x5b, - 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, - 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, 0x72, - 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x17, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 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, 0x25, - 0x0a, 0x0c, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x66, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, - 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x74, 0x77, - 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x44, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 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, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, - 0x74, 0x65, 0x5f, 0x61, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x77, 0x6f, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7c, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x34, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x4e, 0x75, 0x6d, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xca, 0x02, 0x0a, 0x16, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x44, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 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, 0x4c, 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x68, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x21, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x46, 0x6f, 0x75, 0x72, 0x42, + 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, + 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xf7, + 0x01, 0x0a, 0x22, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 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, 0x66, 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x54, + 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x08, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x52, 0x0f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x1a, 0x90, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 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, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x76, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0xd1, 0x02, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, - 0x70, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 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, 0x17, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x74, 0x77, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x65, 0x73, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x22, 0xf5, 0x01, 0x0a, 0x21, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 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, 0x5b, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x73, 0x34, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x46, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x17, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 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, 0x25, 0x0a, 0x0c, 0x66, 0x6f, 0x75, 0x72, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0a, 0x66, 0x6f, 0x75, 0x72, 0x42, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x23, 0x0a, 0x0b, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x09, 0x74, 0x77, 0x6f, 0x42, 0x79, 0x74, 0x65, 0x41, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x44, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 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, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x10, + 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, + 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0x7c, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x41, 0x73, 0x34, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, + 0x06, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x61, 0x73, 0x4e, 0x75, 0x6d, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xca, 0x02, + 0x0a, 0x16, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 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, 0x4c, + 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x1a, 0x90, 0x01, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 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, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x76, 0x0a, 0x1c, 0x42, 0x67, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0xd1, 0x02, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 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, + 0x17, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x12, 0x57, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x54, 0x77, 0x6f, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x54, 0x77, + 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x1a, 0x4d, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 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, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0x73, 0x0a, 0x24, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, - 0x76, 0x36, 0x54, 0x77, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x10, - 0x69, 0x70, 0x76, 0x36, 0x54, 0x77, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x1a, 0x4d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x74, 0x77, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x10, 0x03, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0x73, 0x0a, 0x24, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x36, 0x54, 0x77, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x22, 0x96, 0x04, 0x0a, 0x18, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x12, 0x34, - 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x07, 0x6e, 0x65, 0x78, - 0x74, 0x48, 0x6f, 0x70, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, - 0x6c, 0x72, 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, 0x3c, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, - 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, - 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, - 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, 0x76, - 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, - 0x0c, 0x69, 0x70, 0x76, 0x34, 0x53, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x43, 0x0a, - 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, 0x70, - 0x76, 0x36, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 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, 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x04, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe4, 0x03, 0x0a, 0x1a, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x55, 0x6e, - 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x55, - 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x76, 0x36, 0x54, 0x77, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x19, + 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22, 0x96, 0x04, 0x0a, 0x18, + 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 0x69, 0x12, 0x34, 0x0a, 0x08, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x12, 0x46, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x4d, 0x70, 0x52, 0x65, 0x61, 0x63, 0x68, 0x4e, 0x6c, 0x72, 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, 0x3c, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, + 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, + 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x53, + 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, + 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, + 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, 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, + 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe4, 0x03, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x4e, + 0x6c, 0x72, 0x69, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x70, 0x55, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x4e, 0x6c, 0x72, 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, 0x3c, 0x0a, + 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, + 0x49, 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, + 0x76, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, + 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x53, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x43, + 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, + 0x70, 0x76, 0x36, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x53, 0x72, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 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, 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x04, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4a, 0x0a, 0x23, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x43, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x40, 0x0a, 0x19, + 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 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, 0xf4, + 0x01, 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, + 0x61, 0x70, 0x73, 0x75, 0x6c, 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, 0x3c, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x34, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x4f, 0x6e, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, - 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x4c, 0x52, 0x49, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x53, 0x72, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0c, 0x69, 0x70, 0x76, - 0x36, 0x53, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x6b, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 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, 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, - 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4a, 0x0a, 0x23, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x45, 0x78, 0x69, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, - 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x43, 0x0a, - 0x1c, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x4c, 0x6f, - 0x63, 0x61, 0x6c, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x40, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 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, 0xf4, 0x01, 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, - 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 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, 0x43, 0x0a, 0x09, 0x73, 0x72, 0x5f, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x73, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, + 0x73, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0x73, + 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc1, 0x05, 0x0a, 0x21, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x54, 0x0a, 0x1a, 0x62, + 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x52, 0x18, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x61, 0x0a, 0x1f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, + 0x76, 0x36, 0x42, 0x73, 0x69, 0x64, 0x52, 0x1c, 0x73, 0x72, 0x76, 0x36, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x08, 0x73, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 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, 0x73, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x10, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc1, 0x05, 0x0a, 0x21, - 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x54, 0x0a, 0x1a, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x52, 0x18, 0x62, - 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x61, 0x0a, 0x1f, 0x73, 0x72, 0x76, 0x36, 0x5f, - 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x76, 0x36, 0x42, 0x73, 0x69, 0x64, 0x52, 0x1c, 0x73, 0x72, - 0x76, 0x36, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x45, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, + 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x61, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x63, 0x61, 0x6e, 0x64, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x1a, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x17, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x48, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x13, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x61, 0x6e, - 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x1a, 0x65, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x0b, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xf6, 0x01, 0x0a, 0x11, 0x42, 0x67, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x12, + 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x42, 0x73, 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, 0x2e, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x17, 0x65, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x48, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, - 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x0b, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0xf6, 0x01, 0x0a, 0x11, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x42, 0x73, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 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, 0x2e, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, - 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x04, 0x73, 0x72, 0x76, 0x36, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, - 0x52, 0x04, 0x73, 0x72, 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, 0x6d, 0x70, 0x6c, - 0x73, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x72, 0x76, 0x36, 0x10, 0x02, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x73, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x16, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x13, 0x66, 0x6c, 0x61, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x6f, 0x6e, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, - 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x53, 0x72, - 0x76, 0x36, 0x12, 0x3c, 0x0a, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x73, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x16, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x13, 0x66, 0x6c, 0x61, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x6f, 0x6e, - 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x08, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, - 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x22, 0xdc, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x76, 0x36, 0x42, 0x73, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x18, + 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, + 0x12, 0x2e, 0x0a, 0x04, 0x73, 0x72, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x52, 0x04, 0x73, 0x72, 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, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x73, 0x72, 0x76, 0x36, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x3c, 0x0a, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, @@ -127095,325 +132739,246 @@ var file_otg_proto_rawDesc = []byte{ 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x66, 0x6c, 0x61, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x18, 0x66, 0x6c, 0x61, - 0x67, 0x53, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x08, 0x69, - 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, - 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, - 0x76, 0x69, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, + 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x42, 0x73, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x12, 0x3c, 0x0a, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, - 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, 0x76, - 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x22, 0xc3, 0x01, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, - 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, - 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x6f, 0x73, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x22, 0x32, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x12, - 0x13, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, - 0x70, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x70, 0x22, 0x46, 0x0a, 0x1f, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, + 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x15, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x73, 0x69, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x66, 0x6c, + 0x61, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x55, 0x70, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x41, + 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, + 0x6e, 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xdc, 0x03, 0x0a, + 0x15, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, + 0x76, 0x36, 0x42, 0x73, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x15, 0x66, 0x6c, 0x61, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x73, 0x69, 0x64, 0x4f, 0x6e, 0x6c, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x66, 0x6c, 0x61, 0x67, 0x44, 0x72, 0x6f, 0x70, + 0x55, 0x70, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x1b, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x18, 0x66, 0x6c, 0x61, 0x67, 0x53, 0x72, 0x76, 0x36, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, + 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, + 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x73, 0x69, 0x64, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, + 0x5f, 0x75, 0x70, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x1e, 0x0a, + 0x1c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xc3, 0x01, 0x0a, 0x14, + 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, + 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x28, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x62, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x66, + 0x6c, 0x61, 0x67, 0x42, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x6f, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, + 0x6c, 0x22, 0x32, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x88, 0x01, 0x01, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x69, 0x70, 0x22, 0x46, 0x0a, 0x1f, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x44, 0x0a, + 0x1d, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x44, 0x0a, 0x1d, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x28, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 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, 0x46, 0x0a, 0x1f, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 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, 0x81, 0x02, 0x0a, 0x27, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, - 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x55, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 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, 0x1a, 0x74, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x64, - 0x6f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x54, 0x0a, 0x08, - 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x22, 0x59, 0x0a, 0x32, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x08, - 0x0a, 0x33, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, + 0x6c, 0x75, 0x65, 0x22, 0x4f, 0x0a, 0x28, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 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, 0x46, 0x0a, 0x1f, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x01, 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, 0x81, 0x02, 0x0a, + 0x27, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x4e, 0x75, 0x6c, 0x6c, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 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, 0x1a, + 0x74, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x02, 0x12, 0x0d, + 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x10, 0x03, 0x12, 0x16, 0x0a, + 0x12, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x64, 0x6f, 0x6e, 0x6f, 0x74, 0x5f, 0x70, + 0x75, 0x73, 0x68, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0xc9, 0x01, 0x0a, 0x20, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x53, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 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, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x41, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x12, 0x42, 0x0a, 0x06, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x43, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x44, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x44, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x45, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x12, 0x42, 0x0a, 0x06, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, - 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x47, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x47, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x48, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x06, + 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x54, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x49, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x12, 0x42, 0x0a, 0x06, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4a, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, - 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x52, 0x05, 0x74, - 0x79, 0x70, 0x65, 0x4b, 0x1a, 0xa6, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, - 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, - 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, - 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x26, 0x42, 0x67, 0x70, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x59, 0x0a, 0x32, + 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb8, 0x08, 0x0a, 0x33, 0x42, 0x67, 0x70, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 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, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x41, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x41, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x41, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x70, - 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, - 0x22, 0x9d, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x42, 0x12, 0x45, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x70, 0x65, 0x42, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x43, 0x12, 0x42, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x44, 0x52, 0x05, 0x74, 0x79, 0x70, + 0x65, 0x44, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, - 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, - 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, - 0x22, 0xaa, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x45, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x46, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x46, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x47, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x47, 0x12, 0x42, + 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x43, 0x12, 0x45, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x52, 0x05, 0x74, 0x79, 0x70, + 0x65, 0x48, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x49, 0x52, + 0x05, 0x74, 0x79, 0x70, 0x65, 0x49, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x4a, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x6b, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, - 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, - 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xaa, 0x02, - 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x44, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, - 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, - 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, - 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, - 0x53, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x26, 0x42, + 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x4b, 0x1a, 0xa6, + 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 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, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x62, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x63, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x64, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x10, 0x05, 0x12, + 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x66, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x67, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x68, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x10, 0x09, 0x12, + 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6a, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x10, 0x0b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x41, 0x12, 0x45, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, + 0x73, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x22, 0x9d, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x45, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, - 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, - 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x46, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, - 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf4, 0x03, 0x0a, - 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x47, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, - 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, - 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, - 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, - 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, - 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x12, 0x45, - 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, - 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, - 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa6, 0x03, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x08, + 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x7f, 0x0a, 0x16, + 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x22, 0xaa, 0x02, 0x0a, 0x26, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, + 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, + 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, + 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xaa, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x65, 0x44, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, @@ -127423,49 +132988,122 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x52, - 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, - 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, - 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, - 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xa9, 0x05, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, + 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x45, 0x12, + 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x45, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, - 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, - 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, - 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x6f, 0x64, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, + 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x22, 0xc1, 0x02, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x12, 0x45, 0x0a, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, + 0x73, 0x72, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, + 0x4d, 0x70, 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf4, 0x03, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x47, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x14, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, + 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, + 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, + 0x6c, 0x73, 0x53, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x04, 0x52, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, + 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc1, 0x02, + 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x72, 0x5f, 0x6d, 0x70, + 0x6c, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x53, 0x69, 0x64, 0x4d, 0x70, 0x6c, 0x73, 0x52, 0x09, 0x73, 0x72, 0x4d, 0x70, 0x6c, 0x73, 0x53, + 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0xa6, 0x03, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x49, 0x12, 0x45, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, - 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, @@ -127473,5200 +133111,5641 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, - 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf6, 0x03, 0x0a, - 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x4b, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, - 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, - 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, 0x72, 0x76, 0x36, 0x52, 0x07, 0x73, 0x72, 0x76, - 0x36, 0x53, 0x69, 0x64, 0x12, 0x7f, 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x69, 0x74, 0x68, 0x6d, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa9, 0x05, 0x0a, 0x26, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x54, 0x79, 0x70, 0x65, 0x4a, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, - 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, - 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, - 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x76, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x76, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x1a, 0x0a, 0x06, 0x61, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x01, 0x52, 0x05, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, - 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, - 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x62, 0x5f, 0x66, 0x6c, - 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x62, 0x46, 0x6c, 0x61, - 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x76, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x22, 0xda, 0x02, 0x0a, 0x44, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, + 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x01, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x15, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x73, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, 0x64, 0x53, + 0x72, 0x76, 0x36, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x7f, 0x0a, 0x16, + 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xf6, 0x03, 0x0a, 0x26, 0x42, 0x67, 0x70, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x4b, 0x12, 0x45, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x72, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x0b, 0x73, 0x72, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x02, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x70, 0x76, 0x36, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x72, 0x76, 0x36, + 0x5f, 0x73, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x69, + 0x64, 0x53, 0x72, 0x76, 0x36, 0x52, 0x07, 0x73, 0x72, 0x76, 0x36, 0x53, 0x69, 0x64, 0x12, 0x7f, + 0x0a, 0x16, 0x73, 0x72, 0x76, 0x36, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x65, 0x6e, 0x64, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x01, 0x52, 0x08, 0x6c, 0x62, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x6c, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x61, - 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, - 0x75, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x4f, 0x0a, - 0x28, 0x42, 0x67, 0x70, 0x4e, 0x4c, 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x65, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf1, - 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, - 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x5e, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x18, 0x6c, 0x65, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x14, 0x73, 0x72, 0x76, 0x36, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x72, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, + 0xc8, 0x01, 0x0a, 0x2a, 0x42, 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x54, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1a, + 0x0a, 0x06, 0x76, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, + 0x52, 0x05, 0x76, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x61, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x61, 0x46, + 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x05, 0x62, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x76, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xda, 0x02, 0x0a, 0x44, 0x42, + 0x67, 0x70, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x53, 0x52, 0x76, 0x36, 0x53, 0x49, 0x44, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x41, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x11, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x75, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x62, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x62, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6e, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, + 0x6c, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x66, + 0x75, 0x6e, 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x0a, 0x66, 0x75, 0x6e, 0x63, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x72, 0x67, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x09, 0x61, 0x72, 0x67, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x75, 0x72, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6c, 0x62, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, + 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x75, 0x6e, + 0x63, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x72, 0x67, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x4f, 0x0a, 0x28, 0x42, 0x67, 0x70, 0x4e, 0x4c, + 0x52, 0x49, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, + 0x68, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf1, 0x08, 0x0a, 0x09, 0x42, 0x67, 0x70, + 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, + 0x70, 0x65, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x4f, 0x0a, 0x16, 0x65, 0x76, 0x70, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x65, 0x76, + 0x70, 0x6e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, + 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x01, 0x52, 0x06, 0x61, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4e, + 0x0a, 0x0f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x2e, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x73, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, + 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x0a, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x5e, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, - 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, - 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, - 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, - 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, - 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 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, 0x62, 0x67, - 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, - 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, - 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, 0x75, 0x72, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, - 0x36, 0x50, 0x65, 0x65, 0x72, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, - 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, - 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x56, 0x70, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, - 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, - 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, - 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, - 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, - 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, - 0x65, 0x72, 0x53, 0x72, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x05, 0x52, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x06, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, - 0x72, 0x74, 0x69, 0x73, 0x65, 0x53, 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, - 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, - 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, - 0x68, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x18, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x31, 0x0a, 0x09, 0x76, 0x34, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x34, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x34, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x76, 0x36, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x56, 0x36, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x08, 0x76, 0x36, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x34, 0x5f, 0x73, 0x72, 0x74, + 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x34, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x34, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x10, 0x76, 0x36, 0x5f, 0x73, 0x72, 0x74, + 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x53, 0x72, 0x74, 0x65, 0x56, 0x36, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0e, 0x76, 0x36, 0x53, 0x72, 0x74, 0x65, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x42, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, + 0x1a, 0x35, 0x0a, 0x06, 0x41, 0x73, 0x54, 0x79, 0x70, 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, 0x62, 0x67, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x65, 0x62, 0x67, 0x70, 0x10, 0x02, 0x1a, 0x3b, 0x0a, 0x0d, 0x41, 0x73, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x57, 0x69, 0x64, 0x74, 0x68, 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, 0x07, 0x0a, 0x03, 0x74, 0x77, 0x6f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6f, + 0x75, 0x72, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x0e, + 0x42, 0x67, 0x70, 0x56, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x09, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x56, 0x36, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x14, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x5f, 0x76, 0x70, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6e, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x56, 0x70, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x14, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x45, 0x6e, 0x63, + 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x11, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, + 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x70, 0x79, + 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x64, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, + 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x64, 0x73, 0x50, 0x65, 0x72, 0x53, 0x72, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, - 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, - 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0xcc, 0x04, 0x0a, 0x14, 0x42, 0x67, 0x70, - 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, - 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, - 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x65, 0x73, - 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x65, 0x73, 0x69, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, - 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, - 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, - 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, - 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3a, 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, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, - 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, - 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, - 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, - 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 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, 0x2f, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, - 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x65, - 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 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, 0x65, 0x76, - 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, - 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, - 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x12, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, - 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, - 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x1c, + 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x31, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x10, 0x73, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x38, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, + 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x07, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x53, + 0x72, 0x54, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, + 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x5f, 0x76, 0x70, 0x6e, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, + 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, + 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, + 0x69, 0x64, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x72, 0x68, 0x42, 0x23, 0x0a, 0x21, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x72, 0x5f, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x22, 0xcc, 0x04, 0x0a, 0x14, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x64, + 0x66, 0x5f, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x64, 0x66, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x26, 0x0a, 0x04, 0x65, 0x76, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, 0x76, 0x69, + 0x73, 0x52, 0x04, 0x65, 0x76, 0x69, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x73, 0x69, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x65, 0x73, 0x69, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, + 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x65, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, + 0x68, 0x1a, 0x48, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x22, + 0x3a, 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, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x61, + 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x02, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x65, 0x73, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x65, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x22, 0xba, 0x01, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x70, 0x6e, 0x45, + 0x76, 0x69, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, + 0x76, 0x70, 0x6e, 0x45, 0x76, 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, 0x2f, 0x0a, 0x09, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, + 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x65, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 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, 0x65, 0x76, 0x69, 0x5f, 0x76, 0x78, 0x6c, 0x61, + 0x6e, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, + 0x07, 0x0a, 0x0d, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x12, 0x4e, 0x0a, 0x11, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, + 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x10, + 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x12, 0x57, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x6d, 0x73, + 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, + 0x09, 0x70, 0x6d, 0x73, 0x69, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, + 0x08, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x07, 0x61, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x44, 0x69, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x13, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x11, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x43, 0x0a, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x52, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, + 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, - 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, - 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, - 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x43, - 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x17, 0x0a, 0x13, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, - 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, - 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, - 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, - 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, - 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, - 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, - 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, - 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x48, + 0x0a, 0x16, 0x6c, 0x33, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x13, 0x6c, 0x33, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, + 0x6e, 0x63, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, + 0x64, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x0b, 0x63, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 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, 0x3d, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x45, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x0e, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, + 0x27, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x43, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x6d, 0x73, 0x69, 0x5f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0xe2, + 0x01, 0x0a, 0x1c, 0x42, 0x67, 0x70, 0x56, 0x36, 0x45, 0x76, 0x69, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, + 0x37, 0x0a, 0x0d, 0x63, 0x6d, 0x61, 0x63, 0x5f, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x43, 0x4d, 0x61, 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6d, 0x61, + 0x63, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x54, 0x61, 0x67, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x01, 0x52, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x41, 0x77, 0x61, 0x72, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x22, 0x73, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, + 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, + 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x13, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x15, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, + 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 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, + 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x03, + 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x76, 0x6e, 0x69, + 0x88, 0x01, 0x01, 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, 0x13, 0x0a, 0x11, + 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 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, 0x44, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x09, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x76, - 0x36, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x76, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x22, 0xea, - 0x01, 0x0a, 0x0d, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x53, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, + 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 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, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0xca, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, - 0x64, 0x65, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 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, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, - 0x6e, 0x69, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x0d, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, - 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, - 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x70, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x52, - 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x70, 0x4d, 0x6f, - 0x64, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 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, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 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, 0x44, 0x0a, 0x07, 0x75, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, - 0x4a, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, + 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 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, 0x0b, - 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x1e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, - 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, - 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 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, 0x44, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x09, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 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, 0x0b, 0x0a, 0x07, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, - 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, - 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, - 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, - 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x6e, 0x49, 0x50, 0x4d, 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, 0x44, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x07, 0x75, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, + 0x73, 0x74, 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, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, + 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6d, 0x0a, 0x25, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, - 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, - 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, - 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, - 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, - 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, - 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, - 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, + 0x56, 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x22, 0x6d, 0x0a, 0x25, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, + 0x74, 0x65, 0x70, 0x52, 0x05, 0x76, 0x74, 0x65, 0x70, 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x36, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, + 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x6d, 0x4d, 0x61, 0x63, 0x88, 0x01, 0x01, 0x12, 0x29, + 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x56, 0x6d, 0x49, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x22, 0xe9, + 0x01, 0x0a, 0x29, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, + 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, - 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, - 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, - 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, - 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, + 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, + 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, + 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x29, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x56, 0x74, 0x65, 0x70, 0x12, 0x33, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x56, + 0x74, 0x65, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x6f, 0x0a, + 0x15, 0x61, 0x72, 0x70, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x55, + 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x41, 0x72, 0x70, 0x53, 0x75, 0x70, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x13, 0x61, 0x72, 0x70, 0x53, 0x75, + 0x70, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x16, + 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x76, 0x74, 0x65, 0x70, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, + 0x74, 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, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 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, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x22, 0x54, 0x0a, 0x27, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x36, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x50, - 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 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, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, - 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, 0xf7, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, - 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, - 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x05, 0x52, 0x16, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x07, 0x52, 0x0f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0b, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x09, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0a, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, - 0x81, 0x02, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, - 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x14, 0x70, 0x32, - 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, - 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, - 0x4c, 0x73, 0x70, 0x52, 0x11, 0x70, 0x32, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, - 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, - 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, - 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x04, 0x0a, 0x24, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, - 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, - 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x11, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x1a, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x79, 0x6c, 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, 0x13, 0x0a, - 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, - 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc1, 0x05, 0x0a, 0x25, 0x52, 0x73, 0x76, 0x70, 0x4c, - 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, - 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, - 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x73, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x73, 0x76, + 0x70, 0x12, 0x3f, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, + 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x11, 0x6c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, + 0xf7, 0x05, 0x0a, 0x11, 0x52, 0x73, 0x76, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, + 0x11, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, + 0x0a, 0x0f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, + 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, + 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x73, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x16, + 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, + 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x10, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0f, 0x62, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, + 0x65, 0x6c, 0x6c, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x09, 0x52, 0x0d, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x05, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, - 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, - 0x52, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x35, 0x0a, 0x14, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, - 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, - 0x52, 0x12, 0x6c, 0x73, 0x70, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x24, 0x0a, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x05, - 0x74, 0x73, 0x70, 0x65, 0x63, 0x12, 0x37, 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x52, 0x0b, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1e, - 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, - 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, - 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xbc, 0x06, 0x0a, 0x14, 0x52, - 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x0a, 0x52, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x42, + 0x1b, 0x0a, 0x19, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x65, + 0x6e, 0x64, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x62, 0x75, + 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x22, 0x81, 0x02, 0x0a, 0x14, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x5a, 0x0a, 0x14, 0x70, 0x32, 0x70, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x11, 0x70, + 0x32, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, + 0x12, 0x5d, 0x0a, 0x15, 0x70, 0x32, 0x70, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, + 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x52, 0x12, 0x70, 0x32, 0x70, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd0, 0x04, + 0x0a, 0x24, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x70, 0x6c, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x11, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x71, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x45, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x03, 0x52, 0x10, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x79, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x04, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, + 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x5c, 0x0a, 0x10, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 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, 0x13, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x08, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0xc1, 0x05, 0x0a, 0x25, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x50, 0x32, 0x50, 0x49, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, + 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, + 0x12, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x69, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x11, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0b, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6c, 0x73, + 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x12, 0x6c, 0x73, 0x70, 0x53, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x74, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x05, 0x74, 0x73, 0x70, 0x65, 0x63, 0x12, + 0x37, 0x0a, 0x0c, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0b, 0x66, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x03, 0x65, 0x72, 0x6f, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, + 0x45, 0x72, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x6f, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 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, 0x13, 0x0a, + 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x22, 0xbc, 0x06, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, + 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, + 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x02, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, + 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x06, 0x52, 0x0e, 0x73, 0x65, 0x53, + 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, + 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x12, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x16, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x15, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, - 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x06, 0x52, 0x0e, 0x73, 0x65, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x1c, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x1a, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, - 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, - 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x1b, - 0x0a, 0x19, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, - 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, 0x1d, - 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, - 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, - 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, - 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, + 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, + 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, + 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x16, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x41, 0x66, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x24, + 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x22, 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, - 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, - 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, - 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, - 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, - 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, + 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, + 0x22, 0xf7, 0x02, 0x0a, 0x09, 0x52, 0x73, 0x76, 0x70, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2f, + 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, + 0x6e, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x12, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, - 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, + 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xce, 0x04, 0x0a, 0x0f, 0x52, + 0x73, 0x76, 0x70, 0x46, 0x61, 0x73, 0x74, 0x52, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, + 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, + 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, + 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x03, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, + 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, - 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, - 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, - 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, - 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, - 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x49, 0x70, 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, 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, 0x4e, 0x0a, 0x10, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x12, 0x3a, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x52, 0x0e, 0x69, 0x70, - 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, - 0x0c, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x12, 0x17, 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, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x69, 0x70, 0x76, - 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, - 0x6f, 0x6f, 0x6c, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x10, - 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, - 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, - 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, - 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, - 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xc5, 0x02, 0x0a, 0x16, - 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, - 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, - 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, - 0x44, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x16, - 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x74, 0x6c, 0x76, 0x5f, 0x38, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x12, - 0x65, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x57, 0x69, 0x74, 0x68, 0x54, 0x6c, 0x76, - 0x38, 0x32, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, - 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, - 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x68, - 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6c, 0x76, - 0x5f, 0x38, 0x32, 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, - 0x87, 0x09, 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, - 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, 0x12, 0x21, 0x0a, 0x04, - 0x72, 0x73, 0x76, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x1a, - 0x8c, 0x02, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x81, 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, 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, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x15, 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, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x06, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x19, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x15, 0x6f, 0x6e, 0x65, 0x54, 0x6f, 0x4f, 0x6e, 0x65, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x17, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x08, 0x52, 0x15, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, + 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, + 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, + 0x6c, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, + 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, + 0x1a, 0x0a, 0x18, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x62, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x07, + 0x52, 0x73, 0x76, 0x70, 0x45, 0x72, 0x6f, 0x12, 0x58, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x45, + 0x72, 0x6f, 0x2e, 0x50, 0x72, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x49, 0x70, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x11, 0x70, 0x72, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x70, 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, 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, 0x8a, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0f, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x56, 0x36, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x56, 0x34, 0x12, 0x17, 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, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x3a, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, + 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0c, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x10, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, + 0x74, 0x61, 0x72, 0x74, 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, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x05, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x34, + 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 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, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x22, 0xc5, 0x02, 0x0a, 0x16, 0x44, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x56, 0x34, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, + 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x10, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x44, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x12, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x44, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x16, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6c, 0x76, 0x5f, 0x38, 0x32, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x12, 0x65, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x79, + 0x57, 0x69, 0x74, 0x68, 0x54, 0x6c, 0x76, 0x38, 0x32, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x15, 0x0a, 0x13, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, + 0x19, 0x0a, 0x17, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6c, 0x76, 0x5f, 0x38, 0x32, 0x22, 0xe1, 0x02, 0x0a, 0x0c, 0x44, + 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x36, 0x12, 0x17, 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, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x69, 0x70, 0x76, 0x36, 0x4e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0b, + 0x72, 0x61, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x1b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, + 0x61, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x18, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x61, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x56, 0x36, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x42, 0x1e, + 0x0a, 0x1c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x5f, 0x76, + 0x69, 0x61, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0xca, + 0x01, 0x0a, 0x13, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x56, 0x36, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x6e, 0x73, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x43, + 0x0a, 0x0b, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x56, 0x65, 0x6e, + 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x46, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x42, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x52, 0x0b, + 0x62, 0x6f, 0x6f, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x78, 0x0a, 0x11, 0x44, + 0x68, 0x63, 0x70, 0x56, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x69, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xf8, 0x02, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x61, 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, 0x2d, + 0x0a, 0x04, 0x69, 0x61, 0x6e, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x61, 0x6e, 0x61, 0x12, 0x2d, 0x0a, + 0x04, 0x69, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, + 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x04, + 0x69, 0x61, 0x70, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x70, + 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x61, 0x70, 0x64, 0x12, + 0x37, 0x0a, 0x06, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x49, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x06, 0x69, 0x61, 0x6e, 0x61, 0x70, 0x64, 0x1a, 0x4b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x41, 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, + 0x61, 0x6e, 0x61, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x61, 0x74, 0x61, 0x10, 0x02, 0x12, + 0x08, 0x0a, 0x04, 0x69, 0x61, 0x70, 0x64, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x61, 0x6e, + 0x61, 0x70, 0x64, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0xfc, 0x02, 0x0a, + 0x18, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x70, + 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, + 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x22, 0x7e, 0x0a, 0x1a, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x6e, 0x61, 0x70, + 0x64, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x04, 0x69, 0x61, 0x6e, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x69, 0x61, 0x6e, 0x61, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x61, 0x70, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x61, 0x70, 0x64, 0x50, 0x6f, 0x6f, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x61, 0x70, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x0f, + 0x44, 0x68, 0x63, 0x70, 0x56, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x6e, 0x73, 0x12, + 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x42, + 0x0a, 0x0d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, + 0x56, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x44, 0x6e, 0x73, 0x52, 0x0c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x44, + 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x36, + 0x0a, 0x18, 0x44, 0x68, 0x63, 0x70, 0x56, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x44, 0x6e, 0x73, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x70, 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, 0x87, 0x09, 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, 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, 0x12, + 0x21, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x52, 0x04, 0x72, 0x73, + 0x76, 0x70, 0x1a, 0x8c, 0x02, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x81, 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, 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, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, + 0x15, 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, - 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, + 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, 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, + 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, 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, + 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, - 0x2e, 0x43, 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, + 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, 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, + 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, 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, + 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, - 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, 0x82, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 0x6f, 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, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 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, 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, 0x64, 0x68, 0x63, 0x70, 0x10, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, + 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, 0x82, 0x01, 0x0a, 0x0c, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 0x6f, 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, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 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, 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, 0x64, 0x68, + 0x63, 0x70, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 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, + 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, - 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, + 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, 0x82, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x41, 0x75, 0x74, 0x6f, 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, + 0x49, 0x70, 0x76, 0x36, 0x41, 0x75, 0x74, 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, 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, 0x64, 0x68, 0x63, 0x70, 0x10, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 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, + 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, - 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, + 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, 0xdf, 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, - 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, 0xdf, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, 0x12, 0x37, 0x0a, - 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 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, 0x12, 0x37, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 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, 0x54, 0x63, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 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, + 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, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, - 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, 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, 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, + 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, - 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, + 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, 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, 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, + 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, 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, + 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, 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, 0xc4, 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, 0x4d, - 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x01, - 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, 0x02, 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, 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, 0x82, 0x02, 0x0a, 0x25, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x6e, 0x6d, + 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, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x53, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, - 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, 0x53, - 0x74, 0x72, 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, 0x19, 0x0a, 0x05, 0x61, 0x73, 0x63, 0x69, 0x69, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x61, 0x73, 0x63, 0x69, 0x69, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x72, - 0x61, 0x77, 0x88, 0x01, 0x01, 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, 0x09, 0x0a, 0x05, 0x61, 0x73, 0x63, 0x69, - 0x69, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x63, 0x69, - 0x69, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x22, 0x85, 0x04, 0x0a, 0x08, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, - 0x76, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x04, - 0x66, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x73, 0x76, 0x70, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 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, 0xc4, 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, 0x4d, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 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, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x01, 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, - 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x52, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 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, 0x52, 0x73, 0x76, 0x70, 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, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x72, 0x73, - 0x76, 0x70, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0a, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x61, 0x0a, 0x04, 0x46, 0x6c, 0x61, - 0x67, 0x22, 0x59, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, - 0x74, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x1d, 0x0a, - 0x19, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 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, 0xb6, 0x01, 0x0a, - 0x0f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 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, 0x52, 0x53, 0x56, 0x50, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 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, - 0x2c, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x2b, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 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, 0x02, 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, 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, 0x82, 0x02, 0x0a, + 0x25, 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, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 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, 0x53, 0x74, 0x72, 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, 0x19, 0x0a, 0x05, 0x61, + 0x73, 0x63, 0x69, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x61, 0x73, + 0x63, 0x69, 0x69, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 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, 0x70, 0x61, 0x74, 0x68, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x49, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x07, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x12, 0x09, 0x0a, 0x05, 0x61, 0x73, 0x63, 0x69, 0x69, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x72, + 0x61, 0x77, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x63, 0x69, 0x69, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, + 0x77, 0x22, 0x85, 0x04, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x12, 0x1d, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x67, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, + 0x45, 0x0a, 0x0d, 0x72, 0x73, 0x76, 0x70, 0x5f, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 0x70, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x52, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 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, 0x52, 0x73, + 0x76, 0x70, 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, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0a, 0x72, 0x73, + 0x76, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x37, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x1a, 0x61, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x59, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x61, + 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, + 0x6c, 0x65, 0x10, 0x02, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 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, 0xb6, 0x01, 0x0a, 0x0f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 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, 0x52, 0x53, 0x56, 0x50, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 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, 0x2c, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 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, 0x61, 0x74, 0x68, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x49, 0x0a, + 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x51, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, + 0x3a, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x75, 0x6d, 0x22, 0xe4, 0x01, 0x0a, 0x14, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 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, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 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, 0xb3, 0x08, 0x0a, 0x18, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, + 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 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, 0x3e, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x08, 0x72, 0x73, 0x76, 0x70, 0x5f, + 0x68, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x52, + 0x07, 0x72, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x22, 0x51, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x08, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x4e, 0x75, 0x6d, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 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, + 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, + 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x73, 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x1a, 0xd1, 0x01, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc6, 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, 0x0b, + 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x72, + 0x73, 0x76, 0x70, 0x5f, 0x68, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x65, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x11, + 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, + 0x05, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x10, 0x0a, + 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x10, 0x08, 0x12, + 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, + 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x0a, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 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, 0xb3, 0x08, 0x0a, 0x18, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x3b, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x82, 0x02, 0x0a, + 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x54, 0x79, 0x70, 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, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 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, - 0x3e, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x08, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x52, 0x07, 0x72, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, - 0x12, 0x48, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0e, 0x65, 0x78, - 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0d, - 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4e, 0x0a, - 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, - 0x11, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, - 0x4b, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, - 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x4b, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x0b, 0x72, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x1a, 0xd1, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc6, 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, 0x0b, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x68, 0x6f, 0x70, 0x10, - 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x10, 0x06, - 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, - 0x74, 0x73, 0x70, 0x65, 0x63, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x10, 0x0a, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x91, 0x01, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x54, 0x79, 0x70, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 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, 0x4d, 0x0a, 0x0f, 0x6c, 0x73, 0x70, 0x5f, 0x74, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x0d, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 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, 0x13, 0x0a, 0x0f, 0x6c, 0x73, 0x70, - 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x20, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x87, - 0x01, 0x0a, 0x1d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, - 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, - 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x19, 0x69, - 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x09, 0x74, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, - 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x64, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x51, 0x0a, - 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4d, 0x0a, 0x0f, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x0d, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 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, 0x13, 0x0a, 0x0f, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xa4, 0x03, 0x0a, 0x20, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x87, 0x01, 0x0a, 0x1d, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, + 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x19, 0x69, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x50, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x52, 0x10, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, - 0x22, 0xd8, 0x02, 0x0a, 0x1e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 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, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x52, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x12, 0x51, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x52, 0x09, 0x61, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 0x52, 0x06, 0x61, 0x73, 0x49, 0x70, 0x76, 0x34, - 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, 0x0e, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x1f, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x12, - 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x73, 0x76, 0x70, - 0x48, 0x6f, 0x70, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, - 0xda, 0x01, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x43, 0x54, - 0x79, 0x70, 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, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x73, 0x76, - 0x70, 0x48, 0x6f, 0x70, 0x43, 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, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, - 0x69, 0x70, 0x76, 0x34, 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, 0x69, 0x70, 0x76, 0x34, 0x10, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe1, 0x01, 0x0a, - 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, - 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x12, 0x51, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, - 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x73, 0x0a, 0x18, 0x6c, - 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x52, 0x08, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xd8, 0x02, 0x0a, 0x1e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x52, 0x0a, 0x0a, 0x61, 0x73, 0x5f, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x16, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x22, 0x97, 0x01, 0x0a, 0x22, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, + 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x52, 0x09, 0x61, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x49, 0x0a, + 0x07, 0x61, 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x06, 0x61, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x0e, 0x0a, 0x0a, 0x61, + 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x61, + 0x73, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x22, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 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, 0x37, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x31, 0x1a, 0x2d, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x23, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x65, 0x63, 0x74, 0x73, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x43, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x1f, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x43, 0x54, 0x79, 0x70, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x43, 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, 0x30, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, + 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 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, - 0x0a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x7e, 0x0a, 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x5f, 0x0a, 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x22, 0xa2, 0x01, 0x0a, 0x25, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x2a, + 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, + 0x12, 0x51, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x73, 0x0a, 0x18, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, + 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x52, 0x16, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x22, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x22, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 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, 0x3a, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x31, - 0x1a, 0x2d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x23, 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, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x1e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x49, 0x0a, 0x0a, - 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x0a, 0x73, 0x75, 0x62, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x69, 0x0a, 0x24, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, - 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, - 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, - 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x28, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x56, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, - 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 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, 0x4e, 0x0a, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, + 0x63, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x43, 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, 0x37, 0x0a, 0x06, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x05, 0x74, + 0x79, 0x70, 0x65, 0x31, 0x1a, 0x2d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x23, + 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, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x31, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x7e, + 0x0a, 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x5f, 0x0a, + 0x10, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x52, 0x0e, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x22, 0xa2, + 0x01, 0x0a, 0x25, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x46, 0x0a, 0x06, 0x63, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x2a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 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, 0x3a, 0x0a, 0x06, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x0a, 0x69, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x48, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, - 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, - 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x1a, 0x41, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x37, 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, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xbf, 0x02, 0x0a, 0x28, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x4d, 0x0a, 0x05, - 0x6c, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x4c, 0x42, 0x69, 0x74, 0x52, 0x04, 0x6c, 0x42, 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x62, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x22, 0xe7, 0x01, 0x0a, 0x26, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x31, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x31, 0x1a, 0x2d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x23, 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, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x1e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x05, - 0x6c, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x79, 0x70, 0x65, 0x31, 0x12, 0x49, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, + 0x69, 0x0a, 0x24, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, + 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xea, 0x02, 0x0a, 0x28, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 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, + 0x4e, 0x0a, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x52, 0x0a, 0x69, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x48, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x42, 0x69, 0x74, 0x52, 0x04, 0x6c, 0x42, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x09, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, - 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x1b, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 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, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 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, 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, 0x82, 0x02, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, - 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 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, 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, 0x9b, 0x01, 0x0a, 0x24, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, - 0x79, 0x70, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x24, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x43, 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, 0x5e, 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, - 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x11, 0x77, - 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, - 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, 0x17, 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x29, 0x46, 0x6c, 0x6f, 0x77, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x1a, 0x41, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x37, 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, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbf, 0x02, 0x0a, 0x28, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x4d, 0x0a, 0x05, 0x6c, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 0x69, 0x74, 0x52, 0x04, 0x6c, + 0x42, 0x69, 0x74, 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, 0x52, 0x53, + 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x62, 0x0a, + 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0xe7, 0x01, 0x0a, 0x26, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x05, 0x6c, 0x5f, 0x62, 0x69, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, + 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 0x52, 0x04, 0x6c, 0x42, 0x69, + 0x74, 0x12, 0x40, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x53, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 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, 0x52, 0x53, + 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 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, 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, 0x82, 0x02, 0x0a, 0x23, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x45, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x53, 0x4e, 0x75, + 0x6d, 0x62, 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, 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, 0x9b, 0x01, + 0x0a, 0x24, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x24, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 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, 0x5e, 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x12, 0x50, 0x0a, 0x05, 0x6c, 0x33, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x17, 0x0a, 0x13, 0x77, + 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0xd8, 0x01, 0x0a, 0x29, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x59, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 0x70, 0x69, 0x64, 0x52, 0x05, 0x6c, 0x33, 0x70, - 0x69, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x28, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, - 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x28, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, - 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, 0x49, 0x0a, - 0x0a, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x6c, - 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x50, 0x0a, 0x0d, 0x6c, 0x73, 0x70, 0x5f, - 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x61, 0x52, 0x0b, 0x6c, - 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x61, 0x1a, 0x44, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 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, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x10, 0x01, 0x12, 0x11, 0x0a, - 0x0d, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe0, 0x02, 0x0a, 0x25, + 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, + 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x05, 0x6c, 0x33, 0x70, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, + 0x70, 0x69, 0x64, 0x52, 0x05, 0x6c, 0x33, 0x70, 0x69, 0x64, 0x22, 0xa3, 0x01, 0x0a, 0x28, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x22, 0xf0, 0x02, 0x0a, 0x28, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x43, 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, 0x49, 0x0a, 0x0a, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, - 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, - 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x26, 0x0a, - 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, - 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x84, - 0x04, 0x0a, 0x27, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, - 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, - 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, - 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x09, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x12, 0x50, 0x0a, 0x0d, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x61, 0x52, 0x0b, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x61, 0x1a, 0x44, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3a, 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, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x61, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xe0, 0x02, 0x0a, 0x25, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2a, 0x0a, + 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x84, 0x04, 0x0a, 0x27, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x61, 0x12, 0x24, 0x0a, 0x0b, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6e, 0x79, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x6c, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0d, + 0x73, 0x65, 0x74, 0x75, 0x70, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x2e, 0x0a, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0f, 0x68, 0x6f, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x73, + 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0c, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x01, + 0x0a, 0x15, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 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, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, - 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x15, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4c, 0x73, - 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 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, 0x1a, 0x72, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x68, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x1c, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x1b, 0x0a, + 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x65, + 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x10, 0x03, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x22, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 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, 0x1a, 0x72, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x68, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x65, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x5f, 0x64, - 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x80, 0x02, 0x0a, 0x22, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x50, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 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, 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, 0x9f, 0x01, 0x0a, 0x26, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x26, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 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, 0x54, 0x0a, 0x0f, 0x6c, 0x73, 0x70, - 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x52, 0x0d, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 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, 0x13, 0x0a, 0x0f, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x27, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x87, - 0x01, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, + 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, 0x9f, + 0x01, 0x0a, 0x26, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x97, 0x02, 0x0a, 0x26, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x43, 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, 0x54, 0x0a, 0x0f, 0x6c, 0x73, 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, - 0x17, 0x69, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x0d, 0x6c, 0x73, 0x70, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 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, 0x13, 0x0a, 0x0f, 0x6c, 0x73, + 0x70, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x27, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x52, 0x05, 0x6c, 0x73, 0x70, - 0x49, 0x64, 0x22, 0x99, 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, - 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, - 0x65, 0x63, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf4, - 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 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, 0x3e, 0x0a, 0x08, 0x69, 0x6e, 0x74, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x52, 0x07, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, - 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa6, 0x0b, 0x0a, 0x1e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x12, 0x4b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x87, 0x01, 0x0a, 0x1a, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x17, 0x69, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x73, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, + 0x70, 0x49, 0x64, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x22, 0x99, 0x01, 0x0a, 0x23, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, + 0x65, 0x63, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, + 0x70, 0x65, 0x63, 0x43, 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, 0x3e, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x07, 0x69, 0x6e, 0x74, 0x53, 0x65, 0x72, + 0x76, 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, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa6, 0x0b, + 0x0a, 0x1e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x12, 0x4b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x12, 0x5e, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x5e, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, - 0x61, 0x6c, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, - 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x61, - 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x5e, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x08, 0x7a, 0x65, 0x72, 0x6f, - 0x5f, 0x62, 0x69, 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, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, - 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 0x52, 0x07, 0x7a, - 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x12, 0x72, 0x0a, 0x16, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x8b, 0x01, - 0x0a, 0x1f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x1b, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x68, 0x0a, 0x12, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x5e, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x08, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x62, 0x69, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, + 0x72, 0x6f, 0x42, 0x69, 0x74, 0x52, 0x07, 0x7a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 0x12, 0x51, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x32, 0x12, 0x72, 0x0a, 0x16, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6f, 0x66, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x13, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x8b, 0x01, 0x0a, 0x1f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x74, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x52, 0x1b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, + 0x70, 0x65, 0x63, 0x12, 0x68, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x6e, 0x0a, + 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x31, 0x32, 0x37, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2f, 0x0a, + 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x14, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x6b, 0x0a, 0x13, 0x6d, 0x61, + 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, - 0x6c, 0x61, 0x67, 0x52, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, - 0x37, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x6e, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x5f, 0x31, 0x32, 0x37, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x52, 0x12, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x00, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x01, 0x52, 0x0f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x65, 0x61, 0x6b, 0x5f, - 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x02, 0x52, 0x0c, 0x70, 0x65, 0x61, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, - 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x12, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, - 0x69, 0x74, 0x12, 0x6b, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, - 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x11, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x99, - 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x23, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 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, 0x38, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x31, 0x1a, - 0x2d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x23, 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, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x67, 0x0a, 0x1c, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x75, 0x62, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, - 0x31, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x22, 0x6a, 0x0a, 0x22, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, - 0x70, 0x65, 0x31, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, - 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe2, - 0x02, 0x0a, 0x2b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x53, 0x75, 0x62, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, + 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x53, 0x69, 0x7a, 0x65, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x31, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xec, 0x01, 0x0a, 0x23, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x43, + 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, 0x38, 0x0a, + 0x06, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, + 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x31, 0x1a, 0x2d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x23, 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, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x31, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x67, 0x0a, 0x1c, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x31, 0x12, 0x47, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x0a, + 0x73, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0x6a, 0x0a, 0x22, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x12, 0x44, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 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, 0x4f, 0x0a, 0x0c, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 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, 0x10, 0x0a, 0x0c, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x27, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x2b, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x75, 0x62, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 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, 0x4f, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x36, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 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, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x02, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x27, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x61, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, + 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x64, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x49, 0x50, 0x76, 0x34, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x22, 0xd3, 0x01, 0x0a, 0x1b, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x50, 0x76, 0x34, 0x46, 0x6c, 0x61, 0x67, + 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, 0x52, 0x53, 0x56, 0x50, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x50, 0x76, 0x34, 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, 0x1a, 0x5e, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x54, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1e, + 0x0a, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x75, 0x73, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x21, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x0b, 0x69, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x64, 0x0a, 0x0d, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x49, + 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x36, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x50, 0x76, 0x34, 0x46, 0x6c, 0x61, - 0x67, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x1b, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x49, 0x50, 0x76, 0x34, 0x46, 0x6c, 0x61, 0x67, 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, 0x52, 0x53, 0x56, 0x50, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x49, 0x50, 0x76, 0x34, 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, 0x1a, 0x5e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x54, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x75, 0x73, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa9, - 0x02, 0x0a, 0x21, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x63, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x22, 0x8e, 0x02, 0x0a, 0x1c, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x8e, 0x02, 0x0a, 0x1c, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, - 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x4a, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 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, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x61, - 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x61, - 0x73, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x61, - 0x73, 0x48, 0x65, 0x78, 0x88, 0x01, 0x01, 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, 0x61, 0x73, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, - 0x5f, 0x68, 0x65, 0x78, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x78, 0x22, 0xee, 0x01, 0x0a, 0x19, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x52, 0x53, 0x56, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 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, 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, 0xb2, 0x01, 0x0a, - 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 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, + 0x62, 0x65, 0x6c, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 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, + 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x61, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x61, 0x73, 0x48, 0x65, 0x78, 0x88, 0x01, 0x01, 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, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x78, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x73, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x73, 0x5f, + 0x68, 0x65, 0x78, 0x22, 0xee, 0x01, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 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, 0x52, 0x53, 0x56, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 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, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 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, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, + 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, 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, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x12, 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x31, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 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, 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, + 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, 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, + 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, 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, 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, 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, + 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, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, + 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, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, 0xa3, 0x06, 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, + 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, 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, 0x12, 0x44, 0x0a, 0x0d, - 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, - 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0xa3, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x98, 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, 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, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, - 0x76, 0x34, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x64, - 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x0b, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb8, 0x07, 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, 0x12, 0x4a, 0x0a, 0x14, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x64, 0x68, 0x63, 0x70, - 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x4a, 0x0a, 0x14, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 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, 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, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x0b, 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, 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, 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, + 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, - 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, + 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, 0xd5, 0x07, 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, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, + 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0xc9, 0x01, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xbe, 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, 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, 0x12, 0x11, 0x0a, 0x0d, + 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, + 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x0d, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xf6, 0x08, 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, 0x12, 0x4a, 0x0a, + 0x14, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x4a, 0x0a, 0x14, 0x64, 0x68, 0x63, + 0x70, 0x76, 0x34, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x13, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x4a, 0x0a, 0x14, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x4a, 0x0a, 0x14, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x13, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x91, 0x02, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x86, 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, 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, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, + 0x76, 0x34, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x64, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x11, + 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, + 0x0d, 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, - 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, + 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, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, + 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, - 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, + 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, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, - 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, 0xc7, 0x02, 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 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, 0xb0, 0x01, 0x0a, - 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, + 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, 0x12, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x02, 0x12, - 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, - 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x22, - 0xe6, 0x03, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 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, - 0x2a, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, - 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0e, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x61, 0x63, - 0x6b, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, - 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0d, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, - 0x48, 0x06, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x0c, 0x64, 0x65, - 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, - 0x76, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x69, - 0x6e, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x22, 0xcb, 0x02, 0x0a, 0x1a, 0x44, 0x68, 0x63, - 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 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, - 0xb4, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 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, 0x16, 0x0a, 0x12, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x63, 0x6b, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6e, 0x61, 0x63, 0x6b, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, - 0x15, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x22, 0xf2, 0x03, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, - 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x32, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, - 0x02, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x08, 0x61, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x09, 0x6e, 0x61, 0x63, 0x6b, - 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x64, 0x65, - 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x10, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, + 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, 0xc7, 0x02, + 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x53, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 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, 0xb0, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 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, 0x12, + 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x12, 0x0a, + 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x22, 0xe6, 0x03, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x34, 0x43, 0x6c, 0x69, 0x65, 0x6e, 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, 0x2a, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x01, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x53, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0e, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, + 0x0d, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, + 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x07, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, + 0x0a, 0x0f, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x63, 0x6b, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6e, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x22, 0xcb, 0x02, 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, + 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0xb4, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 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, 0x16, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0e, 0x0a, 0x0a, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x22, 0xf2, + 0x03, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x32, + 0x0a, 0x12, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x11, 0x64, 0x69, + 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, + 0x08, 0x61, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x05, 0x52, 0x09, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x10, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, + 0x10, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x22, 0xfa, 0x03, 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, 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, 0xe3, 0x02, 0x0a, 0x0b, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd3, 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, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x1d, 0x0a, + 0x19, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, + 0x72, 0x65, 0x6e, 0x65, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x10, 0x0a, + 0x0c, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, + 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x1e, 0x0a, + 0x1a, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x21, 0x0a, + 0x1d, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0d, + 0x22, 0x8c, 0x08, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 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, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x17, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x16, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x0c, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, 0x52, 0x0d, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x19, 0x69, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, + 0x17, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, + 0x65, 0x6e, 0x65, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x08, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x62, 0x69, 0x6e, + 0x64, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0a, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0b, 0x52, 0x14, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, + 0x1a, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x6f, + 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x04, 0x48, 0x0c, 0x52, 0x17, 0x72, 0x61, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x53, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x1d, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x1a, 0x72, 0x61, 0x70, 0x69, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x19, + 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x1d, + 0x0a, 0x1b, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, + 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x72, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, + 0x9e, 0x04, 0x0a, 0x1a, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x87, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xf7, 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, 0x15, 0x0a, 0x11, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x73, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x74, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x10, 0x02, 0x12, 0x17, 0x0a, + 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, + 0x0a, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x15, 0x0a, + 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x72, + 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x65, + 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x0b, 0x12, 0x21, 0x0a, 0x1d, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xa6, 0x06, 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, 0x12, 0x4d, 0x0a, 0x11, - 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, - 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, - 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x64, - 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, - 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x1a, 0xb8, - 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 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, 0x12, - 0x15, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, - 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x10, 0x08, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0xf1, 0x05, 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, 0x12, 0x46, 0x0a, - 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, - 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, - 0x65, 0x73, 0x1a, 0xb8, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xad, 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, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, - 0x63, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x10, 0x08, 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, 0x64, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x66, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x0d, 0x12, 0x16, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0e, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x65, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0f, + 0x22, 0x80, 0x09, 0x0a, 0x12, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 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, 0x30, 0x0a, 0x11, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x10, 0x73, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x69, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x0f, + 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, + 0x03, 0x52, 0x12, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x04, 0x52, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6e, 0x61, + 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x48, 0x05, + 0x52, 0x09, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x48, 0x06, 0x52, 0x10, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x48, 0x07, 0x52, 0x10, 0x72, + 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x08, 0x52, 0x0f, + 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0a, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, + 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0b, 0x52, 0x10, 0x64, 0x65, 0x63, 0x6c, 0x69, + 0x6e, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x1d, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0c, 0x52, 0x1b, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x48, 0x0d, 0x52, 0x15, 0x72, 0x65, 0x6c, 0x61, + 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, + 0x48, 0x0e, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, + 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x04, 0x48, 0x0f, 0x52, 0x10, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, 0x6c, + 0x69, 0x63, 0x69, 0x74, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x61, 0x6c, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, + 0x64, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x22, 0xe2, 0x07, 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, - 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, + 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, 0x12, 0x4d, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xd7, 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, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x68, 0x63, + 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x10, 0x07, + 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x10, 0x0a, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xa0, 0x07, 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, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x68, 0x63, + 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x64, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3b, + 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, + 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x64, + 0x68, 0x63, 0x70, 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xd7, 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, 0x12, 0x15, 0x0a, 0x11, + 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x73, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x10, 0x09, 0x12, 0x11, 0x0a, + 0x0d, 0x64, 0x68, 0x63, 0x70, 0x76, 0x36, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x10, 0x0a, + 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, - 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, + 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, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 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, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, + 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, @@ -132677,309 +138756,343 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0xa5, 0x06, 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, - 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, 0xa5, 0x06, 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, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 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, 0xa5, 0x06, 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, 0x4f, - 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x43, 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, 0x80, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x15, - 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x72, - 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, - 0x64, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x72, 0x61, 0x77, 0x22, 0xfa, 0x06, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 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, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, + 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, 0xa5, 0x06, + 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, 0x4f, 0x0a, 0x14, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x13, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 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, 0x80, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, - 0x72, 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, 0x6d, 0x0a, 0x19, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, - 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, - 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x76, 0x0a, 0x1c, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x6d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, + 0x79, 0x12, 0x15, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x64, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x22, 0xfa, 0x06, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, - 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x66, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x77, 0x0a, 0x1d, 0x6e, 0x6f, - 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, - 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, - 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, - 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x6e, 0x6f, 0x6e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x1a, 0xc1, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb6, - 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, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, - 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, - 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, - 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, - 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, - 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, - 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, - 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd0, 0x03, 0x0a, - 0x2d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, + 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x12, 0x4f, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x6f, 0x0a, 0x14, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x75, 0x72, 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, + 0x6d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, + 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, + 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x76, + 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x6d, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x14, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, - 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0xcb, 0x01, 0x0a, 0x3b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x66, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, + 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x77, 0x0a, + 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, + 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x6e, 0x6f, 0x6e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xc1, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0xb6, 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, 0x1d, 0x0a, 0x19, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x34, 0x6f, 0x63, 0x74, 0x65, + 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x6e, 0x6f, 0x6e, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x32, 0x6f, 0x63, 0x74, 0x65, 0x74, + 0x5f, 0x61, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, + 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, + 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, + 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, + 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, + 0xd0, 0x03, 0x0a, 0x2d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, - 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, - 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, - 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xcb, 0x01, - 0x0a, 0x3b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, - 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, - 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, - 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xdc, 0x03, 0x0a, 0x30, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 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, 0x6f, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, + 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xcb, 0x01, 0x0a, 0x3b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 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, 0x72, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, + 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x22, 0xcb, 0x01, 0x0a, 0x3b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x72, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, + 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xdc, + 0x03, 0x0a, 0x30, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x72, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x72, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc2, 0x01, + 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, + 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, + 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, + 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, + 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, + 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x2d, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, + 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, @@ -132987,802 +139100,1449 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x38, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, 0x62, 0x79, 0x74, 0x65, 0x41, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, - 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, - 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, - 0xc2, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x0f, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x34, - 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x32, 0x62, 0x79, - 0x74, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x34, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x14, - 0x0a, 0x12, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xd0, 0x03, 0x0a, 0x2d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, - 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, - 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x6f, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x34, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x55, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x30, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, - 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, - 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x74, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb4, 0x03, 0x0a, 0x2b, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, - 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x30, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x6c, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x38, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, - 0x61, 0x71, 0x75, 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, 0x5a, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, - 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, - 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x72, 0x0a, - 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, - 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x65, 0x6e, 0x63, - 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 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, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, - 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb1, 0x01, - 0x0a, 0x3d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, - 0x70, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, - 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, 0x5f, - 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, - 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x01, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, 0x74, 0x65, - 0x5f, 0x61, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x22, 0xd6, 0x02, 0x0a, 0x30, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, - 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x78, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, + 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x0a, 0x74, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb4, 0x03, 0x0a, 0x2b, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, + 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, + 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 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, 0x5a, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6c, + 0x6f, 0x72, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x72, 0x0a, 0x15, 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x45, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, + 0x65, 0x6e, 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, + 0x74, 0x79, 0x70, 0x65, 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, 0x11, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, + 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x65, 0x6e, + 0x63, 0x61, 0x70, 0x73, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0xb1, 0x01, 0x0a, 0x3d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, 0x79, + 0x74, 0x65, 0x5f, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0d, 0x67, + 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x32, 0x62, 0x79, 0x74, 0x65, 0x41, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x21, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x32, 0x62, + 0x79, 0x74, 0x65, 0x5f, 0x61, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x22, 0xd6, 0x02, 0x0a, 0x30, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, + 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 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, 0x78, 0x0a, 0x16, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, + 0x74, 0x69, 0x76, 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x4c, 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x14, 0x6c, + 0x69, 0x6e, 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 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, 0x1a, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, - 0x65, 0x32, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x41, 0x73, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x6e, - 0x6b, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x14, 0x6c, 0x69, 0x6e, 0x6b, - 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 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, 0x1a, 0x0a, 0x16, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x62, 0x61, 0x6e, 0x64, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, + 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 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, 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, + 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, 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, + 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, 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, + 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, - 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 0x49, 0x0a, 0x1b, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0f, 0x64, 0x68, 0x63, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x68, - 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x68, 0x63, 0x70, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 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, 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, 0x2c, 0x0a, 0x0f, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, - 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, - 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x05, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x68, 0x63, 0x70, - 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 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, - 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x22, 0x45, 0x0a, 0x17, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, - 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x11, 0x44, 0x68, 0x63, - 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, - 0x0a, 0x10, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x68, 0x63, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0xab, 0x03, 0x0a, 0x10, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0x22, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, 0x6e, - 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x62, - 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, - 0x52, 0x0a, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x09, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, + 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, 0x49, 0x0a, 0x1b, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x68, 0x63, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, + 0x10, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x68, 0x63, 0x70, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 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, 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, 0x2c, + 0x0a, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x04, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0a, 0x72, 0x65, 0x62, + 0x69, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, + 0x68, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 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, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, - 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x64, 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, + 0x74, 0x69, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x17, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, + 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2a, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x68, 0x63, 0x70, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x11, + 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x64, + 0x68, 0x63, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2d, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x42, + 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xab, 0x03, 0x0a, 0x10, 0x44, 0x68, 0x63, 0x70, 0x76, 0x34, 0x4c, + 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 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, 0x22, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, + 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, + 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x04, 0x52, 0x0a, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x09, 0x63, 0x69, 0x72, 0x63, + 0x75, 0x69, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x08, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6e, + 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x62, 0x69, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, + 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x69, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x68, + 0x63, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x82, 0x04, + 0x0a, 0x14, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0e, 0x64, 0x68, 0x63, 0x70, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x61, + 0x70, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x49, 0x61, 0x70, 0x64, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x69, 0x61, 0x70, 0x64, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x10, 0x69, 0x61, 0x70, 0x64, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x03, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x22, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x62, 0x69, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x07, 0x52, 0x0a, + 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x69, 0x61, 0x70, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x69, 0x61, 0x70, + 0x64, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x17, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, + 0x11, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x68, 0x63, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x11, 0x44, 0x68, + 0x63, 0x70, 0x76, 0x36, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x2d, 0x0a, 0x10, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x68, 0x63, + 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, + 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x68, 0x63, 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb7, 0x03, 0x0a, 0x16, 0x44, 0x68, 0x63, + 0x70, 0x76, 0x36, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 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, 0x22, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x72, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, + 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x04, 0x52, 0x0a, 0x72, + 0x65, 0x62, 0x69, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x05, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, + 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x06, 0x52, 0x08, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x72, 0x65, 0x6e, 0x65, 0x77, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x62, 0x69, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x69, + 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 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, - 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, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 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, 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, 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, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 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, 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, + 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, 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, + 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, 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, 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, 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, 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, @@ -133790,129 +140550,837 @@ 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, 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, + 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, 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, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 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, 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, 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, 0x45, 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, 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, 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, + 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, 0x9f, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x52, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, + 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa9, 0x04, 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, 0x12, 0x25, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, + 0x74, 0x6f, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x12, 0x35, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x18, 0x09, 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, 0x53, 0x72, + 0x63, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, + 0x6c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x62, 0x0a, 0x04, 0x45, 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, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 0x9f, + 0x01, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x44, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xa9, 0x04, 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, 0x12, 0x25, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x12, 0x35, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x09, 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, 0x44, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, 0x6c, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x62, 0x0a, 0x04, 0x45, 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, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 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, + 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, 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, 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, @@ -133921,8 +141389,8 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, 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, @@ -133930,7 +141398,7 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -133939,27 +141407,27 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 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, 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, 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, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, + 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, 0x56, - 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 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, @@ -133967,17 +141435,68 @@ 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, 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, + 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, 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, @@ -133985,89 +141504,97 @@ var file_otg_proto_rawDesc = []byte{ 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, 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, 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, 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, + 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, 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, 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, @@ -134075,73 +141602,75 @@ 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, 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, + 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, 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, 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, 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, + 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, 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, @@ -134150,292 +141679,161 @@ 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, 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, 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, + 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, 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, 0x40, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 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, 0xa5, 0x01, + 0x0a, 0x1e, 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, 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, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x04, 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, 0x12, 0x3b, + 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 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, 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, 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, + 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 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, @@ -134445,59 +141843,60 @@ 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, 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, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 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, 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, + 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, @@ -134505,8 +141904,8 @@ var file_otg_proto_rawDesc = []byte{ 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -134515,26 +141914,26 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 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, 0x34, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 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, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 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, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 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, @@ -134543,485 +141942,199 @@ 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, 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, 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, 0x45, 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, 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, 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, 0xe6, + 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, 0x12, 0x25, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, + 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, 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, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 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, 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, 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, 0x9f, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, - 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa9, 0x04, 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, + 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, 0xe6, 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, 0x34, - 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 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, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 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, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 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, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 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, 0x12, 0x25, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 0x6f, 0x52, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x12, 0x35, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, - 0x09, 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, 0x53, 0x72, 0x63, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, 0x6c, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x62, 0x0a, 0x04, 0x45, 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, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 0x9f, 0x01, 0x0a, 0x18, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, - 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, - 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa9, 0x04, - 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, 0x12, 0x25, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x12, - 0x35, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x09, 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, 0x44, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x1a, 0x6c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x62, 0x0a, 0x04, 0x45, 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, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x10, 0x06, 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, 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, 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, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x41, 0x75, 0x74, 0x6f, 0x52, + 0x04, 0x61, 0x75, 0x74, 0x6f, 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, + 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, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 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, 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, + 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, @@ -135029,268 +142142,751 @@ 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, 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, 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, + 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, 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, 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, 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, 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, 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, + 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, + 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, 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, @@ -135299,8 +142895,8 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, @@ -135308,8 +142904,8 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -135318,29 +142914,29 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x2e, 0x43, + 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, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 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, 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, + 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, 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, + 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, @@ -135348,18 +142944,17 @@ 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, 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, + 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, @@ -135367,1247 +142962,60 @@ 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, 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, 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, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa2, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, + 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 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, 0x44, 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, 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, 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, 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, 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, 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, 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, 0xa5, 0x01, 0x0a, 0x1e, 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, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0x9c, 0x04, 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, + 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, 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, 0x12, 0x3b, 0x0a, 0x06, 0x72, - 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, - 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, + 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, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, + 0x08, 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, 0x72, 0x63, 0x50, 0x6f, 0x72, + 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x10, 0x06, 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, 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, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, + 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, @@ -136615,255 +143023,144 @@ 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, 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, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xa2, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8a, 0x04, 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, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 0x44, 0x73, + 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 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, 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, 0xa2, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 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, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, - 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 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, - 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, + 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, @@ -136871,97 +143168,83 @@ 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, 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, 0xa2, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 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, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, - 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, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, - 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x10, 0x06, 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, + 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, 0x75, 0x6d, + 0x48, 0x00, 0x52, 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, 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, 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, + 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, 0x10, 0x00, 0x12, @@ -136970,8 +143253,8 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, @@ -136979,7 +143262,7 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -136988,10 +143271,10 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, + 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, @@ -136999,15 +143282,15 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, + 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, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 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, 0x65, 0x64, 0x10, @@ -137015,93 +143298,46 @@ 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, 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, 0x75, 0x6d, 0x48, 0x00, 0x52, 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, 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, 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, + 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, 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, + 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, + 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, @@ -137110,7 +143346,7 @@ var file_otg_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, @@ -137119,7 +143355,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, 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, + 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, @@ -137128,26 +143364,26 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 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, 0x45, 0x63, 0x6e, 0x43, - 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 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, 0x45, 0x63, 0x6e, 0x43, - 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 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, 0x45, 0x63, - 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 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, @@ -137155,900 +143391,8 @@ 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, 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, 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, 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, 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, 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, + 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, 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, 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, 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, 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, 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, 0xe5, 0x02, - 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 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, 0x54, 0x63, 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, 0x54, 0x63, 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, 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, - 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, 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, 0xa2, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, - 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, - 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 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, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x18, 0x08, 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, 0x53, 0x72, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, - 0x6f, 0x6d, 0x10, 0x06, 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, 0xa2, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, - 0x74, 0x50, 0x6f, 0x72, 0x74, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x8a, 0x04, 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, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 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, 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, 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, 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, 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, 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, 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, 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, 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, @@ -138056,326 +143400,128 @@ 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, 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, 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, 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, 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, - 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, + 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, 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, 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, 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, + 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, 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, @@ -138384,8 +143530,8 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, @@ -138393,8 +143539,8 @@ var file_otg_proto_rawDesc = []byte{ 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -138402,10 +143548,10 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, + 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, @@ -138413,15 +143559,15 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 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, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 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, @@ -138429,19 +143575,64 @@ 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, 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, + 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, 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, @@ -138449,132 +143640,26 @@ 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, 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, 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, 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, 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, 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, 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, + 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, @@ -138583,159 +143668,262 @@ 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, 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, + 0x75, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 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, 0x54, + 0x63, 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, 0x54, 0x63, 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, 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, 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, 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, 0xa2, 0x01, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 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, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x65, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, 0x73, 0x65, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8a, 0x04, 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, 0x12, 0x38, 0x0a, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, + 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x52, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x0a, 0x0a, + 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, 0xa2, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 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, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x65, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x04, + 0x73, 0x65, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, + 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x65, 0x65, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 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, 0x12, + 0x38, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x08, 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, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 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, 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, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x06, 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, + 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, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -138744,8 +143932,8 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, 0x52, 0x04, 0x73, 0x74, 0x65, @@ -138753,8 +143941,8 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -138763,27 +143951,27 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 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, 0x74, - 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 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, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 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, 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, 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, @@ -138791,164 +143979,17 @@ 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, 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, + 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, @@ -138956,29 +143997,289 @@ 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, 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, 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, @@ -138986,193 +144287,543 @@ 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, 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, + 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, 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, + 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, - 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, + 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, 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, 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, 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, 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, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 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, 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, + 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, 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, + 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, 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, 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, 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, + 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, 0x3e, 0x0a, 0x09, + 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, - 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, + 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, 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, + 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, @@ -139180,18 +144831,20 @@ 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, 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, + 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, 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, + 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, @@ -139199,176 +144852,33 @@ 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, 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, + 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, 0x44, + 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, 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, + 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, - 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, + 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, @@ -139378,7 +144888,7 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, @@ -139387,7 +144897,7 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -139396,10 +144906,10 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 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, @@ -139407,16 +144917,16 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 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, 0x41, 0x72, 0x70, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 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, @@ -139425,18 +144935,18 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, 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, + 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, 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, + 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, @@ -139445,29 +144955,29 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, + 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, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 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, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 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, 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, + 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, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, + 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, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 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, @@ -139476,18 +144986,17 @@ var file_otg_proto_rawDesc = []byte{ 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, 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, + 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, @@ -139495,82 +145004,271 @@ 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, 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, + 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, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, + 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, - 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, + 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, - 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, + 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, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 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, 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, + 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, 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, + 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, @@ -139578,19 +145276,163 @@ 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, 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, + 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, 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, 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, + 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, @@ -139598,30 +145440,628 @@ 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, 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, + 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, 0x17, 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, 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, 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, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, + 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, 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, 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, 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, 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, 0x17, 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, 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, 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, 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, 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, + 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, @@ -139630,8 +146070,9 @@ 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, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 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, @@ -139639,8 +146080,9 @@ 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, 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, + 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, @@ -139648,28 +146090,33 @@ 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, 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, + 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, 0x41, 0x0a, + 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, 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, + 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, 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, + 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, @@ -139677,88 +146124,114 @@ 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, 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, + 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, 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, 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, + 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, 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, 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, + 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, @@ -139767,116 +146240,41 @@ 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, 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, + 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, 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, 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, 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, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 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, 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, @@ -139885,8 +146283,8 @@ var file_otg_proto_rawDesc = []byte{ 0x08, 0x0a, 0x06, 0x5f, 0x73, 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, + 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, @@ -139895,11 +146293,11 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 0x4e, 0x65, 0x78, - 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 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, @@ -139907,18 +146305,18 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 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, + 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, 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, + 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, @@ -139926,221 +146324,159 @@ 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, 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, + 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, 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, + 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, 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, 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, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 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, 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, + 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, 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, 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, + 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, 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, 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, + 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, @@ -140148,234 +146484,89 @@ 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, 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, 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, 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, + 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, 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, + 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, @@ -140383,174 +146574,225 @@ 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, 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, + 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, 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, 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, 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, + 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, 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, 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, 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, + 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, @@ -140558,127 +146800,129 @@ 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, 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, 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, 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, + 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, 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, + 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, 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, 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, @@ -140687,133 +146931,104 @@ 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, 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, + 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, 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, 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, + 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, 0x43, 0x0a, 0x09, + 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, - 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, 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, + 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, @@ -140822,418 +147037,259 @@ var file_otg_proto_rawDesc = []byte{ 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 0x05, 0x48, 0x01, 0x52, 0x05, + 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, 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, 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, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 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, 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, + 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, 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, + 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, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 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, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5e, 0x0a, + 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, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, 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, + 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, 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, + 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, 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, + 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, @@ -141241,255 +147297,214 @@ var file_otg_proto_rawDesc = []byte{ 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, + 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, 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, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 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, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 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, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 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, 0x8e, 0x03, 0x0a, 0x19, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, 0x54, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 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, 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, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, - 0x70, 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, 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, 0x52, 0x73, 0x76, 0x70, 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, 0x86, 0x03, 0x0a, 0x17, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 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, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x76, + 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, 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, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, 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, 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, 0xb5, 0x01, 0x0a, 0x47, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 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, 0xaa, 0x04, 0x0a, 0x40, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x6e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 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, 0x6a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 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, 0x6a, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 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, 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, 0xa4, 0x01, 0x0a, 0x36, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 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, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 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, 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, 0x52, 0x73, 0x76, 0x70, 0x52, 0x73, 0x76, 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, 0x8e, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, 0x76, + 0x70, 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, 0xe6, - 0x03, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 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, - 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 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, 0xa4, 0x01, 0x0a, 0x36, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 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, 0x52, 0x73, + 0x76, 0x70, 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, 0x52, 0x73, + 0x76, 0x70, 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, 0x52, 0x73, 0x76, + 0x70, 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, 0x52, 0x73, 0x76, 0x70, 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, 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, 0x52, + 0x73, 0x76, 0x70, 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, 0xe6, - 0x03, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, + 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x73, + 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, + 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, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 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, 0x52, 0x73, 0x76, 0x70, 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, 0x52, 0x73, 0x76, 0x70, + 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, 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, @@ -141497,90 +147512,11 @@ var file_otg_proto_rawDesc = []byte{ 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, 0xa3, 0x01, 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 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, 0xe2, 0x03, - 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, - 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, - 0x12, 0x5c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, - 0x74, 0x65, 0x67, 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, 0x58, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, - 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, - 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, - 0x67, 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, 0xa0, 0x01, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, - 0x76, 0x34, 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, 0xd6, 0x03, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, - 0x73, 0x49, 0x70, 0x76, 0x34, 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, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x47, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x64, 0x41, 0x73, 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, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, - 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x9e, - 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, + 0x50, 0x6f, 0x69, 0x6e, 0x74, 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, @@ -141588,251 +147524,44 @@ 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, - 0xce, 0x03, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x57, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 0x53, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x70, 0x76, 0x34, 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, 0x53, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, - 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 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, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, - 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, - 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, - 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0xa5, 0x01, 0x0a, 0x37, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, - 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 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, 0xea, 0x03, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x12, 0x5e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 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, 0x5a, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x52, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 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, 0xa8, - 0x01, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x4c, 0x42, 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, 0xf6, 0x03, 0x0a, 0x33, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 0x69, - 0x74, 0x12, 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, - 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0xaa, 0x04, 0x0a, 0x40, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, + 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 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, 0x5d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, + 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, 0x6a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, - 0x42, 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 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, 0x92, 0x04, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, - 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, - 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, - 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, - 0x70, 0x76, 0x34, 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, 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, 0xa6, 0x01, 0x0a, 0x38, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 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, 0xee, 0x03, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, - 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 0x12, 0x5f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 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, 0x5b, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, - 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4c, 0x42, 0x69, 0x74, 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, 0xad, 0x01, 0x0a, 0x3f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 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, 0x6a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x6e, + 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 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, 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, 0xa4, 0x01, 0x0a, + 0x36, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 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, @@ -141840,122 +147569,70 @@ var file_otg_proto_rawDesc = []byte{ 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, 0x8a, 0x04, 0x0a, 0x38, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x12, 0x66, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x62, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x61, 0x6e, 0x67, 0x65, 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, - 0x62, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 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, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 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, 0xfe, 0x03, - 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x4c, 0x33, 0x70, 0x69, 0x64, 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, + 0x75, 0x6e, 0x74, 0x22, 0xe6, 0x03, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, - 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, - 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, - 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, - 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 0x70, 0x69, 0x64, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 0x70, 0x69, 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, 0xba, - 0x01, 0x0a, 0x4c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 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, 0xbe, 0x04, 0x0a, 0x45, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x73, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x56, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x6f, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x6f, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 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, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 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, 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, 0xa4, 0x01, 0x0a, + 0x36, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0xe6, 0x03, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x5d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, @@ -141963,85 +147640,80 @@ 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, 0xab, 0x01, 0x0a, - 0x3d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x82, 0x04, 0x0a, 0x36, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa3, 0x01, 0x0a, + 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 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, 0xe2, 0x03, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, - 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x60, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 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, 0x58, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x60, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 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, 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, - 0xa8, 0x01, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x4c, 0x73, 0x70, 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, + 0x12, 0x58, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, + 0x73, 0x49, 0x6e, 0x74, 0x65, 0x67, 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, 0xa0, 0x01, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 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, 0xf6, 0x03, 0x0a, 0x33, 0x50, + 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, - 0x49, 0x64, 0x12, 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, + 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 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, 0x5d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, + 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, 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, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x4c, 0x73, 0x70, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, - 0x73, 0x70, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x41, 0x73, + 0x49, 0x70, 0x76, 0x34, 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, @@ -142049,121 +147721,208 @@ 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, 0xa1, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 0xda, 0x03, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 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, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, + 0x6c, 0x75, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, + 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 0xce, 0x03, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, + 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x57, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, + 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 0x53, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, + 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 0x53, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, + 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, - 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, - 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 0xa3, 0x01, 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 0xe2, 0x03, 0x0a, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x5c, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, - 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, + 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, + 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x73, + 0x76, 0x70, 0x48, 0x6f, 0x70, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x6c, 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, 0xa5, + 0x01, 0x0a, 0x37, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x52, 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, 0xea, 0x03, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, + 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x12, 0x5e, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, + 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x52, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 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, 0x58, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 0x58, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 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, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, - 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 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, + 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x31, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x52, 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, 0xa8, 0x01, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, + 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 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, 0xf6, + 0x03, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x4c, 0x42, 0x69, 0x74, 0x12, 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 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, 0x5d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x4c, 0x42, 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 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, 0x0d, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 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, 0xf2, 0x03, 0x0a, 0x32, 0x50, 0x61, + 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, - 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x34, 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, 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, + 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, + 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, + 0x76, 0x34, 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, 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, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 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, 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, @@ -142171,122 +147930,301 @@ 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, 0xa7, - 0x01, 0x0a, 0x39, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa6, + 0x01, 0x0a, 0x38, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x42, 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, 0xee, 0x03, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, + 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 0x12, 0x5f, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x42, 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, 0x5b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, + 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, + 0x41, 0x53, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5b, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x70, 0x6c, 0x69, + 0x63, 0x69, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x41, 0x53, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x42, 0x69, 0x74, 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, 0xad, 0x01, 0x0a, 0x3f, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0xf2, 0x03, 0x0a, 0x32, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x04, 0x0a, 0x38, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, - 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x66, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, + 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x62, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 0x62, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 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, 0xfe, 0x03, 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, 0x70, 0x69, 0x64, 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, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x4c, 0x33, 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, 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, + 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 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, + 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, 0x74, + 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x33, + 0x70, 0x69, 0x64, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x57, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, + 0x33, 0x70, 0x69, 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, 0xba, 0x01, 0x0a, 0x4c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0xbe, 0x04, 0x0a, 0x45, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x73, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x56, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x6f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, 0x64, 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, 0xa1, 0x01, - 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, 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, 0xda, 0x03, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 0x6f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, + 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 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, 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, 0xab, 0x01, 0x0a, 0x3d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, - 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, - 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, - 0x72, 0x6f, 0x42, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 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, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 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, 0xa3, - 0x01, 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 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, 0xe2, 0x03, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 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, + 0x82, 0x04, 0x0a, 0x36, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, + 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x60, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 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, 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, 0xa8, 0x01, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x12, 0x5c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 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, + 0xf6, 0x03, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, + 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 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, 0x5d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 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, 0xa1, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, + 0x72, 0x76, 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, 0xda, 0x03, 0x0a, + 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 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, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, + 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, + 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 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, 0x58, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x65, 0x72, 0x76, 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, @@ -142294,89 +148232,248 @@ var file_otg_proto_rawDesc = []byte{ 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, 0xad, 0x01, 0x0a, 0x3f, 0x50, 0x61, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa3, 0x01, 0x0a, 0x35, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, + 0x65, 0x72, 0x76, 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, + 0xe2, 0x03, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, + 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x12, 0x5c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 0x58, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, + 0x72, 0x76, 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, 0x58, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, + 0x65, 0x72, 0x61, 0x6c, 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, 0xf2, + 0x03, 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 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, 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, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, + 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 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, 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, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 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, 0xf2, 0x03, + 0x0a, 0x32, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 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, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 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, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x48, 0x65, 0x61, + 0x64, 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, 0xa1, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, + 0x42, 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, 0xda, 0x03, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, 0x6f, 0x42, 0x69, 0x74, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x5a, 0x65, 0x72, + 0x6f, 0x42, 0x69, 0x74, 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, 0xa3, 0x01, 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 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, 0x8a, 0x04, 0x0a, 0x38, 0x50, 0x61, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe2, 0x03, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 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, 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, 0x62, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, - 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 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, 0xb5, 0x01, 0x0a, 0x47, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 0x12, 0x5c, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 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, 0x58, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x32, 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, 0xad, + 0x01, 0x0a, 0x3f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 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, 0xaa, - 0x04, 0x0a, 0x40, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, + 0x04, 0x0a, 0x38, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, - 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 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, 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, 0x6a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x62, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, 0x66, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, + 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4f, + 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x61, 0x74, 0x61, 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, @@ -142384,216 +148481,175 @@ 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, 0xaa, 0x01, 0x0a, 0x3c, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x47, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, - 0x37, 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, 0xfe, 0x03, 0x0a, 0x35, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, 0x6c, - 0x61, 0x67, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 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, 0x52, - 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, - 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, 0x6c, 0x61, 0x67, 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, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, + 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, 0xaa, 0x04, 0x0a, 0x40, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 0x63, 0x12, 0x6e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x51, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, + 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, 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, 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, 0x6a, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x54, 0x73, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, + 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x73, 0x70, 0x65, + 0x63, 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, + 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, + 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 0xac, 0x01, 0x0a, 0x3e, 0x50, 0x61, + 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, 0xfe, 0x03, + 0x0a, 0x35, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x31, 0x32, 0x37, 0x46, 0x6c, 0x61, 0x67, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 0x86, 0x04, 0x0a, 0x37, 0x50, 0x61, 0x74, + 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, + 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x46, 0x6c, 0x61, 0x67, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 0xac, + 0x01, 0x0a, 0x3e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x31, 0x32, 0x37, 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, 0x86, 0x04, + 0x0a, 0x37, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, + 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x31, 0x32, 0x37, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, + 0x37, 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, 0x61, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x65, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, + 0x37, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0xac, 0x01, 0x0a, 0x3e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 0x61, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, + 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, 0x86, 0x04, 0x0a, 0x37, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, + 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, + 0x74, 0x12, 0x65, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x48, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 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, 0x61, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x31, 0x32, 0x37, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 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, 0xac, 0x01, 0x0a, 0x3e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, - 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, - 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 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, 0x86, 0x04, 0x0a, 0x37, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, - 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, - 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x65, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 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, 0x61, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, - 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x61, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, - 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 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, 0xab, 0x01, 0x0a, 0x3d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x53, 0x69, 0x7a, 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, 0x82, 0x04, 0x0a, 0x36, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x64, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x2e, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 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, 0x60, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, + 0x03, 0x28, 0x0d, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, - 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, - 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x60, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 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, 0xae, 0x01, 0x0a, - 0x40, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x70, 0x76, 0x34, 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, 0x8e, 0x04, - 0x0a, 0x39, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x67, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, - 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x49, 0x70, 0x76, 0x34, 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, 0x63, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x70, 0x76, 0x34, 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, 0x63, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, + 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x61, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x64, 0x55, 0x6e, 0x69, 0x74, 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, @@ -142601,256 +148657,343 @@ 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, 0xaf, - 0x01, 0x0a, 0x41, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x92, 0x04, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xab, + 0x01, 0x0a, 0x3d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, + 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 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, 0x82, 0x04, 0x0a, + 0x36, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x64, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, + 0x68, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 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, 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, 0x60, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x4d, + 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x60, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x73, 0x70, 0x65, 0x63, 0x49, 0x6e, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, + 0x7a, 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, 0xae, 0x01, 0x0a, 0x40, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x8e, 0x04, 0x0a, 0x39, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x67, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x4a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 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, + 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, 0x64, 0x0a, 0x09, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x63, 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, + 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, - 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x8e, 0x02, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 0x63, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x70, 0x76, 0x34, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 0x92, 0x04, 0x0a, 0x3a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, - 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 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, 0x8e, 0x02, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, + 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, + 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 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, 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, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x31, 0x49, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 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, 0x8e, 0x02, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x5b, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, + 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 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, 0x8e, 0x02, 0x0a, 0x2d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, + 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x31, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 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, 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, 0x99, 0x01, 0x0a, + 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, + 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 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, 0xba, 0x03, 0x0a, 0x24, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, + 0x65, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 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, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 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, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 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, 0x52, 0x53, 0x56, + 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 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, 0xba, 0x03, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 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, 0x52, 0x53, - 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 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, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, - 0x65, 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, 0x52, 0x53, 0x56, 0x50, 0x50, 0x61, 0x74, 0x68, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 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, 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, + 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, 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, + 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, 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 ( @@ -142865,8 +149008,8 @@ func file_otg_proto_rawDescGZIP() []byte { return file_otg_proto_rawDescData } -var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 426) -var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1454) +var file_otg_proto_enumTypes = make([]protoimpl.EnumInfo, 441) +var file_otg_proto_msgTypes = make([]protoimpl.MessageInfo, 1518) var file_otg_proto_goTypes = []interface{}{ (LagProtocol_Choice_Enum)(0), // 0: otg.LagProtocol.Choice.Enum (LagPortLacp_ActorActivity_Enum)(0), // 1: otg.LagPortLacp.ActorActivity.Enum @@ -142875,3695 +149018,3851 @@ var file_otg_proto_goTypes = []interface{}{ (DeviceIpv4GatewayMAC_Choice_Enum)(0), // 4: otg.DeviceIpv4GatewayMAC.Choice.Enum (DeviceIpv6GatewayMAC_Choice_Enum)(0), // 5: otg.DeviceIpv6GatewayMAC.Choice.Enum (DeviceDhcpv4Client_Choice_Enum)(0), // 6: otg.DeviceDhcpv4client.Choice.Enum - (Layer1_Speed_Enum)(0), // 7: otg.Layer1.Speed.Enum - (Layer1_Media_Enum)(0), // 8: otg.Layer1.Media.Enum - (Layer1FlowControl_Choice_Enum)(0), // 9: otg.Layer1FlowControl.Choice.Enum - (Capture_Format_Enum)(0), // 10: otg.Capture.Format.Enum - (CaptureFilter_Choice_Enum)(0), // 11: otg.CaptureFilter.Choice.Enum - (IsisInterface_NetworkType_Enum)(0), // 12: otg.IsisInterface.NetworkType.Enum - (IsisInterface_LevelType_Enum)(0), // 13: otg.IsisInterface.LevelType.Enum - (IsisInterfaceAuthentication_AuthType_Enum)(0), // 14: otg.IsisInterfaceAuthentication.AuthType.Enum - (IsisAuthenticationBase_AuthType_Enum)(0), // 15: otg.IsisAuthenticationBase.AuthType.Enum - (IsisV4RouteRange_OriginType_Enum)(0), // 16: otg.IsisV4RouteRange.OriginType.Enum - (IsisV4RouteRange_RedistributionType_Enum)(0), // 17: otg.IsisV4RouteRange.RedistributionType.Enum - (IsisV6RouteRange_OriginType_Enum)(0), // 18: otg.IsisV6RouteRange.OriginType.Enum - (IsisV6RouteRange_RedistributionType_Enum)(0), // 19: otg.IsisV6RouteRange.RedistributionType.Enum - (DeviceBgpMessageHeaderError_Subcode_Enum)(0), // 20: otg.DeviceBgpMessageHeaderError.Subcode.Enum - (DeviceBgpOpenMessageError_Subcode_Enum)(0), // 21: otg.DeviceBgpOpenMessageError.Subcode.Enum - (DeviceBgpUpdateMessageError_Subcode_Enum)(0), // 22: otg.DeviceBgpUpdateMessageError.Subcode.Enum - (DeviceBgpCeaseError_Subcode_Enum)(0), // 23: otg.DeviceBgpCeaseError.Subcode.Enum - (BgpV4Peer_AsType_Enum)(0), // 24: otg.BgpV4Peer.AsType.Enum - (BgpV4Peer_AsNumberWidth_Enum)(0), // 25: otg.BgpV4Peer.AsNumberWidth.Enum - (BgpV4EthernetSegment_ActiveMode_Enum)(0), // 26: otg.BgpV4EthernetSegment.ActiveMode.Enum - (BgpRouteAdvanced_Origin_Enum)(0), // 27: otg.BgpRouteAdvanced.Origin.Enum - (BgpCommunity_Type_Enum)(0), // 28: otg.BgpCommunity.Type.Enum - (BgpExtCommunity_Type_Enum)(0), // 29: otg.BgpExtCommunity.Type.Enum - (BgpExtCommunity_Subtype_Enum)(0), // 30: otg.BgpExtCommunity.Subtype.Enum - (BgpAsPath_AsSetMode_Enum)(0), // 31: otg.BgpAsPath.AsSetMode.Enum - (BgpAsPathSegment_Type_Enum)(0), // 32: otg.BgpAsPathSegment.Type.Enum - (BgpV4EvpnEvis_Choice_Enum)(0), // 33: otg.BgpV4EvpnEvis.Choice.Enum - (BgpV4EviVxlan_ReplicationType_Enum)(0), // 34: otg.BgpV4EviVxlan.ReplicationType.Enum - (BgpRouteDistinguisher_RdType_Enum)(0), // 35: otg.BgpRouteDistinguisher.RdType.Enum - (BgpRouteTarget_RtType_Enum)(0), // 36: otg.BgpRouteTarget.RtType.Enum - (BgpV4RouteRange_NextHopMode_Enum)(0), // 37: otg.BgpV4RouteRange.NextHopMode.Enum - (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 38: otg.BgpV4RouteRange.NextHopAddressType.Enum - (BgpExtendedCommunity_Choice_Enum)(0), // 39: otg.BgpExtendedCommunity.Choice.Enum - (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 40: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum - (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 41: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 42: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum - (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 43: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum - (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 44: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum - (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 45: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - (BgpV6RouteRange_NextHopMode_Enum)(0), // 46: otg.BgpV6RouteRange.NextHopMode.Enum - (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 47: otg.BgpV6RouteRange.NextHopAddressType.Enum - (BgpSrteV4Policy_NextHopMode_Enum)(0), // 48: otg.BgpSrteV4Policy.NextHopMode.Enum - (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 49: otg.BgpSrteV4Policy.NextHopAddressType.Enum - (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 50: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 51: otg.BgpSrteBindingSubTlv.BindingSidType.Enum - (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 52: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - (BgpSrteSegment_SegmentType_Enum)(0), // 53: otg.BgpSrteSegment.SegmentType.Enum - (BgpSrteV6Policy_NextHopMode_Enum)(0), // 54: otg.BgpSrteV6Policy.NextHopMode.Enum - (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 55: otg.BgpSrteV6Policy.NextHopAddressType.Enum - (BgpUpdateReplay_Choice_Enum)(0), // 56: otg.BgpUpdateReplay.Choice.Enum - (BgpAttributes_Origin_Enum)(0), // 57: otg.BgpAttributes.Origin.Enum - (BgpAttributesAsPath_Choice_Enum)(0), // 58: otg.BgpAttributesAsPath.Choice.Enum - (BgpAttributesFourByteAsPathSegment_Type_Enum)(0), // 59: otg.BgpAttributesFourByteAsPathSegment.Type.Enum - (BgpAttributesTwoByteAsPathSegment_Type_Enum)(0), // 60: otg.BgpAttributesTwoByteAsPathSegment.Type.Enum - (BgpAttributesAggregator_Choice_Enum)(0), // 61: otg.BgpAttributesAggregator.Choice.Enum - (BgpAttributesCommunity_Choice_Enum)(0), // 62: otg.BgpAttributesCommunity.Choice.Enum - (BgpAttributesNextHop_Choice_Enum)(0), // 63: otg.BgpAttributesNextHop.Choice.Enum - (BgpAttributesMpReachNlri_Choice_Enum)(0), // 64: otg.BgpAttributesMpReachNlri.Choice.Enum - (BgpAttributesMpUnreachNlri_Choice_Enum)(0), // 65: otg.BgpAttributesMpUnreachNlri.Choice.Enum - (BgpAttributesTunnelEncapsulation_Choice_Enum)(0), // 66: otg.BgpAttributesTunnelEncapsulation.Choice.Enum - (BgpAttributesBsid_Choice_Enum)(0), // 67: otg.BgpAttributesBsid.Choice.Enum - (BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum)(0), // 68: otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.Enum - (BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum)(0), // 69: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.Enum - (BgpV6Peer_AsType_Enum)(0), // 70: otg.BgpV6Peer.AsType.Enum - (BgpV6Peer_AsNumberWidth_Enum)(0), // 71: otg.BgpV6Peer.AsNumberWidth.Enum - (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 72: otg.BgpV6EthernetSegment.ActiveMode.Enum - (BgpV6EvpnEvis_Choice_Enum)(0), // 73: otg.BgpV6EvpnEvis.Choice.Enum - (BgpV6EviVxlan_ReplicationType_Enum)(0), // 74: otg.BgpV6EviVxlan.ReplicationType.Enum - (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 75: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 76: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 77: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - (RsvpEro_PrependNeighborIp_Enum)(0), // 78: otg.RsvpEro.PrependNeighborIp.Enum - (RsvpEroSubobject_Type_Enum)(0), // 79: otg.RsvpEroSubobject.Type.Enum - (RsvpEroSubobject_HopType_Enum)(0), // 80: otg.RsvpEroSubobject.HopType.Enum - (FlowTxRx_Choice_Enum)(0), // 81: otg.FlowTxRx.Choice.Enum - (FlowRouter_Mode_Enum)(0), // 82: otg.FlowRouter.Mode.Enum - (FlowHeader_Choice_Enum)(0), // 83: otg.FlowHeader.Choice.Enum - (FlowIpv4Options_Choice_Enum)(0), // 84: otg.FlowIpv4Options.Choice.Enum - (FlowIpv4OptionsCustomLength_Choice_Enum)(0), // 85: otg.FlowIpv4OptionsCustomLength.Choice.Enum - (FlowIpv4Priority_Choice_Enum)(0), // 86: otg.FlowIpv4Priority.Choice.Enum - (FlowIpv4Auto_Choice_Enum)(0), // 87: otg.FlowIpv4Auto.Choice.Enum - (FlowIcmp_Choice_Enum)(0), // 88: otg.FlowIcmp.Choice.Enum - (FlowIcmpv6_Choice_Enum)(0), // 89: otg.FlowIcmpv6.Choice.Enum - (FlowSnmpv2CData_Choice_Enum)(0), // 90: otg.FlowSnmpv2cData.Choice.Enum - (FlowSnmpv2CPDU_ErrorStatus_Enum)(0), // 91: otg.FlowSnmpv2cPDU.ErrorStatus.Enum - (FlowSnmpv2CVariableBindingValue_Choice_Enum)(0), // 92: otg.FlowSnmpv2cVariableBindingValue.Choice.Enum - (FlowSnmpv2CVariableBindingStringValue_Choice_Enum)(0), // 93: otg.FlowSnmpv2cVariableBindingStringValue.Choice.Enum - (FlowRsvp_Flag_Enum)(0), // 94: otg.FlowRsvp.Flag.Enum - (FlowRSVPLength_Choice_Enum)(0), // 95: otg.FlowRSVPLength.Choice.Enum - (FlowRSVPMessage_Choice_Enum)(0), // 96: otg.FlowRSVPMessage.Choice.Enum - (FlowRSVPObjectLength_Choice_Enum)(0), // 97: otg.FlowRSVPObjectLength.Choice.Enum - (FlowRSVPPathObjectsClass_Choice_Enum)(0), // 98: otg.FlowRSVPPathObjectsClass.Choice.Enum - (FlowRSVPPathObjectsSessionCType_Choice_Enum)(0), // 99: otg.FlowRSVPPathObjectsSessionCType.Choice.Enum - (FlowRSVPPathSessionExtTunnelId_Choice_Enum)(0), // 100: otg.FlowRSVPPathSessionExtTunnelId.Choice.Enum - (FlowRSVPPathObjectsRsvpHopCType_Choice_Enum)(0), // 101: otg.FlowRSVPPathObjectsRsvpHopCType.Choice.Enum - (FlowRSVPPathObjectsTimeValuesCType_Choice_Enum)(0), // 102: otg.FlowRSVPPathObjectsTimeValuesCType.Choice.Enum - (FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum)(0), // 103: otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.Enum - (FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum)(0), // 104: otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.Enum - (FlowRSVPExplicitRouteLength_Choice_Enum)(0), // 105: otg.FlowRSVPExplicitRouteLength.Choice.Enum - (FlowRSVPExplicitRouteASNumberLength_Choice_Enum)(0), // 106: otg.FlowRSVPExplicitRouteASNumberLength.Choice.Enum - (FlowRSVPPathObjectsLabelRequestCType_Choice_Enum)(0), // 107: otg.FlowRSVPPathObjectsLabelRequestCType.Choice.Enum - (FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum)(0), // 108: otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.Enum - (FlowRSVPLspTunnelFlag_Choice_Enum)(0), // 109: otg.FlowRSVPLspTunnelFlag.Choice.Enum - (FlowRSVPSessionAttributeNameLength_Choice_Enum)(0), // 110: otg.FlowRSVPSessionAttributeNameLength.Choice.Enum - (FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum)(0), // 111: otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.Enum - (FlowRSVPPathObjectsSenderTspecCType_Choice_Enum)(0), // 112: otg.FlowRSVPPathObjectsSenderTspecCType.Choice.Enum - (FlowRSVPPathObjectsRecordRouteCType_Choice_Enum)(0), // 113: otg.FlowRSVPPathObjectsRecordRouteCType.Choice.Enum - (FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum)(0), // 114: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.Enum - (FlowRSVPRecordRouteIPv4Flag_Choice_Enum)(0), // 115: otg.FlowRSVPRecordRouteIPv4Flag.Choice.Enum - (FlowRSVPPathRecordRouteLabel_Choice_Enum)(0), // 116: otg.FlowRSVPPathRecordRouteLabel.Choice.Enum - (FlowRSVPRouteRecordLength_Choice_Enum)(0), // 117: otg.FlowRSVPRouteRecordLength.Choice.Enum - (FlowSize_Choice_Enum)(0), // 118: otg.FlowSize.Choice.Enum - (FlowSizeWeightPairs_Choice_Enum)(0), // 119: otg.FlowSizeWeightPairs.Choice.Enum - (FlowSizeWeightPairs_Predefined_Enum)(0), // 120: otg.FlowSizeWeightPairs.Predefined.Enum - (FlowRate_Choice_Enum)(0), // 121: otg.FlowRate.Choice.Enum - (FlowDuration_Choice_Enum)(0), // 122: otg.FlowDuration.Choice.Enum - (FlowDelay_Choice_Enum)(0), // 123: otg.FlowDelay.Choice.Enum - (FlowDurationInterBurstGap_Choice_Enum)(0), // 124: otg.FlowDurationInterBurstGap.Choice.Enum - (FlowLatencyMetrics_Mode_Enum)(0), // 125: otg.FlowLatencyMetrics.Mode.Enum - (FlowRxTxRatio_Choice_Enum)(0), // 126: otg.FlowRxTxRatio.Choice.Enum - (EventRequest_Type_Enum)(0), // 127: otg.EventRequest.Type.Enum - (LldpConnection_Choice_Enum)(0), // 128: otg.LldpConnection.Choice.Enum - (LldpChassisId_Choice_Enum)(0), // 129: otg.LldpChassisId.Choice.Enum - (LldpPortId_Choice_Enum)(0), // 130: otg.LldpPortId.Choice.Enum - (LldpChassisMacSubType_Choice_Enum)(0), // 131: otg.LldpChassisMacSubType.Choice.Enum - (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 132: otg.LldpPortInterfaceNameSubType.Choice.Enum - (LldpSystemName_Choice_Enum)(0), // 133: otg.LldpSystemName.Choice.Enum - (Error_Kind_Enum)(0), // 134: otg.Error.Kind.Enum - (ConfigUpdate_Choice_Enum)(0), // 135: otg.ConfigUpdate.Choice.Enum - (FlowsUpdate_PropertyNames_Enum)(0), // 136: otg.FlowsUpdate.PropertyNames.Enum - (ControlState_Choice_Enum)(0), // 137: otg.ControlState.Choice.Enum - (StatePort_Choice_Enum)(0), // 138: otg.StatePort.Choice.Enum - (StateTraffic_Choice_Enum)(0), // 139: otg.StateTraffic.Choice.Enum - (StateProtocol_Choice_Enum)(0), // 140: otg.StateProtocol.Choice.Enum - (StatePortLink_State_Enum)(0), // 141: otg.StatePortLink.State.Enum - (StatePortCapture_State_Enum)(0), // 142: otg.StatePortCapture.State.Enum - (StateTrafficFlowTransmit_State_Enum)(0), // 143: otg.StateTrafficFlowTransmit.State.Enum - (StateProtocolAll_State_Enum)(0), // 144: otg.StateProtocolAll.State.Enum - (StateProtocolRoute_State_Enum)(0), // 145: otg.StateProtocolRoute.State.Enum - (StateProtocolLacp_Choice_Enum)(0), // 146: otg.StateProtocolLacp.Choice.Enum - (StateProtocolLacpAdmin_State_Enum)(0), // 147: otg.StateProtocolLacpAdmin.State.Enum - (StateProtocolLacpMemberPorts_State_Enum)(0), // 148: otg.StateProtocolLacpMemberPorts.State.Enum - (StateProtocolBgp_Choice_Enum)(0), // 149: otg.StateProtocolBgp.Choice.Enum - (StateProtocolBgpPeers_State_Enum)(0), // 150: otg.StateProtocolBgpPeers.State.Enum - (StateProtocolIsis_Choice_Enum)(0), // 151: otg.StateProtocolIsis.Choice.Enum - (StateProtocolIsisRouters_State_Enum)(0), // 152: otg.StateProtocolIsisRouters.State.Enum - (ControlAction_Choice_Enum)(0), // 153: otg.ControlAction.Choice.Enum - (ActionResponse_Choice_Enum)(0), // 154: otg.ActionResponse.Choice.Enum - (ActionProtocol_Choice_Enum)(0), // 155: otg.ActionProtocol.Choice.Enum - (ActionResponseProtocol_Choice_Enum)(0), // 156: otg.ActionResponseProtocol.Choice.Enum - (ActionProtocolIpv4_Choice_Enum)(0), // 157: otg.ActionProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4_Choice_Enum)(0), // 158: otg.ActionResponseProtocolIpv4.Choice.Enum - (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 159: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - (ActionProtocolIpv6_Choice_Enum)(0), // 160: otg.ActionProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6_Choice_Enum)(0), // 161: otg.ActionResponseProtocolIpv6.Choice.Enum - (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 162: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - (ActionProtocolBgp_Choice_Enum)(0), // 163: otg.ActionProtocolBgp.Choice.Enum - (ActionProtocolBgpNotification_Choice_Enum)(0), // 164: otg.ActionProtocolBgpNotification.Choice.Enum - (MetricsRequest_Choice_Enum)(0), // 165: otg.MetricsRequest.Choice.Enum - (MetricsResponse_Choice_Enum)(0), // 166: otg.MetricsResponse.Choice.Enum - (PortMetricsRequest_ColumnNames_Enum)(0), // 167: otg.PortMetricsRequest.ColumnNames.Enum - (PortMetric_Link_Enum)(0), // 168: otg.PortMetric.Link.Enum - (PortMetric_Capture_Enum)(0), // 169: otg.PortMetric.Capture.Enum - (PortMetric_Transmit_Enum)(0), // 170: otg.PortMetric.Transmit.Enum - (FlowMetricsRequest_MetricNames_Enum)(0), // 171: otg.FlowMetricsRequest.MetricNames.Enum - (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 172: otg.FlowTaggedMetricsFilter.MetricNames.Enum - (FlowMetric_Transmit_Enum)(0), // 173: otg.FlowMetric.Transmit.Enum - (FlowMetricTagValue_Choice_Enum)(0), // 174: otg.FlowMetricTagValue.Choice.Enum - (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 175: otg.Bgpv4MetricsRequest.ColumnNames.Enum - (Bgpv4Metric_SessionState_Enum)(0), // 176: otg.Bgpv4Metric.SessionState.Enum - (Bgpv4Metric_FsmState_Enum)(0), // 177: otg.Bgpv4Metric.FsmState.Enum - (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 178: otg.Bgpv6MetricsRequest.ColumnNames.Enum - (Bgpv6Metric_SessionState_Enum)(0), // 179: otg.Bgpv6Metric.SessionState.Enum - (Bgpv6Metric_FsmState_Enum)(0), // 180: otg.Bgpv6Metric.FsmState.Enum - (IsisMetricsRequest_ColumnNames_Enum)(0), // 181: otg.IsisMetricsRequest.ColumnNames.Enum - (LagMetricsRequest_ColumnNames_Enum)(0), // 182: otg.LagMetricsRequest.ColumnNames.Enum - (LagMetric_OperStatus_Enum)(0), // 183: otg.LagMetric.OperStatus.Enum - (LacpMetricsRequest_ColumnNames_Enum)(0), // 184: otg.LacpMetricsRequest.ColumnNames.Enum - (LacpMetric_Activity_Enum)(0), // 185: otg.LacpMetric.Activity.Enum - (LacpMetric_Timeout_Enum)(0), // 186: otg.LacpMetric.Timeout.Enum - (LacpMetric_Synchronization_Enum)(0), // 187: otg.LacpMetric.Synchronization.Enum - (LldpMetricsRequest_ColumnNames_Enum)(0), // 188: otg.LldpMetricsRequest.ColumnNames.Enum - (RsvpMetricsRequest_ColumnNames_Enum)(0), // 189: otg.RsvpMetricsRequest.ColumnNames.Enum - (Dhcpv4ClientMetricsRequest_ColumnNames_Enum)(0), // 190: otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum - (Dhcpv4ServerMetricsRequest_ColumnNames_Enum)(0), // 191: otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum - (StatesRequest_Choice_Enum)(0), // 192: otg.StatesRequest.Choice.Enum - (StatesResponse_Choice_Enum)(0), // 193: otg.StatesResponse.Choice.Enum - (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 194: otg.BgpPrefixStateRequest.PrefixFilters.Enum - (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 195: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 196: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 197: otg.BgpPrefixIpv4UnicastState.Origin.Enum - (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 198: otg.BgpPrefixIpv6UnicastState.Origin.Enum - (ResultExtendedCommunityStructured_Choice_Enum)(0), // 199: otg.ResultExtendedCommunityStructured.Choice.Enum - (ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 200: otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.Enum - (ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 201: otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - (ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 202: otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.Enum - (ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 203: otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.Enum - (ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 204: otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - (ResultBgpCommunity_Type_Enum)(0), // 205: otg.ResultBgpCommunity.Type.Enum - (ResultBgpAsPathSegment_Type_Enum)(0), // 206: otg.ResultBgpAsPathSegment.Type.Enum - (IsisLspState_PduType_Enum)(0), // 207: otg.IsisLspState.PduType.Enum - (IsisLspV4Prefix_RedistributionType_Enum)(0), // 208: otg.IsisLspV4Prefix.RedistributionType.Enum - (IsisLspV4Prefix_OriginType_Enum)(0), // 209: otg.IsisLspV4Prefix.OriginType.Enum - (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 210: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - (IsisLspV6Prefix_RedistributionType_Enum)(0), // 211: otg.IsisLspV6Prefix.RedistributionType.Enum - (IsisLspV6Prefix_OriginType_Enum)(0), // 212: otg.IsisLspV6Prefix.OriginType.Enum - (LldpNeighborsState_ChassisIdType_Enum)(0), // 213: otg.LldpNeighborsState.ChassisIdType.Enum - (LldpNeighborsState_PortIdType_Enum)(0), // 214: otg.LldpNeighborsState.PortIdType.Enum - (LldpCapabilityState_CapabilityName_Enum)(0), // 215: otg.LldpCapabilityState.CapabilityName.Enum - (RsvpLspState_SessionStatus_Enum)(0), // 216: otg.RsvpLspState.SessionStatus.Enum - (RsvpLspState_LastFlapReason_Enum)(0), // 217: otg.RsvpLspState.LastFlapReason.Enum - (RsvpLspIpv4Ero_Type_Enum)(0), // 218: otg.RsvpLspIpv4Ero.Type.Enum - (PatternFlowEthernetDst_Choice_Enum)(0), // 219: otg.PatternFlowEthernetDst.Choice.Enum - (PatternFlowEthernetSrc_Choice_Enum)(0), // 220: otg.PatternFlowEthernetSrc.Choice.Enum - (PatternFlowEthernetEtherType_Choice_Enum)(0), // 221: otg.PatternFlowEthernetEtherType.Choice.Enum - (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 222: otg.PatternFlowEthernetPfcQueue.Choice.Enum - (PatternFlowVlanPriority_Choice_Enum)(0), // 223: otg.PatternFlowVlanPriority.Choice.Enum - (PatternFlowVlanCfi_Choice_Enum)(0), // 224: otg.PatternFlowVlanCfi.Choice.Enum - (PatternFlowVlanId_Choice_Enum)(0), // 225: otg.PatternFlowVlanId.Choice.Enum - (PatternFlowVlanTpid_Choice_Enum)(0), // 226: otg.PatternFlowVlanTpid.Choice.Enum - (PatternFlowVxlanFlags_Choice_Enum)(0), // 227: otg.PatternFlowVxlanFlags.Choice.Enum - (PatternFlowVxlanReserved0_Choice_Enum)(0), // 228: otg.PatternFlowVxlanReserved0.Choice.Enum - (PatternFlowVxlanVni_Choice_Enum)(0), // 229: otg.PatternFlowVxlanVni.Choice.Enum - (PatternFlowVxlanReserved1_Choice_Enum)(0), // 230: otg.PatternFlowVxlanReserved1.Choice.Enum - (PatternFlowIpv4Version_Choice_Enum)(0), // 231: otg.PatternFlowIpv4Version.Choice.Enum - (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 232: otg.PatternFlowIpv4HeaderLength.Choice.Enum - (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 233: otg.PatternFlowIpv4TotalLength.Choice.Enum - (PatternFlowIpv4Identification_Choice_Enum)(0), // 234: otg.PatternFlowIpv4Identification.Choice.Enum - (PatternFlowIpv4Reserved_Choice_Enum)(0), // 235: otg.PatternFlowIpv4Reserved.Choice.Enum - (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 236: otg.PatternFlowIpv4DontFragment.Choice.Enum - (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 237: otg.PatternFlowIpv4MoreFragments.Choice.Enum - (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 238: otg.PatternFlowIpv4FragmentOffset.Choice.Enum - (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 239: otg.PatternFlowIpv4TimeToLive.Choice.Enum - (PatternFlowIpv4Protocol_Choice_Enum)(0), // 240: otg.PatternFlowIpv4Protocol.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 241: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 242: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - (PatternFlowIpv4Src_Choice_Enum)(0), // 243: otg.PatternFlowIpv4Src.Choice.Enum - (PatternFlowIpv4Dst_Choice_Enum)(0), // 244: otg.PatternFlowIpv4Dst.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum)(0), // 245: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum)(0), // 246: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum - (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum)(0), // 247: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum - (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 248: otg.PatternFlowIpv4PriorityRaw.Choice.Enum - (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 249: otg.PatternFlowIpv4DscpPhb.Choice.Enum - (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 250: otg.PatternFlowIpv4DscpEcn.Choice.Enum - (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 251: otg.PatternFlowIpv4TosPrecedence.Choice.Enum - (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 252: otg.PatternFlowIpv4TosDelay.Choice.Enum - (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 253: otg.PatternFlowIpv4TosThroughput.Choice.Enum - (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 254: otg.PatternFlowIpv4TosReliability.Choice.Enum - (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 255: otg.PatternFlowIpv4TosMonetary.Choice.Enum - (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 256: otg.PatternFlowIpv4TosUnused.Choice.Enum - (PatternFlowIpv6Version_Choice_Enum)(0), // 257: otg.PatternFlowIpv6Version.Choice.Enum - (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 258: otg.PatternFlowIpv6TrafficClass.Choice.Enum - (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 259: otg.PatternFlowIpv6FlowLabel.Choice.Enum - (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 260: otg.PatternFlowIpv6PayloadLength.Choice.Enum - (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 261: otg.PatternFlowIpv6NextHeader.Choice.Enum - (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 262: otg.PatternFlowIpv6HopLimit.Choice.Enum - (PatternFlowIpv6Src_Choice_Enum)(0), // 263: otg.PatternFlowIpv6Src.Choice.Enum - (PatternFlowIpv6Dst_Choice_Enum)(0), // 264: otg.PatternFlowIpv6Dst.Choice.Enum - (PatternFlowPfcPauseDst_Choice_Enum)(0), // 265: otg.PatternFlowPfcPauseDst.Choice.Enum - (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 266: otg.PatternFlowPfcPauseSrc.Choice.Enum - (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 267: otg.PatternFlowPfcPauseEtherType.Choice.Enum - (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 268: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 269: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 270: otg.PatternFlowPfcPausePauseClass0.Choice.Enum - (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 271: otg.PatternFlowPfcPausePauseClass1.Choice.Enum - (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 272: otg.PatternFlowPfcPausePauseClass2.Choice.Enum - (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 273: otg.PatternFlowPfcPausePauseClass3.Choice.Enum - (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 274: otg.PatternFlowPfcPausePauseClass4.Choice.Enum - (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 275: otg.PatternFlowPfcPausePauseClass5.Choice.Enum - (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 276: otg.PatternFlowPfcPausePauseClass6.Choice.Enum - (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 277: otg.PatternFlowPfcPausePauseClass7.Choice.Enum - (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 278: otg.PatternFlowEthernetPauseDst.Choice.Enum - (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 279: otg.PatternFlowEthernetPauseSrc.Choice.Enum - (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 280: otg.PatternFlowEthernetPauseEtherType.Choice.Enum - (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 281: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 282: otg.PatternFlowEthernetPauseTime.Choice.Enum - (PatternFlowTcpSrcPort_Choice_Enum)(0), // 283: otg.PatternFlowTcpSrcPort.Choice.Enum - (PatternFlowTcpDstPort_Choice_Enum)(0), // 284: otg.PatternFlowTcpDstPort.Choice.Enum - (PatternFlowTcpSeqNum_Choice_Enum)(0), // 285: otg.PatternFlowTcpSeqNum.Choice.Enum - (PatternFlowTcpAckNum_Choice_Enum)(0), // 286: otg.PatternFlowTcpAckNum.Choice.Enum - (PatternFlowTcpDataOffset_Choice_Enum)(0), // 287: otg.PatternFlowTcpDataOffset.Choice.Enum - (PatternFlowTcpEcnNs_Choice_Enum)(0), // 288: otg.PatternFlowTcpEcnNs.Choice.Enum - (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 289: otg.PatternFlowTcpEcnCwr.Choice.Enum - (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 290: otg.PatternFlowTcpEcnEcho.Choice.Enum - (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 291: otg.PatternFlowTcpCtlUrg.Choice.Enum - (PatternFlowTcpCtlAck_Choice_Enum)(0), // 292: otg.PatternFlowTcpCtlAck.Choice.Enum - (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 293: otg.PatternFlowTcpCtlPsh.Choice.Enum - (PatternFlowTcpCtlRst_Choice_Enum)(0), // 294: otg.PatternFlowTcpCtlRst.Choice.Enum - (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 295: otg.PatternFlowTcpCtlSyn.Choice.Enum - (PatternFlowTcpCtlFin_Choice_Enum)(0), // 296: otg.PatternFlowTcpCtlFin.Choice.Enum - (PatternFlowTcpWindow_Choice_Enum)(0), // 297: otg.PatternFlowTcpWindow.Choice.Enum - (PatternFlowTcpChecksum_Choice_Enum)(0), // 298: otg.PatternFlowTcpChecksum.Choice.Enum - (PatternFlowTcpChecksum_Generated_Enum)(0), // 299: otg.PatternFlowTcpChecksum.Generated.Enum - (PatternFlowUdpSrcPort_Choice_Enum)(0), // 300: otg.PatternFlowUdpSrcPort.Choice.Enum - (PatternFlowUdpDstPort_Choice_Enum)(0), // 301: otg.PatternFlowUdpDstPort.Choice.Enum - (PatternFlowUdpLength_Choice_Enum)(0), // 302: otg.PatternFlowUdpLength.Choice.Enum - (PatternFlowUdpChecksum_Choice_Enum)(0), // 303: otg.PatternFlowUdpChecksum.Choice.Enum - (PatternFlowUdpChecksum_Generated_Enum)(0), // 304: otg.PatternFlowUdpChecksum.Generated.Enum - (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 305: otg.PatternFlowGreChecksumPresent.Choice.Enum - (PatternFlowGreReserved0_Choice_Enum)(0), // 306: otg.PatternFlowGreReserved0.Choice.Enum - (PatternFlowGreVersion_Choice_Enum)(0), // 307: otg.PatternFlowGreVersion.Choice.Enum - (PatternFlowGreProtocol_Choice_Enum)(0), // 308: otg.PatternFlowGreProtocol.Choice.Enum - (PatternFlowGreChecksum_Choice_Enum)(0), // 309: otg.PatternFlowGreChecksum.Choice.Enum - (PatternFlowGreChecksum_Generated_Enum)(0), // 310: otg.PatternFlowGreChecksum.Generated.Enum - (PatternFlowGreReserved1_Choice_Enum)(0), // 311: otg.PatternFlowGreReserved1.Choice.Enum - (PatternFlowGtpv1Version_Choice_Enum)(0), // 312: otg.PatternFlowGtpv1Version.Choice.Enum - (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 313: otg.PatternFlowGtpv1ProtocolType.Choice.Enum - (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 314: otg.PatternFlowGtpv1Reserved.Choice.Enum - (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 315: otg.PatternFlowGtpv1EFlag.Choice.Enum - (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 316: otg.PatternFlowGtpv1SFlag.Choice.Enum - (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 317: otg.PatternFlowGtpv1PnFlag.Choice.Enum - (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 318: otg.PatternFlowGtpv1MessageType.Choice.Enum - (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 319: otg.PatternFlowGtpv1MessageLength.Choice.Enum - (PatternFlowGtpv1Teid_Choice_Enum)(0), // 320: otg.PatternFlowGtpv1Teid.Choice.Enum - (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 321: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 322: otg.PatternFlowGtpv1NPduNumber.Choice.Enum - (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 323: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 324: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 325: otg.PatternFlowGtpExtensionContents.Choice.Enum - (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 326: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - (PatternFlowGtpv2Version_Choice_Enum)(0), // 327: otg.PatternFlowGtpv2Version.Choice.Enum - (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 328: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 329: otg.PatternFlowGtpv2TeidFlag.Choice.Enum - (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 330: otg.PatternFlowGtpv2Spare1.Choice.Enum - (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 331: otg.PatternFlowGtpv2MessageType.Choice.Enum - (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 332: otg.PatternFlowGtpv2MessageLength.Choice.Enum - (PatternFlowGtpv2Teid_Choice_Enum)(0), // 333: otg.PatternFlowGtpv2Teid.Choice.Enum - (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 334: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 335: otg.PatternFlowGtpv2Spare2.Choice.Enum - (PatternFlowArpHardwareType_Choice_Enum)(0), // 336: otg.PatternFlowArpHardwareType.Choice.Enum - (PatternFlowArpProtocolType_Choice_Enum)(0), // 337: otg.PatternFlowArpProtocolType.Choice.Enum - (PatternFlowArpHardwareLength_Choice_Enum)(0), // 338: otg.PatternFlowArpHardwareLength.Choice.Enum - (PatternFlowArpProtocolLength_Choice_Enum)(0), // 339: otg.PatternFlowArpProtocolLength.Choice.Enum - (PatternFlowArpOperation_Choice_Enum)(0), // 340: otg.PatternFlowArpOperation.Choice.Enum - (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 341: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 342: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 343: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 344: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - (PatternFlowIcmpEchoType_Choice_Enum)(0), // 345: otg.PatternFlowIcmpEchoType.Choice.Enum - (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 346: otg.PatternFlowIcmpEchoCode.Choice.Enum - (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 347: otg.PatternFlowIcmpEchoChecksum.Choice.Enum - (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 348: otg.PatternFlowIcmpEchoChecksum.Generated.Enum - (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 349: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 350: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 351: otg.PatternFlowIcmpCommonChecksum.Choice.Enum - (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 352: otg.PatternFlowIcmpCommonChecksum.Generated.Enum - (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 353: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 354: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 355: otg.PatternFlowIcmpv6EchoType.Choice.Enum - (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 356: otg.PatternFlowIcmpv6EchoCode.Choice.Enum - (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 357: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 358: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 359: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 360: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 361: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 362: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - (PatternFlowPppAddress_Choice_Enum)(0), // 363: otg.PatternFlowPppAddress.Choice.Enum - (PatternFlowPppControl_Choice_Enum)(0), // 364: otg.PatternFlowPppControl.Choice.Enum - (PatternFlowPppProtocolType_Choice_Enum)(0), // 365: otg.PatternFlowPppProtocolType.Choice.Enum - (PatternFlowIgmpv1Version_Choice_Enum)(0), // 366: otg.PatternFlowIgmpv1Version.Choice.Enum - (PatternFlowIgmpv1Type_Choice_Enum)(0), // 367: otg.PatternFlowIgmpv1Type.Choice.Enum - (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 368: otg.PatternFlowIgmpv1Unused.Choice.Enum - (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 369: otg.PatternFlowIgmpv1Checksum.Choice.Enum - (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 370: otg.PatternFlowIgmpv1Checksum.Generated.Enum - (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 371: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - (PatternFlowMplsLabel_Choice_Enum)(0), // 372: otg.PatternFlowMplsLabel.Choice.Enum - (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 373: otg.PatternFlowMplsTrafficClass.Choice.Enum - (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 374: otg.PatternFlowMplsBottomOfStack.Choice.Enum - (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 375: otg.PatternFlowMplsTimeToLive.Choice.Enum - (PatternFlowSnmpv2CVersion_Choice_Enum)(0), // 376: otg.PatternFlowSnmpv2cVersion.Choice.Enum - (PatternFlowSnmpv2CPDURequestId_Choice_Enum)(0), // 377: otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum - (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum)(0), // 378: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum - (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum)(0), // 379: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum - (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum)(0), // 380: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum - (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum)(0), // 381: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum)(0), // 382: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum)(0), // 383: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum)(0), // 384: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum)(0), // 385: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum)(0), // 386: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum - (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum)(0), // 387: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum - (PatternFlowSnmpv2CCommonRequestId_Choice_Enum)(0), // 388: otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum - (PatternFlowRsvpRsvpChecksum_Choice_Enum)(0), // 389: otg.PatternFlowRsvpRsvpChecksum.Choice.Enum - (PatternFlowRsvpRsvpChecksum_Generated_Enum)(0), // 390: otg.PatternFlowRsvpRsvpChecksum.Generated.Enum - (PatternFlowRsvpTimeToLive_Choice_Enum)(0), // 391: otg.PatternFlowRsvpTimeToLive.Choice.Enum - (PatternFlowRsvpReserved_Choice_Enum)(0), // 392: otg.PatternFlowRsvpReserved.Choice.Enum - (PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum)(0), // 393: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice.Enum - (PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum)(0), // 394: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice.Enum - (PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum)(0), // 395: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice.Enum - (PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum)(0), // 396: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice.Enum - (PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum)(0), // 397: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice.Enum - (PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum)(0), // 398: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice.Enum - (PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum)(0), // 399: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice.Enum - (PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum)(0), // 400: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice.Enum - (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum)(0), // 401: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice.Enum - (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum)(0), // 402: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice.Enum - (PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum)(0), // 403: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice.Enum - (PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum)(0), // 404: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice.Enum - (PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum)(0), // 405: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice.Enum - (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum)(0), // 406: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice.Enum - (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum)(0), // 407: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice.Enum - (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum)(0), // 408: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum)(0), // 409: otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum)(0), // 410: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum)(0), // 411: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum)(0), // 412: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum)(0), // 413: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum)(0), // 414: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum)(0), // 415: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum)(0), // 416: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum)(0), // 417: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum)(0), // 418: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum)(0), // 419: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice.Enum - (PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum)(0), // 420: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice.Enum - (PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum)(0), // 421: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice.Enum - (PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum)(0), // 422: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice.Enum - (PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum)(0), // 423: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice.Enum - (PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum)(0), // 424: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice.Enum - (PatternFlowRSVPPathObjectsCustomType_Choice_Enum)(0), // 425: otg.PatternFlowRSVPPathObjectsCustomType.Choice.Enum - (*Config)(nil), // 426: otg.Config - (*ConfigOptions)(nil), // 427: otg.ConfigOptions - (*Port)(nil), // 428: otg.Port - (*PortOptions)(nil), // 429: otg.PortOptions - (*Lag)(nil), // 430: otg.Lag - (*LagPort)(nil), // 431: otg.LagPort - (*LagProtocol)(nil), // 432: otg.LagProtocol - (*LagProtocolStatic)(nil), // 433: otg.LagProtocolStatic - (*LagProtocolLacp)(nil), // 434: otg.LagProtocolLacp - (*LagPortLacp)(nil), // 435: otg.LagPortLacp - (*DeviceEthernetBase)(nil), // 436: otg.DeviceEthernetBase - (*DeviceEthernet)(nil), // 437: otg.DeviceEthernet - (*EthernetConnection)(nil), // 438: otg.EthernetConnection - (*DeviceVlan)(nil), // 439: otg.DeviceVlan - (*DeviceIpv4)(nil), // 440: otg.DeviceIpv4 - (*DeviceIpv4Loopback)(nil), // 441: otg.DeviceIpv4Loopback - (*DeviceIpv4GatewayMAC)(nil), // 442: otg.DeviceIpv4GatewayMAC - (*DeviceIpv6)(nil), // 443: otg.DeviceIpv6 - (*DeviceIpv6Loopback)(nil), // 444: otg.DeviceIpv6Loopback - (*DeviceIpv6GatewayMAC)(nil), // 445: otg.DeviceIpv6GatewayMAC - (*DeviceDhcpv4Client)(nil), // 446: otg.DeviceDhcpv4client - (*Dhcpv4ClientParams)(nil), // 447: otg.Dhcpv4ClientParams - (*Layer1)(nil), // 448: otg.Layer1 - (*Layer1AutoNegotiation)(nil), // 449: otg.Layer1AutoNegotiation - (*Layer1FlowControl)(nil), // 450: otg.Layer1FlowControl - (*Layer1Ieee8023X)(nil), // 451: otg.Layer1Ieee8023x - (*Layer1Ieee8021Qbb)(nil), // 452: otg.Layer1Ieee8021qbb - (*Capture)(nil), // 453: otg.Capture - (*CaptureFilter)(nil), // 454: otg.CaptureFilter - (*CaptureCustom)(nil), // 455: otg.CaptureCustom - (*CaptureField)(nil), // 456: otg.CaptureField - (*CaptureEthernet)(nil), // 457: otg.CaptureEthernet - (*CaptureVlan)(nil), // 458: otg.CaptureVlan - (*CaptureIpv4)(nil), // 459: otg.CaptureIpv4 - (*CaptureIpv6)(nil), // 460: otg.CaptureIpv6 - (*Device)(nil), // 461: otg.Device - (*ProtocolOptions)(nil), // 462: otg.ProtocolOptions - (*DeviceIsisRouter)(nil), // 463: otg.DeviceIsisRouter - (*DeviceIsisMultiInstance)(nil), // 464: otg.DeviceIsisMultiInstance - (*IsisInterface)(nil), // 465: otg.IsisInterface - (*IsisInterfaceLevel)(nil), // 466: otg.IsisInterfaceLevel - (*IsisMT)(nil), // 467: otg.IsisMT - (*LinkStateTE)(nil), // 468: otg.LinkStateTE - (*LinkStatepriorityBandwidths)(nil), // 469: otg.LinkStatepriorityBandwidths - (*IsisInterfaceAuthentication)(nil), // 470: otg.IsisInterfaceAuthentication - (*IsisInterfaceAdvanced)(nil), // 471: otg.IsisInterfaceAdvanced - (*IsisInterfaceLinkProtection)(nil), // 472: otg.IsisInterfaceLinkProtection - (*IsisBasic)(nil), // 473: otg.IsisBasic - (*IsisAdvanced)(nil), // 474: otg.IsisAdvanced - (*IsisAuthentication)(nil), // 475: otg.IsisAuthentication - (*IsisAuthenticationBase)(nil), // 476: otg.IsisAuthenticationBase - (*IsisV4RouteRange)(nil), // 477: otg.IsisV4RouteRange - (*V4RouteAddress)(nil), // 478: otg.V4RouteAddress - (*V6RouteAddress)(nil), // 479: otg.V6RouteAddress - (*MACRouteAddress)(nil), // 480: otg.MACRouteAddress - (*IsisV6RouteRange)(nil), // 481: otg.IsisV6RouteRange - (*DeviceBgpRouter)(nil), // 482: otg.DeviceBgpRouter - (*DeviceBgpMessageHeaderError)(nil), // 483: otg.DeviceBgpMessageHeaderError - (*DeviceBgpOpenMessageError)(nil), // 484: otg.DeviceBgpOpenMessageError - (*DeviceBgpUpdateMessageError)(nil), // 485: otg.DeviceBgpUpdateMessageError - (*DeviceBgpHoldTimerExpired)(nil), // 486: otg.DeviceBgpHoldTimerExpired - (*DeviceBgpFiniteStateMachineError)(nil), // 487: otg.DeviceBgpFiniteStateMachineError - (*DeviceBgpCeaseError)(nil), // 488: otg.DeviceBgpCeaseError - (*DeviceBgpCustomError)(nil), // 489: otg.DeviceBgpCustomError - (*BgpV4Peer)(nil), // 490: otg.BgpV4Peer - (*BgpV4Interface)(nil), // 491: otg.BgpV4Interface - (*BgpV4EthernetSegment)(nil), // 492: otg.BgpV4EthernetSegment - (*BgpEthernetSegmentDfElection)(nil), // 493: otg.BgpEthernetSegmentDfElection - (*BgpRouteAdvanced)(nil), // 494: otg.BgpRouteAdvanced - (*BgpCommunity)(nil), // 495: otg.BgpCommunity - (*BgpExtCommunity)(nil), // 496: otg.BgpExtCommunity - (*BgpAsPath)(nil), // 497: otg.BgpAsPath - (*BgpAsPathSegment)(nil), // 498: otg.BgpAsPathSegment - (*BgpV4EvpnEvis)(nil), // 499: otg.BgpV4EvpnEvis - (*BgpV4EviVxlan)(nil), // 500: otg.BgpV4EviVxlan - (*BgpV4EviVxlanBroadcastDomain)(nil), // 501: otg.BgpV4EviVxlanBroadcastDomain - (*BgpCMacIpRange)(nil), // 502: otg.BgpCMacIpRange - (*BgpRouteDistinguisher)(nil), // 503: otg.BgpRouteDistinguisher - (*BgpRouteTarget)(nil), // 504: otg.BgpRouteTarget - (*BgpAdvanced)(nil), // 505: otg.BgpAdvanced - (*BgpCapability)(nil), // 506: otg.BgpCapability - (*BgpLearnedInformationFilter)(nil), // 507: otg.BgpLearnedInformationFilter - (*BgpV4RouteRange)(nil), // 508: otg.BgpV4RouteRange - (*BgpAddPath)(nil), // 509: otg.BgpAddPath - (*BgpExtendedCommunity)(nil), // 510: otg.BgpExtendedCommunity - (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 511: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 512: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 513: otg.BgpExtendedCommunityTransitive2OctetAsType - (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 514: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 515: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 516: otg.BgpExtendedCommunityTransitiveIpv4AddressType - (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 517: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 518: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 519: otg.BgpExtendedCommunityTransitive4OctetAsType - (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 520: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 521: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 522: otg.BgpExtendedCommunityTransitiveOpaqueType - (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 523: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 524: otg.BgpExtendedCommunityTransitiveEvpnType - (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 525: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 526: otg.BgpExtendedCommunityNonTransitive2OctetAsType - (*BgpExtendedCommunityCustomType)(nil), // 527: otg.BgpExtendedCommunityCustomType - (*BgpV6RouteRange)(nil), // 528: otg.BgpV6RouteRange - (*BgpSrteV4Policy)(nil), // 529: otg.BgpSrteV4Policy - (*BgpSrteV4TunnelTlv)(nil), // 530: otg.BgpSrteV4TunnelTlv - (*BgpSrteRemoteEndpointSubTlv)(nil), // 531: otg.BgpSrteRemoteEndpointSubTlv - (*BgpSrteColorSubTlv)(nil), // 532: otg.BgpSrteColorSubTlv - (*BgpSrteBindingSubTlv)(nil), // 533: otg.BgpSrteBindingSubTlv - (*BgpSrtePreferenceSubTlv)(nil), // 534: otg.BgpSrtePreferenceSubTlv - (*BgpSrtePolicyPrioritySubTlv)(nil), // 535: otg.BgpSrtePolicyPrioritySubTlv - (*BgpSrtePolicyNameSubTlv)(nil), // 536: otg.BgpSrtePolicyNameSubTlv - (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 537: otg.BgpSrteExplicitNullLabelPolicySubTlv - (*BgpSrteSegmentList)(nil), // 538: otg.BgpSrteSegmentList - (*BgpSrteSegment)(nil), // 539: otg.BgpSrteSegment - (*BgpSrteSrMplsSid)(nil), // 540: otg.BgpSrteSrMplsSid - (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 541: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - (*BgpSrteSegmentATypeSubTlv)(nil), // 542: otg.BgpSrteSegmentATypeSubTlv - (*BgpSrteSegmentBTypeSubTlv)(nil), // 543: otg.BgpSrteSegmentBTypeSubTlv - (*BgpSrteSegmentCTypeSubTlv)(nil), // 544: otg.BgpSrteSegmentCTypeSubTlv - (*BgpSrteSegmentDTypeSubTlv)(nil), // 545: otg.BgpSrteSegmentDTypeSubTlv - (*BgpSrteSegmentETypeSubTlv)(nil), // 546: otg.BgpSrteSegmentETypeSubTlv - (*BgpSrteSegmentFTypeSubTlv)(nil), // 547: otg.BgpSrteSegmentFTypeSubTlv - (*BgpSrteSegmentGTypeSubTlv)(nil), // 548: otg.BgpSrteSegmentGTypeSubTlv - (*BgpSrteSegmentHTypeSubTlv)(nil), // 549: otg.BgpSrteSegmentHTypeSubTlv - (*BgpSrteSegmentITypeSubTlv)(nil), // 550: otg.BgpSrteSegmentITypeSubTlv - (*BgpSrteSegmentJTypeSubTlv)(nil), // 551: otg.BgpSrteSegmentJTypeSubTlv - (*BgpSrteSegmentKTypeSubTlv)(nil), // 552: otg.BgpSrteSegmentKTypeSubTlv - (*BgpSrteV6Policy)(nil), // 553: otg.BgpSrteV6Policy - (*BgpSrteV6TunnelTlv)(nil), // 554: otg.BgpSrteV6TunnelTlv - (*BgpGracefulRestart)(nil), // 555: otg.BgpGracefulRestart - (*BgpUpdateReplay)(nil), // 556: otg.BgpUpdateReplay - (*BgpRawBytes)(nil), // 557: otg.BgpRawBytes - (*BgpOneUpdateReplay)(nil), // 558: otg.BgpOneUpdateReplay - (*BgpStructuredPdus)(nil), // 559: otg.BgpStructuredPdus - (*BgpOneStructuredUpdateReplay)(nil), // 560: otg.BgpOneStructuredUpdateReplay - (*BgpOneTraditionalNlriPrefix)(nil), // 561: otg.BgpOneTraditionalNlriPrefix - (*BgpOneIpv4NLRIPrefix)(nil), // 562: otg.BgpOneIpv4NLRIPrefix - (*BgpOneIpv6NLRIPrefix)(nil), // 563: otg.BgpOneIpv6NLRIPrefix - (*BgpNLRIPrefixPathId)(nil), // 564: otg.BgpNLRIPrefixPathId - (*BgpIpv4SrPolicyNLRIPrefix)(nil), // 565: otg.BgpIpv4SrPolicyNLRIPrefix - (*BgpIpv6SrPolicyNLRIPrefix)(nil), // 566: otg.BgpIpv6SrPolicyNLRIPrefix - (*BgpAttributes)(nil), // 567: otg.BgpAttributes - (*BgpAttributesOtherAttribute)(nil), // 568: otg.BgpAttributesOtherAttribute - (*BgpAttributesAsPath)(nil), // 569: otg.BgpAttributesAsPath - (*BgpAttributesAsPathFourByteAsPath)(nil), // 570: otg.BgpAttributesAsPathFourByteAsPath - (*BgpAttributesFourByteAsPathSegment)(nil), // 571: otg.BgpAttributesFourByteAsPathSegment - (*BgpAttributesAsPathTwoByteAsPath)(nil), // 572: otg.BgpAttributesAsPathTwoByteAsPath - (*BgpAttributesTwoByteAsPathSegment)(nil), // 573: otg.BgpAttributesTwoByteAsPathSegment - (*BgpAttributesAs4Path)(nil), // 574: otg.BgpAttributesAs4Path - (*BgpAttributesAggregator)(nil), // 575: otg.BgpAttributesAggregator - (*BgpAttributesAs4Aggregator)(nil), // 576: otg.BgpAttributesAs4Aggregator - (*BgpAttributesCommunity)(nil), // 577: otg.BgpAttributesCommunity - (*BgpAttributesCustomCommunity)(nil), // 578: otg.BgpAttributesCustomCommunity - (*BgpAttributesNextHop)(nil), // 579: otg.BgpAttributesNextHop - (*BgpAttributesNextHopIpv6TwoAddresses)(nil), // 580: otg.BgpAttributesNextHopIpv6TwoAddresses - (*BgpAttributesMpReachNlri)(nil), // 581: otg.BgpAttributesMpReachNlri - (*BgpAttributesMpUnreachNlri)(nil), // 582: otg.BgpAttributesMpUnreachNlri - (*BgpAttributesMultiExitDiscriminator)(nil), // 583: otg.BgpAttributesMultiExitDiscriminator - (*BgpAttributesLocalPreference)(nil), // 584: otg.BgpAttributesLocalPreference - (*BgpAttributesOriginatorId)(nil), // 585: otg.BgpAttributesOriginatorId - (*BgpAttributesTunnelEncapsulation)(nil), // 586: otg.BgpAttributesTunnelEncapsulation - (*BgpAttributesSegmentRoutingPolicy)(nil), // 587: otg.BgpAttributesSegmentRoutingPolicy - (*BgpAttributesBsid)(nil), // 588: otg.BgpAttributesBsid - (*BgpAttributesBsidMpls)(nil), // 589: otg.BgpAttributesBsidMpls - (*BgpAttributesBsidSrv6)(nil), // 590: otg.BgpAttributesBsidSrv6 - (*BgpAttributesSrv6Bsid)(nil), // 591: otg.BgpAttributesSrv6Bsid - (*BgpAttributesSidMpls)(nil), // 592: otg.BgpAttributesSidMpls - (*BgpAttributesSidSrv6)(nil), // 593: otg.BgpAttributesSidSrv6 - (*BgpAttributesSrPolicyPreference)(nil), // 594: otg.BgpAttributesSrPolicyPreference - (*BgpAttributesSrPolicyPriority)(nil), // 595: otg.BgpAttributesSrPolicyPriority - (*BgpAttributesSrPolicyPolicyCandidateName)(nil), // 596: otg.BgpAttributesSrPolicyPolicyCandidateName - (*BgpAttributesSrPolicyPolicyName)(nil), // 597: otg.BgpAttributesSrPolicyPolicyName - (*BgpAttributesSrPolicyExplicitNullPolicy)(nil), // 598: otg.BgpAttributesSrPolicyExplicitNullPolicy - (*BgpAttributesSrPolicySegmentList)(nil), // 599: otg.BgpAttributesSrPolicySegmentList - (*BgpAttributesSegmentRoutingPolicySegmentListWeight)(nil), // 600: otg.BgpAttributesSegmentRoutingPolicySegmentListWeight - (*BgpAttributesSegmentRoutingPolicySegmentListSegment)(nil), // 601: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment - (*BgpAttributesSegmentRoutingPolicyTypeA)(nil), // 602: otg.BgpAttributesSegmentRoutingPolicyTypeA - (*BgpAttributesSegmentRoutingPolicyTypeB)(nil), // 603: otg.BgpAttributesSegmentRoutingPolicyTypeB - (*BgpAttributesSegmentRoutingPolicyTypeC)(nil), // 604: otg.BgpAttributesSegmentRoutingPolicyTypeC - (*BgpAttributesSegmentRoutingPolicyTypeD)(nil), // 605: otg.BgpAttributesSegmentRoutingPolicyTypeD - (*BgpAttributesSegmentRoutingPolicyTypeE)(nil), // 606: otg.BgpAttributesSegmentRoutingPolicyTypeE - (*BgpAttributesSegmentRoutingPolicyTypeF)(nil), // 607: otg.BgpAttributesSegmentRoutingPolicyTypeF - (*BgpAttributesSegmentRoutingPolicyTypeG)(nil), // 608: otg.BgpAttributesSegmentRoutingPolicyTypeG - (*BgpAttributesSegmentRoutingPolicyTypeH)(nil), // 609: otg.BgpAttributesSegmentRoutingPolicyTypeH - (*BgpAttributesSegmentRoutingPolicyTypeI)(nil), // 610: otg.BgpAttributesSegmentRoutingPolicyTypeI - (*BgpAttributesSegmentRoutingPolicyTypeJ)(nil), // 611: otg.BgpAttributesSegmentRoutingPolicyTypeJ - (*BgpAttributesSegmentRoutingPolicyTypeK)(nil), // 612: otg.BgpAttributesSegmentRoutingPolicyTypeK - (*BgpAttributesSegmentRoutingPolicyTypeFlags)(nil), // 613: otg.BgpAttributesSegmentRoutingPolicyTypeFlags - (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure)(nil), // 614: otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - (*BgpNLRIPrefixSegmentRoutingDistinguisher)(nil), // 615: otg.BgpNLRIPrefixSegmentRoutingDistinguisher - (*BgpV6Peer)(nil), // 616: otg.BgpV6Peer - (*BgpV6Interface)(nil), // 617: otg.BgpV6Interface - (*BgpV6SegmentRouting)(nil), // 618: otg.BgpV6SegmentRouting - (*BgpV6EthernetSegment)(nil), // 619: otg.BgpV6EthernetSegment - (*BgpV6EvpnEvis)(nil), // 620: otg.BgpV6EvpnEvis - (*BgpV6EviVxlan)(nil), // 621: otg.BgpV6EviVxlan - (*BgpV6EviVxlanBroadcastDomain)(nil), // 622: otg.BgpV6EviVxlanBroadcastDomain - (*DeviceVxlan)(nil), // 623: otg.DeviceVxlan - (*VxlanV4Tunnel)(nil), // 624: otg.VxlanV4Tunnel - (*VxlanV6Tunnel)(nil), // 625: otg.VxlanV6Tunnel - (*VxlanV4TunnelDestinationIPMode)(nil), // 626: otg.VxlanV4TunnelDestinationIPMode - (*VxlanV6TunnelDestinationIPMode)(nil), // 627: otg.VxlanV6TunnelDestinationIPMode - (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 628: otg.VxlanV4TunnelDestinationIPModeUnicast - (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 629: otg.VxlanV6TunnelDestinationIPModeUnicast - (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 630: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 631: otg.VxlanV4TunnelDestinationIPModeUnicastVtep - (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 632: otg.VxlanV6TunnelDestinationIPModeUnicastVtep - (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 633: otg.VxlanV4TunnelDestinationIPModeMulticast - (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 634: otg.VxlanV6TunnelDestinationIPModeMulticast - (*DeviceRsvp)(nil), // 635: otg.DeviceRsvp - (*RsvpIpv4Interface)(nil), // 636: otg.RsvpIpv4Interface - (*RsvpLspIpv4Interface)(nil), // 637: otg.RsvpLspIpv4Interface - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 638: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 639: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - (*RsvpSessionAttribute)(nil), // 640: otg.RsvpSessionAttribute - (*RsvpResourceAffinities)(nil), // 641: otg.RsvpResourceAffinities - (*RsvpTspec)(nil), // 642: otg.RsvpTspec - (*RsvpFastReroute)(nil), // 643: otg.RsvpFastReroute - (*RsvpEro)(nil), // 644: otg.RsvpEro - (*RsvpEroSubobject)(nil), // 645: otg.RsvpEroSubobject - (*DeviceDhcpServer)(nil), // 646: otg.DeviceDhcpServer - (*DhcpServerV4)(nil), // 647: otg.DhcpServerV4 - (*DhcpServerV4Pool)(nil), // 648: otg.DhcpServerV4Pool - (*DhcpServerV4PoolOption)(nil), // 649: otg.DhcpServerV4PoolOption - (*Flow)(nil), // 650: otg.Flow - (*FlowTxRx)(nil), // 651: otg.FlowTxRx - (*FlowPort)(nil), // 652: otg.FlowPort - (*FlowRouter)(nil), // 653: otg.FlowRouter - (*FlowHeader)(nil), // 654: otg.FlowHeader - (*FlowCustom)(nil), // 655: otg.FlowCustom - (*FlowCustomMetricTag)(nil), // 656: otg.FlowCustomMetricTag - (*FlowEthernet)(nil), // 657: otg.FlowEthernet - (*FlowVlan)(nil), // 658: otg.FlowVlan - (*FlowVxlan)(nil), // 659: otg.FlowVxlan - (*FlowIpv4)(nil), // 660: otg.FlowIpv4 - (*FlowIpv4Options)(nil), // 661: otg.FlowIpv4Options - (*FlowIpv4OptionsCustom)(nil), // 662: otg.FlowIpv4OptionsCustom - (*FlowIpv4OptionsCustomType)(nil), // 663: otg.FlowIpv4OptionsCustomType - (*FlowIpv4OptionsCustomLength)(nil), // 664: otg.FlowIpv4OptionsCustomLength - (*FlowIpv4Priority)(nil), // 665: otg.FlowIpv4Priority - (*FlowIpv4Dscp)(nil), // 666: otg.FlowIpv4Dscp - (*FlowIpv4Tos)(nil), // 667: otg.FlowIpv4Tos - (*FlowIpv4Auto)(nil), // 668: otg.FlowIpv4Auto - (*FlowIpv6)(nil), // 669: otg.FlowIpv6 - (*FlowPfcPause)(nil), // 670: otg.FlowPfcPause - (*FlowEthernetPause)(nil), // 671: otg.FlowEthernetPause - (*FlowTcp)(nil), // 672: otg.FlowTcp - (*FlowUdp)(nil), // 673: otg.FlowUdp - (*FlowGre)(nil), // 674: otg.FlowGre - (*FlowGtpv1)(nil), // 675: otg.FlowGtpv1 - (*FlowGtpExtension)(nil), // 676: otg.FlowGtpExtension - (*FlowGtpv2)(nil), // 677: otg.FlowGtpv2 - (*FlowArp)(nil), // 678: otg.FlowArp - (*FlowIcmp)(nil), // 679: otg.FlowIcmp - (*FlowIcmpEcho)(nil), // 680: otg.FlowIcmpEcho - (*FlowIcmpv6)(nil), // 681: otg.FlowIcmpv6 - (*FlowIcmpv6Echo)(nil), // 682: otg.FlowIcmpv6Echo - (*FlowPpp)(nil), // 683: otg.FlowPpp - (*FlowIgmpv1)(nil), // 684: otg.FlowIgmpv1 - (*FlowMpls)(nil), // 685: otg.FlowMpls - (*FlowSnmpv2C)(nil), // 686: otg.FlowSnmpv2c - (*FlowSnmpv2CData)(nil), // 687: otg.FlowSnmpv2cData - (*FlowSnmpv2CPDU)(nil), // 688: otg.FlowSnmpv2cPDU - (*FlowSnmpv2CBulkPDU)(nil), // 689: otg.FlowSnmpv2cBulkPDU - (*FlowSnmpv2CVariableBinding)(nil), // 690: otg.FlowSnmpv2cVariableBinding - (*FlowSnmpv2CVariableBindingValue)(nil), // 691: otg.FlowSnmpv2cVariableBindingValue - (*FlowSnmpv2CVariableBindingStringValue)(nil), // 692: otg.FlowSnmpv2cVariableBindingStringValue - (*FlowRsvp)(nil), // 693: otg.FlowRsvp - (*FlowRSVPLength)(nil), // 694: otg.FlowRSVPLength - (*FlowRSVPMessage)(nil), // 695: otg.FlowRSVPMessage - (*FlowRSVPPathMessage)(nil), // 696: otg.FlowRSVPPathMessage - (*FlowRSVPPathObjects)(nil), // 697: otg.FlowRSVPPathObjects - (*FlowRSVPObjectLength)(nil), // 698: otg.FlowRSVPObjectLength - (*FlowRSVPPathObjectsClass)(nil), // 699: otg.FlowRSVPPathObjectsClass - (*FlowRSVPPathObjectsClassSession)(nil), // 700: otg.FlowRSVPPathObjectsClassSession - (*FlowRSVPPathObjectsSessionCType)(nil), // 701: otg.FlowRSVPPathObjectsSessionCType - (*FlowRSVPPathSessionLspTunnelIpv4)(nil), // 702: otg.FlowRSVPPathSessionLspTunnelIpv4 - (*FlowRSVPPathSessionExtTunnelId)(nil), // 703: otg.FlowRSVPPathSessionExtTunnelId - (*FlowRSVPPathObjectsClassRsvpHop)(nil), // 704: otg.FlowRSVPPathObjectsClassRsvpHop - (*FlowRSVPPathObjectsRsvpHopCType)(nil), // 705: otg.FlowRSVPPathObjectsRsvpHopCType - (*FlowRSVPPathRsvpHopIpv4)(nil), // 706: otg.FlowRSVPPathRsvpHopIpv4 - (*FlowRSVPPathObjectsClassTimeValues)(nil), // 707: otg.FlowRSVPPathObjectsClassTimeValues - (*FlowRSVPPathObjectsTimeValuesCType)(nil), // 708: otg.FlowRSVPPathObjectsTimeValuesCType - (*FlowRSVPPathTimeValuesType1)(nil), // 709: otg.FlowRSVPPathTimeValuesType1 - (*FlowRSVPPathObjectsClassExplicitRoute)(nil), // 710: otg.FlowRSVPPathObjectsClassExplicitRoute - (*FlowRSVPPathObjectsClassExplicitRouteCType)(nil), // 711: otg.FlowRSVPPathObjectsClassExplicitRouteCType - (*FlowRSVPPathExplicitRouteType1)(nil), // 712: otg.FlowRSVPPathExplicitRouteType1 - (*FlowRSVPType1ExplicitRouteSubobjects)(nil), // 713: otg.FlowRSVPType1ExplicitRouteSubobjects - (*FlowRSVPType1ExplicitRouteSubobjectsType)(nil), // 714: otg.FlowRSVPType1ExplicitRouteSubobjectsType - (*FlowRSVPPathExplicitRouteType1Ipv4Prefix)(nil), // 715: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix - (*FlowRSVPPathExplicitRouteType1ASNumber)(nil), // 716: otg.FlowRSVPPathExplicitRouteType1ASNumber - (*FlowRSVPExplicitRouteLength)(nil), // 717: otg.FlowRSVPExplicitRouteLength - (*FlowRSVPExplicitRouteASNumberLength)(nil), // 718: otg.FlowRSVPExplicitRouteASNumberLength - (*FlowRSVPPathObjectsClassLabelRequest)(nil), // 719: otg.FlowRSVPPathObjectsClassLabelRequest - (*FlowRSVPPathObjectsLabelRequestCType)(nil), // 720: otg.FlowRSVPPathObjectsLabelRequestCType - (*FlowRSVPPathLabelRequestWithoutLabelRange)(nil), // 721: otg.FlowRSVPPathLabelRequestWithoutLabelRange - (*FlowRSVPPathObjectsClassSessionAttribute)(nil), // 722: otg.FlowRSVPPathObjectsClassSessionAttribute - (*FlowRSVPPathObjectsSessionAttributeCType)(nil), // 723: otg.FlowRSVPPathObjectsSessionAttributeCType - (*FlowRSVPPathSessionAttributeLspTunnel)(nil), // 724: otg.FlowRSVPPathSessionAttributeLspTunnel - (*FlowRSVPPathSessionAttributeLspTunnelRa)(nil), // 725: otg.FlowRSVPPathSessionAttributeLspTunnelRa - (*FlowRSVPLspTunnelFlag)(nil), // 726: otg.FlowRSVPLspTunnelFlag - (*FlowRSVPSessionAttributeNameLength)(nil), // 727: otg.FlowRSVPSessionAttributeNameLength - (*FlowRSVPPathObjectsClassSenderTemplate)(nil), // 728: otg.FlowRSVPPathObjectsClassSenderTemplate - (*FlowRSVPPathObjectsSenderTemplateCType)(nil), // 729: otg.FlowRSVPPathObjectsSenderTemplateCType - (*FlowRSVPPathSenderTemplateLspTunnelIpv4)(nil), // 730: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4 - (*FlowRSVPPathObjectsClassSenderTspec)(nil), // 731: otg.FlowRSVPPathObjectsClassSenderTspec - (*FlowRSVPPathObjectsSenderTspecCType)(nil), // 732: otg.FlowRSVPPathObjectsSenderTspecCType - (*FlowRSVPPathSenderTspecIntServ)(nil), // 733: otg.FlowRSVPPathSenderTspecIntServ - (*FlowRSVPPathObjectsClassRecordRoute)(nil), // 734: otg.FlowRSVPPathObjectsClassRecordRoute - (*FlowRSVPPathObjectsRecordRouteCType)(nil), // 735: otg.FlowRSVPPathObjectsRecordRouteCType - (*FlowRSVPPathRecordRouteType1)(nil), // 736: otg.FlowRSVPPathRecordRouteType1 - (*FlowRSVPType1RecordRouteSubobjects)(nil), // 737: otg.FlowRSVPType1RecordRouteSubobjects - (*FlowRSVPPathObjectsRecordRouteSubObjectType)(nil), // 738: otg.FlowRSVPPathObjectsRecordRouteSubObjectType - (*FlowRSVPPathRecordRouteType1Ipv4Address)(nil), // 739: otg.FlowRSVPPathRecordRouteType1Ipv4Address - (*FlowRSVPRecordRouteIPv4Flag)(nil), // 740: otg.FlowRSVPRecordRouteIPv4Flag - (*FlowRSVPPathRecordRouteType1Label)(nil), // 741: otg.FlowRSVPPathRecordRouteType1Label - (*FlowRSVPPathRecordRouteLabel)(nil), // 742: otg.FlowRSVPPathRecordRouteLabel - (*FlowRSVPRouteRecordLength)(nil), // 743: otg.FlowRSVPRouteRecordLength - (*FlowRSVPPathObjectsCustom)(nil), // 744: otg.FlowRSVPPathObjectsCustom - (*FlowSize)(nil), // 745: otg.FlowSize - (*FlowSizeIncrement)(nil), // 746: otg.FlowSizeIncrement - (*FlowSizeRandom)(nil), // 747: otg.FlowSizeRandom - (*FlowSizeWeightPairs)(nil), // 748: otg.FlowSizeWeightPairs - (*FlowSizeWeightPairsCustom)(nil), // 749: otg.FlowSizeWeightPairsCustom - (*FlowRate)(nil), // 750: otg.FlowRate - (*FlowDuration)(nil), // 751: otg.FlowDuration - (*FlowContinuous)(nil), // 752: otg.FlowContinuous - (*FlowDelay)(nil), // 753: otg.FlowDelay - (*FlowFixedPackets)(nil), // 754: otg.FlowFixedPackets - (*FlowFixedSeconds)(nil), // 755: otg.FlowFixedSeconds - (*FlowBurst)(nil), // 756: otg.FlowBurst - (*FlowDurationInterBurstGap)(nil), // 757: otg.FlowDurationInterBurstGap - (*FlowMetrics)(nil), // 758: otg.FlowMetrics - (*FlowLatencyMetrics)(nil), // 759: otg.FlowLatencyMetrics - (*FlowPredefinedTags)(nil), // 760: otg.FlowPredefinedTags - (*FlowRxTxRatio)(nil), // 761: otg.FlowRxTxRatio - (*FlowRxTxRatioRxCount)(nil), // 762: otg.FlowRxTxRatioRxCount - (*Event)(nil), // 763: otg.Event - (*EventRxRateThreshold)(nil), // 764: otg.EventRxRateThreshold - (*EventLink)(nil), // 765: otg.EventLink - (*EventRouteAdvertiseWithdraw)(nil), // 766: otg.EventRouteAdvertiseWithdraw - (*EventRequest)(nil), // 767: otg.EventRequest - (*EventSubscription)(nil), // 768: otg.EventSubscription - (*Lldp)(nil), // 769: otg.Lldp - (*LldpConnection)(nil), // 770: otg.LldpConnection - (*LldpChassisId)(nil), // 771: otg.LldpChassisId - (*LldpPortId)(nil), // 772: otg.LldpPortId - (*LldpChassisMacSubType)(nil), // 773: otg.LldpChassisMacSubType - (*LldpPortInterfaceNameSubType)(nil), // 774: otg.LldpPortInterfaceNameSubType - (*LldpSystemName)(nil), // 775: otg.LldpSystemName - (*Error)(nil), // 776: otg.Error - (*Warning)(nil), // 777: otg.Warning - (*ConfigUpdate)(nil), // 778: otg.ConfigUpdate - (*FlowsUpdate)(nil), // 779: otg.FlowsUpdate - (*ControlState)(nil), // 780: otg.ControlState - (*StatePort)(nil), // 781: otg.StatePort - (*StateTraffic)(nil), // 782: otg.StateTraffic - (*StateProtocol)(nil), // 783: otg.StateProtocol - (*StatePortLink)(nil), // 784: otg.StatePortLink - (*StatePortCapture)(nil), // 785: otg.StatePortCapture - (*StateTrafficFlowTransmit)(nil), // 786: otg.StateTrafficFlowTransmit - (*StateProtocolAll)(nil), // 787: otg.StateProtocolAll - (*StateProtocolRoute)(nil), // 788: otg.StateProtocolRoute - (*StateProtocolLacp)(nil), // 789: otg.StateProtocolLacp - (*StateProtocolLacpAdmin)(nil), // 790: otg.StateProtocolLacpAdmin - (*StateProtocolLacpMemberPorts)(nil), // 791: otg.StateProtocolLacpMemberPorts - (*StateProtocolBgp)(nil), // 792: otg.StateProtocolBgp - (*StateProtocolBgpPeers)(nil), // 793: otg.StateProtocolBgpPeers - (*StateProtocolIsis)(nil), // 794: otg.StateProtocolIsis - (*StateProtocolIsisRouters)(nil), // 795: otg.StateProtocolIsisRouters - (*ControlAction)(nil), // 796: otg.ControlAction - (*ControlActionResponse)(nil), // 797: otg.ControlActionResponse - (*ActionResponse)(nil), // 798: otg.ActionResponse - (*ActionProtocol)(nil), // 799: otg.ActionProtocol - (*ActionResponseProtocol)(nil), // 800: otg.ActionResponseProtocol - (*ActionProtocolIpv4)(nil), // 801: otg.ActionProtocolIpv4 - (*ActionResponseProtocolIpv4)(nil), // 802: otg.ActionResponseProtocolIpv4 - (*ActionProtocolIpv4Ping)(nil), // 803: otg.ActionProtocolIpv4Ping - (*ActionProtocolIpv4PingRequest)(nil), // 804: otg.ActionProtocolIpv4PingRequest - (*ActionResponseProtocolIpv4Ping)(nil), // 805: otg.ActionResponseProtocolIpv4Ping - (*ActionResponseProtocolIpv4PingResponse)(nil), // 806: otg.ActionResponseProtocolIpv4PingResponse - (*ActionProtocolIpv6)(nil), // 807: otg.ActionProtocolIpv6 - (*ActionResponseProtocolIpv6)(nil), // 808: otg.ActionResponseProtocolIpv6 - (*ActionProtocolIpv6Ping)(nil), // 809: otg.ActionProtocolIpv6Ping - (*ActionProtocolIpv6PingRequest)(nil), // 810: otg.ActionProtocolIpv6PingRequest - (*ActionResponseProtocolIpv6Ping)(nil), // 811: otg.ActionResponseProtocolIpv6Ping - (*ActionResponseProtocolIpv6PingResponse)(nil), // 812: otg.ActionResponseProtocolIpv6PingResponse - (*ActionProtocolBgp)(nil), // 813: otg.ActionProtocolBgp - (*ActionProtocolBgpNotification)(nil), // 814: otg.ActionProtocolBgpNotification - (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 815: otg.ActionProtocolBgpInitiateGracefulRestart - (*MetricsRequest)(nil), // 816: otg.MetricsRequest - (*MetricsResponse)(nil), // 817: otg.MetricsResponse - (*PortMetricsRequest)(nil), // 818: otg.PortMetricsRequest - (*PortMetric)(nil), // 819: otg.PortMetric - (*FlowMetricsRequest)(nil), // 820: otg.FlowMetricsRequest - (*FlowTaggedMetricsFilter)(nil), // 821: otg.FlowTaggedMetricsFilter - (*FlowMetricTagFilter)(nil), // 822: otg.FlowMetricTagFilter - (*FlowMetric)(nil), // 823: otg.FlowMetric - (*FlowTaggedMetric)(nil), // 824: otg.FlowTaggedMetric - (*FlowMetricTag)(nil), // 825: otg.FlowMetricTag - (*FlowMetricTagValue)(nil), // 826: otg.FlowMetricTagValue - (*MetricTimestamp)(nil), // 827: otg.MetricTimestamp - (*MetricLatency)(nil), // 828: otg.MetricLatency - (*Bgpv4MetricsRequest)(nil), // 829: otg.Bgpv4MetricsRequest - (*Bgpv4Metric)(nil), // 830: otg.Bgpv4Metric - (*Bgpv6MetricsRequest)(nil), // 831: otg.Bgpv6MetricsRequest - (*Bgpv6Metric)(nil), // 832: otg.Bgpv6Metric - (*IsisMetricsRequest)(nil), // 833: otg.IsisMetricsRequest - (*IsisMetric)(nil), // 834: otg.IsisMetric - (*LagMetricsRequest)(nil), // 835: otg.LagMetricsRequest - (*LagMetric)(nil), // 836: otg.LagMetric - (*LacpMetricsRequest)(nil), // 837: otg.LacpMetricsRequest - (*LacpMetric)(nil), // 838: otg.LacpMetric - (*LldpMetricsRequest)(nil), // 839: otg.LldpMetricsRequest - (*LldpMetric)(nil), // 840: otg.LldpMetric - (*RsvpMetricsRequest)(nil), // 841: otg.RsvpMetricsRequest - (*RsvpMetric)(nil), // 842: otg.RsvpMetric - (*Dhcpv4ClientMetricsRequest)(nil), // 843: otg.Dhcpv4ClientMetricsRequest - (*Dhcpv4ClientMetric)(nil), // 844: otg.Dhcpv4ClientMetric - (*Dhcpv4ServerMetricsRequest)(nil), // 845: otg.Dhcpv4ServerMetricsRequest - (*Dhcpv4ServerMetric)(nil), // 846: otg.Dhcpv4ServerMetric - (*StatesRequest)(nil), // 847: otg.StatesRequest - (*StatesResponse)(nil), // 848: otg.StatesResponse - (*Neighborsv4StatesRequest)(nil), // 849: otg.Neighborsv4StatesRequest - (*Neighborsv4State)(nil), // 850: otg.Neighborsv4State - (*Neighborsv6StatesRequest)(nil), // 851: otg.Neighborsv6StatesRequest - (*Neighborsv6State)(nil), // 852: otg.Neighborsv6State - (*BgpPrefixStateRequest)(nil), // 853: otg.BgpPrefixStateRequest - (*BgpPrefixIpv4UnicastFilter)(nil), // 854: otg.BgpPrefixIpv4UnicastFilter - (*BgpPrefixIpv6UnicastFilter)(nil), // 855: otg.BgpPrefixIpv6UnicastFilter - (*BgpPrefixesState)(nil), // 856: otg.BgpPrefixesState - (*BgpPrefixIpv4UnicastState)(nil), // 857: otg.BgpPrefixIpv4UnicastState - (*BgpPrefixIpv6UnicastState)(nil), // 858: otg.BgpPrefixIpv6UnicastState - (*ResultExtendedCommunity)(nil), // 859: otg.ResultExtendedCommunity - (*ResultExtendedCommunityStructured)(nil), // 860: otg.ResultExtendedCommunityStructured - (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 861: otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget - (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 862: otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin - (*ResultExtendedCommunityTransitive2OctetAsType)(nil), // 863: otg.ResultExtendedCommunityTransitive2OctetAsType - (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 864: otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 865: otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - (*ResultExtendedCommunityTransitiveIpv4AddressType)(nil), // 866: otg.ResultExtendedCommunityTransitiveIpv4AddressType - (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 867: otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget - (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 868: otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin - (*ResultExtendedCommunityTransitive4OctetAsType)(nil), // 869: otg.ResultExtendedCommunityTransitive4OctetAsType - (*ResultExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 870: otg.ResultExtendedCommunityTransitiveOpaqueTypeColor - (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 871: otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation - (*ResultExtendedCommunityTransitiveOpaqueType)(nil), // 872: otg.ResultExtendedCommunityTransitiveOpaqueType - (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 873: otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - (*ResultExtendedCommunityNonTransitive2OctetAsType)(nil), // 874: otg.ResultExtendedCommunityNonTransitive2OctetAsType - (*ResultBgpCommunity)(nil), // 875: otg.ResultBgpCommunity - (*ResultBgpAsPath)(nil), // 876: otg.ResultBgpAsPath - (*ResultBgpAsPathSegment)(nil), // 877: otg.ResultBgpAsPathSegment - (*IsisLspsStateRequest)(nil), // 878: otg.IsisLspsStateRequest - (*IsisLspsState)(nil), // 879: otg.IsisLspsState - (*IsisLspState)(nil), // 880: otg.IsisLspState - (*IsisLspTlvs)(nil), // 881: otg.IsisLspTlvs - (*IsisLspHostname)(nil), // 882: otg.IsisLspHostname - (*IsisLspFlags)(nil), // 883: otg.IsisLspFlags - (*IsisLspIsReachabilityTlv)(nil), // 884: otg.IsisLspIsReachabilityTlv - (*IsisLspExtendedIsReachabilityTlv)(nil), // 885: otg.IsisLspExtendedIsReachabilityTlv - (*IsisLspneighbor)(nil), // 886: otg.IsisLspneighbor - (*IsisLspIpv4InternalReachabilityTlv)(nil), // 887: otg.IsisLspIpv4InternalReachabilityTlv - (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 888: otg.IsisLspIpv4ExternalReachabilityTlv - (*IsisLspV4Prefix)(nil), // 889: otg.IsisLspV4Prefix - (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 890: otg.IsisLspExtendedIpv4ReachabilityTlv - (*IsisLspExtendedV4Prefix)(nil), // 891: otg.IsisLspExtendedV4Prefix - (*IsisLspIpv6ReachabilityTlv)(nil), // 892: otg.IsisLspIpv6ReachabilityTlv - (*IsisLspV6Prefix)(nil), // 893: otg.IsisLspV6Prefix - (*IsisLspPrefixAttributes)(nil), // 894: otg.IsisLspPrefixAttributes - (*LldpNeighborsStateRequest)(nil), // 895: otg.LldpNeighborsStateRequest - (*LldpNeighborsState)(nil), // 896: otg.LldpNeighborsState - (*LldpCustomTLVState)(nil), // 897: otg.LldpCustomTLVState - (*LldpCapabilityState)(nil), // 898: otg.LldpCapabilityState - (*RsvpLspsStateRequest)(nil), // 899: otg.RsvpLspsStateRequest - (*RsvpLspsState)(nil), // 900: otg.RsvpLspsState - (*RsvpIPv4LspState)(nil), // 901: otg.RsvpIPv4LspState - (*RsvpLspState)(nil), // 902: otg.RsvpLspState - (*RsvpLspIpv4Rro)(nil), // 903: otg.RsvpLspIpv4Rro - (*RsvpLspIpv4Ero)(nil), // 904: otg.RsvpLspIpv4Ero - (*Dhcpv4InterfaceStateRequest)(nil), // 905: otg.Dhcpv4InterfaceStateRequest - (*Dhcpv4InterfaceState)(nil), // 906: otg.Dhcpv4InterfaceState - (*Dhcpv4LeaseStateRequest)(nil), // 907: otg.Dhcpv4LeaseStateRequest - (*Dhcpv4LeasesState)(nil), // 908: otg.Dhcpv4LeasesState - (*Dhcpv4LeaseState)(nil), // 909: otg.Dhcpv4LeaseState - (*CaptureRequest)(nil), // 910: otg.CaptureRequest - (*PatternFlowEthernetDstCounter)(nil), // 911: otg.PatternFlowEthernetDstCounter - (*PatternFlowEthernetDstMetricTag)(nil), // 912: otg.PatternFlowEthernetDstMetricTag - (*PatternFlowEthernetDst)(nil), // 913: otg.PatternFlowEthernetDst - (*PatternFlowEthernetSrcCounter)(nil), // 914: otg.PatternFlowEthernetSrcCounter - (*PatternFlowEthernetSrcMetricTag)(nil), // 915: otg.PatternFlowEthernetSrcMetricTag - (*PatternFlowEthernetSrc)(nil), // 916: otg.PatternFlowEthernetSrc - (*PatternFlowEthernetEtherTypeCounter)(nil), // 917: otg.PatternFlowEthernetEtherTypeCounter - (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 918: otg.PatternFlowEthernetEtherTypeMetricTag - (*PatternFlowEthernetEtherType)(nil), // 919: otg.PatternFlowEthernetEtherType - (*PatternFlowEthernetPfcQueueCounter)(nil), // 920: otg.PatternFlowEthernetPfcQueueCounter - (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 921: otg.PatternFlowEthernetPfcQueueMetricTag - (*PatternFlowEthernetPfcQueue)(nil), // 922: otg.PatternFlowEthernetPfcQueue - (*PatternFlowVlanPriorityCounter)(nil), // 923: otg.PatternFlowVlanPriorityCounter - (*PatternFlowVlanPriorityMetricTag)(nil), // 924: otg.PatternFlowVlanPriorityMetricTag - (*PatternFlowVlanPriority)(nil), // 925: otg.PatternFlowVlanPriority - (*PatternFlowVlanCfiCounter)(nil), // 926: otg.PatternFlowVlanCfiCounter - (*PatternFlowVlanCfiMetricTag)(nil), // 927: otg.PatternFlowVlanCfiMetricTag - (*PatternFlowVlanCfi)(nil), // 928: otg.PatternFlowVlanCfi - (*PatternFlowVlanIdCounter)(nil), // 929: otg.PatternFlowVlanIdCounter - (*PatternFlowVlanIdMetricTag)(nil), // 930: otg.PatternFlowVlanIdMetricTag - (*PatternFlowVlanId)(nil), // 931: otg.PatternFlowVlanId - (*PatternFlowVlanTpidCounter)(nil), // 932: otg.PatternFlowVlanTpidCounter - (*PatternFlowVlanTpidMetricTag)(nil), // 933: otg.PatternFlowVlanTpidMetricTag - (*PatternFlowVlanTpid)(nil), // 934: otg.PatternFlowVlanTpid - (*PatternFlowVxlanFlagsCounter)(nil), // 935: otg.PatternFlowVxlanFlagsCounter - (*PatternFlowVxlanFlagsMetricTag)(nil), // 936: otg.PatternFlowVxlanFlagsMetricTag - (*PatternFlowVxlanFlags)(nil), // 937: otg.PatternFlowVxlanFlags - (*PatternFlowVxlanReserved0Counter)(nil), // 938: otg.PatternFlowVxlanReserved0Counter - (*PatternFlowVxlanReserved0MetricTag)(nil), // 939: otg.PatternFlowVxlanReserved0MetricTag - (*PatternFlowVxlanReserved0)(nil), // 940: otg.PatternFlowVxlanReserved0 - (*PatternFlowVxlanVniCounter)(nil), // 941: otg.PatternFlowVxlanVniCounter - (*PatternFlowVxlanVniMetricTag)(nil), // 942: otg.PatternFlowVxlanVniMetricTag - (*PatternFlowVxlanVni)(nil), // 943: otg.PatternFlowVxlanVni - (*PatternFlowVxlanReserved1Counter)(nil), // 944: otg.PatternFlowVxlanReserved1Counter - (*PatternFlowVxlanReserved1MetricTag)(nil), // 945: otg.PatternFlowVxlanReserved1MetricTag - (*PatternFlowVxlanReserved1)(nil), // 946: otg.PatternFlowVxlanReserved1 - (*PatternFlowIpv4VersionCounter)(nil), // 947: otg.PatternFlowIpv4VersionCounter - (*PatternFlowIpv4VersionMetricTag)(nil), // 948: otg.PatternFlowIpv4VersionMetricTag - (*PatternFlowIpv4Version)(nil), // 949: otg.PatternFlowIpv4Version - (*PatternFlowIpv4HeaderLengthCounter)(nil), // 950: otg.PatternFlowIpv4HeaderLengthCounter - (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 951: otg.PatternFlowIpv4HeaderLengthMetricTag - (*PatternFlowIpv4HeaderLength)(nil), // 952: otg.PatternFlowIpv4HeaderLength - (*PatternFlowIpv4TotalLengthCounter)(nil), // 953: otg.PatternFlowIpv4TotalLengthCounter - (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 954: otg.PatternFlowIpv4TotalLengthMetricTag - (*PatternFlowIpv4TotalLength)(nil), // 955: otg.PatternFlowIpv4TotalLength - (*PatternFlowIpv4IdentificationCounter)(nil), // 956: otg.PatternFlowIpv4IdentificationCounter - (*PatternFlowIpv4IdentificationMetricTag)(nil), // 957: otg.PatternFlowIpv4IdentificationMetricTag - (*PatternFlowIpv4Identification)(nil), // 958: otg.PatternFlowIpv4Identification - (*PatternFlowIpv4ReservedCounter)(nil), // 959: otg.PatternFlowIpv4ReservedCounter - (*PatternFlowIpv4ReservedMetricTag)(nil), // 960: otg.PatternFlowIpv4ReservedMetricTag - (*PatternFlowIpv4Reserved)(nil), // 961: otg.PatternFlowIpv4Reserved - (*PatternFlowIpv4DontFragmentCounter)(nil), // 962: otg.PatternFlowIpv4DontFragmentCounter - (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 963: otg.PatternFlowIpv4DontFragmentMetricTag - (*PatternFlowIpv4DontFragment)(nil), // 964: otg.PatternFlowIpv4DontFragment - (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 965: otg.PatternFlowIpv4MoreFragmentsCounter - (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 966: otg.PatternFlowIpv4MoreFragmentsMetricTag - (*PatternFlowIpv4MoreFragments)(nil), // 967: otg.PatternFlowIpv4MoreFragments - (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 968: otg.PatternFlowIpv4FragmentOffsetCounter - (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 969: otg.PatternFlowIpv4FragmentOffsetMetricTag - (*PatternFlowIpv4FragmentOffset)(nil), // 970: otg.PatternFlowIpv4FragmentOffset - (*PatternFlowIpv4TimeToLiveCounter)(nil), // 971: otg.PatternFlowIpv4TimeToLiveCounter - (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 972: otg.PatternFlowIpv4TimeToLiveMetricTag - (*PatternFlowIpv4TimeToLive)(nil), // 973: otg.PatternFlowIpv4TimeToLive - (*PatternFlowIpv4ProtocolCounter)(nil), // 974: otg.PatternFlowIpv4ProtocolCounter - (*PatternFlowIpv4ProtocolMetricTag)(nil), // 975: otg.PatternFlowIpv4ProtocolMetricTag - (*PatternFlowIpv4Protocol)(nil), // 976: otg.PatternFlowIpv4Protocol - (*PatternFlowIpv4HeaderChecksum)(nil), // 977: otg.PatternFlowIpv4HeaderChecksum - (*PatternFlowIpv4SrcCounter)(nil), // 978: otg.PatternFlowIpv4SrcCounter - (*PatternFlowIpv4SrcMetricTag)(nil), // 979: otg.PatternFlowIpv4SrcMetricTag - (*PatternFlowIpv4SrcRandom)(nil), // 980: otg.PatternFlowIpv4SrcRandom - (*PatternFlowIpv4Src)(nil), // 981: otg.PatternFlowIpv4Src - (*PatternFlowIpv4DstCounter)(nil), // 982: otg.PatternFlowIpv4DstCounter - (*PatternFlowIpv4DstMetricTag)(nil), // 983: otg.PatternFlowIpv4DstMetricTag - (*PatternFlowIpv4DstRandom)(nil), // 984: otg.PatternFlowIpv4DstRandom - (*PatternFlowIpv4Dst)(nil), // 985: otg.PatternFlowIpv4Dst - (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter)(nil), // 986: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - (*PatternFlowIpv4OptionsCustomTypeCopiedFlag)(nil), // 987: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter)(nil), // 988: otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - (*PatternFlowIpv4OptionsCustomTypeOptionClass)(nil), // 989: otg.PatternFlowIpv4OptionsCustomTypeOptionClass - (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter)(nil), // 990: otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - (*PatternFlowIpv4OptionsCustomTypeOptionNumber)(nil), // 991: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - (*PatternFlowIpv4PriorityRawCounter)(nil), // 992: otg.PatternFlowIpv4PriorityRawCounter - (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 993: otg.PatternFlowIpv4PriorityRawMetricTag - (*PatternFlowIpv4PriorityRaw)(nil), // 994: otg.PatternFlowIpv4PriorityRaw - (*PatternFlowIpv4DscpPhbCounter)(nil), // 995: otg.PatternFlowIpv4DscpPhbCounter - (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 996: otg.PatternFlowIpv4DscpPhbMetricTag - (*PatternFlowIpv4DscpPhb)(nil), // 997: otg.PatternFlowIpv4DscpPhb - (*PatternFlowIpv4DscpEcnCounter)(nil), // 998: otg.PatternFlowIpv4DscpEcnCounter - (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 999: otg.PatternFlowIpv4DscpEcnMetricTag - (*PatternFlowIpv4DscpEcn)(nil), // 1000: otg.PatternFlowIpv4DscpEcn - (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 1001: otg.PatternFlowIpv4TosPrecedenceCounter - (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 1002: otg.PatternFlowIpv4TosPrecedenceMetricTag - (*PatternFlowIpv4TosPrecedence)(nil), // 1003: otg.PatternFlowIpv4TosPrecedence - (*PatternFlowIpv4TosDelayCounter)(nil), // 1004: otg.PatternFlowIpv4TosDelayCounter - (*PatternFlowIpv4TosDelayMetricTag)(nil), // 1005: otg.PatternFlowIpv4TosDelayMetricTag - (*PatternFlowIpv4TosDelay)(nil), // 1006: otg.PatternFlowIpv4TosDelay - (*PatternFlowIpv4TosThroughputCounter)(nil), // 1007: otg.PatternFlowIpv4TosThroughputCounter - (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 1008: otg.PatternFlowIpv4TosThroughputMetricTag - (*PatternFlowIpv4TosThroughput)(nil), // 1009: otg.PatternFlowIpv4TosThroughput - (*PatternFlowIpv4TosReliabilityCounter)(nil), // 1010: otg.PatternFlowIpv4TosReliabilityCounter - (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 1011: otg.PatternFlowIpv4TosReliabilityMetricTag - (*PatternFlowIpv4TosReliability)(nil), // 1012: otg.PatternFlowIpv4TosReliability - (*PatternFlowIpv4TosMonetaryCounter)(nil), // 1013: otg.PatternFlowIpv4TosMonetaryCounter - (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 1014: otg.PatternFlowIpv4TosMonetaryMetricTag - (*PatternFlowIpv4TosMonetary)(nil), // 1015: otg.PatternFlowIpv4TosMonetary - (*PatternFlowIpv4TosUnusedCounter)(nil), // 1016: otg.PatternFlowIpv4TosUnusedCounter - (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 1017: otg.PatternFlowIpv4TosUnusedMetricTag - (*PatternFlowIpv4TosUnused)(nil), // 1018: otg.PatternFlowIpv4TosUnused - (*PatternFlowIpv6VersionCounter)(nil), // 1019: otg.PatternFlowIpv6VersionCounter - (*PatternFlowIpv6VersionMetricTag)(nil), // 1020: otg.PatternFlowIpv6VersionMetricTag - (*PatternFlowIpv6Version)(nil), // 1021: otg.PatternFlowIpv6Version - (*PatternFlowIpv6TrafficClassCounter)(nil), // 1022: otg.PatternFlowIpv6TrafficClassCounter - (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 1023: otg.PatternFlowIpv6TrafficClassMetricTag - (*PatternFlowIpv6TrafficClass)(nil), // 1024: otg.PatternFlowIpv6TrafficClass - (*PatternFlowIpv6FlowLabelCounter)(nil), // 1025: otg.PatternFlowIpv6FlowLabelCounter - (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 1026: otg.PatternFlowIpv6FlowLabelMetricTag - (*PatternFlowIpv6FlowLabelRandom)(nil), // 1027: otg.PatternFlowIpv6FlowLabelRandom - (*PatternFlowIpv6FlowLabel)(nil), // 1028: otg.PatternFlowIpv6FlowLabel - (*PatternFlowIpv6PayloadLengthCounter)(nil), // 1029: otg.PatternFlowIpv6PayloadLengthCounter - (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 1030: otg.PatternFlowIpv6PayloadLengthMetricTag - (*PatternFlowIpv6PayloadLength)(nil), // 1031: otg.PatternFlowIpv6PayloadLength - (*PatternFlowIpv6NextHeaderCounter)(nil), // 1032: otg.PatternFlowIpv6NextHeaderCounter - (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 1033: otg.PatternFlowIpv6NextHeaderMetricTag - (*PatternFlowIpv6NextHeader)(nil), // 1034: otg.PatternFlowIpv6NextHeader - (*PatternFlowIpv6HopLimitCounter)(nil), // 1035: otg.PatternFlowIpv6HopLimitCounter - (*PatternFlowIpv6HopLimitMetricTag)(nil), // 1036: otg.PatternFlowIpv6HopLimitMetricTag - (*PatternFlowIpv6HopLimit)(nil), // 1037: otg.PatternFlowIpv6HopLimit - (*PatternFlowIpv6SrcCounter)(nil), // 1038: otg.PatternFlowIpv6SrcCounter - (*PatternFlowIpv6SrcMetricTag)(nil), // 1039: otg.PatternFlowIpv6SrcMetricTag - (*PatternFlowIpv6Src)(nil), // 1040: otg.PatternFlowIpv6Src - (*PatternFlowIpv6DstCounter)(nil), // 1041: otg.PatternFlowIpv6DstCounter - (*PatternFlowIpv6DstMetricTag)(nil), // 1042: otg.PatternFlowIpv6DstMetricTag - (*PatternFlowIpv6Dst)(nil), // 1043: otg.PatternFlowIpv6Dst - (*PatternFlowPfcPauseDstCounter)(nil), // 1044: otg.PatternFlowPfcPauseDstCounter - (*PatternFlowPfcPauseDstMetricTag)(nil), // 1045: otg.PatternFlowPfcPauseDstMetricTag - (*PatternFlowPfcPauseDst)(nil), // 1046: otg.PatternFlowPfcPauseDst - (*PatternFlowPfcPauseSrcCounter)(nil), // 1047: otg.PatternFlowPfcPauseSrcCounter - (*PatternFlowPfcPauseSrcMetricTag)(nil), // 1048: otg.PatternFlowPfcPauseSrcMetricTag - (*PatternFlowPfcPauseSrc)(nil), // 1049: otg.PatternFlowPfcPauseSrc - (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 1050: otg.PatternFlowPfcPauseEtherTypeCounter - (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 1051: otg.PatternFlowPfcPauseEtherTypeMetricTag - (*PatternFlowPfcPauseEtherType)(nil), // 1052: otg.PatternFlowPfcPauseEtherType - (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 1053: otg.PatternFlowPfcPauseControlOpCodeCounter - (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 1054: otg.PatternFlowPfcPauseControlOpCodeMetricTag - (*PatternFlowPfcPauseControlOpCode)(nil), // 1055: otg.PatternFlowPfcPauseControlOpCode - (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 1056: otg.PatternFlowPfcPauseClassEnableVectorCounter - (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 1057: otg.PatternFlowPfcPauseClassEnableVectorMetricTag - (*PatternFlowPfcPauseClassEnableVector)(nil), // 1058: otg.PatternFlowPfcPauseClassEnableVector - (*PatternFlowPfcPausePauseClass0Counter)(nil), // 1059: otg.PatternFlowPfcPausePauseClass0Counter - (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 1060: otg.PatternFlowPfcPausePauseClass0MetricTag - (*PatternFlowPfcPausePauseClass0)(nil), // 1061: otg.PatternFlowPfcPausePauseClass0 - (*PatternFlowPfcPausePauseClass1Counter)(nil), // 1062: otg.PatternFlowPfcPausePauseClass1Counter - (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 1063: otg.PatternFlowPfcPausePauseClass1MetricTag - (*PatternFlowPfcPausePauseClass1)(nil), // 1064: otg.PatternFlowPfcPausePauseClass1 - (*PatternFlowPfcPausePauseClass2Counter)(nil), // 1065: otg.PatternFlowPfcPausePauseClass2Counter - (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 1066: otg.PatternFlowPfcPausePauseClass2MetricTag - (*PatternFlowPfcPausePauseClass2)(nil), // 1067: otg.PatternFlowPfcPausePauseClass2 - (*PatternFlowPfcPausePauseClass3Counter)(nil), // 1068: otg.PatternFlowPfcPausePauseClass3Counter - (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 1069: otg.PatternFlowPfcPausePauseClass3MetricTag - (*PatternFlowPfcPausePauseClass3)(nil), // 1070: otg.PatternFlowPfcPausePauseClass3 - (*PatternFlowPfcPausePauseClass4Counter)(nil), // 1071: otg.PatternFlowPfcPausePauseClass4Counter - (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 1072: otg.PatternFlowPfcPausePauseClass4MetricTag - (*PatternFlowPfcPausePauseClass4)(nil), // 1073: otg.PatternFlowPfcPausePauseClass4 - (*PatternFlowPfcPausePauseClass5Counter)(nil), // 1074: otg.PatternFlowPfcPausePauseClass5Counter - (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 1075: otg.PatternFlowPfcPausePauseClass5MetricTag - (*PatternFlowPfcPausePauseClass5)(nil), // 1076: otg.PatternFlowPfcPausePauseClass5 - (*PatternFlowPfcPausePauseClass6Counter)(nil), // 1077: otg.PatternFlowPfcPausePauseClass6Counter - (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 1078: otg.PatternFlowPfcPausePauseClass6MetricTag - (*PatternFlowPfcPausePauseClass6)(nil), // 1079: otg.PatternFlowPfcPausePauseClass6 - (*PatternFlowPfcPausePauseClass7Counter)(nil), // 1080: otg.PatternFlowPfcPausePauseClass7Counter - (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 1081: otg.PatternFlowPfcPausePauseClass7MetricTag - (*PatternFlowPfcPausePauseClass7)(nil), // 1082: otg.PatternFlowPfcPausePauseClass7 - (*PatternFlowEthernetPauseDstCounter)(nil), // 1083: otg.PatternFlowEthernetPauseDstCounter - (*PatternFlowEthernetPauseDstMetricTag)(nil), // 1084: otg.PatternFlowEthernetPauseDstMetricTag - (*PatternFlowEthernetPauseDst)(nil), // 1085: otg.PatternFlowEthernetPauseDst - (*PatternFlowEthernetPauseSrcCounter)(nil), // 1086: otg.PatternFlowEthernetPauseSrcCounter - (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 1087: otg.PatternFlowEthernetPauseSrcMetricTag - (*PatternFlowEthernetPauseSrc)(nil), // 1088: otg.PatternFlowEthernetPauseSrc - (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 1089: otg.PatternFlowEthernetPauseEtherTypeCounter - (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 1090: otg.PatternFlowEthernetPauseEtherTypeMetricTag - (*PatternFlowEthernetPauseEtherType)(nil), // 1091: otg.PatternFlowEthernetPauseEtherType - (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 1092: otg.PatternFlowEthernetPauseControlOpCodeCounter - (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 1093: otg.PatternFlowEthernetPauseControlOpCodeMetricTag - (*PatternFlowEthernetPauseControlOpCode)(nil), // 1094: otg.PatternFlowEthernetPauseControlOpCode - (*PatternFlowEthernetPauseTimeCounter)(nil), // 1095: otg.PatternFlowEthernetPauseTimeCounter - (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 1096: otg.PatternFlowEthernetPauseTimeMetricTag - (*PatternFlowEthernetPauseTime)(nil), // 1097: otg.PatternFlowEthernetPauseTime - (*PatternFlowTcpSrcPortCounter)(nil), // 1098: otg.PatternFlowTcpSrcPortCounter - (*PatternFlowTcpSrcPortMetricTag)(nil), // 1099: otg.PatternFlowTcpSrcPortMetricTag - (*PatternFlowTcpSrcPortRandom)(nil), // 1100: otg.PatternFlowTcpSrcPortRandom - (*PatternFlowTcpSrcPort)(nil), // 1101: otg.PatternFlowTcpSrcPort - (*PatternFlowTcpDstPortCounter)(nil), // 1102: otg.PatternFlowTcpDstPortCounter - (*PatternFlowTcpDstPortMetricTag)(nil), // 1103: otg.PatternFlowTcpDstPortMetricTag - (*PatternFlowTcpDstPortRandom)(nil), // 1104: otg.PatternFlowTcpDstPortRandom - (*PatternFlowTcpDstPort)(nil), // 1105: otg.PatternFlowTcpDstPort - (*PatternFlowTcpSeqNumCounter)(nil), // 1106: otg.PatternFlowTcpSeqNumCounter - (*PatternFlowTcpSeqNumMetricTag)(nil), // 1107: otg.PatternFlowTcpSeqNumMetricTag - (*PatternFlowTcpSeqNum)(nil), // 1108: otg.PatternFlowTcpSeqNum - (*PatternFlowTcpAckNumCounter)(nil), // 1109: otg.PatternFlowTcpAckNumCounter - (*PatternFlowTcpAckNumMetricTag)(nil), // 1110: otg.PatternFlowTcpAckNumMetricTag - (*PatternFlowTcpAckNum)(nil), // 1111: otg.PatternFlowTcpAckNum - (*PatternFlowTcpDataOffsetCounter)(nil), // 1112: otg.PatternFlowTcpDataOffsetCounter - (*PatternFlowTcpDataOffsetMetricTag)(nil), // 1113: otg.PatternFlowTcpDataOffsetMetricTag - (*PatternFlowTcpDataOffset)(nil), // 1114: otg.PatternFlowTcpDataOffset - (*PatternFlowTcpEcnNsCounter)(nil), // 1115: otg.PatternFlowTcpEcnNsCounter - (*PatternFlowTcpEcnNsMetricTag)(nil), // 1116: otg.PatternFlowTcpEcnNsMetricTag - (*PatternFlowTcpEcnNs)(nil), // 1117: otg.PatternFlowTcpEcnNs - (*PatternFlowTcpEcnCwrCounter)(nil), // 1118: otg.PatternFlowTcpEcnCwrCounter - (*PatternFlowTcpEcnCwrMetricTag)(nil), // 1119: otg.PatternFlowTcpEcnCwrMetricTag - (*PatternFlowTcpEcnCwr)(nil), // 1120: otg.PatternFlowTcpEcnCwr - (*PatternFlowTcpEcnEchoCounter)(nil), // 1121: otg.PatternFlowTcpEcnEchoCounter - (*PatternFlowTcpEcnEchoMetricTag)(nil), // 1122: otg.PatternFlowTcpEcnEchoMetricTag - (*PatternFlowTcpEcnEcho)(nil), // 1123: otg.PatternFlowTcpEcnEcho - (*PatternFlowTcpCtlUrgCounter)(nil), // 1124: otg.PatternFlowTcpCtlUrgCounter - (*PatternFlowTcpCtlUrgMetricTag)(nil), // 1125: otg.PatternFlowTcpCtlUrgMetricTag - (*PatternFlowTcpCtlUrg)(nil), // 1126: otg.PatternFlowTcpCtlUrg - (*PatternFlowTcpCtlAckCounter)(nil), // 1127: otg.PatternFlowTcpCtlAckCounter - (*PatternFlowTcpCtlAckMetricTag)(nil), // 1128: otg.PatternFlowTcpCtlAckMetricTag - (*PatternFlowTcpCtlAck)(nil), // 1129: otg.PatternFlowTcpCtlAck - (*PatternFlowTcpCtlPshCounter)(nil), // 1130: otg.PatternFlowTcpCtlPshCounter - (*PatternFlowTcpCtlPshMetricTag)(nil), // 1131: otg.PatternFlowTcpCtlPshMetricTag - (*PatternFlowTcpCtlPsh)(nil), // 1132: otg.PatternFlowTcpCtlPsh - (*PatternFlowTcpCtlRstCounter)(nil), // 1133: otg.PatternFlowTcpCtlRstCounter - (*PatternFlowTcpCtlRstMetricTag)(nil), // 1134: otg.PatternFlowTcpCtlRstMetricTag - (*PatternFlowTcpCtlRst)(nil), // 1135: otg.PatternFlowTcpCtlRst - (*PatternFlowTcpCtlSynCounter)(nil), // 1136: otg.PatternFlowTcpCtlSynCounter - (*PatternFlowTcpCtlSynMetricTag)(nil), // 1137: otg.PatternFlowTcpCtlSynMetricTag - (*PatternFlowTcpCtlSyn)(nil), // 1138: otg.PatternFlowTcpCtlSyn - (*PatternFlowTcpCtlFinCounter)(nil), // 1139: otg.PatternFlowTcpCtlFinCounter - (*PatternFlowTcpCtlFinMetricTag)(nil), // 1140: otg.PatternFlowTcpCtlFinMetricTag - (*PatternFlowTcpCtlFin)(nil), // 1141: otg.PatternFlowTcpCtlFin - (*PatternFlowTcpWindowCounter)(nil), // 1142: otg.PatternFlowTcpWindowCounter - (*PatternFlowTcpWindowMetricTag)(nil), // 1143: otg.PatternFlowTcpWindowMetricTag - (*PatternFlowTcpWindow)(nil), // 1144: otg.PatternFlowTcpWindow - (*PatternFlowTcpChecksum)(nil), // 1145: otg.PatternFlowTcpChecksum - (*PatternFlowUdpSrcPortCounter)(nil), // 1146: otg.PatternFlowUdpSrcPortCounter - (*PatternFlowUdpSrcPortMetricTag)(nil), // 1147: otg.PatternFlowUdpSrcPortMetricTag - (*PatternFlowUdpSrcPortRandom)(nil), // 1148: otg.PatternFlowUdpSrcPortRandom - (*PatternFlowUdpSrcPort)(nil), // 1149: otg.PatternFlowUdpSrcPort - (*PatternFlowUdpDstPortCounter)(nil), // 1150: otg.PatternFlowUdpDstPortCounter - (*PatternFlowUdpDstPortMetricTag)(nil), // 1151: otg.PatternFlowUdpDstPortMetricTag - (*PatternFlowUdpDstPortRandom)(nil), // 1152: otg.PatternFlowUdpDstPortRandom - (*PatternFlowUdpDstPort)(nil), // 1153: otg.PatternFlowUdpDstPort - (*PatternFlowUdpLengthCounter)(nil), // 1154: otg.PatternFlowUdpLengthCounter - (*PatternFlowUdpLengthMetricTag)(nil), // 1155: otg.PatternFlowUdpLengthMetricTag - (*PatternFlowUdpLength)(nil), // 1156: otg.PatternFlowUdpLength - (*PatternFlowUdpChecksum)(nil), // 1157: otg.PatternFlowUdpChecksum - (*PatternFlowGreChecksumPresentCounter)(nil), // 1158: otg.PatternFlowGreChecksumPresentCounter - (*PatternFlowGreChecksumPresentMetricTag)(nil), // 1159: otg.PatternFlowGreChecksumPresentMetricTag - (*PatternFlowGreChecksumPresent)(nil), // 1160: otg.PatternFlowGreChecksumPresent - (*PatternFlowGreReserved0Counter)(nil), // 1161: otg.PatternFlowGreReserved0Counter - (*PatternFlowGreReserved0MetricTag)(nil), // 1162: otg.PatternFlowGreReserved0MetricTag - (*PatternFlowGreReserved0)(nil), // 1163: otg.PatternFlowGreReserved0 - (*PatternFlowGreVersionCounter)(nil), // 1164: otg.PatternFlowGreVersionCounter - (*PatternFlowGreVersionMetricTag)(nil), // 1165: otg.PatternFlowGreVersionMetricTag - (*PatternFlowGreVersion)(nil), // 1166: otg.PatternFlowGreVersion - (*PatternFlowGreProtocolCounter)(nil), // 1167: otg.PatternFlowGreProtocolCounter - (*PatternFlowGreProtocolMetricTag)(nil), // 1168: otg.PatternFlowGreProtocolMetricTag - (*PatternFlowGreProtocol)(nil), // 1169: otg.PatternFlowGreProtocol - (*PatternFlowGreChecksum)(nil), // 1170: otg.PatternFlowGreChecksum - (*PatternFlowGreReserved1Counter)(nil), // 1171: otg.PatternFlowGreReserved1Counter - (*PatternFlowGreReserved1MetricTag)(nil), // 1172: otg.PatternFlowGreReserved1MetricTag - (*PatternFlowGreReserved1)(nil), // 1173: otg.PatternFlowGreReserved1 - (*PatternFlowGtpv1VersionCounter)(nil), // 1174: otg.PatternFlowGtpv1VersionCounter - (*PatternFlowGtpv1VersionMetricTag)(nil), // 1175: otg.PatternFlowGtpv1VersionMetricTag - (*PatternFlowGtpv1Version)(nil), // 1176: otg.PatternFlowGtpv1Version - (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 1177: otg.PatternFlowGtpv1ProtocolTypeCounter - (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 1178: otg.PatternFlowGtpv1ProtocolTypeMetricTag - (*PatternFlowGtpv1ProtocolType)(nil), // 1179: otg.PatternFlowGtpv1ProtocolType - (*PatternFlowGtpv1ReservedCounter)(nil), // 1180: otg.PatternFlowGtpv1ReservedCounter - (*PatternFlowGtpv1ReservedMetricTag)(nil), // 1181: otg.PatternFlowGtpv1ReservedMetricTag - (*PatternFlowGtpv1Reserved)(nil), // 1182: otg.PatternFlowGtpv1Reserved - (*PatternFlowGtpv1EFlagCounter)(nil), // 1183: otg.PatternFlowGtpv1EFlagCounter - (*PatternFlowGtpv1EFlagMetricTag)(nil), // 1184: otg.PatternFlowGtpv1EFlagMetricTag - (*PatternFlowGtpv1EFlag)(nil), // 1185: otg.PatternFlowGtpv1EFlag - (*PatternFlowGtpv1SFlagCounter)(nil), // 1186: otg.PatternFlowGtpv1SFlagCounter - (*PatternFlowGtpv1SFlagMetricTag)(nil), // 1187: otg.PatternFlowGtpv1SFlagMetricTag - (*PatternFlowGtpv1SFlag)(nil), // 1188: otg.PatternFlowGtpv1SFlag - (*PatternFlowGtpv1PnFlagCounter)(nil), // 1189: otg.PatternFlowGtpv1PnFlagCounter - (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 1190: otg.PatternFlowGtpv1PnFlagMetricTag - (*PatternFlowGtpv1PnFlag)(nil), // 1191: otg.PatternFlowGtpv1PnFlag - (*PatternFlowGtpv1MessageTypeCounter)(nil), // 1192: otg.PatternFlowGtpv1MessageTypeCounter - (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 1193: otg.PatternFlowGtpv1MessageTypeMetricTag - (*PatternFlowGtpv1MessageType)(nil), // 1194: otg.PatternFlowGtpv1MessageType - (*PatternFlowGtpv1MessageLengthCounter)(nil), // 1195: otg.PatternFlowGtpv1MessageLengthCounter - (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 1196: otg.PatternFlowGtpv1MessageLengthMetricTag - (*PatternFlowGtpv1MessageLength)(nil), // 1197: otg.PatternFlowGtpv1MessageLength - (*PatternFlowGtpv1TeidCounter)(nil), // 1198: otg.PatternFlowGtpv1TeidCounter - (*PatternFlowGtpv1TeidMetricTag)(nil), // 1199: otg.PatternFlowGtpv1TeidMetricTag - (*PatternFlowGtpv1Teid)(nil), // 1200: otg.PatternFlowGtpv1Teid - (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 1201: otg.PatternFlowGtpv1SquenceNumberCounter - (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 1202: otg.PatternFlowGtpv1SquenceNumberMetricTag - (*PatternFlowGtpv1SquenceNumber)(nil), // 1203: otg.PatternFlowGtpv1SquenceNumber - (*PatternFlowGtpv1NPduNumberCounter)(nil), // 1204: otg.PatternFlowGtpv1NPduNumberCounter - (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 1205: otg.PatternFlowGtpv1NPduNumberMetricTag - (*PatternFlowGtpv1NPduNumber)(nil), // 1206: otg.PatternFlowGtpv1NPduNumber - (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 1207: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 1208: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 1209: otg.PatternFlowGtpv1NextExtensionHeaderType - (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 1210: otg.PatternFlowGtpExtensionExtensionLengthCounter - (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 1211: otg.PatternFlowGtpExtensionExtensionLengthMetricTag - (*PatternFlowGtpExtensionExtensionLength)(nil), // 1212: otg.PatternFlowGtpExtensionExtensionLength - (*PatternFlowGtpExtensionContentsCounter)(nil), // 1213: otg.PatternFlowGtpExtensionContentsCounter - (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 1214: otg.PatternFlowGtpExtensionContentsMetricTag - (*PatternFlowGtpExtensionContents)(nil), // 1215: otg.PatternFlowGtpExtensionContents - (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 1216: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 1217: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 1218: otg.PatternFlowGtpExtensionNextExtensionHeader - (*PatternFlowGtpv2VersionCounter)(nil), // 1219: otg.PatternFlowGtpv2VersionCounter - (*PatternFlowGtpv2VersionMetricTag)(nil), // 1220: otg.PatternFlowGtpv2VersionMetricTag - (*PatternFlowGtpv2Version)(nil), // 1221: otg.PatternFlowGtpv2Version - (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 1222: otg.PatternFlowGtpv2PiggybackingFlagCounter - (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 1223: otg.PatternFlowGtpv2PiggybackingFlagMetricTag - (*PatternFlowGtpv2PiggybackingFlag)(nil), // 1224: otg.PatternFlowGtpv2PiggybackingFlag - (*PatternFlowGtpv2TeidFlagCounter)(nil), // 1225: otg.PatternFlowGtpv2TeidFlagCounter - (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 1226: otg.PatternFlowGtpv2TeidFlagMetricTag - (*PatternFlowGtpv2TeidFlag)(nil), // 1227: otg.PatternFlowGtpv2TeidFlag - (*PatternFlowGtpv2Spare1Counter)(nil), // 1228: otg.PatternFlowGtpv2Spare1Counter - (*PatternFlowGtpv2Spare1MetricTag)(nil), // 1229: otg.PatternFlowGtpv2Spare1MetricTag - (*PatternFlowGtpv2Spare1)(nil), // 1230: otg.PatternFlowGtpv2Spare1 - (*PatternFlowGtpv2MessageTypeCounter)(nil), // 1231: otg.PatternFlowGtpv2MessageTypeCounter - (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 1232: otg.PatternFlowGtpv2MessageTypeMetricTag - (*PatternFlowGtpv2MessageType)(nil), // 1233: otg.PatternFlowGtpv2MessageType - (*PatternFlowGtpv2MessageLengthCounter)(nil), // 1234: otg.PatternFlowGtpv2MessageLengthCounter - (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 1235: otg.PatternFlowGtpv2MessageLengthMetricTag - (*PatternFlowGtpv2MessageLength)(nil), // 1236: otg.PatternFlowGtpv2MessageLength - (*PatternFlowGtpv2TeidCounter)(nil), // 1237: otg.PatternFlowGtpv2TeidCounter - (*PatternFlowGtpv2TeidMetricTag)(nil), // 1238: otg.PatternFlowGtpv2TeidMetricTag - (*PatternFlowGtpv2Teid)(nil), // 1239: otg.PatternFlowGtpv2Teid - (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 1240: otg.PatternFlowGtpv2SequenceNumberCounter - (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 1241: otg.PatternFlowGtpv2SequenceNumberMetricTag - (*PatternFlowGtpv2SequenceNumber)(nil), // 1242: otg.PatternFlowGtpv2SequenceNumber - (*PatternFlowGtpv2Spare2Counter)(nil), // 1243: otg.PatternFlowGtpv2Spare2Counter - (*PatternFlowGtpv2Spare2MetricTag)(nil), // 1244: otg.PatternFlowGtpv2Spare2MetricTag - (*PatternFlowGtpv2Spare2)(nil), // 1245: otg.PatternFlowGtpv2Spare2 - (*PatternFlowArpHardwareTypeCounter)(nil), // 1246: otg.PatternFlowArpHardwareTypeCounter - (*PatternFlowArpHardwareTypeMetricTag)(nil), // 1247: otg.PatternFlowArpHardwareTypeMetricTag - (*PatternFlowArpHardwareType)(nil), // 1248: otg.PatternFlowArpHardwareType - (*PatternFlowArpProtocolTypeCounter)(nil), // 1249: otg.PatternFlowArpProtocolTypeCounter - (*PatternFlowArpProtocolTypeMetricTag)(nil), // 1250: otg.PatternFlowArpProtocolTypeMetricTag - (*PatternFlowArpProtocolType)(nil), // 1251: otg.PatternFlowArpProtocolType - (*PatternFlowArpHardwareLengthCounter)(nil), // 1252: otg.PatternFlowArpHardwareLengthCounter - (*PatternFlowArpHardwareLengthMetricTag)(nil), // 1253: otg.PatternFlowArpHardwareLengthMetricTag - (*PatternFlowArpHardwareLength)(nil), // 1254: otg.PatternFlowArpHardwareLength - (*PatternFlowArpProtocolLengthCounter)(nil), // 1255: otg.PatternFlowArpProtocolLengthCounter - (*PatternFlowArpProtocolLengthMetricTag)(nil), // 1256: otg.PatternFlowArpProtocolLengthMetricTag - (*PatternFlowArpProtocolLength)(nil), // 1257: otg.PatternFlowArpProtocolLength - (*PatternFlowArpOperationCounter)(nil), // 1258: otg.PatternFlowArpOperationCounter - (*PatternFlowArpOperationMetricTag)(nil), // 1259: otg.PatternFlowArpOperationMetricTag - (*PatternFlowArpOperation)(nil), // 1260: otg.PatternFlowArpOperation - (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 1261: otg.PatternFlowArpSenderHardwareAddrCounter - (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 1262: otg.PatternFlowArpSenderHardwareAddrMetricTag - (*PatternFlowArpSenderHardwareAddr)(nil), // 1263: otg.PatternFlowArpSenderHardwareAddr - (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 1264: otg.PatternFlowArpSenderProtocolAddrCounter - (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 1265: otg.PatternFlowArpSenderProtocolAddrMetricTag - (*PatternFlowArpSenderProtocolAddr)(nil), // 1266: otg.PatternFlowArpSenderProtocolAddr - (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 1267: otg.PatternFlowArpTargetHardwareAddrCounter - (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 1268: otg.PatternFlowArpTargetHardwareAddrMetricTag - (*PatternFlowArpTargetHardwareAddr)(nil), // 1269: otg.PatternFlowArpTargetHardwareAddr - (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 1270: otg.PatternFlowArpTargetProtocolAddrCounter - (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 1271: otg.PatternFlowArpTargetProtocolAddrMetricTag - (*PatternFlowArpTargetProtocolAddr)(nil), // 1272: otg.PatternFlowArpTargetProtocolAddr - (*PatternFlowIcmpEchoTypeCounter)(nil), // 1273: otg.PatternFlowIcmpEchoTypeCounter - (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 1274: otg.PatternFlowIcmpEchoTypeMetricTag - (*PatternFlowIcmpEchoType)(nil), // 1275: otg.PatternFlowIcmpEchoType - (*PatternFlowIcmpEchoCodeCounter)(nil), // 1276: otg.PatternFlowIcmpEchoCodeCounter - (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 1277: otg.PatternFlowIcmpEchoCodeMetricTag - (*PatternFlowIcmpEchoCode)(nil), // 1278: otg.PatternFlowIcmpEchoCode - (*PatternFlowIcmpEchoChecksum)(nil), // 1279: otg.PatternFlowIcmpEchoChecksum - (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 1280: otg.PatternFlowIcmpEchoIdentifierCounter - (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 1281: otg.PatternFlowIcmpEchoIdentifierMetricTag - (*PatternFlowIcmpEchoIdentifier)(nil), // 1282: otg.PatternFlowIcmpEchoIdentifier - (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 1283: otg.PatternFlowIcmpEchoSequenceNumberCounter - (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 1284: otg.PatternFlowIcmpEchoSequenceNumberMetricTag - (*PatternFlowIcmpEchoSequenceNumber)(nil), // 1285: otg.PatternFlowIcmpEchoSequenceNumber - (*PatternFlowIcmpCommonChecksum)(nil), // 1286: otg.PatternFlowIcmpCommonChecksum - (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 1287: otg.PatternFlowIcmpNextFieldsIdentifierCounter - (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1288: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1289: otg.PatternFlowIcmpNextFieldsIdentifier - (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1290: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1291: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1292: otg.PatternFlowIcmpNextFieldsSequenceNumber - (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1293: otg.PatternFlowIcmpv6EchoTypeCounter - (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1294: otg.PatternFlowIcmpv6EchoTypeMetricTag - (*PatternFlowIcmpv6EchoType)(nil), // 1295: otg.PatternFlowIcmpv6EchoType - (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1296: otg.PatternFlowIcmpv6EchoCodeCounter - (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1297: otg.PatternFlowIcmpv6EchoCodeMetricTag - (*PatternFlowIcmpv6EchoCode)(nil), // 1298: otg.PatternFlowIcmpv6EchoCode - (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1299: otg.PatternFlowIcmpv6EchoIdentifierCounter - (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1300: otg.PatternFlowIcmpv6EchoIdentifierMetricTag - (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1301: otg.PatternFlowIcmpv6EchoIdentifier - (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1302: otg.PatternFlowIcmpv6EchoSequenceNumberCounter - (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1303: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1304: otg.PatternFlowIcmpv6EchoSequenceNumber - (*PatternFlowIcmpv6EchoChecksum)(nil), // 1305: otg.PatternFlowIcmpv6EchoChecksum - (*PatternFlowIcmpv6CommonChecksum)(nil), // 1306: otg.PatternFlowIcmpv6CommonChecksum - (*PatternFlowPppAddressCounter)(nil), // 1307: otg.PatternFlowPppAddressCounter - (*PatternFlowPppAddressMetricTag)(nil), // 1308: otg.PatternFlowPppAddressMetricTag - (*PatternFlowPppAddress)(nil), // 1309: otg.PatternFlowPppAddress - (*PatternFlowPppControlCounter)(nil), // 1310: otg.PatternFlowPppControlCounter - (*PatternFlowPppControlMetricTag)(nil), // 1311: otg.PatternFlowPppControlMetricTag - (*PatternFlowPppControl)(nil), // 1312: otg.PatternFlowPppControl - (*PatternFlowPppProtocolTypeCounter)(nil), // 1313: otg.PatternFlowPppProtocolTypeCounter - (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1314: otg.PatternFlowPppProtocolTypeMetricTag - (*PatternFlowPppProtocolType)(nil), // 1315: otg.PatternFlowPppProtocolType - (*PatternFlowIgmpv1VersionCounter)(nil), // 1316: otg.PatternFlowIgmpv1VersionCounter - (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1317: otg.PatternFlowIgmpv1VersionMetricTag - (*PatternFlowIgmpv1Version)(nil), // 1318: otg.PatternFlowIgmpv1Version - (*PatternFlowIgmpv1TypeCounter)(nil), // 1319: otg.PatternFlowIgmpv1TypeCounter - (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1320: otg.PatternFlowIgmpv1TypeMetricTag - (*PatternFlowIgmpv1Type)(nil), // 1321: otg.PatternFlowIgmpv1Type - (*PatternFlowIgmpv1UnusedCounter)(nil), // 1322: otg.PatternFlowIgmpv1UnusedCounter - (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1323: otg.PatternFlowIgmpv1UnusedMetricTag - (*PatternFlowIgmpv1Unused)(nil), // 1324: otg.PatternFlowIgmpv1Unused - (*PatternFlowIgmpv1Checksum)(nil), // 1325: otg.PatternFlowIgmpv1Checksum - (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1326: otg.PatternFlowIgmpv1GroupAddressCounter - (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1327: otg.PatternFlowIgmpv1GroupAddressMetricTag - (*PatternFlowIgmpv1GroupAddress)(nil), // 1328: otg.PatternFlowIgmpv1GroupAddress - (*PatternFlowMplsLabelCounter)(nil), // 1329: otg.PatternFlowMplsLabelCounter - (*PatternFlowMplsLabelMetricTag)(nil), // 1330: otg.PatternFlowMplsLabelMetricTag - (*PatternFlowMplsLabel)(nil), // 1331: otg.PatternFlowMplsLabel - (*PatternFlowMplsTrafficClassCounter)(nil), // 1332: otg.PatternFlowMplsTrafficClassCounter - (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1333: otg.PatternFlowMplsTrafficClassMetricTag - (*PatternFlowMplsTrafficClass)(nil), // 1334: otg.PatternFlowMplsTrafficClass - (*PatternFlowMplsBottomOfStackCounter)(nil), // 1335: otg.PatternFlowMplsBottomOfStackCounter - (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1336: otg.PatternFlowMplsBottomOfStackMetricTag - (*PatternFlowMplsBottomOfStack)(nil), // 1337: otg.PatternFlowMplsBottomOfStack - (*PatternFlowMplsTimeToLiveCounter)(nil), // 1338: otg.PatternFlowMplsTimeToLiveCounter - (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1339: otg.PatternFlowMplsTimeToLiveMetricTag - (*PatternFlowMplsTimeToLive)(nil), // 1340: otg.PatternFlowMplsTimeToLive - (*PatternFlowSnmpv2CVersionCounter)(nil), // 1341: otg.PatternFlowSnmpv2cVersionCounter - (*PatternFlowSnmpv2CVersion)(nil), // 1342: otg.PatternFlowSnmpv2cVersion - (*PatternFlowSnmpv2CPDURequestIdCounter)(nil), // 1343: otg.PatternFlowSnmpv2cPDURequestIdCounter - (*PatternFlowSnmpv2CPDURequestId)(nil), // 1344: otg.PatternFlowSnmpv2cPDURequestId - (*PatternFlowSnmpv2CPDUErrorIndexCounter)(nil), // 1345: otg.PatternFlowSnmpv2cPDUErrorIndexCounter - (*PatternFlowSnmpv2CPDUErrorIndex)(nil), // 1346: otg.PatternFlowSnmpv2cPDUErrorIndex - (*PatternFlowSnmpv2CBulkPDURequestIdCounter)(nil), // 1347: otg.PatternFlowSnmpv2cBulkPDURequestIdCounter - (*PatternFlowSnmpv2CBulkPDURequestId)(nil), // 1348: otg.PatternFlowSnmpv2cBulkPDURequestId - (*PatternFlowSnmpv2CBulkPDUNonRepeaters)(nil), // 1349: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters - (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter)(nil), // 1350: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter - (*PatternFlowSnmpv2CBulkPDUMaxRepetitions)(nil), // 1351: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions - (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter)(nil), // 1352: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter - (*PatternFlowSnmpv2CVariableBindingValueIntegerValue)(nil), // 1353: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue - (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter)(nil), // 1354: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter - (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue)(nil), // 1355: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue - (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter)(nil), // 1356: otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter - (*PatternFlowSnmpv2CVariableBindingValueCounterValue)(nil), // 1357: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue - (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter)(nil), // 1358: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter - (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue)(nil), // 1359: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue - (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter)(nil), // 1360: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter - (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue)(nil), // 1361: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue - (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter)(nil), // 1362: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter - (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue)(nil), // 1363: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue - (*PatternFlowSnmpv2CCommonRequestIdCounter)(nil), // 1364: otg.PatternFlowSnmpv2cCommonRequestIdCounter - (*PatternFlowSnmpv2CCommonRequestId)(nil), // 1365: otg.PatternFlowSnmpv2cCommonRequestId - (*PatternFlowRsvpRsvpChecksum)(nil), // 1366: otg.PatternFlowRsvpRsvpChecksum - (*PatternFlowRsvpTimeToLiveCounter)(nil), // 1367: otg.PatternFlowRsvpTimeToLiveCounter - (*PatternFlowRsvpTimeToLive)(nil), // 1368: otg.PatternFlowRsvpTimeToLive - (*PatternFlowRsvpReservedCounter)(nil), // 1369: otg.PatternFlowRsvpReservedCounter - (*PatternFlowRsvpReserved)(nil), // 1370: otg.PatternFlowRsvpReserved - (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter)(nil), // 1371: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter - (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress)(nil), // 1372: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress - (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter)(nil), // 1373: otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter - (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved)(nil), // 1374: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved - (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter)(nil), // 1375: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter - (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId)(nil), // 1376: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId - (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter)(nil), // 1377: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter - (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger)(nil), // 1378: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger - (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter)(nil), // 1379: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter - (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4)(nil), // 1380: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 - (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter)(nil), // 1381: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter - (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address)(nil), // 1382: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address - (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter)(nil), // 1383: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter - (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle)(nil), // 1384: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle - (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter)(nil), // 1385: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter - (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR)(nil), // 1386: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter)(nil), // 1387: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit)(nil), // 1388: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter)(nil), // 1389: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address)(nil), // 1390: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address - (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter)(nil), // 1391: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter - (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit)(nil), // 1392: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter)(nil), // 1393: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved)(nil), // 1394: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter)(nil), // 1395: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid)(nil), // 1396: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter)(nil), // 1397: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress)(nil), // 1398: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter)(nil), // 1399: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved)(nil), // 1400: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter)(nil), // 1401: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId)(nil), // 1402: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId - (*PatternFlowRSVPPathSenderTspecIntServVersionCounter)(nil), // 1403: otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter - (*PatternFlowRSVPPathSenderTspecIntServVersion)(nil), // 1404: otg.PatternFlowRSVPPathSenderTspecIntServVersion - (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter)(nil), // 1405: otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter - (*PatternFlowRSVPPathSenderTspecIntServReserved1)(nil), // 1406: otg.PatternFlowRSVPPathSenderTspecIntServReserved1 - (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter)(nil), // 1407: otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter - (*PatternFlowRSVPPathSenderTspecIntServOverallLength)(nil), // 1408: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength - (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter)(nil), // 1409: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter - (*PatternFlowRSVPPathSenderTspecIntServServiceHeader)(nil), // 1410: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader - (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter)(nil), // 1411: otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter - (*PatternFlowRSVPPathSenderTspecIntServZeroBit)(nil), // 1412: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit - (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter)(nil), // 1413: otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter - (*PatternFlowRSVPPathSenderTspecIntServReserved2)(nil), // 1414: otg.PatternFlowRSVPPathSenderTspecIntServReserved2 - (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter)(nil), // 1415: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter - (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData)(nil), // 1416: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData - (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter)(nil), // 1417: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter - (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec)(nil), // 1418: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec - (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter)(nil), // 1419: otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter - (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag)(nil), // 1420: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag - (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter)(nil), // 1421: otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter - (*PatternFlowRSVPPathSenderTspecIntServParameter127Length)(nil), // 1422: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length - (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter)(nil), // 1423: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter - (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit)(nil), // 1424: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit - (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter)(nil), // 1425: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter - (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize)(nil), // 1426: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter)(nil), // 1427: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address)(nil), // 1428: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter)(nil), // 1429: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength)(nil), // 1430: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength - (*PatternFlowRSVPPathRecordRouteType1LabelFlags)(nil), // 1431: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags - (*PatternFlowRSVPPathRecordRouteType1LabelCType)(nil), // 1432: otg.PatternFlowRSVPPathRecordRouteType1LabelCType - (*PatternFlowRSVPPathObjectsCustomTypeCounter)(nil), // 1433: otg.PatternFlowRSVPPathObjectsCustomTypeCounter - (*PatternFlowRSVPPathObjectsCustomType)(nil), // 1434: otg.PatternFlowRSVPPathObjectsCustomType - (*Version)(nil), // 1435: otg.Version - (*Success)(nil), // 1436: otg.Success - (*Failure)(nil), // 1437: otg.Failure - (*SetConfigRequest)(nil), // 1438: otg.SetConfigRequest - (*UpdateConfigRequest)(nil), // 1439: otg.UpdateConfigRequest - (*SetConfigResponse)(nil), // 1440: otg.SetConfigResponse - (*GetConfigResponse)(nil), // 1441: otg.GetConfigResponse - (*UpdateConfigResponse)(nil), // 1442: otg.UpdateConfigResponse - (*SetControlStateRequest)(nil), // 1443: otg.SetControlStateRequest - (*SetControlStateResponse)(nil), // 1444: otg.SetControlStateResponse - (*SetControlActionRequest)(nil), // 1445: otg.SetControlActionRequest - (*SetControlActionResponse)(nil), // 1446: otg.SetControlActionResponse - (*GetMetricsRequest)(nil), // 1447: otg.GetMetricsRequest - (*GetMetricsResponse)(nil), // 1448: otg.GetMetricsResponse - (*GetStatesRequest)(nil), // 1449: otg.GetStatesRequest - (*GetStatesResponse)(nil), // 1450: otg.GetStatesResponse - (*GetCaptureRequest)(nil), // 1451: otg.GetCaptureRequest - (*GetCaptureResponse)(nil), // 1452: otg.GetCaptureResponse - (*GetVersionResponse)(nil), // 1453: otg.GetVersionResponse - (*LagProtocol_Choice)(nil), // 1454: otg.LagProtocol.Choice - (*LagPortLacp_ActorActivity)(nil), // 1455: otg.LagPortLacp.ActorActivity - (*EthernetConnection_Choice)(nil), // 1456: otg.EthernetConnection.Choice - (*DeviceVlan_Tpid)(nil), // 1457: otg.DeviceVlan.Tpid - (*DeviceIpv4GatewayMAC_Choice)(nil), // 1458: otg.DeviceIpv4GatewayMAC.Choice - (*DeviceIpv6GatewayMAC_Choice)(nil), // 1459: otg.DeviceIpv6GatewayMAC.Choice - (*DeviceDhcpv4Client_Choice)(nil), // 1460: otg.DeviceDhcpv4client.Choice - (*Layer1_Speed)(nil), // 1461: otg.Layer1.Speed - (*Layer1_Media)(nil), // 1462: otg.Layer1.Media - (*Layer1FlowControl_Choice)(nil), // 1463: otg.Layer1FlowControl.Choice - (*Capture_Format)(nil), // 1464: otg.Capture.Format - (*CaptureFilter_Choice)(nil), // 1465: otg.CaptureFilter.Choice - (*IsisInterface_NetworkType)(nil), // 1466: otg.IsisInterface.NetworkType - (*IsisInterface_LevelType)(nil), // 1467: otg.IsisInterface.LevelType - (*IsisInterfaceAuthentication_AuthType)(nil), // 1468: otg.IsisInterfaceAuthentication.AuthType - (*IsisAuthenticationBase_AuthType)(nil), // 1469: otg.IsisAuthenticationBase.AuthType - (*IsisV4RouteRange_OriginType)(nil), // 1470: otg.IsisV4RouteRange.OriginType - (*IsisV4RouteRange_RedistributionType)(nil), // 1471: otg.IsisV4RouteRange.RedistributionType - (*IsisV6RouteRange_OriginType)(nil), // 1472: otg.IsisV6RouteRange.OriginType - (*IsisV6RouteRange_RedistributionType)(nil), // 1473: otg.IsisV6RouteRange.RedistributionType - (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1474: otg.DeviceBgpMessageHeaderError.Subcode - (*DeviceBgpOpenMessageError_Subcode)(nil), // 1475: otg.DeviceBgpOpenMessageError.Subcode - (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1476: otg.DeviceBgpUpdateMessageError.Subcode - (*DeviceBgpCeaseError_Subcode)(nil), // 1477: otg.DeviceBgpCeaseError.Subcode - (*BgpV4Peer_AsType)(nil), // 1478: otg.BgpV4Peer.AsType - (*BgpV4Peer_AsNumberWidth)(nil), // 1479: otg.BgpV4Peer.AsNumberWidth - (*BgpV4EthernetSegment_ActiveMode)(nil), // 1480: otg.BgpV4EthernetSegment.ActiveMode - (*BgpRouteAdvanced_Origin)(nil), // 1481: otg.BgpRouteAdvanced.Origin - (*BgpCommunity_Type)(nil), // 1482: otg.BgpCommunity.Type - (*BgpExtCommunity_Type)(nil), // 1483: otg.BgpExtCommunity.Type - (*BgpExtCommunity_Subtype)(nil), // 1484: otg.BgpExtCommunity.Subtype - (*BgpAsPath_AsSetMode)(nil), // 1485: otg.BgpAsPath.AsSetMode - (*BgpAsPathSegment_Type)(nil), // 1486: otg.BgpAsPathSegment.Type - (*BgpV4EvpnEvis_Choice)(nil), // 1487: otg.BgpV4EvpnEvis.Choice - (*BgpV4EviVxlan_ReplicationType)(nil), // 1488: otg.BgpV4EviVxlan.ReplicationType - (*BgpRouteDistinguisher_RdType)(nil), // 1489: otg.BgpRouteDistinguisher.RdType - (*BgpRouteTarget_RtType)(nil), // 1490: otg.BgpRouteTarget.RtType - (*BgpV4RouteRange_NextHopMode)(nil), // 1491: otg.BgpV4RouteRange.NextHopMode - (*BgpV4RouteRange_NextHopAddressType)(nil), // 1492: otg.BgpV4RouteRange.NextHopAddressType - (*BgpExtendedCommunity_Choice)(nil), // 1493: otg.BgpExtendedCommunity.Choice - (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1494: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice - (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1495: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice - (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1496: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice - (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1497: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice - (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1498: otg.BgpExtendedCommunityTransitiveEvpnType.Choice - (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1499: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice - (*BgpV6RouteRange_NextHopMode)(nil), // 1500: otg.BgpV6RouteRange.NextHopMode - (*BgpV6RouteRange_NextHopAddressType)(nil), // 1501: otg.BgpV6RouteRange.NextHopAddressType - (*BgpSrteV4Policy_NextHopMode)(nil), // 1502: otg.BgpSrteV4Policy.NextHopMode - (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1503: otg.BgpSrteV4Policy.NextHopAddressType - (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1504: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily - (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1505: otg.BgpSrteBindingSubTlv.BindingSidType - (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1506: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy - (*BgpSrteSegment_SegmentType)(nil), // 1507: otg.BgpSrteSegment.SegmentType - (*BgpSrteV6Policy_NextHopMode)(nil), // 1508: otg.BgpSrteV6Policy.NextHopMode - (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1509: otg.BgpSrteV6Policy.NextHopAddressType - (*BgpUpdateReplay_Choice)(nil), // 1510: otg.BgpUpdateReplay.Choice - (*BgpAttributes_Origin)(nil), // 1511: otg.BgpAttributes.Origin - (*BgpAttributesAsPath_Choice)(nil), // 1512: otg.BgpAttributesAsPath.Choice - (*BgpAttributesFourByteAsPathSegment_Type)(nil), // 1513: otg.BgpAttributesFourByteAsPathSegment.Type - (*BgpAttributesTwoByteAsPathSegment_Type)(nil), // 1514: otg.BgpAttributesTwoByteAsPathSegment.Type - (*BgpAttributesAggregator_Choice)(nil), // 1515: otg.BgpAttributesAggregator.Choice - (*BgpAttributesCommunity_Choice)(nil), // 1516: otg.BgpAttributesCommunity.Choice - (*BgpAttributesNextHop_Choice)(nil), // 1517: otg.BgpAttributesNextHop.Choice - (*BgpAttributesMpReachNlri_Choice)(nil), // 1518: otg.BgpAttributesMpReachNlri.Choice - (*BgpAttributesMpUnreachNlri_Choice)(nil), // 1519: otg.BgpAttributesMpUnreachNlri.Choice - (*BgpAttributesTunnelEncapsulation_Choice)(nil), // 1520: otg.BgpAttributesTunnelEncapsulation.Choice - (*BgpAttributesBsid_Choice)(nil), // 1521: otg.BgpAttributesBsid.Choice - (*BgpAttributesSrPolicyExplicitNullPolicy_Choice)(nil), // 1522: otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice - (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice)(nil), // 1523: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice - (*BgpV6Peer_AsType)(nil), // 1524: otg.BgpV6Peer.AsType - (*BgpV6Peer_AsNumberWidth)(nil), // 1525: otg.BgpV6Peer.AsNumberWidth - (*BgpV6EthernetSegment_ActiveMode)(nil), // 1526: otg.BgpV6EthernetSegment.ActiveMode - (*BgpV6EvpnEvis_Choice)(nil), // 1527: otg.BgpV6EvpnEvis.Choice - (*BgpV6EviVxlan_ReplicationType)(nil), // 1528: otg.BgpV6EviVxlan.ReplicationType - (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1529: otg.VxlanV4TunnelDestinationIPMode.Choice - (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1530: otg.VxlanV6TunnelDestinationIPMode.Choice - (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1531: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle - (*RsvpEro_PrependNeighborIp)(nil), // 1532: otg.RsvpEro.PrependNeighborIp - (*RsvpEroSubobject_Type)(nil), // 1533: otg.RsvpEroSubobject.Type - (*RsvpEroSubobject_HopType)(nil), // 1534: otg.RsvpEroSubobject.HopType - (*FlowTxRx_Choice)(nil), // 1535: otg.FlowTxRx.Choice - (*FlowRouter_Mode)(nil), // 1536: otg.FlowRouter.Mode - (*FlowHeader_Choice)(nil), // 1537: otg.FlowHeader.Choice - (*FlowIpv4Options_Choice)(nil), // 1538: otg.FlowIpv4Options.Choice - (*FlowIpv4OptionsCustomLength_Choice)(nil), // 1539: otg.FlowIpv4OptionsCustomLength.Choice - (*FlowIpv4Priority_Choice)(nil), // 1540: otg.FlowIpv4Priority.Choice - (*FlowIpv4Auto_Choice)(nil), // 1541: otg.FlowIpv4Auto.Choice - (*FlowIcmp_Choice)(nil), // 1542: otg.FlowIcmp.Choice - (*FlowIcmpv6_Choice)(nil), // 1543: otg.FlowIcmpv6.Choice - (*FlowSnmpv2CData_Choice)(nil), // 1544: otg.FlowSnmpv2cData.Choice - (*FlowSnmpv2CPDU_ErrorStatus)(nil), // 1545: otg.FlowSnmpv2cPDU.ErrorStatus - (*FlowSnmpv2CVariableBindingValue_Choice)(nil), // 1546: otg.FlowSnmpv2cVariableBindingValue.Choice - (*FlowSnmpv2CVariableBindingStringValue_Choice)(nil), // 1547: otg.FlowSnmpv2cVariableBindingStringValue.Choice - (*FlowRsvp_Flag)(nil), // 1548: otg.FlowRsvp.Flag - (*FlowRSVPLength_Choice)(nil), // 1549: otg.FlowRSVPLength.Choice - (*FlowRSVPMessage_Choice)(nil), // 1550: otg.FlowRSVPMessage.Choice - (*FlowRSVPObjectLength_Choice)(nil), // 1551: otg.FlowRSVPObjectLength.Choice - (*FlowRSVPPathObjectsClass_Choice)(nil), // 1552: otg.FlowRSVPPathObjectsClass.Choice - (*FlowRSVPPathObjectsSessionCType_Choice)(nil), // 1553: otg.FlowRSVPPathObjectsSessionCType.Choice - (*FlowRSVPPathSessionExtTunnelId_Choice)(nil), // 1554: otg.FlowRSVPPathSessionExtTunnelId.Choice - (*FlowRSVPPathObjectsRsvpHopCType_Choice)(nil), // 1555: otg.FlowRSVPPathObjectsRsvpHopCType.Choice - (*FlowRSVPPathObjectsTimeValuesCType_Choice)(nil), // 1556: otg.FlowRSVPPathObjectsTimeValuesCType.Choice - (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice)(nil), // 1557: otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice - (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice)(nil), // 1558: otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice - (*FlowRSVPExplicitRouteLength_Choice)(nil), // 1559: otg.FlowRSVPExplicitRouteLength.Choice - (*FlowRSVPExplicitRouteASNumberLength_Choice)(nil), // 1560: otg.FlowRSVPExplicitRouteASNumberLength.Choice - (*FlowRSVPPathObjectsLabelRequestCType_Choice)(nil), // 1561: otg.FlowRSVPPathObjectsLabelRequestCType.Choice - (*FlowRSVPPathObjectsSessionAttributeCType_Choice)(nil), // 1562: otg.FlowRSVPPathObjectsSessionAttributeCType.Choice - (*FlowRSVPLspTunnelFlag_Choice)(nil), // 1563: otg.FlowRSVPLspTunnelFlag.Choice - (*FlowRSVPSessionAttributeNameLength_Choice)(nil), // 1564: otg.FlowRSVPSessionAttributeNameLength.Choice - (*FlowRSVPPathObjectsSenderTemplateCType_Choice)(nil), // 1565: otg.FlowRSVPPathObjectsSenderTemplateCType.Choice - (*FlowRSVPPathObjectsSenderTspecCType_Choice)(nil), // 1566: otg.FlowRSVPPathObjectsSenderTspecCType.Choice - (*FlowRSVPPathObjectsRecordRouteCType_Choice)(nil), // 1567: otg.FlowRSVPPathObjectsRecordRouteCType.Choice - (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice)(nil), // 1568: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice - (*FlowRSVPRecordRouteIPv4Flag_Choice)(nil), // 1569: otg.FlowRSVPRecordRouteIPv4Flag.Choice - (*FlowRSVPPathRecordRouteLabel_Choice)(nil), // 1570: otg.FlowRSVPPathRecordRouteLabel.Choice - (*FlowRSVPRouteRecordLength_Choice)(nil), // 1571: otg.FlowRSVPRouteRecordLength.Choice - (*FlowSize_Choice)(nil), // 1572: otg.FlowSize.Choice - (*FlowSizeWeightPairs_Choice)(nil), // 1573: otg.FlowSizeWeightPairs.Choice - (*FlowSizeWeightPairs_Predefined)(nil), // 1574: otg.FlowSizeWeightPairs.Predefined - (*FlowRate_Choice)(nil), // 1575: otg.FlowRate.Choice - (*FlowDuration_Choice)(nil), // 1576: otg.FlowDuration.Choice - (*FlowDelay_Choice)(nil), // 1577: otg.FlowDelay.Choice - (*FlowDurationInterBurstGap_Choice)(nil), // 1578: otg.FlowDurationInterBurstGap.Choice - (*FlowLatencyMetrics_Mode)(nil), // 1579: otg.FlowLatencyMetrics.Mode - (*FlowRxTxRatio_Choice)(nil), // 1580: otg.FlowRxTxRatio.Choice - (*EventRequest_Type)(nil), // 1581: otg.EventRequest.Type - (*LldpConnection_Choice)(nil), // 1582: otg.LldpConnection.Choice - (*LldpChassisId_Choice)(nil), // 1583: otg.LldpChassisId.Choice - (*LldpPortId_Choice)(nil), // 1584: otg.LldpPortId.Choice - (*LldpChassisMacSubType_Choice)(nil), // 1585: otg.LldpChassisMacSubType.Choice - (*LldpPortInterfaceNameSubType_Choice)(nil), // 1586: otg.LldpPortInterfaceNameSubType.Choice - (*LldpSystemName_Choice)(nil), // 1587: otg.LldpSystemName.Choice - (*Error_Kind)(nil), // 1588: otg.Error.Kind - (*ConfigUpdate_Choice)(nil), // 1589: otg.ConfigUpdate.Choice - (*FlowsUpdate_PropertyNames)(nil), // 1590: otg.FlowsUpdate.PropertyNames - (*ControlState_Choice)(nil), // 1591: otg.ControlState.Choice - (*StatePort_Choice)(nil), // 1592: otg.StatePort.Choice - (*StateTraffic_Choice)(nil), // 1593: otg.StateTraffic.Choice - (*StateProtocol_Choice)(nil), // 1594: otg.StateProtocol.Choice - (*StatePortLink_State)(nil), // 1595: otg.StatePortLink.State - (*StatePortCapture_State)(nil), // 1596: otg.StatePortCapture.State - (*StateTrafficFlowTransmit_State)(nil), // 1597: otg.StateTrafficFlowTransmit.State - (*StateProtocolAll_State)(nil), // 1598: otg.StateProtocolAll.State - (*StateProtocolRoute_State)(nil), // 1599: otg.StateProtocolRoute.State - (*StateProtocolLacp_Choice)(nil), // 1600: otg.StateProtocolLacp.Choice - (*StateProtocolLacpAdmin_State)(nil), // 1601: otg.StateProtocolLacpAdmin.State - (*StateProtocolLacpMemberPorts_State)(nil), // 1602: otg.StateProtocolLacpMemberPorts.State - (*StateProtocolBgp_Choice)(nil), // 1603: otg.StateProtocolBgp.Choice - (*StateProtocolBgpPeers_State)(nil), // 1604: otg.StateProtocolBgpPeers.State - (*StateProtocolIsis_Choice)(nil), // 1605: otg.StateProtocolIsis.Choice - (*StateProtocolIsisRouters_State)(nil), // 1606: otg.StateProtocolIsisRouters.State - (*ControlAction_Choice)(nil), // 1607: otg.ControlAction.Choice - (*ActionResponse_Choice)(nil), // 1608: otg.ActionResponse.Choice - (*ActionProtocol_Choice)(nil), // 1609: otg.ActionProtocol.Choice - (*ActionResponseProtocol_Choice)(nil), // 1610: otg.ActionResponseProtocol.Choice - (*ActionProtocolIpv4_Choice)(nil), // 1611: otg.ActionProtocolIpv4.Choice - (*ActionResponseProtocolIpv4_Choice)(nil), // 1612: otg.ActionResponseProtocolIpv4.Choice - (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1613: otg.ActionResponseProtocolIpv4PingResponse.Result - (*ActionProtocolIpv6_Choice)(nil), // 1614: otg.ActionProtocolIpv6.Choice - (*ActionResponseProtocolIpv6_Choice)(nil), // 1615: otg.ActionResponseProtocolIpv6.Choice - (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1616: otg.ActionResponseProtocolIpv6PingResponse.Result - (*ActionProtocolBgp_Choice)(nil), // 1617: otg.ActionProtocolBgp.Choice - (*ActionProtocolBgpNotification_Choice)(nil), // 1618: otg.ActionProtocolBgpNotification.Choice - (*MetricsRequest_Choice)(nil), // 1619: otg.MetricsRequest.Choice - (*MetricsResponse_Choice)(nil), // 1620: otg.MetricsResponse.Choice - (*PortMetricsRequest_ColumnNames)(nil), // 1621: otg.PortMetricsRequest.ColumnNames - (*PortMetric_Link)(nil), // 1622: otg.PortMetric.Link - (*PortMetric_Capture)(nil), // 1623: otg.PortMetric.Capture - (*PortMetric_Transmit)(nil), // 1624: otg.PortMetric.Transmit - (*FlowMetricsRequest_MetricNames)(nil), // 1625: otg.FlowMetricsRequest.MetricNames - (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1626: otg.FlowTaggedMetricsFilter.MetricNames - (*FlowMetric_Transmit)(nil), // 1627: otg.FlowMetric.Transmit - (*FlowMetricTagValue_Choice)(nil), // 1628: otg.FlowMetricTagValue.Choice - (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1629: otg.Bgpv4MetricsRequest.ColumnNames - (*Bgpv4Metric_SessionState)(nil), // 1630: otg.Bgpv4Metric.SessionState - (*Bgpv4Metric_FsmState)(nil), // 1631: otg.Bgpv4Metric.FsmState - (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1632: otg.Bgpv6MetricsRequest.ColumnNames - (*Bgpv6Metric_SessionState)(nil), // 1633: otg.Bgpv6Metric.SessionState - (*Bgpv6Metric_FsmState)(nil), // 1634: otg.Bgpv6Metric.FsmState - (*IsisMetricsRequest_ColumnNames)(nil), // 1635: otg.IsisMetricsRequest.ColumnNames - (*LagMetricsRequest_ColumnNames)(nil), // 1636: otg.LagMetricsRequest.ColumnNames - (*LagMetric_OperStatus)(nil), // 1637: otg.LagMetric.OperStatus - (*LacpMetricsRequest_ColumnNames)(nil), // 1638: otg.LacpMetricsRequest.ColumnNames - (*LacpMetric_Activity)(nil), // 1639: otg.LacpMetric.Activity - (*LacpMetric_Timeout)(nil), // 1640: otg.LacpMetric.Timeout - (*LacpMetric_Synchronization)(nil), // 1641: otg.LacpMetric.Synchronization - (*LldpMetricsRequest_ColumnNames)(nil), // 1642: otg.LldpMetricsRequest.ColumnNames - (*RsvpMetricsRequest_ColumnNames)(nil), // 1643: otg.RsvpMetricsRequest.ColumnNames - (*Dhcpv4ClientMetricsRequest_ColumnNames)(nil), // 1644: otg.Dhcpv4ClientMetricsRequest.ColumnNames - (*Dhcpv4ServerMetricsRequest_ColumnNames)(nil), // 1645: otg.Dhcpv4ServerMetricsRequest.ColumnNames - (*StatesRequest_Choice)(nil), // 1646: otg.StatesRequest.Choice - (*StatesResponse_Choice)(nil), // 1647: otg.StatesResponse.Choice - (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1648: otg.BgpPrefixStateRequest.PrefixFilters - (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1649: otg.BgpPrefixIpv4UnicastFilter.Origin - (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1650: otg.BgpPrefixIpv6UnicastFilter.Origin - (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1651: otg.BgpPrefixIpv4UnicastState.Origin - (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1652: otg.BgpPrefixIpv6UnicastState.Origin - (*ResultExtendedCommunityStructured_Choice)(nil), // 1653: otg.ResultExtendedCommunityStructured.Choice - (*ResultExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1654: otg.ResultExtendedCommunityTransitive2OctetAsType.Choice - (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1655: otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice - (*ResultExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1656: otg.ResultExtendedCommunityTransitive4OctetAsType.Choice - (*ResultExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1657: otg.ResultExtendedCommunityTransitiveOpaqueType.Choice - (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1658: otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice - (*ResultBgpCommunity_Type)(nil), // 1659: otg.ResultBgpCommunity.Type - (*ResultBgpAsPathSegment_Type)(nil), // 1660: otg.ResultBgpAsPathSegment.Type - (*IsisLspState_PduType)(nil), // 1661: otg.IsisLspState.PduType - (*IsisLspV4Prefix_RedistributionType)(nil), // 1662: otg.IsisLspV4Prefix.RedistributionType - (*IsisLspV4Prefix_OriginType)(nil), // 1663: otg.IsisLspV4Prefix.OriginType - (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1664: otg.IsisLspExtendedV4Prefix.RedistributionType - (*IsisLspV6Prefix_RedistributionType)(nil), // 1665: otg.IsisLspV6Prefix.RedistributionType - (*IsisLspV6Prefix_OriginType)(nil), // 1666: otg.IsisLspV6Prefix.OriginType - (*LldpNeighborsState_ChassisIdType)(nil), // 1667: otg.LldpNeighborsState.ChassisIdType - (*LldpNeighborsState_PortIdType)(nil), // 1668: otg.LldpNeighborsState.PortIdType - (*LldpCapabilityState_CapabilityName)(nil), // 1669: otg.LldpCapabilityState.CapabilityName - (*RsvpLspState_SessionStatus)(nil), // 1670: otg.RsvpLspState.SessionStatus - (*RsvpLspState_LastFlapReason)(nil), // 1671: otg.RsvpLspState.LastFlapReason - (*RsvpLspIpv4Ero_Type)(nil), // 1672: otg.RsvpLspIpv4Ero.Type - (*PatternFlowEthernetDst_Choice)(nil), // 1673: otg.PatternFlowEthernetDst.Choice - (*PatternFlowEthernetSrc_Choice)(nil), // 1674: otg.PatternFlowEthernetSrc.Choice - (*PatternFlowEthernetEtherType_Choice)(nil), // 1675: otg.PatternFlowEthernetEtherType.Choice - (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1676: otg.PatternFlowEthernetPfcQueue.Choice - (*PatternFlowVlanPriority_Choice)(nil), // 1677: otg.PatternFlowVlanPriority.Choice - (*PatternFlowVlanCfi_Choice)(nil), // 1678: otg.PatternFlowVlanCfi.Choice - (*PatternFlowVlanId_Choice)(nil), // 1679: otg.PatternFlowVlanId.Choice - (*PatternFlowVlanTpid_Choice)(nil), // 1680: otg.PatternFlowVlanTpid.Choice - (*PatternFlowVxlanFlags_Choice)(nil), // 1681: otg.PatternFlowVxlanFlags.Choice - (*PatternFlowVxlanReserved0_Choice)(nil), // 1682: otg.PatternFlowVxlanReserved0.Choice - (*PatternFlowVxlanVni_Choice)(nil), // 1683: otg.PatternFlowVxlanVni.Choice - (*PatternFlowVxlanReserved1_Choice)(nil), // 1684: otg.PatternFlowVxlanReserved1.Choice - (*PatternFlowIpv4Version_Choice)(nil), // 1685: otg.PatternFlowIpv4Version.Choice - (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1686: otg.PatternFlowIpv4HeaderLength.Choice - (*PatternFlowIpv4TotalLength_Choice)(nil), // 1687: otg.PatternFlowIpv4TotalLength.Choice - (*PatternFlowIpv4Identification_Choice)(nil), // 1688: otg.PatternFlowIpv4Identification.Choice - (*PatternFlowIpv4Reserved_Choice)(nil), // 1689: otg.PatternFlowIpv4Reserved.Choice - (*PatternFlowIpv4DontFragment_Choice)(nil), // 1690: otg.PatternFlowIpv4DontFragment.Choice - (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1691: otg.PatternFlowIpv4MoreFragments.Choice - (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1692: otg.PatternFlowIpv4FragmentOffset.Choice - (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1693: otg.PatternFlowIpv4TimeToLive.Choice - (*PatternFlowIpv4Protocol_Choice)(nil), // 1694: otg.PatternFlowIpv4Protocol.Choice - (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1695: otg.PatternFlowIpv4HeaderChecksum.Choice - (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1696: otg.PatternFlowIpv4HeaderChecksum.Generated - (*PatternFlowIpv4Src_Choice)(nil), // 1697: otg.PatternFlowIpv4Src.Choice - (*PatternFlowIpv4Dst_Choice)(nil), // 1698: otg.PatternFlowIpv4Dst.Choice - (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice)(nil), // 1699: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice - (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice)(nil), // 1700: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice - (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice)(nil), // 1701: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice - (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1702: otg.PatternFlowIpv4PriorityRaw.Choice - (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1703: otg.PatternFlowIpv4DscpPhb.Choice - (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1704: otg.PatternFlowIpv4DscpEcn.Choice - (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1705: otg.PatternFlowIpv4TosPrecedence.Choice - (*PatternFlowIpv4TosDelay_Choice)(nil), // 1706: otg.PatternFlowIpv4TosDelay.Choice - (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1707: otg.PatternFlowIpv4TosThroughput.Choice - (*PatternFlowIpv4TosReliability_Choice)(nil), // 1708: otg.PatternFlowIpv4TosReliability.Choice - (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1709: otg.PatternFlowIpv4TosMonetary.Choice - (*PatternFlowIpv4TosUnused_Choice)(nil), // 1710: otg.PatternFlowIpv4TosUnused.Choice - (*PatternFlowIpv6Version_Choice)(nil), // 1711: otg.PatternFlowIpv6Version.Choice - (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1712: otg.PatternFlowIpv6TrafficClass.Choice - (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1713: otg.PatternFlowIpv6FlowLabel.Choice - (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1714: otg.PatternFlowIpv6PayloadLength.Choice - (*PatternFlowIpv6NextHeader_Choice)(nil), // 1715: otg.PatternFlowIpv6NextHeader.Choice - (*PatternFlowIpv6HopLimit_Choice)(nil), // 1716: otg.PatternFlowIpv6HopLimit.Choice - (*PatternFlowIpv6Src_Choice)(nil), // 1717: otg.PatternFlowIpv6Src.Choice - (*PatternFlowIpv6Dst_Choice)(nil), // 1718: otg.PatternFlowIpv6Dst.Choice - (*PatternFlowPfcPauseDst_Choice)(nil), // 1719: otg.PatternFlowPfcPauseDst.Choice - (*PatternFlowPfcPauseSrc_Choice)(nil), // 1720: otg.PatternFlowPfcPauseSrc.Choice - (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1721: otg.PatternFlowPfcPauseEtherType.Choice - (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1722: otg.PatternFlowPfcPauseControlOpCode.Choice - (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1723: otg.PatternFlowPfcPauseClassEnableVector.Choice - (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1724: otg.PatternFlowPfcPausePauseClass0.Choice - (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1725: otg.PatternFlowPfcPausePauseClass1.Choice - (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1726: otg.PatternFlowPfcPausePauseClass2.Choice - (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1727: otg.PatternFlowPfcPausePauseClass3.Choice - (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1728: otg.PatternFlowPfcPausePauseClass4.Choice - (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1729: otg.PatternFlowPfcPausePauseClass5.Choice - (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1730: otg.PatternFlowPfcPausePauseClass6.Choice - (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1731: otg.PatternFlowPfcPausePauseClass7.Choice - (*PatternFlowEthernetPauseDst_Choice)(nil), // 1732: otg.PatternFlowEthernetPauseDst.Choice - (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1733: otg.PatternFlowEthernetPauseSrc.Choice - (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1734: otg.PatternFlowEthernetPauseEtherType.Choice - (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1735: otg.PatternFlowEthernetPauseControlOpCode.Choice - (*PatternFlowEthernetPauseTime_Choice)(nil), // 1736: otg.PatternFlowEthernetPauseTime.Choice - (*PatternFlowTcpSrcPort_Choice)(nil), // 1737: otg.PatternFlowTcpSrcPort.Choice - (*PatternFlowTcpDstPort_Choice)(nil), // 1738: otg.PatternFlowTcpDstPort.Choice - (*PatternFlowTcpSeqNum_Choice)(nil), // 1739: otg.PatternFlowTcpSeqNum.Choice - (*PatternFlowTcpAckNum_Choice)(nil), // 1740: otg.PatternFlowTcpAckNum.Choice - (*PatternFlowTcpDataOffset_Choice)(nil), // 1741: otg.PatternFlowTcpDataOffset.Choice - (*PatternFlowTcpEcnNs_Choice)(nil), // 1742: otg.PatternFlowTcpEcnNs.Choice - (*PatternFlowTcpEcnCwr_Choice)(nil), // 1743: otg.PatternFlowTcpEcnCwr.Choice - (*PatternFlowTcpEcnEcho_Choice)(nil), // 1744: otg.PatternFlowTcpEcnEcho.Choice - (*PatternFlowTcpCtlUrg_Choice)(nil), // 1745: otg.PatternFlowTcpCtlUrg.Choice - (*PatternFlowTcpCtlAck_Choice)(nil), // 1746: otg.PatternFlowTcpCtlAck.Choice - (*PatternFlowTcpCtlPsh_Choice)(nil), // 1747: otg.PatternFlowTcpCtlPsh.Choice - (*PatternFlowTcpCtlRst_Choice)(nil), // 1748: otg.PatternFlowTcpCtlRst.Choice - (*PatternFlowTcpCtlSyn_Choice)(nil), // 1749: otg.PatternFlowTcpCtlSyn.Choice - (*PatternFlowTcpCtlFin_Choice)(nil), // 1750: otg.PatternFlowTcpCtlFin.Choice - (*PatternFlowTcpWindow_Choice)(nil), // 1751: otg.PatternFlowTcpWindow.Choice - (*PatternFlowTcpChecksum_Choice)(nil), // 1752: otg.PatternFlowTcpChecksum.Choice - (*PatternFlowTcpChecksum_Generated)(nil), // 1753: otg.PatternFlowTcpChecksum.Generated - (*PatternFlowUdpSrcPort_Choice)(nil), // 1754: otg.PatternFlowUdpSrcPort.Choice - (*PatternFlowUdpDstPort_Choice)(nil), // 1755: otg.PatternFlowUdpDstPort.Choice - (*PatternFlowUdpLength_Choice)(nil), // 1756: otg.PatternFlowUdpLength.Choice - (*PatternFlowUdpChecksum_Choice)(nil), // 1757: otg.PatternFlowUdpChecksum.Choice - (*PatternFlowUdpChecksum_Generated)(nil), // 1758: otg.PatternFlowUdpChecksum.Generated - (*PatternFlowGreChecksumPresent_Choice)(nil), // 1759: otg.PatternFlowGreChecksumPresent.Choice - (*PatternFlowGreReserved0_Choice)(nil), // 1760: otg.PatternFlowGreReserved0.Choice - (*PatternFlowGreVersion_Choice)(nil), // 1761: otg.PatternFlowGreVersion.Choice - (*PatternFlowGreProtocol_Choice)(nil), // 1762: otg.PatternFlowGreProtocol.Choice - (*PatternFlowGreChecksum_Choice)(nil), // 1763: otg.PatternFlowGreChecksum.Choice - (*PatternFlowGreChecksum_Generated)(nil), // 1764: otg.PatternFlowGreChecksum.Generated - (*PatternFlowGreReserved1_Choice)(nil), // 1765: otg.PatternFlowGreReserved1.Choice - (*PatternFlowGtpv1Version_Choice)(nil), // 1766: otg.PatternFlowGtpv1Version.Choice - (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1767: otg.PatternFlowGtpv1ProtocolType.Choice - (*PatternFlowGtpv1Reserved_Choice)(nil), // 1768: otg.PatternFlowGtpv1Reserved.Choice - (*PatternFlowGtpv1EFlag_Choice)(nil), // 1769: otg.PatternFlowGtpv1EFlag.Choice - (*PatternFlowGtpv1SFlag_Choice)(nil), // 1770: otg.PatternFlowGtpv1SFlag.Choice - (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1771: otg.PatternFlowGtpv1PnFlag.Choice - (*PatternFlowGtpv1MessageType_Choice)(nil), // 1772: otg.PatternFlowGtpv1MessageType.Choice - (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1773: otg.PatternFlowGtpv1MessageLength.Choice - (*PatternFlowGtpv1Teid_Choice)(nil), // 1774: otg.PatternFlowGtpv1Teid.Choice - (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1775: otg.PatternFlowGtpv1SquenceNumber.Choice - (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1776: otg.PatternFlowGtpv1NPduNumber.Choice - (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1777: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice - (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1778: otg.PatternFlowGtpExtensionExtensionLength.Choice - (*PatternFlowGtpExtensionContents_Choice)(nil), // 1779: otg.PatternFlowGtpExtensionContents.Choice - (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1780: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice - (*PatternFlowGtpv2Version_Choice)(nil), // 1781: otg.PatternFlowGtpv2Version.Choice - (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1782: otg.PatternFlowGtpv2PiggybackingFlag.Choice - (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1783: otg.PatternFlowGtpv2TeidFlag.Choice - (*PatternFlowGtpv2Spare1_Choice)(nil), // 1784: otg.PatternFlowGtpv2Spare1.Choice - (*PatternFlowGtpv2MessageType_Choice)(nil), // 1785: otg.PatternFlowGtpv2MessageType.Choice - (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1786: otg.PatternFlowGtpv2MessageLength.Choice - (*PatternFlowGtpv2Teid_Choice)(nil), // 1787: otg.PatternFlowGtpv2Teid.Choice - (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1788: otg.PatternFlowGtpv2SequenceNumber.Choice - (*PatternFlowGtpv2Spare2_Choice)(nil), // 1789: otg.PatternFlowGtpv2Spare2.Choice - (*PatternFlowArpHardwareType_Choice)(nil), // 1790: otg.PatternFlowArpHardwareType.Choice - (*PatternFlowArpProtocolType_Choice)(nil), // 1791: otg.PatternFlowArpProtocolType.Choice - (*PatternFlowArpHardwareLength_Choice)(nil), // 1792: otg.PatternFlowArpHardwareLength.Choice - (*PatternFlowArpProtocolLength_Choice)(nil), // 1793: otg.PatternFlowArpProtocolLength.Choice - (*PatternFlowArpOperation_Choice)(nil), // 1794: otg.PatternFlowArpOperation.Choice - (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1795: otg.PatternFlowArpSenderHardwareAddr.Choice - (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1796: otg.PatternFlowArpSenderProtocolAddr.Choice - (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1797: otg.PatternFlowArpTargetHardwareAddr.Choice - (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1798: otg.PatternFlowArpTargetProtocolAddr.Choice - (*PatternFlowIcmpEchoType_Choice)(nil), // 1799: otg.PatternFlowIcmpEchoType.Choice - (*PatternFlowIcmpEchoCode_Choice)(nil), // 1800: otg.PatternFlowIcmpEchoCode.Choice - (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1801: otg.PatternFlowIcmpEchoChecksum.Choice - (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1802: otg.PatternFlowIcmpEchoChecksum.Generated - (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1803: otg.PatternFlowIcmpEchoIdentifier.Choice - (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1804: otg.PatternFlowIcmpEchoSequenceNumber.Choice - (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1805: otg.PatternFlowIcmpCommonChecksum.Choice - (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1806: otg.PatternFlowIcmpCommonChecksum.Generated - (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1807: otg.PatternFlowIcmpNextFieldsIdentifier.Choice - (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1808: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice - (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1809: otg.PatternFlowIcmpv6EchoType.Choice - (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1810: otg.PatternFlowIcmpv6EchoCode.Choice - (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1811: otg.PatternFlowIcmpv6EchoIdentifier.Choice - (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1812: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice - (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1813: otg.PatternFlowIcmpv6EchoChecksum.Choice - (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1814: otg.PatternFlowIcmpv6EchoChecksum.Generated - (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1815: otg.PatternFlowIcmpv6CommonChecksum.Choice - (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1816: otg.PatternFlowIcmpv6CommonChecksum.Generated - (*PatternFlowPppAddress_Choice)(nil), // 1817: otg.PatternFlowPppAddress.Choice - (*PatternFlowPppControl_Choice)(nil), // 1818: otg.PatternFlowPppControl.Choice - (*PatternFlowPppProtocolType_Choice)(nil), // 1819: otg.PatternFlowPppProtocolType.Choice - (*PatternFlowIgmpv1Version_Choice)(nil), // 1820: otg.PatternFlowIgmpv1Version.Choice - (*PatternFlowIgmpv1Type_Choice)(nil), // 1821: otg.PatternFlowIgmpv1Type.Choice - (*PatternFlowIgmpv1Unused_Choice)(nil), // 1822: otg.PatternFlowIgmpv1Unused.Choice - (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1823: otg.PatternFlowIgmpv1Checksum.Choice - (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1824: otg.PatternFlowIgmpv1Checksum.Generated - (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1825: otg.PatternFlowIgmpv1GroupAddress.Choice - (*PatternFlowMplsLabel_Choice)(nil), // 1826: otg.PatternFlowMplsLabel.Choice - (*PatternFlowMplsTrafficClass_Choice)(nil), // 1827: otg.PatternFlowMplsTrafficClass.Choice - (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1828: otg.PatternFlowMplsBottomOfStack.Choice - (*PatternFlowMplsTimeToLive_Choice)(nil), // 1829: otg.PatternFlowMplsTimeToLive.Choice - (*PatternFlowSnmpv2CVersion_Choice)(nil), // 1830: otg.PatternFlowSnmpv2cVersion.Choice - (*PatternFlowSnmpv2CPDURequestId_Choice)(nil), // 1831: otg.PatternFlowSnmpv2cPDURequestId.Choice - (*PatternFlowSnmpv2CPDUErrorIndex_Choice)(nil), // 1832: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice - (*PatternFlowSnmpv2CBulkPDURequestId_Choice)(nil), // 1833: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice - (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice)(nil), // 1834: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice - (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice)(nil), // 1835: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice - (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice)(nil), // 1836: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice - (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice)(nil), // 1837: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice - (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice)(nil), // 1838: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice - (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice)(nil), // 1839: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice - (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice)(nil), // 1840: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice - (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice)(nil), // 1841: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice - (*PatternFlowSnmpv2CCommonRequestId_Choice)(nil), // 1842: otg.PatternFlowSnmpv2cCommonRequestId.Choice - (*PatternFlowRsvpRsvpChecksum_Choice)(nil), // 1843: otg.PatternFlowRsvpRsvpChecksum.Choice - (*PatternFlowRsvpRsvpChecksum_Generated)(nil), // 1844: otg.PatternFlowRsvpRsvpChecksum.Generated - (*PatternFlowRsvpTimeToLive_Choice)(nil), // 1845: otg.PatternFlowRsvpTimeToLive.Choice - (*PatternFlowRsvpReserved_Choice)(nil), // 1846: otg.PatternFlowRsvpReserved.Choice - (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice)(nil), // 1847: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice - (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice)(nil), // 1848: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice - (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice)(nil), // 1849: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice - (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice)(nil), // 1850: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice - (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice)(nil), // 1851: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice - (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice)(nil), // 1852: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice - (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice)(nil), // 1853: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice - (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice)(nil), // 1854: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice)(nil), // 1855: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice - (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice)(nil), // 1856: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice - (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice)(nil), // 1857: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice)(nil), // 1858: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice - (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice)(nil), // 1859: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice)(nil), // 1860: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice)(nil), // 1861: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice - (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice)(nil), // 1862: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice - (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice)(nil), // 1863: otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice - (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice)(nil), // 1864: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice - (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice)(nil), // 1865: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice - (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice)(nil), // 1866: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice - (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice)(nil), // 1867: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice - (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice)(nil), // 1868: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice - (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice)(nil), // 1869: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice - (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice)(nil), // 1870: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice - (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice)(nil), // 1871: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice - (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice)(nil), // 1872: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice - (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice)(nil), // 1873: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice - (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice)(nil), // 1874: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice)(nil), // 1875: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice - (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice)(nil), // 1876: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice - (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice)(nil), // 1877: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice - (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice)(nil), // 1878: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice - (*PatternFlowRSVPPathObjectsCustomType_Choice)(nil), // 1879: otg.PatternFlowRSVPPathObjectsCustomType.Choice - (*emptypb.Empty)(nil), // 1880: google.protobuf.Empty + (DeviceDhcpv6ClientIaType_Choice_Enum)(0), // 7: otg.DeviceDhcpv6clientIaType.Choice.Enum + (DeviceDhcpv6ClientDuidType_Choice_Enum)(0), // 8: otg.DeviceDhcpv6clientDuidType.Choice.Enum + (Dhcpv6ClientOptionsServerIdentifier_Choice_Enum)(0), // 9: otg.Dhcpv6ClientOptionsServerIdentifier.Choice.Enum + (Dhcpv6ClientOptionsDuidUuidVersion_Choice_Enum)(0), // 10: otg.Dhcpv6ClientOptionsDuidUuidVersion.Choice.Enum + (Dhcpv6ClientOptionsDuidUuidVariant_Choice_Enum)(0), // 11: otg.Dhcpv6ClientOptionsDuidUuidVariant.Choice.Enum + (Dhcpv6ClientOptionsOptionsRequest_Choice_Enum)(0), // 12: otg.Dhcpv6ClientOptionsOptionsRequest.Choice.Enum + (Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice_Enum)(0), // 13: otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.Choice.Enum + (Dhcpv6ClientOptionsIncludedMessages_Choice_Enum)(0), // 14: otg.Dhcpv6ClientOptionsIncludedMessages.Choice.Enum + (Dhcpv6ClientOptionsMessageType_Choice_Enum)(0), // 15: otg.Dhcpv6ClientOptionsMessageType.Choice.Enum + (Dhcpv6ServerOptionsIncludedMessages_Choice_Enum)(0), // 16: otg.Dhcpv6ServerOptionsIncludedMessages.Choice.Enum + (Dhcpv6ServerOptionsMessageType_Choice_Enum)(0), // 17: otg.Dhcpv6ServerOptionsMessageType.Choice.Enum + (Layer1_Speed_Enum)(0), // 18: otg.Layer1.Speed.Enum + (Layer1_Media_Enum)(0), // 19: otg.Layer1.Media.Enum + (Layer1FlowControl_Choice_Enum)(0), // 20: otg.Layer1FlowControl.Choice.Enum + (Capture_Format_Enum)(0), // 21: otg.Capture.Format.Enum + (CaptureFilter_Choice_Enum)(0), // 22: otg.CaptureFilter.Choice.Enum + (IsisInterface_NetworkType_Enum)(0), // 23: otg.IsisInterface.NetworkType.Enum + (IsisInterface_LevelType_Enum)(0), // 24: otg.IsisInterface.LevelType.Enum + (IsisInterfaceAuthentication_AuthType_Enum)(0), // 25: otg.IsisInterfaceAuthentication.AuthType.Enum + (IsisAuthenticationBase_AuthType_Enum)(0), // 26: otg.IsisAuthenticationBase.AuthType.Enum + (IsisV4RouteRange_OriginType_Enum)(0), // 27: otg.IsisV4RouteRange.OriginType.Enum + (IsisV4RouteRange_RedistributionType_Enum)(0), // 28: otg.IsisV4RouteRange.RedistributionType.Enum + (IsisV6RouteRange_OriginType_Enum)(0), // 29: otg.IsisV6RouteRange.OriginType.Enum + (IsisV6RouteRange_RedistributionType_Enum)(0), // 30: otg.IsisV6RouteRange.RedistributionType.Enum + (DeviceBgpMessageHeaderError_Subcode_Enum)(0), // 31: otg.DeviceBgpMessageHeaderError.Subcode.Enum + (DeviceBgpOpenMessageError_Subcode_Enum)(0), // 32: otg.DeviceBgpOpenMessageError.Subcode.Enum + (DeviceBgpUpdateMessageError_Subcode_Enum)(0), // 33: otg.DeviceBgpUpdateMessageError.Subcode.Enum + (DeviceBgpCeaseError_Subcode_Enum)(0), // 34: otg.DeviceBgpCeaseError.Subcode.Enum + (BgpV4Peer_AsType_Enum)(0), // 35: otg.BgpV4Peer.AsType.Enum + (BgpV4Peer_AsNumberWidth_Enum)(0), // 36: otg.BgpV4Peer.AsNumberWidth.Enum + (BgpV4EthernetSegment_ActiveMode_Enum)(0), // 37: otg.BgpV4EthernetSegment.ActiveMode.Enum + (BgpRouteAdvanced_Origin_Enum)(0), // 38: otg.BgpRouteAdvanced.Origin.Enum + (BgpCommunity_Type_Enum)(0), // 39: otg.BgpCommunity.Type.Enum + (BgpExtCommunity_Type_Enum)(0), // 40: otg.BgpExtCommunity.Type.Enum + (BgpExtCommunity_Subtype_Enum)(0), // 41: otg.BgpExtCommunity.Subtype.Enum + (BgpAsPath_AsSetMode_Enum)(0), // 42: otg.BgpAsPath.AsSetMode.Enum + (BgpAsPathSegment_Type_Enum)(0), // 43: otg.BgpAsPathSegment.Type.Enum + (BgpV4EvpnEvis_Choice_Enum)(0), // 44: otg.BgpV4EvpnEvis.Choice.Enum + (BgpV4EviVxlan_ReplicationType_Enum)(0), // 45: otg.BgpV4EviVxlan.ReplicationType.Enum + (BgpRouteDistinguisher_RdType_Enum)(0), // 46: otg.BgpRouteDistinguisher.RdType.Enum + (BgpRouteTarget_RtType_Enum)(0), // 47: otg.BgpRouteTarget.RtType.Enum + (BgpV4RouteRange_NextHopMode_Enum)(0), // 48: otg.BgpV4RouteRange.NextHopMode.Enum + (BgpV4RouteRange_NextHopAddressType_Enum)(0), // 49: otg.BgpV4RouteRange.NextHopAddressType.Enum + (BgpExtendedCommunity_Choice_Enum)(0), // 50: otg.BgpExtendedCommunity.Choice.Enum + (BgpExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 51: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 52: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + (BgpExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 53: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + (BgpExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 54: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + (BgpExtendedCommunityTransitiveEvpnType_Choice_Enum)(0), // 55: otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + (BgpExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 56: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + (BgpV6RouteRange_NextHopMode_Enum)(0), // 57: otg.BgpV6RouteRange.NextHopMode.Enum + (BgpV6RouteRange_NextHopAddressType_Enum)(0), // 58: otg.BgpV6RouteRange.NextHopAddressType.Enum + (BgpSrteV4Policy_NextHopMode_Enum)(0), // 59: otg.BgpSrteV4Policy.NextHopMode.Enum + (BgpSrteV4Policy_NextHopAddressType_Enum)(0), // 60: otg.BgpSrteV4Policy.NextHopAddressType.Enum + (BgpSrteRemoteEndpointSubTlv_AddressFamily_Enum)(0), // 61: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + (BgpSrteBindingSubTlv_BindingSidType_Enum)(0), // 62: otg.BgpSrteBindingSubTlv.BindingSidType.Enum + (BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy_Enum)(0), // 63: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + (BgpSrteSegment_SegmentType_Enum)(0), // 64: otg.BgpSrteSegment.SegmentType.Enum + (BgpSrteV6Policy_NextHopMode_Enum)(0), // 65: otg.BgpSrteV6Policy.NextHopMode.Enum + (BgpSrteV6Policy_NextHopAddressType_Enum)(0), // 66: otg.BgpSrteV6Policy.NextHopAddressType.Enum + (BgpUpdateReplay_Choice_Enum)(0), // 67: otg.BgpUpdateReplay.Choice.Enum + (BgpAttributes_Origin_Enum)(0), // 68: otg.BgpAttributes.Origin.Enum + (BgpAttributesAsPath_Choice_Enum)(0), // 69: otg.BgpAttributesAsPath.Choice.Enum + (BgpAttributesFourByteAsPathSegment_Type_Enum)(0), // 70: otg.BgpAttributesFourByteAsPathSegment.Type.Enum + (BgpAttributesTwoByteAsPathSegment_Type_Enum)(0), // 71: otg.BgpAttributesTwoByteAsPathSegment.Type.Enum + (BgpAttributesAggregator_Choice_Enum)(0), // 72: otg.BgpAttributesAggregator.Choice.Enum + (BgpAttributesCommunity_Choice_Enum)(0), // 73: otg.BgpAttributesCommunity.Choice.Enum + (BgpAttributesNextHop_Choice_Enum)(0), // 74: otg.BgpAttributesNextHop.Choice.Enum + (BgpAttributesMpReachNlri_Choice_Enum)(0), // 75: otg.BgpAttributesMpReachNlri.Choice.Enum + (BgpAttributesMpUnreachNlri_Choice_Enum)(0), // 76: otg.BgpAttributesMpUnreachNlri.Choice.Enum + (BgpAttributesTunnelEncapsulation_Choice_Enum)(0), // 77: otg.BgpAttributesTunnelEncapsulation.Choice.Enum + (BgpAttributesBsid_Choice_Enum)(0), // 78: otg.BgpAttributesBsid.Choice.Enum + (BgpAttributesSrPolicyExplicitNullPolicy_Choice_Enum)(0), // 79: otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.Enum + (BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice_Enum)(0), // 80: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.Enum + (BgpV6Peer_AsType_Enum)(0), // 81: otg.BgpV6Peer.AsType.Enum + (BgpV6Peer_AsNumberWidth_Enum)(0), // 82: otg.BgpV6Peer.AsNumberWidth.Enum + (BgpV6EthernetSegment_ActiveMode_Enum)(0), // 83: otg.BgpV6EthernetSegment.ActiveMode.Enum + (BgpV6EvpnEvis_Choice_Enum)(0), // 84: otg.BgpV6EvpnEvis.Choice.Enum + (BgpV6EviVxlan_ReplicationType_Enum)(0), // 85: otg.BgpV6EviVxlan.ReplicationType.Enum + (VxlanV4TunnelDestinationIPMode_Choice_Enum)(0), // 86: otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + (VxlanV6TunnelDestinationIPMode_Choice_Enum)(0), // 87: otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + (RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle_Enum)(0), // 88: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + (RsvpEro_PrependNeighborIp_Enum)(0), // 89: otg.RsvpEro.PrependNeighborIp.Enum + (RsvpEroSubobject_Type_Enum)(0), // 90: otg.RsvpEroSubobject.Type.Enum + (RsvpEroSubobject_HopType_Enum)(0), // 91: otg.RsvpEroSubobject.HopType.Enum + (Dhcpv6ServerIaType_Choice_Enum)(0), // 92: otg.Dhcpv6ServerIaType.Choice.Enum + (FlowTxRx_Choice_Enum)(0), // 93: otg.FlowTxRx.Choice.Enum + (FlowRouter_Mode_Enum)(0), // 94: otg.FlowRouter.Mode.Enum + (FlowHeader_Choice_Enum)(0), // 95: otg.FlowHeader.Choice.Enum + (FlowIpv4Options_Choice_Enum)(0), // 96: otg.FlowIpv4Options.Choice.Enum + (FlowIpv4OptionsCustomLength_Choice_Enum)(0), // 97: otg.FlowIpv4OptionsCustomLength.Choice.Enum + (FlowIpv4Priority_Choice_Enum)(0), // 98: otg.FlowIpv4Priority.Choice.Enum + (FlowIpv4Auto_Choice_Enum)(0), // 99: otg.FlowIpv4Auto.Choice.Enum + (FlowIpv6Auto_Choice_Enum)(0), // 100: otg.FlowIpv6Auto.Choice.Enum + (FlowIcmp_Choice_Enum)(0), // 101: otg.FlowIcmp.Choice.Enum + (FlowIcmpv6_Choice_Enum)(0), // 102: otg.FlowIcmpv6.Choice.Enum + (FlowSnmpv2CData_Choice_Enum)(0), // 103: otg.FlowSnmpv2cData.Choice.Enum + (FlowSnmpv2CPDU_ErrorStatus_Enum)(0), // 104: otg.FlowSnmpv2cPDU.ErrorStatus.Enum + (FlowSnmpv2CVariableBindingValue_Choice_Enum)(0), // 105: otg.FlowSnmpv2cVariableBindingValue.Choice.Enum + (FlowSnmpv2CVariableBindingStringValue_Choice_Enum)(0), // 106: otg.FlowSnmpv2cVariableBindingStringValue.Choice.Enum + (FlowRsvp_Flag_Enum)(0), // 107: otg.FlowRsvp.Flag.Enum + (FlowRSVPLength_Choice_Enum)(0), // 108: otg.FlowRSVPLength.Choice.Enum + (FlowRSVPMessage_Choice_Enum)(0), // 109: otg.FlowRSVPMessage.Choice.Enum + (FlowRSVPObjectLength_Choice_Enum)(0), // 110: otg.FlowRSVPObjectLength.Choice.Enum + (FlowRSVPPathObjectsClass_Choice_Enum)(0), // 111: otg.FlowRSVPPathObjectsClass.Choice.Enum + (FlowRSVPPathObjectsSessionCType_Choice_Enum)(0), // 112: otg.FlowRSVPPathObjectsSessionCType.Choice.Enum + (FlowRSVPPathSessionExtTunnelId_Choice_Enum)(0), // 113: otg.FlowRSVPPathSessionExtTunnelId.Choice.Enum + (FlowRSVPPathObjectsRsvpHopCType_Choice_Enum)(0), // 114: otg.FlowRSVPPathObjectsRsvpHopCType.Choice.Enum + (FlowRSVPPathObjectsTimeValuesCType_Choice_Enum)(0), // 115: otg.FlowRSVPPathObjectsTimeValuesCType.Choice.Enum + (FlowRSVPPathObjectsClassExplicitRouteCType_Choice_Enum)(0), // 116: otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.Enum + (FlowRSVPType1ExplicitRouteSubobjectsType_Choice_Enum)(0), // 117: otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.Enum + (FlowRSVPExplicitRouteLength_Choice_Enum)(0), // 118: otg.FlowRSVPExplicitRouteLength.Choice.Enum + (FlowRSVPExplicitRouteASNumberLength_Choice_Enum)(0), // 119: otg.FlowRSVPExplicitRouteASNumberLength.Choice.Enum + (FlowRSVPPathObjectsLabelRequestCType_Choice_Enum)(0), // 120: otg.FlowRSVPPathObjectsLabelRequestCType.Choice.Enum + (FlowRSVPPathObjectsSessionAttributeCType_Choice_Enum)(0), // 121: otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.Enum + (FlowRSVPLspTunnelFlag_Choice_Enum)(0), // 122: otg.FlowRSVPLspTunnelFlag.Choice.Enum + (FlowRSVPSessionAttributeNameLength_Choice_Enum)(0), // 123: otg.FlowRSVPSessionAttributeNameLength.Choice.Enum + (FlowRSVPPathObjectsSenderTemplateCType_Choice_Enum)(0), // 124: otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.Enum + (FlowRSVPPathObjectsSenderTspecCType_Choice_Enum)(0), // 125: otg.FlowRSVPPathObjectsSenderTspecCType.Choice.Enum + (FlowRSVPPathObjectsRecordRouteCType_Choice_Enum)(0), // 126: otg.FlowRSVPPathObjectsRecordRouteCType.Choice.Enum + (FlowRSVPPathObjectsRecordRouteSubObjectType_Choice_Enum)(0), // 127: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.Enum + (FlowRSVPRecordRouteIPv4Flag_Choice_Enum)(0), // 128: otg.FlowRSVPRecordRouteIPv4Flag.Choice.Enum + (FlowRSVPPathRecordRouteLabel_Choice_Enum)(0), // 129: otg.FlowRSVPPathRecordRouteLabel.Choice.Enum + (FlowRSVPRouteRecordLength_Choice_Enum)(0), // 130: otg.FlowRSVPRouteRecordLength.Choice.Enum + (FlowSize_Choice_Enum)(0), // 131: otg.FlowSize.Choice.Enum + (FlowSizeWeightPairs_Choice_Enum)(0), // 132: otg.FlowSizeWeightPairs.Choice.Enum + (FlowSizeWeightPairs_Predefined_Enum)(0), // 133: otg.FlowSizeWeightPairs.Predefined.Enum + (FlowRate_Choice_Enum)(0), // 134: otg.FlowRate.Choice.Enum + (FlowDuration_Choice_Enum)(0), // 135: otg.FlowDuration.Choice.Enum + (FlowDelay_Choice_Enum)(0), // 136: otg.FlowDelay.Choice.Enum + (FlowDurationInterBurstGap_Choice_Enum)(0), // 137: otg.FlowDurationInterBurstGap.Choice.Enum + (FlowLatencyMetrics_Mode_Enum)(0), // 138: otg.FlowLatencyMetrics.Mode.Enum + (FlowRxTxRatio_Choice_Enum)(0), // 139: otg.FlowRxTxRatio.Choice.Enum + (EventRequest_Type_Enum)(0), // 140: otg.EventRequest.Type.Enum + (LldpConnection_Choice_Enum)(0), // 141: otg.LldpConnection.Choice.Enum + (LldpChassisId_Choice_Enum)(0), // 142: otg.LldpChassisId.Choice.Enum + (LldpPortId_Choice_Enum)(0), // 143: otg.LldpPortId.Choice.Enum + (LldpChassisMacSubType_Choice_Enum)(0), // 144: otg.LldpChassisMacSubType.Choice.Enum + (LldpPortInterfaceNameSubType_Choice_Enum)(0), // 145: otg.LldpPortInterfaceNameSubType.Choice.Enum + (LldpSystemName_Choice_Enum)(0), // 146: otg.LldpSystemName.Choice.Enum + (Error_Kind_Enum)(0), // 147: otg.Error.Kind.Enum + (ConfigUpdate_Choice_Enum)(0), // 148: otg.ConfigUpdate.Choice.Enum + (FlowsUpdate_PropertyNames_Enum)(0), // 149: otg.FlowsUpdate.PropertyNames.Enum + (ControlState_Choice_Enum)(0), // 150: otg.ControlState.Choice.Enum + (StatePort_Choice_Enum)(0), // 151: otg.StatePort.Choice.Enum + (StateTraffic_Choice_Enum)(0), // 152: otg.StateTraffic.Choice.Enum + (StateProtocol_Choice_Enum)(0), // 153: otg.StateProtocol.Choice.Enum + (StatePortLink_State_Enum)(0), // 154: otg.StatePortLink.State.Enum + (StatePortCapture_State_Enum)(0), // 155: otg.StatePortCapture.State.Enum + (StateTrafficFlowTransmit_State_Enum)(0), // 156: otg.StateTrafficFlowTransmit.State.Enum + (StateProtocolAll_State_Enum)(0), // 157: otg.StateProtocolAll.State.Enum + (StateProtocolRoute_State_Enum)(0), // 158: otg.StateProtocolRoute.State.Enum + (StateProtocolLacp_Choice_Enum)(0), // 159: otg.StateProtocolLacp.Choice.Enum + (StateProtocolLacpAdmin_State_Enum)(0), // 160: otg.StateProtocolLacpAdmin.State.Enum + (StateProtocolLacpMemberPorts_State_Enum)(0), // 161: otg.StateProtocolLacpMemberPorts.State.Enum + (StateProtocolBgp_Choice_Enum)(0), // 162: otg.StateProtocolBgp.Choice.Enum + (StateProtocolBgpPeers_State_Enum)(0), // 163: otg.StateProtocolBgpPeers.State.Enum + (StateProtocolIsis_Choice_Enum)(0), // 164: otg.StateProtocolIsis.Choice.Enum + (StateProtocolIsisRouters_State_Enum)(0), // 165: otg.StateProtocolIsisRouters.State.Enum + (ControlAction_Choice_Enum)(0), // 166: otg.ControlAction.Choice.Enum + (ActionResponse_Choice_Enum)(0), // 167: otg.ActionResponse.Choice.Enum + (ActionProtocol_Choice_Enum)(0), // 168: otg.ActionProtocol.Choice.Enum + (ActionResponseProtocol_Choice_Enum)(0), // 169: otg.ActionResponseProtocol.Choice.Enum + (ActionProtocolIpv4_Choice_Enum)(0), // 170: otg.ActionProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4_Choice_Enum)(0), // 171: otg.ActionResponseProtocolIpv4.Choice.Enum + (ActionResponseProtocolIpv4PingResponse_Result_Enum)(0), // 172: otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + (ActionProtocolIpv6_Choice_Enum)(0), // 173: otg.ActionProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6_Choice_Enum)(0), // 174: otg.ActionResponseProtocolIpv6.Choice.Enum + (ActionResponseProtocolIpv6PingResponse_Result_Enum)(0), // 175: otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + (ActionProtocolBgp_Choice_Enum)(0), // 176: otg.ActionProtocolBgp.Choice.Enum + (ActionProtocolBgpNotification_Choice_Enum)(0), // 177: otg.ActionProtocolBgpNotification.Choice.Enum + (MetricsRequest_Choice_Enum)(0), // 178: otg.MetricsRequest.Choice.Enum + (MetricsResponse_Choice_Enum)(0), // 179: otg.MetricsResponse.Choice.Enum + (PortMetricsRequest_ColumnNames_Enum)(0), // 180: otg.PortMetricsRequest.ColumnNames.Enum + (PortMetric_Link_Enum)(0), // 181: otg.PortMetric.Link.Enum + (PortMetric_Capture_Enum)(0), // 182: otg.PortMetric.Capture.Enum + (PortMetric_Transmit_Enum)(0), // 183: otg.PortMetric.Transmit.Enum + (FlowMetricsRequest_MetricNames_Enum)(0), // 184: otg.FlowMetricsRequest.MetricNames.Enum + (FlowTaggedMetricsFilter_MetricNames_Enum)(0), // 185: otg.FlowTaggedMetricsFilter.MetricNames.Enum + (FlowMetric_Transmit_Enum)(0), // 186: otg.FlowMetric.Transmit.Enum + (FlowMetricTagValue_Choice_Enum)(0), // 187: otg.FlowMetricTagValue.Choice.Enum + (Bgpv4MetricsRequest_ColumnNames_Enum)(0), // 188: otg.Bgpv4MetricsRequest.ColumnNames.Enum + (Bgpv4Metric_SessionState_Enum)(0), // 189: otg.Bgpv4Metric.SessionState.Enum + (Bgpv4Metric_FsmState_Enum)(0), // 190: otg.Bgpv4Metric.FsmState.Enum + (Bgpv6MetricsRequest_ColumnNames_Enum)(0), // 191: otg.Bgpv6MetricsRequest.ColumnNames.Enum + (Bgpv6Metric_SessionState_Enum)(0), // 192: otg.Bgpv6Metric.SessionState.Enum + (Bgpv6Metric_FsmState_Enum)(0), // 193: otg.Bgpv6Metric.FsmState.Enum + (IsisMetricsRequest_ColumnNames_Enum)(0), // 194: otg.IsisMetricsRequest.ColumnNames.Enum + (LagMetricsRequest_ColumnNames_Enum)(0), // 195: otg.LagMetricsRequest.ColumnNames.Enum + (LagMetric_OperStatus_Enum)(0), // 196: otg.LagMetric.OperStatus.Enum + (LacpMetricsRequest_ColumnNames_Enum)(0), // 197: otg.LacpMetricsRequest.ColumnNames.Enum + (LacpMetric_Activity_Enum)(0), // 198: otg.LacpMetric.Activity.Enum + (LacpMetric_Timeout_Enum)(0), // 199: otg.LacpMetric.Timeout.Enum + (LacpMetric_Synchronization_Enum)(0), // 200: otg.LacpMetric.Synchronization.Enum + (LldpMetricsRequest_ColumnNames_Enum)(0), // 201: otg.LldpMetricsRequest.ColumnNames.Enum + (RsvpMetricsRequest_ColumnNames_Enum)(0), // 202: otg.RsvpMetricsRequest.ColumnNames.Enum + (Dhcpv4ClientMetricsRequest_ColumnNames_Enum)(0), // 203: otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum + (Dhcpv4ServerMetricsRequest_ColumnNames_Enum)(0), // 204: otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum + (Dhcpv6ClientMetricsRequest_ColumnNames_Enum)(0), // 205: otg.Dhcpv6ClientMetricsRequest.ColumnNames.Enum + (Dhcpv6ServerMetricsRequest_ColumnNames_Enum)(0), // 206: otg.Dhcpv6ServerMetricsRequest.ColumnNames.Enum + (StatesRequest_Choice_Enum)(0), // 207: otg.StatesRequest.Choice.Enum + (StatesResponse_Choice_Enum)(0), // 208: otg.StatesResponse.Choice.Enum + (BgpPrefixStateRequest_PrefixFilters_Enum)(0), // 209: otg.BgpPrefixStateRequest.PrefixFilters.Enum + (BgpPrefixIpv4UnicastFilter_Origin_Enum)(0), // 210: otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + (BgpPrefixIpv6UnicastFilter_Origin_Enum)(0), // 211: otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + (BgpPrefixIpv4UnicastState_Origin_Enum)(0), // 212: otg.BgpPrefixIpv4UnicastState.Origin.Enum + (BgpPrefixIpv6UnicastState_Origin_Enum)(0), // 213: otg.BgpPrefixIpv6UnicastState.Origin.Enum + (ResultExtendedCommunityStructured_Choice_Enum)(0), // 214: otg.ResultExtendedCommunityStructured.Choice.Enum + (ResultExtendedCommunityTransitive2OctetAsType_Choice_Enum)(0), // 215: otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.Enum + (ResultExtendedCommunityTransitiveIpv4AddressType_Choice_Enum)(0), // 216: otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + (ResultExtendedCommunityTransitive4OctetAsType_Choice_Enum)(0), // 217: otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.Enum + (ResultExtendedCommunityTransitiveOpaqueType_Choice_Enum)(0), // 218: otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.Enum + (ResultExtendedCommunityNonTransitive2OctetAsType_Choice_Enum)(0), // 219: otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + (ResultBgpCommunity_Type_Enum)(0), // 220: otg.ResultBgpCommunity.Type.Enum + (ResultBgpAsPathSegment_Type_Enum)(0), // 221: otg.ResultBgpAsPathSegment.Type.Enum + (IsisLspState_PduType_Enum)(0), // 222: otg.IsisLspState.PduType.Enum + (IsisLspV4Prefix_RedistributionType_Enum)(0), // 223: otg.IsisLspV4Prefix.RedistributionType.Enum + (IsisLspV4Prefix_OriginType_Enum)(0), // 224: otg.IsisLspV4Prefix.OriginType.Enum + (IsisLspExtendedV4Prefix_RedistributionType_Enum)(0), // 225: otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + (IsisLspV6Prefix_RedistributionType_Enum)(0), // 226: otg.IsisLspV6Prefix.RedistributionType.Enum + (IsisLspV6Prefix_OriginType_Enum)(0), // 227: otg.IsisLspV6Prefix.OriginType.Enum + (LldpNeighborsState_ChassisIdType_Enum)(0), // 228: otg.LldpNeighborsState.ChassisIdType.Enum + (LldpNeighborsState_PortIdType_Enum)(0), // 229: otg.LldpNeighborsState.PortIdType.Enum + (LldpCapabilityState_CapabilityName_Enum)(0), // 230: otg.LldpCapabilityState.CapabilityName.Enum + (RsvpLspState_SessionStatus_Enum)(0), // 231: otg.RsvpLspState.SessionStatus.Enum + (RsvpLspState_LastFlapReason_Enum)(0), // 232: otg.RsvpLspState.LastFlapReason.Enum + (RsvpLspIpv4Ero_Type_Enum)(0), // 233: otg.RsvpLspIpv4Ero.Type.Enum + (PatternFlowEthernetDst_Choice_Enum)(0), // 234: otg.PatternFlowEthernetDst.Choice.Enum + (PatternFlowEthernetSrc_Choice_Enum)(0), // 235: otg.PatternFlowEthernetSrc.Choice.Enum + (PatternFlowEthernetEtherType_Choice_Enum)(0), // 236: otg.PatternFlowEthernetEtherType.Choice.Enum + (PatternFlowEthernetPfcQueue_Choice_Enum)(0), // 237: otg.PatternFlowEthernetPfcQueue.Choice.Enum + (PatternFlowVlanPriority_Choice_Enum)(0), // 238: otg.PatternFlowVlanPriority.Choice.Enum + (PatternFlowVlanCfi_Choice_Enum)(0), // 239: otg.PatternFlowVlanCfi.Choice.Enum + (PatternFlowVlanId_Choice_Enum)(0), // 240: otg.PatternFlowVlanId.Choice.Enum + (PatternFlowVlanTpid_Choice_Enum)(0), // 241: otg.PatternFlowVlanTpid.Choice.Enum + (PatternFlowVxlanFlags_Choice_Enum)(0), // 242: otg.PatternFlowVxlanFlags.Choice.Enum + (PatternFlowVxlanReserved0_Choice_Enum)(0), // 243: otg.PatternFlowVxlanReserved0.Choice.Enum + (PatternFlowVxlanVni_Choice_Enum)(0), // 244: otg.PatternFlowVxlanVni.Choice.Enum + (PatternFlowVxlanReserved1_Choice_Enum)(0), // 245: otg.PatternFlowVxlanReserved1.Choice.Enum + (PatternFlowIpv4Version_Choice_Enum)(0), // 246: otg.PatternFlowIpv4Version.Choice.Enum + (PatternFlowIpv4HeaderLength_Choice_Enum)(0), // 247: otg.PatternFlowIpv4HeaderLength.Choice.Enum + (PatternFlowIpv4TotalLength_Choice_Enum)(0), // 248: otg.PatternFlowIpv4TotalLength.Choice.Enum + (PatternFlowIpv4Identification_Choice_Enum)(0), // 249: otg.PatternFlowIpv4Identification.Choice.Enum + (PatternFlowIpv4Reserved_Choice_Enum)(0), // 250: otg.PatternFlowIpv4Reserved.Choice.Enum + (PatternFlowIpv4DontFragment_Choice_Enum)(0), // 251: otg.PatternFlowIpv4DontFragment.Choice.Enum + (PatternFlowIpv4MoreFragments_Choice_Enum)(0), // 252: otg.PatternFlowIpv4MoreFragments.Choice.Enum + (PatternFlowIpv4FragmentOffset_Choice_Enum)(0), // 253: otg.PatternFlowIpv4FragmentOffset.Choice.Enum + (PatternFlowIpv4TimeToLive_Choice_Enum)(0), // 254: otg.PatternFlowIpv4TimeToLive.Choice.Enum + (PatternFlowIpv4Protocol_Choice_Enum)(0), // 255: otg.PatternFlowIpv4Protocol.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Choice_Enum)(0), // 256: otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + (PatternFlowIpv4HeaderChecksum_Generated_Enum)(0), // 257: otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + (PatternFlowIpv4Src_Choice_Enum)(0), // 258: otg.PatternFlowIpv4Src.Choice.Enum + (PatternFlowIpv4Dst_Choice_Enum)(0), // 259: otg.PatternFlowIpv4Dst.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice_Enum)(0), // 260: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeOptionClass_Choice_Enum)(0), // 261: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum + (PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice_Enum)(0), // 262: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum + (PatternFlowIpv4PriorityRaw_Choice_Enum)(0), // 263: otg.PatternFlowIpv4PriorityRaw.Choice.Enum + (PatternFlowIpv4DscpPhb_Choice_Enum)(0), // 264: otg.PatternFlowIpv4DscpPhb.Choice.Enum + (PatternFlowIpv4DscpEcn_Choice_Enum)(0), // 265: otg.PatternFlowIpv4DscpEcn.Choice.Enum + (PatternFlowIpv4TosPrecedence_Choice_Enum)(0), // 266: otg.PatternFlowIpv4TosPrecedence.Choice.Enum + (PatternFlowIpv4TosDelay_Choice_Enum)(0), // 267: otg.PatternFlowIpv4TosDelay.Choice.Enum + (PatternFlowIpv4TosThroughput_Choice_Enum)(0), // 268: otg.PatternFlowIpv4TosThroughput.Choice.Enum + (PatternFlowIpv4TosReliability_Choice_Enum)(0), // 269: otg.PatternFlowIpv4TosReliability.Choice.Enum + (PatternFlowIpv4TosMonetary_Choice_Enum)(0), // 270: otg.PatternFlowIpv4TosMonetary.Choice.Enum + (PatternFlowIpv4TosUnused_Choice_Enum)(0), // 271: otg.PatternFlowIpv4TosUnused.Choice.Enum + (PatternFlowIpv6Version_Choice_Enum)(0), // 272: otg.PatternFlowIpv6Version.Choice.Enum + (PatternFlowIpv6TrafficClass_Choice_Enum)(0), // 273: otg.PatternFlowIpv6TrafficClass.Choice.Enum + (PatternFlowIpv6FlowLabel_Choice_Enum)(0), // 274: otg.PatternFlowIpv6FlowLabel.Choice.Enum + (PatternFlowIpv6PayloadLength_Choice_Enum)(0), // 275: otg.PatternFlowIpv6PayloadLength.Choice.Enum + (PatternFlowIpv6NextHeader_Choice_Enum)(0), // 276: otg.PatternFlowIpv6NextHeader.Choice.Enum + (PatternFlowIpv6HopLimit_Choice_Enum)(0), // 277: otg.PatternFlowIpv6HopLimit.Choice.Enum + (PatternFlowIpv6Src_Choice_Enum)(0), // 278: otg.PatternFlowIpv6Src.Choice.Enum + (PatternFlowIpv6Dst_Choice_Enum)(0), // 279: otg.PatternFlowIpv6Dst.Choice.Enum + (PatternFlowPfcPauseDst_Choice_Enum)(0), // 280: otg.PatternFlowPfcPauseDst.Choice.Enum + (PatternFlowPfcPauseSrc_Choice_Enum)(0), // 281: otg.PatternFlowPfcPauseSrc.Choice.Enum + (PatternFlowPfcPauseEtherType_Choice_Enum)(0), // 282: otg.PatternFlowPfcPauseEtherType.Choice.Enum + (PatternFlowPfcPauseControlOpCode_Choice_Enum)(0), // 283: otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + (PatternFlowPfcPauseClassEnableVector_Choice_Enum)(0), // 284: otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + (PatternFlowPfcPausePauseClass0_Choice_Enum)(0), // 285: otg.PatternFlowPfcPausePauseClass0.Choice.Enum + (PatternFlowPfcPausePauseClass1_Choice_Enum)(0), // 286: otg.PatternFlowPfcPausePauseClass1.Choice.Enum + (PatternFlowPfcPausePauseClass2_Choice_Enum)(0), // 287: otg.PatternFlowPfcPausePauseClass2.Choice.Enum + (PatternFlowPfcPausePauseClass3_Choice_Enum)(0), // 288: otg.PatternFlowPfcPausePauseClass3.Choice.Enum + (PatternFlowPfcPausePauseClass4_Choice_Enum)(0), // 289: otg.PatternFlowPfcPausePauseClass4.Choice.Enum + (PatternFlowPfcPausePauseClass5_Choice_Enum)(0), // 290: otg.PatternFlowPfcPausePauseClass5.Choice.Enum + (PatternFlowPfcPausePauseClass6_Choice_Enum)(0), // 291: otg.PatternFlowPfcPausePauseClass6.Choice.Enum + (PatternFlowPfcPausePauseClass7_Choice_Enum)(0), // 292: otg.PatternFlowPfcPausePauseClass7.Choice.Enum + (PatternFlowEthernetPauseDst_Choice_Enum)(0), // 293: otg.PatternFlowEthernetPauseDst.Choice.Enum + (PatternFlowEthernetPauseSrc_Choice_Enum)(0), // 294: otg.PatternFlowEthernetPauseSrc.Choice.Enum + (PatternFlowEthernetPauseEtherType_Choice_Enum)(0), // 295: otg.PatternFlowEthernetPauseEtherType.Choice.Enum + (PatternFlowEthernetPauseControlOpCode_Choice_Enum)(0), // 296: otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + (PatternFlowEthernetPauseTime_Choice_Enum)(0), // 297: otg.PatternFlowEthernetPauseTime.Choice.Enum + (PatternFlowTcpSrcPort_Choice_Enum)(0), // 298: otg.PatternFlowTcpSrcPort.Choice.Enum + (PatternFlowTcpDstPort_Choice_Enum)(0), // 299: otg.PatternFlowTcpDstPort.Choice.Enum + (PatternFlowTcpSeqNum_Choice_Enum)(0), // 300: otg.PatternFlowTcpSeqNum.Choice.Enum + (PatternFlowTcpAckNum_Choice_Enum)(0), // 301: otg.PatternFlowTcpAckNum.Choice.Enum + (PatternFlowTcpDataOffset_Choice_Enum)(0), // 302: otg.PatternFlowTcpDataOffset.Choice.Enum + (PatternFlowTcpEcnNs_Choice_Enum)(0), // 303: otg.PatternFlowTcpEcnNs.Choice.Enum + (PatternFlowTcpEcnCwr_Choice_Enum)(0), // 304: otg.PatternFlowTcpEcnCwr.Choice.Enum + (PatternFlowTcpEcnEcho_Choice_Enum)(0), // 305: otg.PatternFlowTcpEcnEcho.Choice.Enum + (PatternFlowTcpCtlUrg_Choice_Enum)(0), // 306: otg.PatternFlowTcpCtlUrg.Choice.Enum + (PatternFlowTcpCtlAck_Choice_Enum)(0), // 307: otg.PatternFlowTcpCtlAck.Choice.Enum + (PatternFlowTcpCtlPsh_Choice_Enum)(0), // 308: otg.PatternFlowTcpCtlPsh.Choice.Enum + (PatternFlowTcpCtlRst_Choice_Enum)(0), // 309: otg.PatternFlowTcpCtlRst.Choice.Enum + (PatternFlowTcpCtlSyn_Choice_Enum)(0), // 310: otg.PatternFlowTcpCtlSyn.Choice.Enum + (PatternFlowTcpCtlFin_Choice_Enum)(0), // 311: otg.PatternFlowTcpCtlFin.Choice.Enum + (PatternFlowTcpWindow_Choice_Enum)(0), // 312: otg.PatternFlowTcpWindow.Choice.Enum + (PatternFlowTcpChecksum_Choice_Enum)(0), // 313: otg.PatternFlowTcpChecksum.Choice.Enum + (PatternFlowTcpChecksum_Generated_Enum)(0), // 314: otg.PatternFlowTcpChecksum.Generated.Enum + (PatternFlowUdpSrcPort_Choice_Enum)(0), // 315: otg.PatternFlowUdpSrcPort.Choice.Enum + (PatternFlowUdpDstPort_Choice_Enum)(0), // 316: otg.PatternFlowUdpDstPort.Choice.Enum + (PatternFlowUdpLength_Choice_Enum)(0), // 317: otg.PatternFlowUdpLength.Choice.Enum + (PatternFlowUdpChecksum_Choice_Enum)(0), // 318: otg.PatternFlowUdpChecksum.Choice.Enum + (PatternFlowUdpChecksum_Generated_Enum)(0), // 319: otg.PatternFlowUdpChecksum.Generated.Enum + (PatternFlowGreChecksumPresent_Choice_Enum)(0), // 320: otg.PatternFlowGreChecksumPresent.Choice.Enum + (PatternFlowGreReserved0_Choice_Enum)(0), // 321: otg.PatternFlowGreReserved0.Choice.Enum + (PatternFlowGreVersion_Choice_Enum)(0), // 322: otg.PatternFlowGreVersion.Choice.Enum + (PatternFlowGreProtocol_Choice_Enum)(0), // 323: otg.PatternFlowGreProtocol.Choice.Enum + (PatternFlowGreChecksum_Choice_Enum)(0), // 324: otg.PatternFlowGreChecksum.Choice.Enum + (PatternFlowGreChecksum_Generated_Enum)(0), // 325: otg.PatternFlowGreChecksum.Generated.Enum + (PatternFlowGreReserved1_Choice_Enum)(0), // 326: otg.PatternFlowGreReserved1.Choice.Enum + (PatternFlowGtpv1Version_Choice_Enum)(0), // 327: otg.PatternFlowGtpv1Version.Choice.Enum + (PatternFlowGtpv1ProtocolType_Choice_Enum)(0), // 328: otg.PatternFlowGtpv1ProtocolType.Choice.Enum + (PatternFlowGtpv1Reserved_Choice_Enum)(0), // 329: otg.PatternFlowGtpv1Reserved.Choice.Enum + (PatternFlowGtpv1EFlag_Choice_Enum)(0), // 330: otg.PatternFlowGtpv1EFlag.Choice.Enum + (PatternFlowGtpv1SFlag_Choice_Enum)(0), // 331: otg.PatternFlowGtpv1SFlag.Choice.Enum + (PatternFlowGtpv1PnFlag_Choice_Enum)(0), // 332: otg.PatternFlowGtpv1PnFlag.Choice.Enum + (PatternFlowGtpv1MessageType_Choice_Enum)(0), // 333: otg.PatternFlowGtpv1MessageType.Choice.Enum + (PatternFlowGtpv1MessageLength_Choice_Enum)(0), // 334: otg.PatternFlowGtpv1MessageLength.Choice.Enum + (PatternFlowGtpv1Teid_Choice_Enum)(0), // 335: otg.PatternFlowGtpv1Teid.Choice.Enum + (PatternFlowGtpv1SquenceNumber_Choice_Enum)(0), // 336: otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + (PatternFlowGtpv1NPduNumber_Choice_Enum)(0), // 337: otg.PatternFlowGtpv1NPduNumber.Choice.Enum + (PatternFlowGtpv1NextExtensionHeaderType_Choice_Enum)(0), // 338: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + (PatternFlowGtpExtensionExtensionLength_Choice_Enum)(0), // 339: otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + (PatternFlowGtpExtensionContents_Choice_Enum)(0), // 340: otg.PatternFlowGtpExtensionContents.Choice.Enum + (PatternFlowGtpExtensionNextExtensionHeader_Choice_Enum)(0), // 341: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + (PatternFlowGtpv2Version_Choice_Enum)(0), // 342: otg.PatternFlowGtpv2Version.Choice.Enum + (PatternFlowGtpv2PiggybackingFlag_Choice_Enum)(0), // 343: otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + (PatternFlowGtpv2TeidFlag_Choice_Enum)(0), // 344: otg.PatternFlowGtpv2TeidFlag.Choice.Enum + (PatternFlowGtpv2Spare1_Choice_Enum)(0), // 345: otg.PatternFlowGtpv2Spare1.Choice.Enum + (PatternFlowGtpv2MessageType_Choice_Enum)(0), // 346: otg.PatternFlowGtpv2MessageType.Choice.Enum + (PatternFlowGtpv2MessageLength_Choice_Enum)(0), // 347: otg.PatternFlowGtpv2MessageLength.Choice.Enum + (PatternFlowGtpv2Teid_Choice_Enum)(0), // 348: otg.PatternFlowGtpv2Teid.Choice.Enum + (PatternFlowGtpv2SequenceNumber_Choice_Enum)(0), // 349: otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + (PatternFlowGtpv2Spare2_Choice_Enum)(0), // 350: otg.PatternFlowGtpv2Spare2.Choice.Enum + (PatternFlowArpHardwareType_Choice_Enum)(0), // 351: otg.PatternFlowArpHardwareType.Choice.Enum + (PatternFlowArpProtocolType_Choice_Enum)(0), // 352: otg.PatternFlowArpProtocolType.Choice.Enum + (PatternFlowArpHardwareLength_Choice_Enum)(0), // 353: otg.PatternFlowArpHardwareLength.Choice.Enum + (PatternFlowArpProtocolLength_Choice_Enum)(0), // 354: otg.PatternFlowArpProtocolLength.Choice.Enum + (PatternFlowArpOperation_Choice_Enum)(0), // 355: otg.PatternFlowArpOperation.Choice.Enum + (PatternFlowArpSenderHardwareAddr_Choice_Enum)(0), // 356: otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + (PatternFlowArpSenderProtocolAddr_Choice_Enum)(0), // 357: otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + (PatternFlowArpTargetHardwareAddr_Choice_Enum)(0), // 358: otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + (PatternFlowArpTargetProtocolAddr_Choice_Enum)(0), // 359: otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + (PatternFlowIcmpEchoType_Choice_Enum)(0), // 360: otg.PatternFlowIcmpEchoType.Choice.Enum + (PatternFlowIcmpEchoCode_Choice_Enum)(0), // 361: otg.PatternFlowIcmpEchoCode.Choice.Enum + (PatternFlowIcmpEchoChecksum_Choice_Enum)(0), // 362: otg.PatternFlowIcmpEchoChecksum.Choice.Enum + (PatternFlowIcmpEchoChecksum_Generated_Enum)(0), // 363: otg.PatternFlowIcmpEchoChecksum.Generated.Enum + (PatternFlowIcmpEchoIdentifier_Choice_Enum)(0), // 364: otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + (PatternFlowIcmpEchoSequenceNumber_Choice_Enum)(0), // 365: otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + (PatternFlowIcmpCommonChecksum_Choice_Enum)(0), // 366: otg.PatternFlowIcmpCommonChecksum.Choice.Enum + (PatternFlowIcmpCommonChecksum_Generated_Enum)(0), // 367: otg.PatternFlowIcmpCommonChecksum.Generated.Enum + (PatternFlowIcmpNextFieldsIdentifier_Choice_Enum)(0), // 368: otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + (PatternFlowIcmpNextFieldsSequenceNumber_Choice_Enum)(0), // 369: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoType_Choice_Enum)(0), // 370: otg.PatternFlowIcmpv6EchoType.Choice.Enum + (PatternFlowIcmpv6EchoCode_Choice_Enum)(0), // 371: otg.PatternFlowIcmpv6EchoCode.Choice.Enum + (PatternFlowIcmpv6EchoIdentifier_Choice_Enum)(0), // 372: otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + (PatternFlowIcmpv6EchoSequenceNumber_Choice_Enum)(0), // 373: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Choice_Enum)(0), // 374: otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + (PatternFlowIcmpv6EchoChecksum_Generated_Enum)(0), // 375: otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + (PatternFlowIcmpv6CommonChecksum_Choice_Enum)(0), // 376: otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + (PatternFlowIcmpv6CommonChecksum_Generated_Enum)(0), // 377: otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + (PatternFlowPppAddress_Choice_Enum)(0), // 378: otg.PatternFlowPppAddress.Choice.Enum + (PatternFlowPppControl_Choice_Enum)(0), // 379: otg.PatternFlowPppControl.Choice.Enum + (PatternFlowPppProtocolType_Choice_Enum)(0), // 380: otg.PatternFlowPppProtocolType.Choice.Enum + (PatternFlowIgmpv1Version_Choice_Enum)(0), // 381: otg.PatternFlowIgmpv1Version.Choice.Enum + (PatternFlowIgmpv1Type_Choice_Enum)(0), // 382: otg.PatternFlowIgmpv1Type.Choice.Enum + (PatternFlowIgmpv1Unused_Choice_Enum)(0), // 383: otg.PatternFlowIgmpv1Unused.Choice.Enum + (PatternFlowIgmpv1Checksum_Choice_Enum)(0), // 384: otg.PatternFlowIgmpv1Checksum.Choice.Enum + (PatternFlowIgmpv1Checksum_Generated_Enum)(0), // 385: otg.PatternFlowIgmpv1Checksum.Generated.Enum + (PatternFlowIgmpv1GroupAddress_Choice_Enum)(0), // 386: otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + (PatternFlowMplsLabel_Choice_Enum)(0), // 387: otg.PatternFlowMplsLabel.Choice.Enum + (PatternFlowMplsTrafficClass_Choice_Enum)(0), // 388: otg.PatternFlowMplsTrafficClass.Choice.Enum + (PatternFlowMplsBottomOfStack_Choice_Enum)(0), // 389: otg.PatternFlowMplsBottomOfStack.Choice.Enum + (PatternFlowMplsTimeToLive_Choice_Enum)(0), // 390: otg.PatternFlowMplsTimeToLive.Choice.Enum + (PatternFlowSnmpv2CVersion_Choice_Enum)(0), // 391: otg.PatternFlowSnmpv2cVersion.Choice.Enum + (PatternFlowSnmpv2CPDURequestId_Choice_Enum)(0), // 392: otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum + (PatternFlowSnmpv2CPDUErrorIndex_Choice_Enum)(0), // 393: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum + (PatternFlowSnmpv2CBulkPDURequestId_Choice_Enum)(0), // 394: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum + (PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice_Enum)(0), // 395: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum + (PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice_Enum)(0), // 396: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice_Enum)(0), // 397: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice_Enum)(0), // 398: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice_Enum)(0), // 399: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice_Enum)(0), // 400: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice_Enum)(0), // 401: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum + (PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice_Enum)(0), // 402: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum + (PatternFlowSnmpv2CCommonRequestId_Choice_Enum)(0), // 403: otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum + (PatternFlowRsvpRsvpChecksum_Choice_Enum)(0), // 404: otg.PatternFlowRsvpRsvpChecksum.Choice.Enum + (PatternFlowRsvpRsvpChecksum_Generated_Enum)(0), // 405: otg.PatternFlowRsvpRsvpChecksum.Generated.Enum + (PatternFlowRsvpTimeToLive_Choice_Enum)(0), // 406: otg.PatternFlowRsvpTimeToLive.Choice.Enum + (PatternFlowRsvpReserved_Choice_Enum)(0), // 407: otg.PatternFlowRsvpReserved.Choice.Enum + (PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice_Enum)(0), // 408: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice.Enum + (PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice_Enum)(0), // 409: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice.Enum + (PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice_Enum)(0), // 410: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice.Enum + (PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice_Enum)(0), // 411: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice.Enum + (PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice_Enum)(0), // 412: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice.Enum + (PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice_Enum)(0), // 413: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice.Enum + (PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice_Enum)(0), // 414: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice.Enum + (PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice_Enum)(0), // 415: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice.Enum + (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice_Enum)(0), // 416: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice.Enum + (PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice_Enum)(0), // 417: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice.Enum + (PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice_Enum)(0), // 418: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice.Enum + (PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice_Enum)(0), // 419: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice.Enum + (PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice_Enum)(0), // 420: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice.Enum + (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice_Enum)(0), // 421: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice.Enum + (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice_Enum)(0), // 422: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice.Enum + (PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice_Enum)(0), // 423: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServVersion_Choice_Enum)(0), // 424: otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServReserved1_Choice_Enum)(0), // 425: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice_Enum)(0), // 426: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice_Enum)(0), // 427: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice_Enum)(0), // 428: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServReserved2_Choice_Enum)(0), // 429: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice_Enum)(0), // 430: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice_Enum)(0), // 431: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice_Enum)(0), // 432: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice_Enum)(0), // 433: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice_Enum)(0), // 434: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice.Enum + (PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice_Enum)(0), // 435: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice.Enum + (PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice_Enum)(0), // 436: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice.Enum + (PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice_Enum)(0), // 437: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice.Enum + (PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice_Enum)(0), // 438: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice.Enum + (PatternFlowRSVPPathRecordRouteType1LabelCType_Choice_Enum)(0), // 439: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice.Enum + (PatternFlowRSVPPathObjectsCustomType_Choice_Enum)(0), // 440: otg.PatternFlowRSVPPathObjectsCustomType.Choice.Enum + (*Config)(nil), // 441: otg.Config + (*ConfigOptions)(nil), // 442: otg.ConfigOptions + (*Port)(nil), // 443: otg.Port + (*PortOptions)(nil), // 444: otg.PortOptions + (*Lag)(nil), // 445: otg.Lag + (*LagPort)(nil), // 446: otg.LagPort + (*LagProtocol)(nil), // 447: otg.LagProtocol + (*LagProtocolStatic)(nil), // 448: otg.LagProtocolStatic + (*LagProtocolLacp)(nil), // 449: otg.LagProtocolLacp + (*LagPortLacp)(nil), // 450: otg.LagPortLacp + (*DeviceEthernetBase)(nil), // 451: otg.DeviceEthernetBase + (*DeviceEthernet)(nil), // 452: otg.DeviceEthernet + (*EthernetConnection)(nil), // 453: otg.EthernetConnection + (*DeviceVlan)(nil), // 454: otg.DeviceVlan + (*DeviceIpv4)(nil), // 455: otg.DeviceIpv4 + (*DeviceIpv4Loopback)(nil), // 456: otg.DeviceIpv4Loopback + (*DeviceIpv4GatewayMAC)(nil), // 457: otg.DeviceIpv4GatewayMAC + (*DeviceIpv6)(nil), // 458: otg.DeviceIpv6 + (*DeviceIpv6Loopback)(nil), // 459: otg.DeviceIpv6Loopback + (*DeviceIpv6GatewayMAC)(nil), // 460: otg.DeviceIpv6GatewayMAC + (*DeviceDhcpv4Client)(nil), // 461: otg.DeviceDhcpv4client + (*Dhcpv4ClientParams)(nil), // 462: otg.Dhcpv4ClientParams + (*DeviceDhcpv6Client)(nil), // 463: otg.DeviceDhcpv6client + (*DeviceDhcpv6ClientOptionsRequest)(nil), // 464: otg.DeviceDhcpv6ClientOptionsRequest + (*DeviceDhcpv6ClientOptions)(nil), // 465: otg.DeviceDhcpv6ClientOptions + (*DeviceDhcpv6ClientIaType)(nil), // 466: otg.DeviceDhcpv6clientIaType + (*DeviceDhcpv6ClientIaTimeValue)(nil), // 467: otg.DeviceDhcpv6clientIaTimeValue + (*DeviceDhcpv6ClientDuidType)(nil), // 468: otg.DeviceDhcpv6clientDuidType + (*DeviceDhcpv6ClientDuidValue)(nil), // 469: otg.DeviceDhcpv6clientDuidValue + (*DeviceDhcpv6ClientNoDuid)(nil), // 470: otg.DeviceDhcpv6clientNoDuid + (*Dhcpv6ClientOptionsServerIdentifier)(nil), // 471: otg.Dhcpv6ClientOptionsServerIdentifier + (*Dhcpv6ClientOptionsDuidLlt)(nil), // 472: otg.Dhcpv6ClientOptionsDuidLlt + (*Dhcpv6ClientOptionsDuidEn)(nil), // 473: otg.Dhcpv6ClientOptionsDuidEn + (*Dhcpv6ClientOptionsDuidLl)(nil), // 474: otg.Dhcpv6ClientOptionsDuidLl + (*Dhcpv6ClientOptionsDuidUuid)(nil), // 475: otg.Dhcpv6ClientOptionsDuidUuid + (*Dhcpv6ClientOptionsDuidUuidVersion)(nil), // 476: otg.Dhcpv6ClientOptionsDuidUuidVersion + (*Dhcpv6ClientOptionsDuidUuidVariant)(nil), // 477: otg.Dhcpv6ClientOptionsDuidUuidVariant + (*Dhcpv6ClientOptionsLinkLayerAddress)(nil), // 478: otg.Dhcpv6ClientOptionsLinkLayerAddress + (*Dhcpv6ClientOptionsOptionsRequest)(nil), // 479: otg.Dhcpv6ClientOptionsOptionsRequest + (*Dhcpv6ClientOptionsCustom)(nil), // 480: otg.Dhcpv6ClientOptionsCustom + (*Dhcpv6ClientOptionsVendorClass)(nil), // 481: otg.Dhcpv6ClientOptionsVendorClass + (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages)(nil), // 482: otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + (*Dhcpv6ClientOptionsIncludedMessages)(nil), // 483: otg.Dhcpv6ClientOptionsIncludedMessages + (*Dhcpv6ClientOptionsMessageType)(nil), // 484: otg.Dhcpv6ClientOptionsMessageType + (*Dhcpv6ClientOptionsVendorInfo)(nil), // 485: otg.Dhcpv6ClientOptionsVendorInfo + (*Dhcpv6ServerOptionsVendorInfo)(nil), // 486: otg.Dhcpv6ServerOptionsVendorInfo + (*Dhcpv6ServerOptionsIncludedMessages)(nil), // 487: otg.Dhcpv6ServerOptionsIncludedMessages + (*Dhcpv6ServerOptionsMessageType)(nil), // 488: otg.Dhcpv6ServerOptionsMessageType + (*Dhcpv6OptionsVendorSpecificOptions)(nil), // 489: otg.Dhcpv6OptionsVendorSpecificOptions + (*Dhcpv6ClientOptionsFqdn)(nil), // 490: otg.Dhcpv6ClientOptionsFqdn + (*Dhcpv6ServerOptionsBootfileUrl)(nil), // 491: otg.Dhcpv6ServerOptionsBootfileUrl + (*Dhcpv6ServerOptionsBootFileParams)(nil), // 492: otg.Dhcpv6ServerOptionsBootFileParams + (*Layer1)(nil), // 493: otg.Layer1 + (*Layer1AutoNegotiation)(nil), // 494: otg.Layer1AutoNegotiation + (*Layer1FlowControl)(nil), // 495: otg.Layer1FlowControl + (*Layer1Ieee8023X)(nil), // 496: otg.Layer1Ieee8023x + (*Layer1Ieee8021Qbb)(nil), // 497: otg.Layer1Ieee8021qbb + (*Capture)(nil), // 498: otg.Capture + (*CaptureFilter)(nil), // 499: otg.CaptureFilter + (*CaptureCustom)(nil), // 500: otg.CaptureCustom + (*CaptureField)(nil), // 501: otg.CaptureField + (*CaptureEthernet)(nil), // 502: otg.CaptureEthernet + (*CaptureVlan)(nil), // 503: otg.CaptureVlan + (*CaptureIpv4)(nil), // 504: otg.CaptureIpv4 + (*CaptureIpv6)(nil), // 505: otg.CaptureIpv6 + (*Device)(nil), // 506: otg.Device + (*ProtocolOptions)(nil), // 507: otg.ProtocolOptions + (*DeviceIsisRouter)(nil), // 508: otg.DeviceIsisRouter + (*DeviceIsisMultiInstance)(nil), // 509: otg.DeviceIsisMultiInstance + (*IsisInterface)(nil), // 510: otg.IsisInterface + (*IsisInterfaceLevel)(nil), // 511: otg.IsisInterfaceLevel + (*IsisMT)(nil), // 512: otg.IsisMT + (*LinkStateTE)(nil), // 513: otg.LinkStateTE + (*LinkStatepriorityBandwidths)(nil), // 514: otg.LinkStatepriorityBandwidths + (*IsisInterfaceAuthentication)(nil), // 515: otg.IsisInterfaceAuthentication + (*IsisInterfaceAdvanced)(nil), // 516: otg.IsisInterfaceAdvanced + (*IsisInterfaceLinkProtection)(nil), // 517: otg.IsisInterfaceLinkProtection + (*IsisBasic)(nil), // 518: otg.IsisBasic + (*IsisAdvanced)(nil), // 519: otg.IsisAdvanced + (*IsisAuthentication)(nil), // 520: otg.IsisAuthentication + (*IsisAuthenticationBase)(nil), // 521: otg.IsisAuthenticationBase + (*IsisV4RouteRange)(nil), // 522: otg.IsisV4RouteRange + (*V4RouteAddress)(nil), // 523: otg.V4RouteAddress + (*V6RouteAddress)(nil), // 524: otg.V6RouteAddress + (*MACRouteAddress)(nil), // 525: otg.MACRouteAddress + (*IsisV6RouteRange)(nil), // 526: otg.IsisV6RouteRange + (*DeviceBgpRouter)(nil), // 527: otg.DeviceBgpRouter + (*DeviceBgpMessageHeaderError)(nil), // 528: otg.DeviceBgpMessageHeaderError + (*DeviceBgpOpenMessageError)(nil), // 529: otg.DeviceBgpOpenMessageError + (*DeviceBgpUpdateMessageError)(nil), // 530: otg.DeviceBgpUpdateMessageError + (*DeviceBgpHoldTimerExpired)(nil), // 531: otg.DeviceBgpHoldTimerExpired + (*DeviceBgpFiniteStateMachineError)(nil), // 532: otg.DeviceBgpFiniteStateMachineError + (*DeviceBgpCeaseError)(nil), // 533: otg.DeviceBgpCeaseError + (*DeviceBgpCustomError)(nil), // 534: otg.DeviceBgpCustomError + (*BgpV4Peer)(nil), // 535: otg.BgpV4Peer + (*BgpV4Interface)(nil), // 536: otg.BgpV4Interface + (*BgpV4EthernetSegment)(nil), // 537: otg.BgpV4EthernetSegment + (*BgpEthernetSegmentDfElection)(nil), // 538: otg.BgpEthernetSegmentDfElection + (*BgpRouteAdvanced)(nil), // 539: otg.BgpRouteAdvanced + (*BgpCommunity)(nil), // 540: otg.BgpCommunity + (*BgpExtCommunity)(nil), // 541: otg.BgpExtCommunity + (*BgpAsPath)(nil), // 542: otg.BgpAsPath + (*BgpAsPathSegment)(nil), // 543: otg.BgpAsPathSegment + (*BgpV4EvpnEvis)(nil), // 544: otg.BgpV4EvpnEvis + (*BgpV4EviVxlan)(nil), // 545: otg.BgpV4EviVxlan + (*BgpV4EviVxlanBroadcastDomain)(nil), // 546: otg.BgpV4EviVxlanBroadcastDomain + (*BgpCMacIpRange)(nil), // 547: otg.BgpCMacIpRange + (*BgpRouteDistinguisher)(nil), // 548: otg.BgpRouteDistinguisher + (*BgpRouteTarget)(nil), // 549: otg.BgpRouteTarget + (*BgpAdvanced)(nil), // 550: otg.BgpAdvanced + (*BgpCapability)(nil), // 551: otg.BgpCapability + (*BgpLearnedInformationFilter)(nil), // 552: otg.BgpLearnedInformationFilter + (*BgpV4RouteRange)(nil), // 553: otg.BgpV4RouteRange + (*BgpAddPath)(nil), // 554: otg.BgpAddPath + (*BgpExtendedCommunity)(nil), // 555: otg.BgpExtendedCommunity + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 556: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 557: otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive2OctetAsType)(nil), // 558: otg.BgpExtendedCommunityTransitive2OctetAsType + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 559: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + (*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 560: otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + (*BgpExtendedCommunityTransitiveIpv4AddressType)(nil), // 561: otg.BgpExtendedCommunityTransitiveIpv4AddressType + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 562: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + (*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 563: otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + (*BgpExtendedCommunityTransitive4OctetAsType)(nil), // 564: otg.BgpExtendedCommunityTransitive4OctetAsType + (*BgpExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 565: otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + (*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 566: otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + (*BgpExtendedCommunityTransitiveOpaqueType)(nil), // 567: otg.BgpExtendedCommunityTransitiveOpaqueType + (*BgpExtendedCommunityTransitiveEvpnTypeRouterMac)(nil), // 568: otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + (*BgpExtendedCommunityTransitiveEvpnType)(nil), // 569: otg.BgpExtendedCommunityTransitiveEvpnType + (*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 570: otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + (*BgpExtendedCommunityNonTransitive2OctetAsType)(nil), // 571: otg.BgpExtendedCommunityNonTransitive2OctetAsType + (*BgpExtendedCommunityCustomType)(nil), // 572: otg.BgpExtendedCommunityCustomType + (*BgpV6RouteRange)(nil), // 573: otg.BgpV6RouteRange + (*BgpSrteV4Policy)(nil), // 574: otg.BgpSrteV4Policy + (*BgpSrteV4TunnelTlv)(nil), // 575: otg.BgpSrteV4TunnelTlv + (*BgpSrteRemoteEndpointSubTlv)(nil), // 576: otg.BgpSrteRemoteEndpointSubTlv + (*BgpSrteColorSubTlv)(nil), // 577: otg.BgpSrteColorSubTlv + (*BgpSrteBindingSubTlv)(nil), // 578: otg.BgpSrteBindingSubTlv + (*BgpSrtePreferenceSubTlv)(nil), // 579: otg.BgpSrtePreferenceSubTlv + (*BgpSrtePolicyPrioritySubTlv)(nil), // 580: otg.BgpSrtePolicyPrioritySubTlv + (*BgpSrtePolicyNameSubTlv)(nil), // 581: otg.BgpSrtePolicyNameSubTlv + (*BgpSrteExplicitNullLabelPolicySubTlv)(nil), // 582: otg.BgpSrteExplicitNullLabelPolicySubTlv + (*BgpSrteSegmentList)(nil), // 583: otg.BgpSrteSegmentList + (*BgpSrteSegment)(nil), // 584: otg.BgpSrteSegment + (*BgpSrteSrMplsSid)(nil), // 585: otg.BgpSrteSrMplsSid + (*BgpSrteSRv6SIDEndpointBehaviorAndStructure)(nil), // 586: otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + (*BgpSrteSegmentATypeSubTlv)(nil), // 587: otg.BgpSrteSegmentATypeSubTlv + (*BgpSrteSegmentBTypeSubTlv)(nil), // 588: otg.BgpSrteSegmentBTypeSubTlv + (*BgpSrteSegmentCTypeSubTlv)(nil), // 589: otg.BgpSrteSegmentCTypeSubTlv + (*BgpSrteSegmentDTypeSubTlv)(nil), // 590: otg.BgpSrteSegmentDTypeSubTlv + (*BgpSrteSegmentETypeSubTlv)(nil), // 591: otg.BgpSrteSegmentETypeSubTlv + (*BgpSrteSegmentFTypeSubTlv)(nil), // 592: otg.BgpSrteSegmentFTypeSubTlv + (*BgpSrteSegmentGTypeSubTlv)(nil), // 593: otg.BgpSrteSegmentGTypeSubTlv + (*BgpSrteSegmentHTypeSubTlv)(nil), // 594: otg.BgpSrteSegmentHTypeSubTlv + (*BgpSrteSegmentITypeSubTlv)(nil), // 595: otg.BgpSrteSegmentITypeSubTlv + (*BgpSrteSegmentJTypeSubTlv)(nil), // 596: otg.BgpSrteSegmentJTypeSubTlv + (*BgpSrteSegmentKTypeSubTlv)(nil), // 597: otg.BgpSrteSegmentKTypeSubTlv + (*BgpSrteV6Policy)(nil), // 598: otg.BgpSrteV6Policy + (*BgpSrteV6TunnelTlv)(nil), // 599: otg.BgpSrteV6TunnelTlv + (*BgpGracefulRestart)(nil), // 600: otg.BgpGracefulRestart + (*BgpUpdateReplay)(nil), // 601: otg.BgpUpdateReplay + (*BgpRawBytes)(nil), // 602: otg.BgpRawBytes + (*BgpOneUpdateReplay)(nil), // 603: otg.BgpOneUpdateReplay + (*BgpStructuredPdus)(nil), // 604: otg.BgpStructuredPdus + (*BgpOneStructuredUpdateReplay)(nil), // 605: otg.BgpOneStructuredUpdateReplay + (*BgpOneTraditionalNlriPrefix)(nil), // 606: otg.BgpOneTraditionalNlriPrefix + (*BgpOneIpv4NLRIPrefix)(nil), // 607: otg.BgpOneIpv4NLRIPrefix + (*BgpOneIpv6NLRIPrefix)(nil), // 608: otg.BgpOneIpv6NLRIPrefix + (*BgpNLRIPrefixPathId)(nil), // 609: otg.BgpNLRIPrefixPathId + (*BgpIpv4SrPolicyNLRIPrefix)(nil), // 610: otg.BgpIpv4SrPolicyNLRIPrefix + (*BgpIpv6SrPolicyNLRIPrefix)(nil), // 611: otg.BgpIpv6SrPolicyNLRIPrefix + (*BgpAttributes)(nil), // 612: otg.BgpAttributes + (*BgpAttributesOtherAttribute)(nil), // 613: otg.BgpAttributesOtherAttribute + (*BgpAttributesAsPath)(nil), // 614: otg.BgpAttributesAsPath + (*BgpAttributesAsPathFourByteAsPath)(nil), // 615: otg.BgpAttributesAsPathFourByteAsPath + (*BgpAttributesFourByteAsPathSegment)(nil), // 616: otg.BgpAttributesFourByteAsPathSegment + (*BgpAttributesAsPathTwoByteAsPath)(nil), // 617: otg.BgpAttributesAsPathTwoByteAsPath + (*BgpAttributesTwoByteAsPathSegment)(nil), // 618: otg.BgpAttributesTwoByteAsPathSegment + (*BgpAttributesAs4Path)(nil), // 619: otg.BgpAttributesAs4Path + (*BgpAttributesAggregator)(nil), // 620: otg.BgpAttributesAggregator + (*BgpAttributesAs4Aggregator)(nil), // 621: otg.BgpAttributesAs4Aggregator + (*BgpAttributesCommunity)(nil), // 622: otg.BgpAttributesCommunity + (*BgpAttributesCustomCommunity)(nil), // 623: otg.BgpAttributesCustomCommunity + (*BgpAttributesNextHop)(nil), // 624: otg.BgpAttributesNextHop + (*BgpAttributesNextHopIpv6TwoAddresses)(nil), // 625: otg.BgpAttributesNextHopIpv6TwoAddresses + (*BgpAttributesMpReachNlri)(nil), // 626: otg.BgpAttributesMpReachNlri + (*BgpAttributesMpUnreachNlri)(nil), // 627: otg.BgpAttributesMpUnreachNlri + (*BgpAttributesMultiExitDiscriminator)(nil), // 628: otg.BgpAttributesMultiExitDiscriminator + (*BgpAttributesLocalPreference)(nil), // 629: otg.BgpAttributesLocalPreference + (*BgpAttributesOriginatorId)(nil), // 630: otg.BgpAttributesOriginatorId + (*BgpAttributesTunnelEncapsulation)(nil), // 631: otg.BgpAttributesTunnelEncapsulation + (*BgpAttributesSegmentRoutingPolicy)(nil), // 632: otg.BgpAttributesSegmentRoutingPolicy + (*BgpAttributesBsid)(nil), // 633: otg.BgpAttributesBsid + (*BgpAttributesBsidMpls)(nil), // 634: otg.BgpAttributesBsidMpls + (*BgpAttributesBsidSrv6)(nil), // 635: otg.BgpAttributesBsidSrv6 + (*BgpAttributesSrv6Bsid)(nil), // 636: otg.BgpAttributesSrv6Bsid + (*BgpAttributesSidMpls)(nil), // 637: otg.BgpAttributesSidMpls + (*BgpAttributesSidSrv6)(nil), // 638: otg.BgpAttributesSidSrv6 + (*BgpAttributesSrPolicyPreference)(nil), // 639: otg.BgpAttributesSrPolicyPreference + (*BgpAttributesSrPolicyPriority)(nil), // 640: otg.BgpAttributesSrPolicyPriority + (*BgpAttributesSrPolicyPolicyCandidateName)(nil), // 641: otg.BgpAttributesSrPolicyPolicyCandidateName + (*BgpAttributesSrPolicyPolicyName)(nil), // 642: otg.BgpAttributesSrPolicyPolicyName + (*BgpAttributesSrPolicyExplicitNullPolicy)(nil), // 643: otg.BgpAttributesSrPolicyExplicitNullPolicy + (*BgpAttributesSrPolicySegmentList)(nil), // 644: otg.BgpAttributesSrPolicySegmentList + (*BgpAttributesSegmentRoutingPolicySegmentListWeight)(nil), // 645: otg.BgpAttributesSegmentRoutingPolicySegmentListWeight + (*BgpAttributesSegmentRoutingPolicySegmentListSegment)(nil), // 646: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment + (*BgpAttributesSegmentRoutingPolicyTypeA)(nil), // 647: otg.BgpAttributesSegmentRoutingPolicyTypeA + (*BgpAttributesSegmentRoutingPolicyTypeB)(nil), // 648: otg.BgpAttributesSegmentRoutingPolicyTypeB + (*BgpAttributesSegmentRoutingPolicyTypeC)(nil), // 649: otg.BgpAttributesSegmentRoutingPolicyTypeC + (*BgpAttributesSegmentRoutingPolicyTypeD)(nil), // 650: otg.BgpAttributesSegmentRoutingPolicyTypeD + (*BgpAttributesSegmentRoutingPolicyTypeE)(nil), // 651: otg.BgpAttributesSegmentRoutingPolicyTypeE + (*BgpAttributesSegmentRoutingPolicyTypeF)(nil), // 652: otg.BgpAttributesSegmentRoutingPolicyTypeF + (*BgpAttributesSegmentRoutingPolicyTypeG)(nil), // 653: otg.BgpAttributesSegmentRoutingPolicyTypeG + (*BgpAttributesSegmentRoutingPolicyTypeH)(nil), // 654: otg.BgpAttributesSegmentRoutingPolicyTypeH + (*BgpAttributesSegmentRoutingPolicyTypeI)(nil), // 655: otg.BgpAttributesSegmentRoutingPolicyTypeI + (*BgpAttributesSegmentRoutingPolicyTypeJ)(nil), // 656: otg.BgpAttributesSegmentRoutingPolicyTypeJ + (*BgpAttributesSegmentRoutingPolicyTypeK)(nil), // 657: otg.BgpAttributesSegmentRoutingPolicyTypeK + (*BgpAttributesSegmentRoutingPolicyTypeFlags)(nil), // 658: otg.BgpAttributesSegmentRoutingPolicyTypeFlags + (*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure)(nil), // 659: otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + (*BgpNLRIPrefixSegmentRoutingDistinguisher)(nil), // 660: otg.BgpNLRIPrefixSegmentRoutingDistinguisher + (*BgpV6Peer)(nil), // 661: otg.BgpV6Peer + (*BgpV6Interface)(nil), // 662: otg.BgpV6Interface + (*BgpV6SegmentRouting)(nil), // 663: otg.BgpV6SegmentRouting + (*BgpV6EthernetSegment)(nil), // 664: otg.BgpV6EthernetSegment + (*BgpV6EvpnEvis)(nil), // 665: otg.BgpV6EvpnEvis + (*BgpV6EviVxlan)(nil), // 666: otg.BgpV6EviVxlan + (*BgpV6EviVxlanBroadcastDomain)(nil), // 667: otg.BgpV6EviVxlanBroadcastDomain + (*DeviceVxlan)(nil), // 668: otg.DeviceVxlan + (*VxlanV4Tunnel)(nil), // 669: otg.VxlanV4Tunnel + (*VxlanV6Tunnel)(nil), // 670: otg.VxlanV6Tunnel + (*VxlanV4TunnelDestinationIPMode)(nil), // 671: otg.VxlanV4TunnelDestinationIPMode + (*VxlanV6TunnelDestinationIPMode)(nil), // 672: otg.VxlanV6TunnelDestinationIPMode + (*VxlanV4TunnelDestinationIPModeUnicast)(nil), // 673: otg.VxlanV4TunnelDestinationIPModeUnicast + (*VxlanV6TunnelDestinationIPModeUnicast)(nil), // 674: otg.VxlanV6TunnelDestinationIPModeUnicast + (*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache)(nil), // 675: otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + (*VxlanV4TunnelDestinationIPModeUnicastVtep)(nil), // 676: otg.VxlanV4TunnelDestinationIPModeUnicastVtep + (*VxlanV6TunnelDestinationIPModeUnicastVtep)(nil), // 677: otg.VxlanV6TunnelDestinationIPModeUnicastVtep + (*VxlanV4TunnelDestinationIPModeMulticast)(nil), // 678: otg.VxlanV4TunnelDestinationIPModeMulticast + (*VxlanV6TunnelDestinationIPModeMulticast)(nil), // 679: otg.VxlanV6TunnelDestinationIPModeMulticast + (*DeviceRsvp)(nil), // 680: otg.DeviceRsvp + (*RsvpIpv4Interface)(nil), // 681: otg.RsvpIpv4Interface + (*RsvpLspIpv4Interface)(nil), // 682: otg.RsvpLspIpv4Interface + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp)(nil), // 683: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + (*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp)(nil), // 684: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + (*RsvpSessionAttribute)(nil), // 685: otg.RsvpSessionAttribute + (*RsvpResourceAffinities)(nil), // 686: otg.RsvpResourceAffinities + (*RsvpTspec)(nil), // 687: otg.RsvpTspec + (*RsvpFastReroute)(nil), // 688: otg.RsvpFastReroute + (*RsvpEro)(nil), // 689: otg.RsvpEro + (*RsvpEroSubobject)(nil), // 690: otg.RsvpEroSubobject + (*DeviceDhcpServer)(nil), // 691: otg.DeviceDhcpServer + (*DhcpServerV4)(nil), // 692: otg.DhcpServerV4 + (*DhcpServerV4Pool)(nil), // 693: otg.DhcpServerV4Pool + (*DhcpServerV4PoolOption)(nil), // 694: otg.DhcpServerV4PoolOption + (*DhcpServerV6)(nil), // 695: otg.DhcpServerV6 + (*Dhcpv6ServerOptions)(nil), // 696: otg.Dhcpv6ServerOptions + (*DhcpV6ServerLease)(nil), // 697: otg.DhcpV6ServerLease + (*Dhcpv6ServerIaType)(nil), // 698: otg.Dhcpv6ServerIaType + (*Dhcpv6ServerPoolInfo)(nil), // 699: otg.Dhcpv6ServerPoolInfo + (*Dhcpv6ServerIapdPoolInfo)(nil), // 700: otg.Dhcpv6ServerIapdPoolInfo + (*Dhcpv6ServerIanapdPoolInfo)(nil), // 701: otg.Dhcpv6ServerIanapdPoolInfo + (*DhcpV6ServerDns)(nil), // 702: otg.DhcpV6ServerDns + (*DhcpV6ServerSecondaryDns)(nil), // 703: otg.DhcpV6ServerSecondaryDns + (*Flow)(nil), // 704: otg.Flow + (*FlowTxRx)(nil), // 705: otg.FlowTxRx + (*FlowPort)(nil), // 706: otg.FlowPort + (*FlowRouter)(nil), // 707: otg.FlowRouter + (*FlowHeader)(nil), // 708: otg.FlowHeader + (*FlowCustom)(nil), // 709: otg.FlowCustom + (*FlowCustomMetricTag)(nil), // 710: otg.FlowCustomMetricTag + (*FlowEthernet)(nil), // 711: otg.FlowEthernet + (*FlowVlan)(nil), // 712: otg.FlowVlan + (*FlowVxlan)(nil), // 713: otg.FlowVxlan + (*FlowIpv4)(nil), // 714: otg.FlowIpv4 + (*FlowIpv4Options)(nil), // 715: otg.FlowIpv4Options + (*FlowIpv4OptionsCustom)(nil), // 716: otg.FlowIpv4OptionsCustom + (*FlowIpv4OptionsCustomType)(nil), // 717: otg.FlowIpv4OptionsCustomType + (*FlowIpv4OptionsCustomLength)(nil), // 718: otg.FlowIpv4OptionsCustomLength + (*FlowIpv4Priority)(nil), // 719: otg.FlowIpv4Priority + (*FlowIpv4Dscp)(nil), // 720: otg.FlowIpv4Dscp + (*FlowIpv4Tos)(nil), // 721: otg.FlowIpv4Tos + (*FlowIpv4Auto)(nil), // 722: otg.FlowIpv4Auto + (*FlowIpv6)(nil), // 723: otg.FlowIpv6 + (*FlowIpv6Auto)(nil), // 724: otg.FlowIpv6Auto + (*FlowPfcPause)(nil), // 725: otg.FlowPfcPause + (*FlowEthernetPause)(nil), // 726: otg.FlowEthernetPause + (*FlowTcp)(nil), // 727: otg.FlowTcp + (*FlowUdp)(nil), // 728: otg.FlowUdp + (*FlowGre)(nil), // 729: otg.FlowGre + (*FlowGtpv1)(nil), // 730: otg.FlowGtpv1 + (*FlowGtpExtension)(nil), // 731: otg.FlowGtpExtension + (*FlowGtpv2)(nil), // 732: otg.FlowGtpv2 + (*FlowArp)(nil), // 733: otg.FlowArp + (*FlowIcmp)(nil), // 734: otg.FlowIcmp + (*FlowIcmpEcho)(nil), // 735: otg.FlowIcmpEcho + (*FlowIcmpv6)(nil), // 736: otg.FlowIcmpv6 + (*FlowIcmpv6Echo)(nil), // 737: otg.FlowIcmpv6Echo + (*FlowPpp)(nil), // 738: otg.FlowPpp + (*FlowIgmpv1)(nil), // 739: otg.FlowIgmpv1 + (*FlowMpls)(nil), // 740: otg.FlowMpls + (*FlowSnmpv2C)(nil), // 741: otg.FlowSnmpv2c + (*FlowSnmpv2CData)(nil), // 742: otg.FlowSnmpv2cData + (*FlowSnmpv2CPDU)(nil), // 743: otg.FlowSnmpv2cPDU + (*FlowSnmpv2CBulkPDU)(nil), // 744: otg.FlowSnmpv2cBulkPDU + (*FlowSnmpv2CVariableBinding)(nil), // 745: otg.FlowSnmpv2cVariableBinding + (*FlowSnmpv2CVariableBindingValue)(nil), // 746: otg.FlowSnmpv2cVariableBindingValue + (*FlowSnmpv2CVariableBindingStringValue)(nil), // 747: otg.FlowSnmpv2cVariableBindingStringValue + (*FlowRsvp)(nil), // 748: otg.FlowRsvp + (*FlowRSVPLength)(nil), // 749: otg.FlowRSVPLength + (*FlowRSVPMessage)(nil), // 750: otg.FlowRSVPMessage + (*FlowRSVPPathMessage)(nil), // 751: otg.FlowRSVPPathMessage + (*FlowRSVPPathObjects)(nil), // 752: otg.FlowRSVPPathObjects + (*FlowRSVPObjectLength)(nil), // 753: otg.FlowRSVPObjectLength + (*FlowRSVPPathObjectsClass)(nil), // 754: otg.FlowRSVPPathObjectsClass + (*FlowRSVPPathObjectsClassSession)(nil), // 755: otg.FlowRSVPPathObjectsClassSession + (*FlowRSVPPathObjectsSessionCType)(nil), // 756: otg.FlowRSVPPathObjectsSessionCType + (*FlowRSVPPathSessionLspTunnelIpv4)(nil), // 757: otg.FlowRSVPPathSessionLspTunnelIpv4 + (*FlowRSVPPathSessionExtTunnelId)(nil), // 758: otg.FlowRSVPPathSessionExtTunnelId + (*FlowRSVPPathObjectsClassRsvpHop)(nil), // 759: otg.FlowRSVPPathObjectsClassRsvpHop + (*FlowRSVPPathObjectsRsvpHopCType)(nil), // 760: otg.FlowRSVPPathObjectsRsvpHopCType + (*FlowRSVPPathRsvpHopIpv4)(nil), // 761: otg.FlowRSVPPathRsvpHopIpv4 + (*FlowRSVPPathObjectsClassTimeValues)(nil), // 762: otg.FlowRSVPPathObjectsClassTimeValues + (*FlowRSVPPathObjectsTimeValuesCType)(nil), // 763: otg.FlowRSVPPathObjectsTimeValuesCType + (*FlowRSVPPathTimeValuesType1)(nil), // 764: otg.FlowRSVPPathTimeValuesType1 + (*FlowRSVPPathObjectsClassExplicitRoute)(nil), // 765: otg.FlowRSVPPathObjectsClassExplicitRoute + (*FlowRSVPPathObjectsClassExplicitRouteCType)(nil), // 766: otg.FlowRSVPPathObjectsClassExplicitRouteCType + (*FlowRSVPPathExplicitRouteType1)(nil), // 767: otg.FlowRSVPPathExplicitRouteType1 + (*FlowRSVPType1ExplicitRouteSubobjects)(nil), // 768: otg.FlowRSVPType1ExplicitRouteSubobjects + (*FlowRSVPType1ExplicitRouteSubobjectsType)(nil), // 769: otg.FlowRSVPType1ExplicitRouteSubobjectsType + (*FlowRSVPPathExplicitRouteType1Ipv4Prefix)(nil), // 770: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix + (*FlowRSVPPathExplicitRouteType1ASNumber)(nil), // 771: otg.FlowRSVPPathExplicitRouteType1ASNumber + (*FlowRSVPExplicitRouteLength)(nil), // 772: otg.FlowRSVPExplicitRouteLength + (*FlowRSVPExplicitRouteASNumberLength)(nil), // 773: otg.FlowRSVPExplicitRouteASNumberLength + (*FlowRSVPPathObjectsClassLabelRequest)(nil), // 774: otg.FlowRSVPPathObjectsClassLabelRequest + (*FlowRSVPPathObjectsLabelRequestCType)(nil), // 775: otg.FlowRSVPPathObjectsLabelRequestCType + (*FlowRSVPPathLabelRequestWithoutLabelRange)(nil), // 776: otg.FlowRSVPPathLabelRequestWithoutLabelRange + (*FlowRSVPPathObjectsClassSessionAttribute)(nil), // 777: otg.FlowRSVPPathObjectsClassSessionAttribute + (*FlowRSVPPathObjectsSessionAttributeCType)(nil), // 778: otg.FlowRSVPPathObjectsSessionAttributeCType + (*FlowRSVPPathSessionAttributeLspTunnel)(nil), // 779: otg.FlowRSVPPathSessionAttributeLspTunnel + (*FlowRSVPPathSessionAttributeLspTunnelRa)(nil), // 780: otg.FlowRSVPPathSessionAttributeLspTunnelRa + (*FlowRSVPLspTunnelFlag)(nil), // 781: otg.FlowRSVPLspTunnelFlag + (*FlowRSVPSessionAttributeNameLength)(nil), // 782: otg.FlowRSVPSessionAttributeNameLength + (*FlowRSVPPathObjectsClassSenderTemplate)(nil), // 783: otg.FlowRSVPPathObjectsClassSenderTemplate + (*FlowRSVPPathObjectsSenderTemplateCType)(nil), // 784: otg.FlowRSVPPathObjectsSenderTemplateCType + (*FlowRSVPPathSenderTemplateLspTunnelIpv4)(nil), // 785: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4 + (*FlowRSVPPathObjectsClassSenderTspec)(nil), // 786: otg.FlowRSVPPathObjectsClassSenderTspec + (*FlowRSVPPathObjectsSenderTspecCType)(nil), // 787: otg.FlowRSVPPathObjectsSenderTspecCType + (*FlowRSVPPathSenderTspecIntServ)(nil), // 788: otg.FlowRSVPPathSenderTspecIntServ + (*FlowRSVPPathObjectsClassRecordRoute)(nil), // 789: otg.FlowRSVPPathObjectsClassRecordRoute + (*FlowRSVPPathObjectsRecordRouteCType)(nil), // 790: otg.FlowRSVPPathObjectsRecordRouteCType + (*FlowRSVPPathRecordRouteType1)(nil), // 791: otg.FlowRSVPPathRecordRouteType1 + (*FlowRSVPType1RecordRouteSubobjects)(nil), // 792: otg.FlowRSVPType1RecordRouteSubobjects + (*FlowRSVPPathObjectsRecordRouteSubObjectType)(nil), // 793: otg.FlowRSVPPathObjectsRecordRouteSubObjectType + (*FlowRSVPPathRecordRouteType1Ipv4Address)(nil), // 794: otg.FlowRSVPPathRecordRouteType1Ipv4Address + (*FlowRSVPRecordRouteIPv4Flag)(nil), // 795: otg.FlowRSVPRecordRouteIPv4Flag + (*FlowRSVPPathRecordRouteType1Label)(nil), // 796: otg.FlowRSVPPathRecordRouteType1Label + (*FlowRSVPPathRecordRouteLabel)(nil), // 797: otg.FlowRSVPPathRecordRouteLabel + (*FlowRSVPRouteRecordLength)(nil), // 798: otg.FlowRSVPRouteRecordLength + (*FlowRSVPPathObjectsCustom)(nil), // 799: otg.FlowRSVPPathObjectsCustom + (*FlowSize)(nil), // 800: otg.FlowSize + (*FlowSizeIncrement)(nil), // 801: otg.FlowSizeIncrement + (*FlowSizeRandom)(nil), // 802: otg.FlowSizeRandom + (*FlowSizeWeightPairs)(nil), // 803: otg.FlowSizeWeightPairs + (*FlowSizeWeightPairsCustom)(nil), // 804: otg.FlowSizeWeightPairsCustom + (*FlowRate)(nil), // 805: otg.FlowRate + (*FlowDuration)(nil), // 806: otg.FlowDuration + (*FlowContinuous)(nil), // 807: otg.FlowContinuous + (*FlowDelay)(nil), // 808: otg.FlowDelay + (*FlowFixedPackets)(nil), // 809: otg.FlowFixedPackets + (*FlowFixedSeconds)(nil), // 810: otg.FlowFixedSeconds + (*FlowBurst)(nil), // 811: otg.FlowBurst + (*FlowDurationInterBurstGap)(nil), // 812: otg.FlowDurationInterBurstGap + (*FlowMetrics)(nil), // 813: otg.FlowMetrics + (*FlowLatencyMetrics)(nil), // 814: otg.FlowLatencyMetrics + (*FlowPredefinedTags)(nil), // 815: otg.FlowPredefinedTags + (*FlowRxTxRatio)(nil), // 816: otg.FlowRxTxRatio + (*FlowRxTxRatioRxCount)(nil), // 817: otg.FlowRxTxRatioRxCount + (*Event)(nil), // 818: otg.Event + (*EventRxRateThreshold)(nil), // 819: otg.EventRxRateThreshold + (*EventLink)(nil), // 820: otg.EventLink + (*EventRouteAdvertiseWithdraw)(nil), // 821: otg.EventRouteAdvertiseWithdraw + (*EventRequest)(nil), // 822: otg.EventRequest + (*EventSubscription)(nil), // 823: otg.EventSubscription + (*Lldp)(nil), // 824: otg.Lldp + (*LldpConnection)(nil), // 825: otg.LldpConnection + (*LldpChassisId)(nil), // 826: otg.LldpChassisId + (*LldpPortId)(nil), // 827: otg.LldpPortId + (*LldpChassisMacSubType)(nil), // 828: otg.LldpChassisMacSubType + (*LldpPortInterfaceNameSubType)(nil), // 829: otg.LldpPortInterfaceNameSubType + (*LldpSystemName)(nil), // 830: otg.LldpSystemName + (*Error)(nil), // 831: otg.Error + (*Warning)(nil), // 832: otg.Warning + (*ConfigUpdate)(nil), // 833: otg.ConfigUpdate + (*FlowsUpdate)(nil), // 834: otg.FlowsUpdate + (*ControlState)(nil), // 835: otg.ControlState + (*StatePort)(nil), // 836: otg.StatePort + (*StateTraffic)(nil), // 837: otg.StateTraffic + (*StateProtocol)(nil), // 838: otg.StateProtocol + (*StatePortLink)(nil), // 839: otg.StatePortLink + (*StatePortCapture)(nil), // 840: otg.StatePortCapture + (*StateTrafficFlowTransmit)(nil), // 841: otg.StateTrafficFlowTransmit + (*StateProtocolAll)(nil), // 842: otg.StateProtocolAll + (*StateProtocolRoute)(nil), // 843: otg.StateProtocolRoute + (*StateProtocolLacp)(nil), // 844: otg.StateProtocolLacp + (*StateProtocolLacpAdmin)(nil), // 845: otg.StateProtocolLacpAdmin + (*StateProtocolLacpMemberPorts)(nil), // 846: otg.StateProtocolLacpMemberPorts + (*StateProtocolBgp)(nil), // 847: otg.StateProtocolBgp + (*StateProtocolBgpPeers)(nil), // 848: otg.StateProtocolBgpPeers + (*StateProtocolIsis)(nil), // 849: otg.StateProtocolIsis + (*StateProtocolIsisRouters)(nil), // 850: otg.StateProtocolIsisRouters + (*ControlAction)(nil), // 851: otg.ControlAction + (*ControlActionResponse)(nil), // 852: otg.ControlActionResponse + (*ActionResponse)(nil), // 853: otg.ActionResponse + (*ActionProtocol)(nil), // 854: otg.ActionProtocol + (*ActionResponseProtocol)(nil), // 855: otg.ActionResponseProtocol + (*ActionProtocolIpv4)(nil), // 856: otg.ActionProtocolIpv4 + (*ActionResponseProtocolIpv4)(nil), // 857: otg.ActionResponseProtocolIpv4 + (*ActionProtocolIpv4Ping)(nil), // 858: otg.ActionProtocolIpv4Ping + (*ActionProtocolIpv4PingRequest)(nil), // 859: otg.ActionProtocolIpv4PingRequest + (*ActionResponseProtocolIpv4Ping)(nil), // 860: otg.ActionResponseProtocolIpv4Ping + (*ActionResponseProtocolIpv4PingResponse)(nil), // 861: otg.ActionResponseProtocolIpv4PingResponse + (*ActionProtocolIpv6)(nil), // 862: otg.ActionProtocolIpv6 + (*ActionResponseProtocolIpv6)(nil), // 863: otg.ActionResponseProtocolIpv6 + (*ActionProtocolIpv6Ping)(nil), // 864: otg.ActionProtocolIpv6Ping + (*ActionProtocolIpv6PingRequest)(nil), // 865: otg.ActionProtocolIpv6PingRequest + (*ActionResponseProtocolIpv6Ping)(nil), // 866: otg.ActionResponseProtocolIpv6Ping + (*ActionResponseProtocolIpv6PingResponse)(nil), // 867: otg.ActionResponseProtocolIpv6PingResponse + (*ActionProtocolBgp)(nil), // 868: otg.ActionProtocolBgp + (*ActionProtocolBgpNotification)(nil), // 869: otg.ActionProtocolBgpNotification + (*ActionProtocolBgpInitiateGracefulRestart)(nil), // 870: otg.ActionProtocolBgpInitiateGracefulRestart + (*MetricsRequest)(nil), // 871: otg.MetricsRequest + (*MetricsResponse)(nil), // 872: otg.MetricsResponse + (*PortMetricsRequest)(nil), // 873: otg.PortMetricsRequest + (*PortMetric)(nil), // 874: otg.PortMetric + (*FlowMetricsRequest)(nil), // 875: otg.FlowMetricsRequest + (*FlowTaggedMetricsFilter)(nil), // 876: otg.FlowTaggedMetricsFilter + (*FlowMetricTagFilter)(nil), // 877: otg.FlowMetricTagFilter + (*FlowMetric)(nil), // 878: otg.FlowMetric + (*FlowTaggedMetric)(nil), // 879: otg.FlowTaggedMetric + (*FlowMetricTag)(nil), // 880: otg.FlowMetricTag + (*FlowMetricTagValue)(nil), // 881: otg.FlowMetricTagValue + (*MetricTimestamp)(nil), // 882: otg.MetricTimestamp + (*MetricLatency)(nil), // 883: otg.MetricLatency + (*Bgpv4MetricsRequest)(nil), // 884: otg.Bgpv4MetricsRequest + (*Bgpv4Metric)(nil), // 885: otg.Bgpv4Metric + (*Bgpv6MetricsRequest)(nil), // 886: otg.Bgpv6MetricsRequest + (*Bgpv6Metric)(nil), // 887: otg.Bgpv6Metric + (*IsisMetricsRequest)(nil), // 888: otg.IsisMetricsRequest + (*IsisMetric)(nil), // 889: otg.IsisMetric + (*LagMetricsRequest)(nil), // 890: otg.LagMetricsRequest + (*LagMetric)(nil), // 891: otg.LagMetric + (*LacpMetricsRequest)(nil), // 892: otg.LacpMetricsRequest + (*LacpMetric)(nil), // 893: otg.LacpMetric + (*LldpMetricsRequest)(nil), // 894: otg.LldpMetricsRequest + (*LldpMetric)(nil), // 895: otg.LldpMetric + (*RsvpMetricsRequest)(nil), // 896: otg.RsvpMetricsRequest + (*RsvpMetric)(nil), // 897: otg.RsvpMetric + (*Dhcpv4ClientMetricsRequest)(nil), // 898: otg.Dhcpv4ClientMetricsRequest + (*Dhcpv4ClientMetric)(nil), // 899: otg.Dhcpv4ClientMetric + (*Dhcpv4ServerMetricsRequest)(nil), // 900: otg.Dhcpv4ServerMetricsRequest + (*Dhcpv4ServerMetric)(nil), // 901: otg.Dhcpv4ServerMetric + (*Dhcpv6ClientMetricsRequest)(nil), // 902: otg.Dhcpv6ClientMetricsRequest + (*Dhcpv6ClientMetric)(nil), // 903: otg.Dhcpv6ClientMetric + (*Dhcpv6ServerMetricsRequest)(nil), // 904: otg.Dhcpv6ServerMetricsRequest + (*Dhcpv6ServerMetric)(nil), // 905: otg.Dhcpv6ServerMetric + (*StatesRequest)(nil), // 906: otg.StatesRequest + (*StatesResponse)(nil), // 907: otg.StatesResponse + (*Neighborsv4StatesRequest)(nil), // 908: otg.Neighborsv4StatesRequest + (*Neighborsv4State)(nil), // 909: otg.Neighborsv4State + (*Neighborsv6StatesRequest)(nil), // 910: otg.Neighborsv6StatesRequest + (*Neighborsv6State)(nil), // 911: otg.Neighborsv6State + (*BgpPrefixStateRequest)(nil), // 912: otg.BgpPrefixStateRequest + (*BgpPrefixIpv4UnicastFilter)(nil), // 913: otg.BgpPrefixIpv4UnicastFilter + (*BgpPrefixIpv6UnicastFilter)(nil), // 914: otg.BgpPrefixIpv6UnicastFilter + (*BgpPrefixesState)(nil), // 915: otg.BgpPrefixesState + (*BgpPrefixIpv4UnicastState)(nil), // 916: otg.BgpPrefixIpv4UnicastState + (*BgpPrefixIpv6UnicastState)(nil), // 917: otg.BgpPrefixIpv6UnicastState + (*ResultExtendedCommunity)(nil), // 918: otg.ResultExtendedCommunity + (*ResultExtendedCommunityStructured)(nil), // 919: otg.ResultExtendedCommunityStructured + (*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget)(nil), // 920: otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget + (*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin)(nil), // 921: otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin + (*ResultExtendedCommunityTransitive2OctetAsType)(nil), // 922: otg.ResultExtendedCommunityTransitive2OctetAsType + (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin)(nil), // 923: otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + (*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget)(nil), // 924: otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + (*ResultExtendedCommunityTransitiveIpv4AddressType)(nil), // 925: otg.ResultExtendedCommunityTransitiveIpv4AddressType + (*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget)(nil), // 926: otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget + (*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin)(nil), // 927: otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin + (*ResultExtendedCommunityTransitive4OctetAsType)(nil), // 928: otg.ResultExtendedCommunityTransitive4OctetAsType + (*ResultExtendedCommunityTransitiveOpaqueTypeColor)(nil), // 929: otg.ResultExtendedCommunityTransitiveOpaqueTypeColor + (*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation)(nil), // 930: otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation + (*ResultExtendedCommunityTransitiveOpaqueType)(nil), // 931: otg.ResultExtendedCommunityTransitiveOpaqueType + (*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth)(nil), // 932: otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + (*ResultExtendedCommunityNonTransitive2OctetAsType)(nil), // 933: otg.ResultExtendedCommunityNonTransitive2OctetAsType + (*ResultBgpCommunity)(nil), // 934: otg.ResultBgpCommunity + (*ResultBgpAsPath)(nil), // 935: otg.ResultBgpAsPath + (*ResultBgpAsPathSegment)(nil), // 936: otg.ResultBgpAsPathSegment + (*IsisLspsStateRequest)(nil), // 937: otg.IsisLspsStateRequest + (*IsisLspsState)(nil), // 938: otg.IsisLspsState + (*IsisLspState)(nil), // 939: otg.IsisLspState + (*IsisLspTlvs)(nil), // 940: otg.IsisLspTlvs + (*IsisLspHostname)(nil), // 941: otg.IsisLspHostname + (*IsisLspFlags)(nil), // 942: otg.IsisLspFlags + (*IsisLspIsReachabilityTlv)(nil), // 943: otg.IsisLspIsReachabilityTlv + (*IsisLspExtendedIsReachabilityTlv)(nil), // 944: otg.IsisLspExtendedIsReachabilityTlv + (*IsisLspneighbor)(nil), // 945: otg.IsisLspneighbor + (*IsisLspIpv4InternalReachabilityTlv)(nil), // 946: otg.IsisLspIpv4InternalReachabilityTlv + (*IsisLspIpv4ExternalReachabilityTlv)(nil), // 947: otg.IsisLspIpv4ExternalReachabilityTlv + (*IsisLspV4Prefix)(nil), // 948: otg.IsisLspV4Prefix + (*IsisLspExtendedIpv4ReachabilityTlv)(nil), // 949: otg.IsisLspExtendedIpv4ReachabilityTlv + (*IsisLspExtendedV4Prefix)(nil), // 950: otg.IsisLspExtendedV4Prefix + (*IsisLspIpv6ReachabilityTlv)(nil), // 951: otg.IsisLspIpv6ReachabilityTlv + (*IsisLspV6Prefix)(nil), // 952: otg.IsisLspV6Prefix + (*IsisLspPrefixAttributes)(nil), // 953: otg.IsisLspPrefixAttributes + (*LldpNeighborsStateRequest)(nil), // 954: otg.LldpNeighborsStateRequest + (*LldpNeighborsState)(nil), // 955: otg.LldpNeighborsState + (*LldpCustomTLVState)(nil), // 956: otg.LldpCustomTLVState + (*LldpCapabilityState)(nil), // 957: otg.LldpCapabilityState + (*RsvpLspsStateRequest)(nil), // 958: otg.RsvpLspsStateRequest + (*RsvpLspsState)(nil), // 959: otg.RsvpLspsState + (*RsvpIPv4LspState)(nil), // 960: otg.RsvpIPv4LspState + (*RsvpLspState)(nil), // 961: otg.RsvpLspState + (*RsvpLspIpv4Rro)(nil), // 962: otg.RsvpLspIpv4Rro + (*RsvpLspIpv4Ero)(nil), // 963: otg.RsvpLspIpv4Ero + (*Dhcpv4InterfaceStateRequest)(nil), // 964: otg.Dhcpv4InterfaceStateRequest + (*Dhcpv4InterfaceState)(nil), // 965: otg.Dhcpv4InterfaceState + (*Dhcpv4LeaseStateRequest)(nil), // 966: otg.Dhcpv4LeaseStateRequest + (*Dhcpv4LeasesState)(nil), // 967: otg.Dhcpv4LeasesState + (*Dhcpv4LeaseState)(nil), // 968: otg.Dhcpv4LeaseState + (*Dhcpv6InterfaceStateRequest)(nil), // 969: otg.Dhcpv6InterfaceStateRequest + (*Dhcpv6InterfaceState)(nil), // 970: otg.Dhcpv6InterfaceState + (*Dhcpv6LeaseStateRequest)(nil), // 971: otg.Dhcpv6LeaseStateRequest + (*Dhcpv6LeasesState)(nil), // 972: otg.Dhcpv6LeasesState + (*Dhcpv6ServerLeaseState)(nil), // 973: otg.Dhcpv6ServerLeaseState + (*CaptureRequest)(nil), // 974: otg.CaptureRequest + (*PatternFlowEthernetDstCounter)(nil), // 975: otg.PatternFlowEthernetDstCounter + (*PatternFlowEthernetDstMetricTag)(nil), // 976: otg.PatternFlowEthernetDstMetricTag + (*PatternFlowEthernetDst)(nil), // 977: otg.PatternFlowEthernetDst + (*PatternFlowEthernetSrcCounter)(nil), // 978: otg.PatternFlowEthernetSrcCounter + (*PatternFlowEthernetSrcMetricTag)(nil), // 979: otg.PatternFlowEthernetSrcMetricTag + (*PatternFlowEthernetSrc)(nil), // 980: otg.PatternFlowEthernetSrc + (*PatternFlowEthernetEtherTypeCounter)(nil), // 981: otg.PatternFlowEthernetEtherTypeCounter + (*PatternFlowEthernetEtherTypeMetricTag)(nil), // 982: otg.PatternFlowEthernetEtherTypeMetricTag + (*PatternFlowEthernetEtherType)(nil), // 983: otg.PatternFlowEthernetEtherType + (*PatternFlowEthernetPfcQueueCounter)(nil), // 984: otg.PatternFlowEthernetPfcQueueCounter + (*PatternFlowEthernetPfcQueueMetricTag)(nil), // 985: otg.PatternFlowEthernetPfcQueueMetricTag + (*PatternFlowEthernetPfcQueue)(nil), // 986: otg.PatternFlowEthernetPfcQueue + (*PatternFlowVlanPriorityCounter)(nil), // 987: otg.PatternFlowVlanPriorityCounter + (*PatternFlowVlanPriorityMetricTag)(nil), // 988: otg.PatternFlowVlanPriorityMetricTag + (*PatternFlowVlanPriority)(nil), // 989: otg.PatternFlowVlanPriority + (*PatternFlowVlanCfiCounter)(nil), // 990: otg.PatternFlowVlanCfiCounter + (*PatternFlowVlanCfiMetricTag)(nil), // 991: otg.PatternFlowVlanCfiMetricTag + (*PatternFlowVlanCfi)(nil), // 992: otg.PatternFlowVlanCfi + (*PatternFlowVlanIdCounter)(nil), // 993: otg.PatternFlowVlanIdCounter + (*PatternFlowVlanIdMetricTag)(nil), // 994: otg.PatternFlowVlanIdMetricTag + (*PatternFlowVlanId)(nil), // 995: otg.PatternFlowVlanId + (*PatternFlowVlanTpidCounter)(nil), // 996: otg.PatternFlowVlanTpidCounter + (*PatternFlowVlanTpidMetricTag)(nil), // 997: otg.PatternFlowVlanTpidMetricTag + (*PatternFlowVlanTpid)(nil), // 998: otg.PatternFlowVlanTpid + (*PatternFlowVxlanFlagsCounter)(nil), // 999: otg.PatternFlowVxlanFlagsCounter + (*PatternFlowVxlanFlagsMetricTag)(nil), // 1000: otg.PatternFlowVxlanFlagsMetricTag + (*PatternFlowVxlanFlags)(nil), // 1001: otg.PatternFlowVxlanFlags + (*PatternFlowVxlanReserved0Counter)(nil), // 1002: otg.PatternFlowVxlanReserved0Counter + (*PatternFlowVxlanReserved0MetricTag)(nil), // 1003: otg.PatternFlowVxlanReserved0MetricTag + (*PatternFlowVxlanReserved0)(nil), // 1004: otg.PatternFlowVxlanReserved0 + (*PatternFlowVxlanVniCounter)(nil), // 1005: otg.PatternFlowVxlanVniCounter + (*PatternFlowVxlanVniMetricTag)(nil), // 1006: otg.PatternFlowVxlanVniMetricTag + (*PatternFlowVxlanVni)(nil), // 1007: otg.PatternFlowVxlanVni + (*PatternFlowVxlanReserved1Counter)(nil), // 1008: otg.PatternFlowVxlanReserved1Counter + (*PatternFlowVxlanReserved1MetricTag)(nil), // 1009: otg.PatternFlowVxlanReserved1MetricTag + (*PatternFlowVxlanReserved1)(nil), // 1010: otg.PatternFlowVxlanReserved1 + (*PatternFlowIpv4VersionCounter)(nil), // 1011: otg.PatternFlowIpv4VersionCounter + (*PatternFlowIpv4VersionMetricTag)(nil), // 1012: otg.PatternFlowIpv4VersionMetricTag + (*PatternFlowIpv4Version)(nil), // 1013: otg.PatternFlowIpv4Version + (*PatternFlowIpv4HeaderLengthCounter)(nil), // 1014: otg.PatternFlowIpv4HeaderLengthCounter + (*PatternFlowIpv4HeaderLengthMetricTag)(nil), // 1015: otg.PatternFlowIpv4HeaderLengthMetricTag + (*PatternFlowIpv4HeaderLength)(nil), // 1016: otg.PatternFlowIpv4HeaderLength + (*PatternFlowIpv4TotalLengthCounter)(nil), // 1017: otg.PatternFlowIpv4TotalLengthCounter + (*PatternFlowIpv4TotalLengthMetricTag)(nil), // 1018: otg.PatternFlowIpv4TotalLengthMetricTag + (*PatternFlowIpv4TotalLength)(nil), // 1019: otg.PatternFlowIpv4TotalLength + (*PatternFlowIpv4IdentificationCounter)(nil), // 1020: otg.PatternFlowIpv4IdentificationCounter + (*PatternFlowIpv4IdentificationMetricTag)(nil), // 1021: otg.PatternFlowIpv4IdentificationMetricTag + (*PatternFlowIpv4Identification)(nil), // 1022: otg.PatternFlowIpv4Identification + (*PatternFlowIpv4ReservedCounter)(nil), // 1023: otg.PatternFlowIpv4ReservedCounter + (*PatternFlowIpv4ReservedMetricTag)(nil), // 1024: otg.PatternFlowIpv4ReservedMetricTag + (*PatternFlowIpv4Reserved)(nil), // 1025: otg.PatternFlowIpv4Reserved + (*PatternFlowIpv4DontFragmentCounter)(nil), // 1026: otg.PatternFlowIpv4DontFragmentCounter + (*PatternFlowIpv4DontFragmentMetricTag)(nil), // 1027: otg.PatternFlowIpv4DontFragmentMetricTag + (*PatternFlowIpv4DontFragment)(nil), // 1028: otg.PatternFlowIpv4DontFragment + (*PatternFlowIpv4MoreFragmentsCounter)(nil), // 1029: otg.PatternFlowIpv4MoreFragmentsCounter + (*PatternFlowIpv4MoreFragmentsMetricTag)(nil), // 1030: otg.PatternFlowIpv4MoreFragmentsMetricTag + (*PatternFlowIpv4MoreFragments)(nil), // 1031: otg.PatternFlowIpv4MoreFragments + (*PatternFlowIpv4FragmentOffsetCounter)(nil), // 1032: otg.PatternFlowIpv4FragmentOffsetCounter + (*PatternFlowIpv4FragmentOffsetMetricTag)(nil), // 1033: otg.PatternFlowIpv4FragmentOffsetMetricTag + (*PatternFlowIpv4FragmentOffset)(nil), // 1034: otg.PatternFlowIpv4FragmentOffset + (*PatternFlowIpv4TimeToLiveCounter)(nil), // 1035: otg.PatternFlowIpv4TimeToLiveCounter + (*PatternFlowIpv4TimeToLiveMetricTag)(nil), // 1036: otg.PatternFlowIpv4TimeToLiveMetricTag + (*PatternFlowIpv4TimeToLive)(nil), // 1037: otg.PatternFlowIpv4TimeToLive + (*PatternFlowIpv4ProtocolCounter)(nil), // 1038: otg.PatternFlowIpv4ProtocolCounter + (*PatternFlowIpv4ProtocolMetricTag)(nil), // 1039: otg.PatternFlowIpv4ProtocolMetricTag + (*PatternFlowIpv4Protocol)(nil), // 1040: otg.PatternFlowIpv4Protocol + (*PatternFlowIpv4HeaderChecksum)(nil), // 1041: otg.PatternFlowIpv4HeaderChecksum + (*PatternFlowIpv4SrcCounter)(nil), // 1042: otg.PatternFlowIpv4SrcCounter + (*PatternFlowIpv4SrcMetricTag)(nil), // 1043: otg.PatternFlowIpv4SrcMetricTag + (*PatternFlowIpv4SrcRandom)(nil), // 1044: otg.PatternFlowIpv4SrcRandom + (*PatternFlowIpv4Src)(nil), // 1045: otg.PatternFlowIpv4Src + (*PatternFlowIpv4DstCounter)(nil), // 1046: otg.PatternFlowIpv4DstCounter + (*PatternFlowIpv4DstMetricTag)(nil), // 1047: otg.PatternFlowIpv4DstMetricTag + (*PatternFlowIpv4DstRandom)(nil), // 1048: otg.PatternFlowIpv4DstRandom + (*PatternFlowIpv4Dst)(nil), // 1049: otg.PatternFlowIpv4Dst + (*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter)(nil), // 1050: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + (*PatternFlowIpv4OptionsCustomTypeCopiedFlag)(nil), // 1051: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + (*PatternFlowIpv4OptionsCustomTypeOptionClassCounter)(nil), // 1052: otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + (*PatternFlowIpv4OptionsCustomTypeOptionClass)(nil), // 1053: otg.PatternFlowIpv4OptionsCustomTypeOptionClass + (*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter)(nil), // 1054: otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + (*PatternFlowIpv4OptionsCustomTypeOptionNumber)(nil), // 1055: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + (*PatternFlowIpv4PriorityRawCounter)(nil), // 1056: otg.PatternFlowIpv4PriorityRawCounter + (*PatternFlowIpv4PriorityRawMetricTag)(nil), // 1057: otg.PatternFlowIpv4PriorityRawMetricTag + (*PatternFlowIpv4PriorityRaw)(nil), // 1058: otg.PatternFlowIpv4PriorityRaw + (*PatternFlowIpv4DscpPhbCounter)(nil), // 1059: otg.PatternFlowIpv4DscpPhbCounter + (*PatternFlowIpv4DscpPhbMetricTag)(nil), // 1060: otg.PatternFlowIpv4DscpPhbMetricTag + (*PatternFlowIpv4DscpPhb)(nil), // 1061: otg.PatternFlowIpv4DscpPhb + (*PatternFlowIpv4DscpEcnCounter)(nil), // 1062: otg.PatternFlowIpv4DscpEcnCounter + (*PatternFlowIpv4DscpEcnMetricTag)(nil), // 1063: otg.PatternFlowIpv4DscpEcnMetricTag + (*PatternFlowIpv4DscpEcn)(nil), // 1064: otg.PatternFlowIpv4DscpEcn + (*PatternFlowIpv4TosPrecedenceCounter)(nil), // 1065: otg.PatternFlowIpv4TosPrecedenceCounter + (*PatternFlowIpv4TosPrecedenceMetricTag)(nil), // 1066: otg.PatternFlowIpv4TosPrecedenceMetricTag + (*PatternFlowIpv4TosPrecedence)(nil), // 1067: otg.PatternFlowIpv4TosPrecedence + (*PatternFlowIpv4TosDelayCounter)(nil), // 1068: otg.PatternFlowIpv4TosDelayCounter + (*PatternFlowIpv4TosDelayMetricTag)(nil), // 1069: otg.PatternFlowIpv4TosDelayMetricTag + (*PatternFlowIpv4TosDelay)(nil), // 1070: otg.PatternFlowIpv4TosDelay + (*PatternFlowIpv4TosThroughputCounter)(nil), // 1071: otg.PatternFlowIpv4TosThroughputCounter + (*PatternFlowIpv4TosThroughputMetricTag)(nil), // 1072: otg.PatternFlowIpv4TosThroughputMetricTag + (*PatternFlowIpv4TosThroughput)(nil), // 1073: otg.PatternFlowIpv4TosThroughput + (*PatternFlowIpv4TosReliabilityCounter)(nil), // 1074: otg.PatternFlowIpv4TosReliabilityCounter + (*PatternFlowIpv4TosReliabilityMetricTag)(nil), // 1075: otg.PatternFlowIpv4TosReliabilityMetricTag + (*PatternFlowIpv4TosReliability)(nil), // 1076: otg.PatternFlowIpv4TosReliability + (*PatternFlowIpv4TosMonetaryCounter)(nil), // 1077: otg.PatternFlowIpv4TosMonetaryCounter + (*PatternFlowIpv4TosMonetaryMetricTag)(nil), // 1078: otg.PatternFlowIpv4TosMonetaryMetricTag + (*PatternFlowIpv4TosMonetary)(nil), // 1079: otg.PatternFlowIpv4TosMonetary + (*PatternFlowIpv4TosUnusedCounter)(nil), // 1080: otg.PatternFlowIpv4TosUnusedCounter + (*PatternFlowIpv4TosUnusedMetricTag)(nil), // 1081: otg.PatternFlowIpv4TosUnusedMetricTag + (*PatternFlowIpv4TosUnused)(nil), // 1082: otg.PatternFlowIpv4TosUnused + (*PatternFlowIpv6VersionCounter)(nil), // 1083: otg.PatternFlowIpv6VersionCounter + (*PatternFlowIpv6VersionMetricTag)(nil), // 1084: otg.PatternFlowIpv6VersionMetricTag + (*PatternFlowIpv6Version)(nil), // 1085: otg.PatternFlowIpv6Version + (*PatternFlowIpv6TrafficClassCounter)(nil), // 1086: otg.PatternFlowIpv6TrafficClassCounter + (*PatternFlowIpv6TrafficClassMetricTag)(nil), // 1087: otg.PatternFlowIpv6TrafficClassMetricTag + (*PatternFlowIpv6TrafficClass)(nil), // 1088: otg.PatternFlowIpv6TrafficClass + (*PatternFlowIpv6FlowLabelCounter)(nil), // 1089: otg.PatternFlowIpv6FlowLabelCounter + (*PatternFlowIpv6FlowLabelMetricTag)(nil), // 1090: otg.PatternFlowIpv6FlowLabelMetricTag + (*PatternFlowIpv6FlowLabelRandom)(nil), // 1091: otg.PatternFlowIpv6FlowLabelRandom + (*PatternFlowIpv6FlowLabel)(nil), // 1092: otg.PatternFlowIpv6FlowLabel + (*PatternFlowIpv6PayloadLengthCounter)(nil), // 1093: otg.PatternFlowIpv6PayloadLengthCounter + (*PatternFlowIpv6PayloadLengthMetricTag)(nil), // 1094: otg.PatternFlowIpv6PayloadLengthMetricTag + (*PatternFlowIpv6PayloadLength)(nil), // 1095: otg.PatternFlowIpv6PayloadLength + (*PatternFlowIpv6NextHeaderCounter)(nil), // 1096: otg.PatternFlowIpv6NextHeaderCounter + (*PatternFlowIpv6NextHeaderMetricTag)(nil), // 1097: otg.PatternFlowIpv6NextHeaderMetricTag + (*PatternFlowIpv6NextHeader)(nil), // 1098: otg.PatternFlowIpv6NextHeader + (*PatternFlowIpv6HopLimitCounter)(nil), // 1099: otg.PatternFlowIpv6HopLimitCounter + (*PatternFlowIpv6HopLimitMetricTag)(nil), // 1100: otg.PatternFlowIpv6HopLimitMetricTag + (*PatternFlowIpv6HopLimit)(nil), // 1101: otg.PatternFlowIpv6HopLimit + (*PatternFlowIpv6SrcCounter)(nil), // 1102: otg.PatternFlowIpv6SrcCounter + (*PatternFlowIpv6SrcMetricTag)(nil), // 1103: otg.PatternFlowIpv6SrcMetricTag + (*PatternFlowIpv6Src)(nil), // 1104: otg.PatternFlowIpv6Src + (*PatternFlowIpv6DstCounter)(nil), // 1105: otg.PatternFlowIpv6DstCounter + (*PatternFlowIpv6DstMetricTag)(nil), // 1106: otg.PatternFlowIpv6DstMetricTag + (*PatternFlowIpv6Dst)(nil), // 1107: otg.PatternFlowIpv6Dst + (*PatternFlowPfcPauseDstCounter)(nil), // 1108: otg.PatternFlowPfcPauseDstCounter + (*PatternFlowPfcPauseDstMetricTag)(nil), // 1109: otg.PatternFlowPfcPauseDstMetricTag + (*PatternFlowPfcPauseDst)(nil), // 1110: otg.PatternFlowPfcPauseDst + (*PatternFlowPfcPauseSrcCounter)(nil), // 1111: otg.PatternFlowPfcPauseSrcCounter + (*PatternFlowPfcPauseSrcMetricTag)(nil), // 1112: otg.PatternFlowPfcPauseSrcMetricTag + (*PatternFlowPfcPauseSrc)(nil), // 1113: otg.PatternFlowPfcPauseSrc + (*PatternFlowPfcPauseEtherTypeCounter)(nil), // 1114: otg.PatternFlowPfcPauseEtherTypeCounter + (*PatternFlowPfcPauseEtherTypeMetricTag)(nil), // 1115: otg.PatternFlowPfcPauseEtherTypeMetricTag + (*PatternFlowPfcPauseEtherType)(nil), // 1116: otg.PatternFlowPfcPauseEtherType + (*PatternFlowPfcPauseControlOpCodeCounter)(nil), // 1117: otg.PatternFlowPfcPauseControlOpCodeCounter + (*PatternFlowPfcPauseControlOpCodeMetricTag)(nil), // 1118: otg.PatternFlowPfcPauseControlOpCodeMetricTag + (*PatternFlowPfcPauseControlOpCode)(nil), // 1119: otg.PatternFlowPfcPauseControlOpCode + (*PatternFlowPfcPauseClassEnableVectorCounter)(nil), // 1120: otg.PatternFlowPfcPauseClassEnableVectorCounter + (*PatternFlowPfcPauseClassEnableVectorMetricTag)(nil), // 1121: otg.PatternFlowPfcPauseClassEnableVectorMetricTag + (*PatternFlowPfcPauseClassEnableVector)(nil), // 1122: otg.PatternFlowPfcPauseClassEnableVector + (*PatternFlowPfcPausePauseClass0Counter)(nil), // 1123: otg.PatternFlowPfcPausePauseClass0Counter + (*PatternFlowPfcPausePauseClass0MetricTag)(nil), // 1124: otg.PatternFlowPfcPausePauseClass0MetricTag + (*PatternFlowPfcPausePauseClass0)(nil), // 1125: otg.PatternFlowPfcPausePauseClass0 + (*PatternFlowPfcPausePauseClass1Counter)(nil), // 1126: otg.PatternFlowPfcPausePauseClass1Counter + (*PatternFlowPfcPausePauseClass1MetricTag)(nil), // 1127: otg.PatternFlowPfcPausePauseClass1MetricTag + (*PatternFlowPfcPausePauseClass1)(nil), // 1128: otg.PatternFlowPfcPausePauseClass1 + (*PatternFlowPfcPausePauseClass2Counter)(nil), // 1129: otg.PatternFlowPfcPausePauseClass2Counter + (*PatternFlowPfcPausePauseClass2MetricTag)(nil), // 1130: otg.PatternFlowPfcPausePauseClass2MetricTag + (*PatternFlowPfcPausePauseClass2)(nil), // 1131: otg.PatternFlowPfcPausePauseClass2 + (*PatternFlowPfcPausePauseClass3Counter)(nil), // 1132: otg.PatternFlowPfcPausePauseClass3Counter + (*PatternFlowPfcPausePauseClass3MetricTag)(nil), // 1133: otg.PatternFlowPfcPausePauseClass3MetricTag + (*PatternFlowPfcPausePauseClass3)(nil), // 1134: otg.PatternFlowPfcPausePauseClass3 + (*PatternFlowPfcPausePauseClass4Counter)(nil), // 1135: otg.PatternFlowPfcPausePauseClass4Counter + (*PatternFlowPfcPausePauseClass4MetricTag)(nil), // 1136: otg.PatternFlowPfcPausePauseClass4MetricTag + (*PatternFlowPfcPausePauseClass4)(nil), // 1137: otg.PatternFlowPfcPausePauseClass4 + (*PatternFlowPfcPausePauseClass5Counter)(nil), // 1138: otg.PatternFlowPfcPausePauseClass5Counter + (*PatternFlowPfcPausePauseClass5MetricTag)(nil), // 1139: otg.PatternFlowPfcPausePauseClass5MetricTag + (*PatternFlowPfcPausePauseClass5)(nil), // 1140: otg.PatternFlowPfcPausePauseClass5 + (*PatternFlowPfcPausePauseClass6Counter)(nil), // 1141: otg.PatternFlowPfcPausePauseClass6Counter + (*PatternFlowPfcPausePauseClass6MetricTag)(nil), // 1142: otg.PatternFlowPfcPausePauseClass6MetricTag + (*PatternFlowPfcPausePauseClass6)(nil), // 1143: otg.PatternFlowPfcPausePauseClass6 + (*PatternFlowPfcPausePauseClass7Counter)(nil), // 1144: otg.PatternFlowPfcPausePauseClass7Counter + (*PatternFlowPfcPausePauseClass7MetricTag)(nil), // 1145: otg.PatternFlowPfcPausePauseClass7MetricTag + (*PatternFlowPfcPausePauseClass7)(nil), // 1146: otg.PatternFlowPfcPausePauseClass7 + (*PatternFlowEthernetPauseDstCounter)(nil), // 1147: otg.PatternFlowEthernetPauseDstCounter + (*PatternFlowEthernetPauseDstMetricTag)(nil), // 1148: otg.PatternFlowEthernetPauseDstMetricTag + (*PatternFlowEthernetPauseDst)(nil), // 1149: otg.PatternFlowEthernetPauseDst + (*PatternFlowEthernetPauseSrcCounter)(nil), // 1150: otg.PatternFlowEthernetPauseSrcCounter + (*PatternFlowEthernetPauseSrcMetricTag)(nil), // 1151: otg.PatternFlowEthernetPauseSrcMetricTag + (*PatternFlowEthernetPauseSrc)(nil), // 1152: otg.PatternFlowEthernetPauseSrc + (*PatternFlowEthernetPauseEtherTypeCounter)(nil), // 1153: otg.PatternFlowEthernetPauseEtherTypeCounter + (*PatternFlowEthernetPauseEtherTypeMetricTag)(nil), // 1154: otg.PatternFlowEthernetPauseEtherTypeMetricTag + (*PatternFlowEthernetPauseEtherType)(nil), // 1155: otg.PatternFlowEthernetPauseEtherType + (*PatternFlowEthernetPauseControlOpCodeCounter)(nil), // 1156: otg.PatternFlowEthernetPauseControlOpCodeCounter + (*PatternFlowEthernetPauseControlOpCodeMetricTag)(nil), // 1157: otg.PatternFlowEthernetPauseControlOpCodeMetricTag + (*PatternFlowEthernetPauseControlOpCode)(nil), // 1158: otg.PatternFlowEthernetPauseControlOpCode + (*PatternFlowEthernetPauseTimeCounter)(nil), // 1159: otg.PatternFlowEthernetPauseTimeCounter + (*PatternFlowEthernetPauseTimeMetricTag)(nil), // 1160: otg.PatternFlowEthernetPauseTimeMetricTag + (*PatternFlowEthernetPauseTime)(nil), // 1161: otg.PatternFlowEthernetPauseTime + (*PatternFlowTcpSrcPortCounter)(nil), // 1162: otg.PatternFlowTcpSrcPortCounter + (*PatternFlowTcpSrcPortMetricTag)(nil), // 1163: otg.PatternFlowTcpSrcPortMetricTag + (*PatternFlowTcpSrcPortRandom)(nil), // 1164: otg.PatternFlowTcpSrcPortRandom + (*PatternFlowTcpSrcPort)(nil), // 1165: otg.PatternFlowTcpSrcPort + (*PatternFlowTcpDstPortCounter)(nil), // 1166: otg.PatternFlowTcpDstPortCounter + (*PatternFlowTcpDstPortMetricTag)(nil), // 1167: otg.PatternFlowTcpDstPortMetricTag + (*PatternFlowTcpDstPortRandom)(nil), // 1168: otg.PatternFlowTcpDstPortRandom + (*PatternFlowTcpDstPort)(nil), // 1169: otg.PatternFlowTcpDstPort + (*PatternFlowTcpSeqNumCounter)(nil), // 1170: otg.PatternFlowTcpSeqNumCounter + (*PatternFlowTcpSeqNumMetricTag)(nil), // 1171: otg.PatternFlowTcpSeqNumMetricTag + (*PatternFlowTcpSeqNum)(nil), // 1172: otg.PatternFlowTcpSeqNum + (*PatternFlowTcpAckNumCounter)(nil), // 1173: otg.PatternFlowTcpAckNumCounter + (*PatternFlowTcpAckNumMetricTag)(nil), // 1174: otg.PatternFlowTcpAckNumMetricTag + (*PatternFlowTcpAckNum)(nil), // 1175: otg.PatternFlowTcpAckNum + (*PatternFlowTcpDataOffsetCounter)(nil), // 1176: otg.PatternFlowTcpDataOffsetCounter + (*PatternFlowTcpDataOffsetMetricTag)(nil), // 1177: otg.PatternFlowTcpDataOffsetMetricTag + (*PatternFlowTcpDataOffset)(nil), // 1178: otg.PatternFlowTcpDataOffset + (*PatternFlowTcpEcnNsCounter)(nil), // 1179: otg.PatternFlowTcpEcnNsCounter + (*PatternFlowTcpEcnNsMetricTag)(nil), // 1180: otg.PatternFlowTcpEcnNsMetricTag + (*PatternFlowTcpEcnNs)(nil), // 1181: otg.PatternFlowTcpEcnNs + (*PatternFlowTcpEcnCwrCounter)(nil), // 1182: otg.PatternFlowTcpEcnCwrCounter + (*PatternFlowTcpEcnCwrMetricTag)(nil), // 1183: otg.PatternFlowTcpEcnCwrMetricTag + (*PatternFlowTcpEcnCwr)(nil), // 1184: otg.PatternFlowTcpEcnCwr + (*PatternFlowTcpEcnEchoCounter)(nil), // 1185: otg.PatternFlowTcpEcnEchoCounter + (*PatternFlowTcpEcnEchoMetricTag)(nil), // 1186: otg.PatternFlowTcpEcnEchoMetricTag + (*PatternFlowTcpEcnEcho)(nil), // 1187: otg.PatternFlowTcpEcnEcho + (*PatternFlowTcpCtlUrgCounter)(nil), // 1188: otg.PatternFlowTcpCtlUrgCounter + (*PatternFlowTcpCtlUrgMetricTag)(nil), // 1189: otg.PatternFlowTcpCtlUrgMetricTag + (*PatternFlowTcpCtlUrg)(nil), // 1190: otg.PatternFlowTcpCtlUrg + (*PatternFlowTcpCtlAckCounter)(nil), // 1191: otg.PatternFlowTcpCtlAckCounter + (*PatternFlowTcpCtlAckMetricTag)(nil), // 1192: otg.PatternFlowTcpCtlAckMetricTag + (*PatternFlowTcpCtlAck)(nil), // 1193: otg.PatternFlowTcpCtlAck + (*PatternFlowTcpCtlPshCounter)(nil), // 1194: otg.PatternFlowTcpCtlPshCounter + (*PatternFlowTcpCtlPshMetricTag)(nil), // 1195: otg.PatternFlowTcpCtlPshMetricTag + (*PatternFlowTcpCtlPsh)(nil), // 1196: otg.PatternFlowTcpCtlPsh + (*PatternFlowTcpCtlRstCounter)(nil), // 1197: otg.PatternFlowTcpCtlRstCounter + (*PatternFlowTcpCtlRstMetricTag)(nil), // 1198: otg.PatternFlowTcpCtlRstMetricTag + (*PatternFlowTcpCtlRst)(nil), // 1199: otg.PatternFlowTcpCtlRst + (*PatternFlowTcpCtlSynCounter)(nil), // 1200: otg.PatternFlowTcpCtlSynCounter + (*PatternFlowTcpCtlSynMetricTag)(nil), // 1201: otg.PatternFlowTcpCtlSynMetricTag + (*PatternFlowTcpCtlSyn)(nil), // 1202: otg.PatternFlowTcpCtlSyn + (*PatternFlowTcpCtlFinCounter)(nil), // 1203: otg.PatternFlowTcpCtlFinCounter + (*PatternFlowTcpCtlFinMetricTag)(nil), // 1204: otg.PatternFlowTcpCtlFinMetricTag + (*PatternFlowTcpCtlFin)(nil), // 1205: otg.PatternFlowTcpCtlFin + (*PatternFlowTcpWindowCounter)(nil), // 1206: otg.PatternFlowTcpWindowCounter + (*PatternFlowTcpWindowMetricTag)(nil), // 1207: otg.PatternFlowTcpWindowMetricTag + (*PatternFlowTcpWindow)(nil), // 1208: otg.PatternFlowTcpWindow + (*PatternFlowTcpChecksum)(nil), // 1209: otg.PatternFlowTcpChecksum + (*PatternFlowUdpSrcPortCounter)(nil), // 1210: otg.PatternFlowUdpSrcPortCounter + (*PatternFlowUdpSrcPortMetricTag)(nil), // 1211: otg.PatternFlowUdpSrcPortMetricTag + (*PatternFlowUdpSrcPortRandom)(nil), // 1212: otg.PatternFlowUdpSrcPortRandom + (*PatternFlowUdpSrcPort)(nil), // 1213: otg.PatternFlowUdpSrcPort + (*PatternFlowUdpDstPortCounter)(nil), // 1214: otg.PatternFlowUdpDstPortCounter + (*PatternFlowUdpDstPortMetricTag)(nil), // 1215: otg.PatternFlowUdpDstPortMetricTag + (*PatternFlowUdpDstPortRandom)(nil), // 1216: otg.PatternFlowUdpDstPortRandom + (*PatternFlowUdpDstPort)(nil), // 1217: otg.PatternFlowUdpDstPort + (*PatternFlowUdpLengthCounter)(nil), // 1218: otg.PatternFlowUdpLengthCounter + (*PatternFlowUdpLengthMetricTag)(nil), // 1219: otg.PatternFlowUdpLengthMetricTag + (*PatternFlowUdpLength)(nil), // 1220: otg.PatternFlowUdpLength + (*PatternFlowUdpChecksum)(nil), // 1221: otg.PatternFlowUdpChecksum + (*PatternFlowGreChecksumPresentCounter)(nil), // 1222: otg.PatternFlowGreChecksumPresentCounter + (*PatternFlowGreChecksumPresentMetricTag)(nil), // 1223: otg.PatternFlowGreChecksumPresentMetricTag + (*PatternFlowGreChecksumPresent)(nil), // 1224: otg.PatternFlowGreChecksumPresent + (*PatternFlowGreReserved0Counter)(nil), // 1225: otg.PatternFlowGreReserved0Counter + (*PatternFlowGreReserved0MetricTag)(nil), // 1226: otg.PatternFlowGreReserved0MetricTag + (*PatternFlowGreReserved0)(nil), // 1227: otg.PatternFlowGreReserved0 + (*PatternFlowGreVersionCounter)(nil), // 1228: otg.PatternFlowGreVersionCounter + (*PatternFlowGreVersionMetricTag)(nil), // 1229: otg.PatternFlowGreVersionMetricTag + (*PatternFlowGreVersion)(nil), // 1230: otg.PatternFlowGreVersion + (*PatternFlowGreProtocolCounter)(nil), // 1231: otg.PatternFlowGreProtocolCounter + (*PatternFlowGreProtocolMetricTag)(nil), // 1232: otg.PatternFlowGreProtocolMetricTag + (*PatternFlowGreProtocol)(nil), // 1233: otg.PatternFlowGreProtocol + (*PatternFlowGreChecksum)(nil), // 1234: otg.PatternFlowGreChecksum + (*PatternFlowGreReserved1Counter)(nil), // 1235: otg.PatternFlowGreReserved1Counter + (*PatternFlowGreReserved1MetricTag)(nil), // 1236: otg.PatternFlowGreReserved1MetricTag + (*PatternFlowGreReserved1)(nil), // 1237: otg.PatternFlowGreReserved1 + (*PatternFlowGtpv1VersionCounter)(nil), // 1238: otg.PatternFlowGtpv1VersionCounter + (*PatternFlowGtpv1VersionMetricTag)(nil), // 1239: otg.PatternFlowGtpv1VersionMetricTag + (*PatternFlowGtpv1Version)(nil), // 1240: otg.PatternFlowGtpv1Version + (*PatternFlowGtpv1ProtocolTypeCounter)(nil), // 1241: otg.PatternFlowGtpv1ProtocolTypeCounter + (*PatternFlowGtpv1ProtocolTypeMetricTag)(nil), // 1242: otg.PatternFlowGtpv1ProtocolTypeMetricTag + (*PatternFlowGtpv1ProtocolType)(nil), // 1243: otg.PatternFlowGtpv1ProtocolType + (*PatternFlowGtpv1ReservedCounter)(nil), // 1244: otg.PatternFlowGtpv1ReservedCounter + (*PatternFlowGtpv1ReservedMetricTag)(nil), // 1245: otg.PatternFlowGtpv1ReservedMetricTag + (*PatternFlowGtpv1Reserved)(nil), // 1246: otg.PatternFlowGtpv1Reserved + (*PatternFlowGtpv1EFlagCounter)(nil), // 1247: otg.PatternFlowGtpv1EFlagCounter + (*PatternFlowGtpv1EFlagMetricTag)(nil), // 1248: otg.PatternFlowGtpv1EFlagMetricTag + (*PatternFlowGtpv1EFlag)(nil), // 1249: otg.PatternFlowGtpv1EFlag + (*PatternFlowGtpv1SFlagCounter)(nil), // 1250: otg.PatternFlowGtpv1SFlagCounter + (*PatternFlowGtpv1SFlagMetricTag)(nil), // 1251: otg.PatternFlowGtpv1SFlagMetricTag + (*PatternFlowGtpv1SFlag)(nil), // 1252: otg.PatternFlowGtpv1SFlag + (*PatternFlowGtpv1PnFlagCounter)(nil), // 1253: otg.PatternFlowGtpv1PnFlagCounter + (*PatternFlowGtpv1PnFlagMetricTag)(nil), // 1254: otg.PatternFlowGtpv1PnFlagMetricTag + (*PatternFlowGtpv1PnFlag)(nil), // 1255: otg.PatternFlowGtpv1PnFlag + (*PatternFlowGtpv1MessageTypeCounter)(nil), // 1256: otg.PatternFlowGtpv1MessageTypeCounter + (*PatternFlowGtpv1MessageTypeMetricTag)(nil), // 1257: otg.PatternFlowGtpv1MessageTypeMetricTag + (*PatternFlowGtpv1MessageType)(nil), // 1258: otg.PatternFlowGtpv1MessageType + (*PatternFlowGtpv1MessageLengthCounter)(nil), // 1259: otg.PatternFlowGtpv1MessageLengthCounter + (*PatternFlowGtpv1MessageLengthMetricTag)(nil), // 1260: otg.PatternFlowGtpv1MessageLengthMetricTag + (*PatternFlowGtpv1MessageLength)(nil), // 1261: otg.PatternFlowGtpv1MessageLength + (*PatternFlowGtpv1TeidCounter)(nil), // 1262: otg.PatternFlowGtpv1TeidCounter + (*PatternFlowGtpv1TeidMetricTag)(nil), // 1263: otg.PatternFlowGtpv1TeidMetricTag + (*PatternFlowGtpv1Teid)(nil), // 1264: otg.PatternFlowGtpv1Teid + (*PatternFlowGtpv1SquenceNumberCounter)(nil), // 1265: otg.PatternFlowGtpv1SquenceNumberCounter + (*PatternFlowGtpv1SquenceNumberMetricTag)(nil), // 1266: otg.PatternFlowGtpv1SquenceNumberMetricTag + (*PatternFlowGtpv1SquenceNumber)(nil), // 1267: otg.PatternFlowGtpv1SquenceNumber + (*PatternFlowGtpv1NPduNumberCounter)(nil), // 1268: otg.PatternFlowGtpv1NPduNumberCounter + (*PatternFlowGtpv1NPduNumberMetricTag)(nil), // 1269: otg.PatternFlowGtpv1NPduNumberMetricTag + (*PatternFlowGtpv1NPduNumber)(nil), // 1270: otg.PatternFlowGtpv1NPduNumber + (*PatternFlowGtpv1NextExtensionHeaderTypeCounter)(nil), // 1271: otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + (*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag)(nil), // 1272: otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + (*PatternFlowGtpv1NextExtensionHeaderType)(nil), // 1273: otg.PatternFlowGtpv1NextExtensionHeaderType + (*PatternFlowGtpExtensionExtensionLengthCounter)(nil), // 1274: otg.PatternFlowGtpExtensionExtensionLengthCounter + (*PatternFlowGtpExtensionExtensionLengthMetricTag)(nil), // 1275: otg.PatternFlowGtpExtensionExtensionLengthMetricTag + (*PatternFlowGtpExtensionExtensionLength)(nil), // 1276: otg.PatternFlowGtpExtensionExtensionLength + (*PatternFlowGtpExtensionContentsCounter)(nil), // 1277: otg.PatternFlowGtpExtensionContentsCounter + (*PatternFlowGtpExtensionContentsMetricTag)(nil), // 1278: otg.PatternFlowGtpExtensionContentsMetricTag + (*PatternFlowGtpExtensionContents)(nil), // 1279: otg.PatternFlowGtpExtensionContents + (*PatternFlowGtpExtensionNextExtensionHeaderCounter)(nil), // 1280: otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + (*PatternFlowGtpExtensionNextExtensionHeaderMetricTag)(nil), // 1281: otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + (*PatternFlowGtpExtensionNextExtensionHeader)(nil), // 1282: otg.PatternFlowGtpExtensionNextExtensionHeader + (*PatternFlowGtpv2VersionCounter)(nil), // 1283: otg.PatternFlowGtpv2VersionCounter + (*PatternFlowGtpv2VersionMetricTag)(nil), // 1284: otg.PatternFlowGtpv2VersionMetricTag + (*PatternFlowGtpv2Version)(nil), // 1285: otg.PatternFlowGtpv2Version + (*PatternFlowGtpv2PiggybackingFlagCounter)(nil), // 1286: otg.PatternFlowGtpv2PiggybackingFlagCounter + (*PatternFlowGtpv2PiggybackingFlagMetricTag)(nil), // 1287: otg.PatternFlowGtpv2PiggybackingFlagMetricTag + (*PatternFlowGtpv2PiggybackingFlag)(nil), // 1288: otg.PatternFlowGtpv2PiggybackingFlag + (*PatternFlowGtpv2TeidFlagCounter)(nil), // 1289: otg.PatternFlowGtpv2TeidFlagCounter + (*PatternFlowGtpv2TeidFlagMetricTag)(nil), // 1290: otg.PatternFlowGtpv2TeidFlagMetricTag + (*PatternFlowGtpv2TeidFlag)(nil), // 1291: otg.PatternFlowGtpv2TeidFlag + (*PatternFlowGtpv2Spare1Counter)(nil), // 1292: otg.PatternFlowGtpv2Spare1Counter + (*PatternFlowGtpv2Spare1MetricTag)(nil), // 1293: otg.PatternFlowGtpv2Spare1MetricTag + (*PatternFlowGtpv2Spare1)(nil), // 1294: otg.PatternFlowGtpv2Spare1 + (*PatternFlowGtpv2MessageTypeCounter)(nil), // 1295: otg.PatternFlowGtpv2MessageTypeCounter + (*PatternFlowGtpv2MessageTypeMetricTag)(nil), // 1296: otg.PatternFlowGtpv2MessageTypeMetricTag + (*PatternFlowGtpv2MessageType)(nil), // 1297: otg.PatternFlowGtpv2MessageType + (*PatternFlowGtpv2MessageLengthCounter)(nil), // 1298: otg.PatternFlowGtpv2MessageLengthCounter + (*PatternFlowGtpv2MessageLengthMetricTag)(nil), // 1299: otg.PatternFlowGtpv2MessageLengthMetricTag + (*PatternFlowGtpv2MessageLength)(nil), // 1300: otg.PatternFlowGtpv2MessageLength + (*PatternFlowGtpv2TeidCounter)(nil), // 1301: otg.PatternFlowGtpv2TeidCounter + (*PatternFlowGtpv2TeidMetricTag)(nil), // 1302: otg.PatternFlowGtpv2TeidMetricTag + (*PatternFlowGtpv2Teid)(nil), // 1303: otg.PatternFlowGtpv2Teid + (*PatternFlowGtpv2SequenceNumberCounter)(nil), // 1304: otg.PatternFlowGtpv2SequenceNumberCounter + (*PatternFlowGtpv2SequenceNumberMetricTag)(nil), // 1305: otg.PatternFlowGtpv2SequenceNumberMetricTag + (*PatternFlowGtpv2SequenceNumber)(nil), // 1306: otg.PatternFlowGtpv2SequenceNumber + (*PatternFlowGtpv2Spare2Counter)(nil), // 1307: otg.PatternFlowGtpv2Spare2Counter + (*PatternFlowGtpv2Spare2MetricTag)(nil), // 1308: otg.PatternFlowGtpv2Spare2MetricTag + (*PatternFlowGtpv2Spare2)(nil), // 1309: otg.PatternFlowGtpv2Spare2 + (*PatternFlowArpHardwareTypeCounter)(nil), // 1310: otg.PatternFlowArpHardwareTypeCounter + (*PatternFlowArpHardwareTypeMetricTag)(nil), // 1311: otg.PatternFlowArpHardwareTypeMetricTag + (*PatternFlowArpHardwareType)(nil), // 1312: otg.PatternFlowArpHardwareType + (*PatternFlowArpProtocolTypeCounter)(nil), // 1313: otg.PatternFlowArpProtocolTypeCounter + (*PatternFlowArpProtocolTypeMetricTag)(nil), // 1314: otg.PatternFlowArpProtocolTypeMetricTag + (*PatternFlowArpProtocolType)(nil), // 1315: otg.PatternFlowArpProtocolType + (*PatternFlowArpHardwareLengthCounter)(nil), // 1316: otg.PatternFlowArpHardwareLengthCounter + (*PatternFlowArpHardwareLengthMetricTag)(nil), // 1317: otg.PatternFlowArpHardwareLengthMetricTag + (*PatternFlowArpHardwareLength)(nil), // 1318: otg.PatternFlowArpHardwareLength + (*PatternFlowArpProtocolLengthCounter)(nil), // 1319: otg.PatternFlowArpProtocolLengthCounter + (*PatternFlowArpProtocolLengthMetricTag)(nil), // 1320: otg.PatternFlowArpProtocolLengthMetricTag + (*PatternFlowArpProtocolLength)(nil), // 1321: otg.PatternFlowArpProtocolLength + (*PatternFlowArpOperationCounter)(nil), // 1322: otg.PatternFlowArpOperationCounter + (*PatternFlowArpOperationMetricTag)(nil), // 1323: otg.PatternFlowArpOperationMetricTag + (*PatternFlowArpOperation)(nil), // 1324: otg.PatternFlowArpOperation + (*PatternFlowArpSenderHardwareAddrCounter)(nil), // 1325: otg.PatternFlowArpSenderHardwareAddrCounter + (*PatternFlowArpSenderHardwareAddrMetricTag)(nil), // 1326: otg.PatternFlowArpSenderHardwareAddrMetricTag + (*PatternFlowArpSenderHardwareAddr)(nil), // 1327: otg.PatternFlowArpSenderHardwareAddr + (*PatternFlowArpSenderProtocolAddrCounter)(nil), // 1328: otg.PatternFlowArpSenderProtocolAddrCounter + (*PatternFlowArpSenderProtocolAddrMetricTag)(nil), // 1329: otg.PatternFlowArpSenderProtocolAddrMetricTag + (*PatternFlowArpSenderProtocolAddr)(nil), // 1330: otg.PatternFlowArpSenderProtocolAddr + (*PatternFlowArpTargetHardwareAddrCounter)(nil), // 1331: otg.PatternFlowArpTargetHardwareAddrCounter + (*PatternFlowArpTargetHardwareAddrMetricTag)(nil), // 1332: otg.PatternFlowArpTargetHardwareAddrMetricTag + (*PatternFlowArpTargetHardwareAddr)(nil), // 1333: otg.PatternFlowArpTargetHardwareAddr + (*PatternFlowArpTargetProtocolAddrCounter)(nil), // 1334: otg.PatternFlowArpTargetProtocolAddrCounter + (*PatternFlowArpTargetProtocolAddrMetricTag)(nil), // 1335: otg.PatternFlowArpTargetProtocolAddrMetricTag + (*PatternFlowArpTargetProtocolAddr)(nil), // 1336: otg.PatternFlowArpTargetProtocolAddr + (*PatternFlowIcmpEchoTypeCounter)(nil), // 1337: otg.PatternFlowIcmpEchoTypeCounter + (*PatternFlowIcmpEchoTypeMetricTag)(nil), // 1338: otg.PatternFlowIcmpEchoTypeMetricTag + (*PatternFlowIcmpEchoType)(nil), // 1339: otg.PatternFlowIcmpEchoType + (*PatternFlowIcmpEchoCodeCounter)(nil), // 1340: otg.PatternFlowIcmpEchoCodeCounter + (*PatternFlowIcmpEchoCodeMetricTag)(nil), // 1341: otg.PatternFlowIcmpEchoCodeMetricTag + (*PatternFlowIcmpEchoCode)(nil), // 1342: otg.PatternFlowIcmpEchoCode + (*PatternFlowIcmpEchoChecksum)(nil), // 1343: otg.PatternFlowIcmpEchoChecksum + (*PatternFlowIcmpEchoIdentifierCounter)(nil), // 1344: otg.PatternFlowIcmpEchoIdentifierCounter + (*PatternFlowIcmpEchoIdentifierMetricTag)(nil), // 1345: otg.PatternFlowIcmpEchoIdentifierMetricTag + (*PatternFlowIcmpEchoIdentifier)(nil), // 1346: otg.PatternFlowIcmpEchoIdentifier + (*PatternFlowIcmpEchoSequenceNumberCounter)(nil), // 1347: otg.PatternFlowIcmpEchoSequenceNumberCounter + (*PatternFlowIcmpEchoSequenceNumberMetricTag)(nil), // 1348: otg.PatternFlowIcmpEchoSequenceNumberMetricTag + (*PatternFlowIcmpEchoSequenceNumber)(nil), // 1349: otg.PatternFlowIcmpEchoSequenceNumber + (*PatternFlowIcmpCommonChecksum)(nil), // 1350: otg.PatternFlowIcmpCommonChecksum + (*PatternFlowIcmpNextFieldsIdentifierCounter)(nil), // 1351: otg.PatternFlowIcmpNextFieldsIdentifierCounter + (*PatternFlowIcmpNextFieldsIdentifierMetricTag)(nil), // 1352: otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + (*PatternFlowIcmpNextFieldsIdentifier)(nil), // 1353: otg.PatternFlowIcmpNextFieldsIdentifier + (*PatternFlowIcmpNextFieldsSequenceNumberCounter)(nil), // 1354: otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + (*PatternFlowIcmpNextFieldsSequenceNumberMetricTag)(nil), // 1355: otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + (*PatternFlowIcmpNextFieldsSequenceNumber)(nil), // 1356: otg.PatternFlowIcmpNextFieldsSequenceNumber + (*PatternFlowIcmpv6EchoTypeCounter)(nil), // 1357: otg.PatternFlowIcmpv6EchoTypeCounter + (*PatternFlowIcmpv6EchoTypeMetricTag)(nil), // 1358: otg.PatternFlowIcmpv6EchoTypeMetricTag + (*PatternFlowIcmpv6EchoType)(nil), // 1359: otg.PatternFlowIcmpv6EchoType + (*PatternFlowIcmpv6EchoCodeCounter)(nil), // 1360: otg.PatternFlowIcmpv6EchoCodeCounter + (*PatternFlowIcmpv6EchoCodeMetricTag)(nil), // 1361: otg.PatternFlowIcmpv6EchoCodeMetricTag + (*PatternFlowIcmpv6EchoCode)(nil), // 1362: otg.PatternFlowIcmpv6EchoCode + (*PatternFlowIcmpv6EchoIdentifierCounter)(nil), // 1363: otg.PatternFlowIcmpv6EchoIdentifierCounter + (*PatternFlowIcmpv6EchoIdentifierMetricTag)(nil), // 1364: otg.PatternFlowIcmpv6EchoIdentifierMetricTag + (*PatternFlowIcmpv6EchoIdentifier)(nil), // 1365: otg.PatternFlowIcmpv6EchoIdentifier + (*PatternFlowIcmpv6EchoSequenceNumberCounter)(nil), // 1366: otg.PatternFlowIcmpv6EchoSequenceNumberCounter + (*PatternFlowIcmpv6EchoSequenceNumberMetricTag)(nil), // 1367: otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + (*PatternFlowIcmpv6EchoSequenceNumber)(nil), // 1368: otg.PatternFlowIcmpv6EchoSequenceNumber + (*PatternFlowIcmpv6EchoChecksum)(nil), // 1369: otg.PatternFlowIcmpv6EchoChecksum + (*PatternFlowIcmpv6CommonChecksum)(nil), // 1370: otg.PatternFlowIcmpv6CommonChecksum + (*PatternFlowPppAddressCounter)(nil), // 1371: otg.PatternFlowPppAddressCounter + (*PatternFlowPppAddressMetricTag)(nil), // 1372: otg.PatternFlowPppAddressMetricTag + (*PatternFlowPppAddress)(nil), // 1373: otg.PatternFlowPppAddress + (*PatternFlowPppControlCounter)(nil), // 1374: otg.PatternFlowPppControlCounter + (*PatternFlowPppControlMetricTag)(nil), // 1375: otg.PatternFlowPppControlMetricTag + (*PatternFlowPppControl)(nil), // 1376: otg.PatternFlowPppControl + (*PatternFlowPppProtocolTypeCounter)(nil), // 1377: otg.PatternFlowPppProtocolTypeCounter + (*PatternFlowPppProtocolTypeMetricTag)(nil), // 1378: otg.PatternFlowPppProtocolTypeMetricTag + (*PatternFlowPppProtocolType)(nil), // 1379: otg.PatternFlowPppProtocolType + (*PatternFlowIgmpv1VersionCounter)(nil), // 1380: otg.PatternFlowIgmpv1VersionCounter + (*PatternFlowIgmpv1VersionMetricTag)(nil), // 1381: otg.PatternFlowIgmpv1VersionMetricTag + (*PatternFlowIgmpv1Version)(nil), // 1382: otg.PatternFlowIgmpv1Version + (*PatternFlowIgmpv1TypeCounter)(nil), // 1383: otg.PatternFlowIgmpv1TypeCounter + (*PatternFlowIgmpv1TypeMetricTag)(nil), // 1384: otg.PatternFlowIgmpv1TypeMetricTag + (*PatternFlowIgmpv1Type)(nil), // 1385: otg.PatternFlowIgmpv1Type + (*PatternFlowIgmpv1UnusedCounter)(nil), // 1386: otg.PatternFlowIgmpv1UnusedCounter + (*PatternFlowIgmpv1UnusedMetricTag)(nil), // 1387: otg.PatternFlowIgmpv1UnusedMetricTag + (*PatternFlowIgmpv1Unused)(nil), // 1388: otg.PatternFlowIgmpv1Unused + (*PatternFlowIgmpv1Checksum)(nil), // 1389: otg.PatternFlowIgmpv1Checksum + (*PatternFlowIgmpv1GroupAddressCounter)(nil), // 1390: otg.PatternFlowIgmpv1GroupAddressCounter + (*PatternFlowIgmpv1GroupAddressMetricTag)(nil), // 1391: otg.PatternFlowIgmpv1GroupAddressMetricTag + (*PatternFlowIgmpv1GroupAddress)(nil), // 1392: otg.PatternFlowIgmpv1GroupAddress + (*PatternFlowMplsLabelCounter)(nil), // 1393: otg.PatternFlowMplsLabelCounter + (*PatternFlowMplsLabelMetricTag)(nil), // 1394: otg.PatternFlowMplsLabelMetricTag + (*PatternFlowMplsLabel)(nil), // 1395: otg.PatternFlowMplsLabel + (*PatternFlowMplsTrafficClassCounter)(nil), // 1396: otg.PatternFlowMplsTrafficClassCounter + (*PatternFlowMplsTrafficClassMetricTag)(nil), // 1397: otg.PatternFlowMplsTrafficClassMetricTag + (*PatternFlowMplsTrafficClass)(nil), // 1398: otg.PatternFlowMplsTrafficClass + (*PatternFlowMplsBottomOfStackCounter)(nil), // 1399: otg.PatternFlowMplsBottomOfStackCounter + (*PatternFlowMplsBottomOfStackMetricTag)(nil), // 1400: otg.PatternFlowMplsBottomOfStackMetricTag + (*PatternFlowMplsBottomOfStack)(nil), // 1401: otg.PatternFlowMplsBottomOfStack + (*PatternFlowMplsTimeToLiveCounter)(nil), // 1402: otg.PatternFlowMplsTimeToLiveCounter + (*PatternFlowMplsTimeToLiveMetricTag)(nil), // 1403: otg.PatternFlowMplsTimeToLiveMetricTag + (*PatternFlowMplsTimeToLive)(nil), // 1404: otg.PatternFlowMplsTimeToLive + (*PatternFlowSnmpv2CVersionCounter)(nil), // 1405: otg.PatternFlowSnmpv2cVersionCounter + (*PatternFlowSnmpv2CVersion)(nil), // 1406: otg.PatternFlowSnmpv2cVersion + (*PatternFlowSnmpv2CPDURequestIdCounter)(nil), // 1407: otg.PatternFlowSnmpv2cPDURequestIdCounter + (*PatternFlowSnmpv2CPDURequestId)(nil), // 1408: otg.PatternFlowSnmpv2cPDURequestId + (*PatternFlowSnmpv2CPDUErrorIndexCounter)(nil), // 1409: otg.PatternFlowSnmpv2cPDUErrorIndexCounter + (*PatternFlowSnmpv2CPDUErrorIndex)(nil), // 1410: otg.PatternFlowSnmpv2cPDUErrorIndex + (*PatternFlowSnmpv2CBulkPDURequestIdCounter)(nil), // 1411: otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + (*PatternFlowSnmpv2CBulkPDURequestId)(nil), // 1412: otg.PatternFlowSnmpv2cBulkPDURequestId + (*PatternFlowSnmpv2CBulkPDUNonRepeaters)(nil), // 1413: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters + (*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter)(nil), // 1414: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + (*PatternFlowSnmpv2CBulkPDUMaxRepetitions)(nil), // 1415: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions + (*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter)(nil), // 1416: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + (*PatternFlowSnmpv2CVariableBindingValueIntegerValue)(nil), // 1417: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter)(nil), // 1418: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue)(nil), // 1419: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue + (*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter)(nil), // 1420: otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + (*PatternFlowSnmpv2CVariableBindingValueCounterValue)(nil), // 1421: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter)(nil), // 1422: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue)(nil), // 1423: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter)(nil), // 1424: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue)(nil), // 1425: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter)(nil), // 1426: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue)(nil), // 1427: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + (*PatternFlowSnmpv2CCommonRequestIdCounter)(nil), // 1428: otg.PatternFlowSnmpv2cCommonRequestIdCounter + (*PatternFlowSnmpv2CCommonRequestId)(nil), // 1429: otg.PatternFlowSnmpv2cCommonRequestId + (*PatternFlowRsvpRsvpChecksum)(nil), // 1430: otg.PatternFlowRsvpRsvpChecksum + (*PatternFlowRsvpTimeToLiveCounter)(nil), // 1431: otg.PatternFlowRsvpTimeToLiveCounter + (*PatternFlowRsvpTimeToLive)(nil), // 1432: otg.PatternFlowRsvpTimeToLive + (*PatternFlowRsvpReservedCounter)(nil), // 1433: otg.PatternFlowRsvpReservedCounter + (*PatternFlowRsvpReserved)(nil), // 1434: otg.PatternFlowRsvpReserved + (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter)(nil), // 1435: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter + (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress)(nil), // 1436: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress + (*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter)(nil), // 1437: otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter + (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved)(nil), // 1438: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved + (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter)(nil), // 1439: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter + (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId)(nil), // 1440: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId + (*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter)(nil), // 1441: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter + (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger)(nil), // 1442: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger + (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter)(nil), // 1443: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter + (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4)(nil), // 1444: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 + (*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter)(nil), // 1445: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter + (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address)(nil), // 1446: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address + (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter)(nil), // 1447: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter + (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle)(nil), // 1448: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle + (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter)(nil), // 1449: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter + (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR)(nil), // 1450: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter)(nil), // 1451: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit)(nil), // 1452: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter)(nil), // 1453: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address)(nil), // 1454: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address + (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter)(nil), // 1455: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter + (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit)(nil), // 1456: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter)(nil), // 1457: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved)(nil), // 1458: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter)(nil), // 1459: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid)(nil), // 1460: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter)(nil), // 1461: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress)(nil), // 1462: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter)(nil), // 1463: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved)(nil), // 1464: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter)(nil), // 1465: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId)(nil), // 1466: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId + (*PatternFlowRSVPPathSenderTspecIntServVersionCounter)(nil), // 1467: otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter + (*PatternFlowRSVPPathSenderTspecIntServVersion)(nil), // 1468: otg.PatternFlowRSVPPathSenderTspecIntServVersion + (*PatternFlowRSVPPathSenderTspecIntServReserved1Counter)(nil), // 1469: otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter + (*PatternFlowRSVPPathSenderTspecIntServReserved1)(nil), // 1470: otg.PatternFlowRSVPPathSenderTspecIntServReserved1 + (*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter)(nil), // 1471: otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter + (*PatternFlowRSVPPathSenderTspecIntServOverallLength)(nil), // 1472: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength + (*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter)(nil), // 1473: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter + (*PatternFlowRSVPPathSenderTspecIntServServiceHeader)(nil), // 1474: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader + (*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter)(nil), // 1475: otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter + (*PatternFlowRSVPPathSenderTspecIntServZeroBit)(nil), // 1476: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit + (*PatternFlowRSVPPathSenderTspecIntServReserved2Counter)(nil), // 1477: otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter + (*PatternFlowRSVPPathSenderTspecIntServReserved2)(nil), // 1478: otg.PatternFlowRSVPPathSenderTspecIntServReserved2 + (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter)(nil), // 1479: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter + (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData)(nil), // 1480: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData + (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter)(nil), // 1481: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter + (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec)(nil), // 1482: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec + (*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter)(nil), // 1483: otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter + (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag)(nil), // 1484: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag + (*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter)(nil), // 1485: otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter + (*PatternFlowRSVPPathSenderTspecIntServParameter127Length)(nil), // 1486: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length + (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter)(nil), // 1487: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter + (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit)(nil), // 1488: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit + (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter)(nil), // 1489: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter + (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize)(nil), // 1490: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter)(nil), // 1491: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address)(nil), // 1492: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter)(nil), // 1493: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength)(nil), // 1494: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength + (*PatternFlowRSVPPathRecordRouteType1LabelFlags)(nil), // 1495: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags + (*PatternFlowRSVPPathRecordRouteType1LabelCType)(nil), // 1496: otg.PatternFlowRSVPPathRecordRouteType1LabelCType + (*PatternFlowRSVPPathObjectsCustomTypeCounter)(nil), // 1497: otg.PatternFlowRSVPPathObjectsCustomTypeCounter + (*PatternFlowRSVPPathObjectsCustomType)(nil), // 1498: otg.PatternFlowRSVPPathObjectsCustomType + (*Version)(nil), // 1499: otg.Version + (*Success)(nil), // 1500: otg.Success + (*Failure)(nil), // 1501: otg.Failure + (*SetConfigRequest)(nil), // 1502: otg.SetConfigRequest + (*UpdateConfigRequest)(nil), // 1503: otg.UpdateConfigRequest + (*SetConfigResponse)(nil), // 1504: otg.SetConfigResponse + (*GetConfigResponse)(nil), // 1505: otg.GetConfigResponse + (*UpdateConfigResponse)(nil), // 1506: otg.UpdateConfigResponse + (*SetControlStateRequest)(nil), // 1507: otg.SetControlStateRequest + (*SetControlStateResponse)(nil), // 1508: otg.SetControlStateResponse + (*SetControlActionRequest)(nil), // 1509: otg.SetControlActionRequest + (*SetControlActionResponse)(nil), // 1510: otg.SetControlActionResponse + (*GetMetricsRequest)(nil), // 1511: otg.GetMetricsRequest + (*GetMetricsResponse)(nil), // 1512: otg.GetMetricsResponse + (*GetStatesRequest)(nil), // 1513: otg.GetStatesRequest + (*GetStatesResponse)(nil), // 1514: otg.GetStatesResponse + (*GetCaptureRequest)(nil), // 1515: otg.GetCaptureRequest + (*GetCaptureResponse)(nil), // 1516: otg.GetCaptureResponse + (*GetVersionResponse)(nil), // 1517: otg.GetVersionResponse + (*LagProtocol_Choice)(nil), // 1518: otg.LagProtocol.Choice + (*LagPortLacp_ActorActivity)(nil), // 1519: otg.LagPortLacp.ActorActivity + (*EthernetConnection_Choice)(nil), // 1520: otg.EthernetConnection.Choice + (*DeviceVlan_Tpid)(nil), // 1521: otg.DeviceVlan.Tpid + (*DeviceIpv4GatewayMAC_Choice)(nil), // 1522: otg.DeviceIpv4GatewayMAC.Choice + (*DeviceIpv6GatewayMAC_Choice)(nil), // 1523: otg.DeviceIpv6GatewayMAC.Choice + (*DeviceDhcpv4Client_Choice)(nil), // 1524: otg.DeviceDhcpv4client.Choice + (*DeviceDhcpv6ClientIaType_Choice)(nil), // 1525: otg.DeviceDhcpv6clientIaType.Choice + (*DeviceDhcpv6ClientDuidType_Choice)(nil), // 1526: otg.DeviceDhcpv6clientDuidType.Choice + (*Dhcpv6ClientOptionsServerIdentifier_Choice)(nil), // 1527: otg.Dhcpv6ClientOptionsServerIdentifier.Choice + (*Dhcpv6ClientOptionsDuidUuidVersion_Choice)(nil), // 1528: otg.Dhcpv6ClientOptionsDuidUuidVersion.Choice + (*Dhcpv6ClientOptionsDuidUuidVariant_Choice)(nil), // 1529: otg.Dhcpv6ClientOptionsDuidUuidVariant.Choice + (*Dhcpv6ClientOptionsOptionsRequest_Choice)(nil), // 1530: otg.Dhcpv6ClientOptionsOptionsRequest.Choice + (*Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice)(nil), // 1531: otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.Choice + (*Dhcpv6ClientOptionsIncludedMessages_Choice)(nil), // 1532: otg.Dhcpv6ClientOptionsIncludedMessages.Choice + (*Dhcpv6ClientOptionsMessageType_Choice)(nil), // 1533: otg.Dhcpv6ClientOptionsMessageType.Choice + (*Dhcpv6ServerOptionsIncludedMessages_Choice)(nil), // 1534: otg.Dhcpv6ServerOptionsIncludedMessages.Choice + (*Dhcpv6ServerOptionsMessageType_Choice)(nil), // 1535: otg.Dhcpv6ServerOptionsMessageType.Choice + (*Layer1_Speed)(nil), // 1536: otg.Layer1.Speed + (*Layer1_Media)(nil), // 1537: otg.Layer1.Media + (*Layer1FlowControl_Choice)(nil), // 1538: otg.Layer1FlowControl.Choice + (*Capture_Format)(nil), // 1539: otg.Capture.Format + (*CaptureFilter_Choice)(nil), // 1540: otg.CaptureFilter.Choice + (*IsisInterface_NetworkType)(nil), // 1541: otg.IsisInterface.NetworkType + (*IsisInterface_LevelType)(nil), // 1542: otg.IsisInterface.LevelType + (*IsisInterfaceAuthentication_AuthType)(nil), // 1543: otg.IsisInterfaceAuthentication.AuthType + (*IsisAuthenticationBase_AuthType)(nil), // 1544: otg.IsisAuthenticationBase.AuthType + (*IsisV4RouteRange_OriginType)(nil), // 1545: otg.IsisV4RouteRange.OriginType + (*IsisV4RouteRange_RedistributionType)(nil), // 1546: otg.IsisV4RouteRange.RedistributionType + (*IsisV6RouteRange_OriginType)(nil), // 1547: otg.IsisV6RouteRange.OriginType + (*IsisV6RouteRange_RedistributionType)(nil), // 1548: otg.IsisV6RouteRange.RedistributionType + (*DeviceBgpMessageHeaderError_Subcode)(nil), // 1549: otg.DeviceBgpMessageHeaderError.Subcode + (*DeviceBgpOpenMessageError_Subcode)(nil), // 1550: otg.DeviceBgpOpenMessageError.Subcode + (*DeviceBgpUpdateMessageError_Subcode)(nil), // 1551: otg.DeviceBgpUpdateMessageError.Subcode + (*DeviceBgpCeaseError_Subcode)(nil), // 1552: otg.DeviceBgpCeaseError.Subcode + (*BgpV4Peer_AsType)(nil), // 1553: otg.BgpV4Peer.AsType + (*BgpV4Peer_AsNumberWidth)(nil), // 1554: otg.BgpV4Peer.AsNumberWidth + (*BgpV4EthernetSegment_ActiveMode)(nil), // 1555: otg.BgpV4EthernetSegment.ActiveMode + (*BgpRouteAdvanced_Origin)(nil), // 1556: otg.BgpRouteAdvanced.Origin + (*BgpCommunity_Type)(nil), // 1557: otg.BgpCommunity.Type + (*BgpExtCommunity_Type)(nil), // 1558: otg.BgpExtCommunity.Type + (*BgpExtCommunity_Subtype)(nil), // 1559: otg.BgpExtCommunity.Subtype + (*BgpAsPath_AsSetMode)(nil), // 1560: otg.BgpAsPath.AsSetMode + (*BgpAsPathSegment_Type)(nil), // 1561: otg.BgpAsPathSegment.Type + (*BgpV4EvpnEvis_Choice)(nil), // 1562: otg.BgpV4EvpnEvis.Choice + (*BgpV4EviVxlan_ReplicationType)(nil), // 1563: otg.BgpV4EviVxlan.ReplicationType + (*BgpRouteDistinguisher_RdType)(nil), // 1564: otg.BgpRouteDistinguisher.RdType + (*BgpRouteTarget_RtType)(nil), // 1565: otg.BgpRouteTarget.RtType + (*BgpV4RouteRange_NextHopMode)(nil), // 1566: otg.BgpV4RouteRange.NextHopMode + (*BgpV4RouteRange_NextHopAddressType)(nil), // 1567: otg.BgpV4RouteRange.NextHopAddressType + (*BgpExtendedCommunity_Choice)(nil), // 1568: otg.BgpExtendedCommunity.Choice + (*BgpExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1569: otg.BgpExtendedCommunityTransitive2OctetAsType.Choice + (*BgpExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1570: otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice + (*BgpExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1571: otg.BgpExtendedCommunityTransitive4OctetAsType.Choice + (*BgpExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1572: otg.BgpExtendedCommunityTransitiveOpaqueType.Choice + (*BgpExtendedCommunityTransitiveEvpnType_Choice)(nil), // 1573: otg.BgpExtendedCommunityTransitiveEvpnType.Choice + (*BgpExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1574: otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice + (*BgpV6RouteRange_NextHopMode)(nil), // 1575: otg.BgpV6RouteRange.NextHopMode + (*BgpV6RouteRange_NextHopAddressType)(nil), // 1576: otg.BgpV6RouteRange.NextHopAddressType + (*BgpSrteV4Policy_NextHopMode)(nil), // 1577: otg.BgpSrteV4Policy.NextHopMode + (*BgpSrteV4Policy_NextHopAddressType)(nil), // 1578: otg.BgpSrteV4Policy.NextHopAddressType + (*BgpSrteRemoteEndpointSubTlv_AddressFamily)(nil), // 1579: otg.BgpSrteRemoteEndpointSubTlv.AddressFamily + (*BgpSrteBindingSubTlv_BindingSidType)(nil), // 1580: otg.BgpSrteBindingSubTlv.BindingSidType + (*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy)(nil), // 1581: otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy + (*BgpSrteSegment_SegmentType)(nil), // 1582: otg.BgpSrteSegment.SegmentType + (*BgpSrteV6Policy_NextHopMode)(nil), // 1583: otg.BgpSrteV6Policy.NextHopMode + (*BgpSrteV6Policy_NextHopAddressType)(nil), // 1584: otg.BgpSrteV6Policy.NextHopAddressType + (*BgpUpdateReplay_Choice)(nil), // 1585: otg.BgpUpdateReplay.Choice + (*BgpAttributes_Origin)(nil), // 1586: otg.BgpAttributes.Origin + (*BgpAttributesAsPath_Choice)(nil), // 1587: otg.BgpAttributesAsPath.Choice + (*BgpAttributesFourByteAsPathSegment_Type)(nil), // 1588: otg.BgpAttributesFourByteAsPathSegment.Type + (*BgpAttributesTwoByteAsPathSegment_Type)(nil), // 1589: otg.BgpAttributesTwoByteAsPathSegment.Type + (*BgpAttributesAggregator_Choice)(nil), // 1590: otg.BgpAttributesAggregator.Choice + (*BgpAttributesCommunity_Choice)(nil), // 1591: otg.BgpAttributesCommunity.Choice + (*BgpAttributesNextHop_Choice)(nil), // 1592: otg.BgpAttributesNextHop.Choice + (*BgpAttributesMpReachNlri_Choice)(nil), // 1593: otg.BgpAttributesMpReachNlri.Choice + (*BgpAttributesMpUnreachNlri_Choice)(nil), // 1594: otg.BgpAttributesMpUnreachNlri.Choice + (*BgpAttributesTunnelEncapsulation_Choice)(nil), // 1595: otg.BgpAttributesTunnelEncapsulation.Choice + (*BgpAttributesBsid_Choice)(nil), // 1596: otg.BgpAttributesBsid.Choice + (*BgpAttributesSrPolicyExplicitNullPolicy_Choice)(nil), // 1597: otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice + (*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice)(nil), // 1598: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice + (*BgpV6Peer_AsType)(nil), // 1599: otg.BgpV6Peer.AsType + (*BgpV6Peer_AsNumberWidth)(nil), // 1600: otg.BgpV6Peer.AsNumberWidth + (*BgpV6EthernetSegment_ActiveMode)(nil), // 1601: otg.BgpV6EthernetSegment.ActiveMode + (*BgpV6EvpnEvis_Choice)(nil), // 1602: otg.BgpV6EvpnEvis.Choice + (*BgpV6EviVxlan_ReplicationType)(nil), // 1603: otg.BgpV6EviVxlan.ReplicationType + (*VxlanV4TunnelDestinationIPMode_Choice)(nil), // 1604: otg.VxlanV4TunnelDestinationIPMode.Choice + (*VxlanV6TunnelDestinationIPMode_Choice)(nil), // 1605: otg.VxlanV6TunnelDestinationIPMode.Choice + (*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle)(nil), // 1606: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle + (*RsvpEro_PrependNeighborIp)(nil), // 1607: otg.RsvpEro.PrependNeighborIp + (*RsvpEroSubobject_Type)(nil), // 1608: otg.RsvpEroSubobject.Type + (*RsvpEroSubobject_HopType)(nil), // 1609: otg.RsvpEroSubobject.HopType + (*Dhcpv6ServerIaType_Choice)(nil), // 1610: otg.Dhcpv6ServerIaType.Choice + (*FlowTxRx_Choice)(nil), // 1611: otg.FlowTxRx.Choice + (*FlowRouter_Mode)(nil), // 1612: otg.FlowRouter.Mode + (*FlowHeader_Choice)(nil), // 1613: otg.FlowHeader.Choice + (*FlowIpv4Options_Choice)(nil), // 1614: otg.FlowIpv4Options.Choice + (*FlowIpv4OptionsCustomLength_Choice)(nil), // 1615: otg.FlowIpv4OptionsCustomLength.Choice + (*FlowIpv4Priority_Choice)(nil), // 1616: otg.FlowIpv4Priority.Choice + (*FlowIpv4Auto_Choice)(nil), // 1617: otg.FlowIpv4Auto.Choice + (*FlowIpv6Auto_Choice)(nil), // 1618: otg.FlowIpv6Auto.Choice + (*FlowIcmp_Choice)(nil), // 1619: otg.FlowIcmp.Choice + (*FlowIcmpv6_Choice)(nil), // 1620: otg.FlowIcmpv6.Choice + (*FlowSnmpv2CData_Choice)(nil), // 1621: otg.FlowSnmpv2cData.Choice + (*FlowSnmpv2CPDU_ErrorStatus)(nil), // 1622: otg.FlowSnmpv2cPDU.ErrorStatus + (*FlowSnmpv2CVariableBindingValue_Choice)(nil), // 1623: otg.FlowSnmpv2cVariableBindingValue.Choice + (*FlowSnmpv2CVariableBindingStringValue_Choice)(nil), // 1624: otg.FlowSnmpv2cVariableBindingStringValue.Choice + (*FlowRsvp_Flag)(nil), // 1625: otg.FlowRsvp.Flag + (*FlowRSVPLength_Choice)(nil), // 1626: otg.FlowRSVPLength.Choice + (*FlowRSVPMessage_Choice)(nil), // 1627: otg.FlowRSVPMessage.Choice + (*FlowRSVPObjectLength_Choice)(nil), // 1628: otg.FlowRSVPObjectLength.Choice + (*FlowRSVPPathObjectsClass_Choice)(nil), // 1629: otg.FlowRSVPPathObjectsClass.Choice + (*FlowRSVPPathObjectsSessionCType_Choice)(nil), // 1630: otg.FlowRSVPPathObjectsSessionCType.Choice + (*FlowRSVPPathSessionExtTunnelId_Choice)(nil), // 1631: otg.FlowRSVPPathSessionExtTunnelId.Choice + (*FlowRSVPPathObjectsRsvpHopCType_Choice)(nil), // 1632: otg.FlowRSVPPathObjectsRsvpHopCType.Choice + (*FlowRSVPPathObjectsTimeValuesCType_Choice)(nil), // 1633: otg.FlowRSVPPathObjectsTimeValuesCType.Choice + (*FlowRSVPPathObjectsClassExplicitRouteCType_Choice)(nil), // 1634: otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice + (*FlowRSVPType1ExplicitRouteSubobjectsType_Choice)(nil), // 1635: otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice + (*FlowRSVPExplicitRouteLength_Choice)(nil), // 1636: otg.FlowRSVPExplicitRouteLength.Choice + (*FlowRSVPExplicitRouteASNumberLength_Choice)(nil), // 1637: otg.FlowRSVPExplicitRouteASNumberLength.Choice + (*FlowRSVPPathObjectsLabelRequestCType_Choice)(nil), // 1638: otg.FlowRSVPPathObjectsLabelRequestCType.Choice + (*FlowRSVPPathObjectsSessionAttributeCType_Choice)(nil), // 1639: otg.FlowRSVPPathObjectsSessionAttributeCType.Choice + (*FlowRSVPLspTunnelFlag_Choice)(nil), // 1640: otg.FlowRSVPLspTunnelFlag.Choice + (*FlowRSVPSessionAttributeNameLength_Choice)(nil), // 1641: otg.FlowRSVPSessionAttributeNameLength.Choice + (*FlowRSVPPathObjectsSenderTemplateCType_Choice)(nil), // 1642: otg.FlowRSVPPathObjectsSenderTemplateCType.Choice + (*FlowRSVPPathObjectsSenderTspecCType_Choice)(nil), // 1643: otg.FlowRSVPPathObjectsSenderTspecCType.Choice + (*FlowRSVPPathObjectsRecordRouteCType_Choice)(nil), // 1644: otg.FlowRSVPPathObjectsRecordRouteCType.Choice + (*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice)(nil), // 1645: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice + (*FlowRSVPRecordRouteIPv4Flag_Choice)(nil), // 1646: otg.FlowRSVPRecordRouteIPv4Flag.Choice + (*FlowRSVPPathRecordRouteLabel_Choice)(nil), // 1647: otg.FlowRSVPPathRecordRouteLabel.Choice + (*FlowRSVPRouteRecordLength_Choice)(nil), // 1648: otg.FlowRSVPRouteRecordLength.Choice + (*FlowSize_Choice)(nil), // 1649: otg.FlowSize.Choice + (*FlowSizeWeightPairs_Choice)(nil), // 1650: otg.FlowSizeWeightPairs.Choice + (*FlowSizeWeightPairs_Predefined)(nil), // 1651: otg.FlowSizeWeightPairs.Predefined + (*FlowRate_Choice)(nil), // 1652: otg.FlowRate.Choice + (*FlowDuration_Choice)(nil), // 1653: otg.FlowDuration.Choice + (*FlowDelay_Choice)(nil), // 1654: otg.FlowDelay.Choice + (*FlowDurationInterBurstGap_Choice)(nil), // 1655: otg.FlowDurationInterBurstGap.Choice + (*FlowLatencyMetrics_Mode)(nil), // 1656: otg.FlowLatencyMetrics.Mode + (*FlowRxTxRatio_Choice)(nil), // 1657: otg.FlowRxTxRatio.Choice + (*EventRequest_Type)(nil), // 1658: otg.EventRequest.Type + (*LldpConnection_Choice)(nil), // 1659: otg.LldpConnection.Choice + (*LldpChassisId_Choice)(nil), // 1660: otg.LldpChassisId.Choice + (*LldpPortId_Choice)(nil), // 1661: otg.LldpPortId.Choice + (*LldpChassisMacSubType_Choice)(nil), // 1662: otg.LldpChassisMacSubType.Choice + (*LldpPortInterfaceNameSubType_Choice)(nil), // 1663: otg.LldpPortInterfaceNameSubType.Choice + (*LldpSystemName_Choice)(nil), // 1664: otg.LldpSystemName.Choice + (*Error_Kind)(nil), // 1665: otg.Error.Kind + (*ConfigUpdate_Choice)(nil), // 1666: otg.ConfigUpdate.Choice + (*FlowsUpdate_PropertyNames)(nil), // 1667: otg.FlowsUpdate.PropertyNames + (*ControlState_Choice)(nil), // 1668: otg.ControlState.Choice + (*StatePort_Choice)(nil), // 1669: otg.StatePort.Choice + (*StateTraffic_Choice)(nil), // 1670: otg.StateTraffic.Choice + (*StateProtocol_Choice)(nil), // 1671: otg.StateProtocol.Choice + (*StatePortLink_State)(nil), // 1672: otg.StatePortLink.State + (*StatePortCapture_State)(nil), // 1673: otg.StatePortCapture.State + (*StateTrafficFlowTransmit_State)(nil), // 1674: otg.StateTrafficFlowTransmit.State + (*StateProtocolAll_State)(nil), // 1675: otg.StateProtocolAll.State + (*StateProtocolRoute_State)(nil), // 1676: otg.StateProtocolRoute.State + (*StateProtocolLacp_Choice)(nil), // 1677: otg.StateProtocolLacp.Choice + (*StateProtocolLacpAdmin_State)(nil), // 1678: otg.StateProtocolLacpAdmin.State + (*StateProtocolLacpMemberPorts_State)(nil), // 1679: otg.StateProtocolLacpMemberPorts.State + (*StateProtocolBgp_Choice)(nil), // 1680: otg.StateProtocolBgp.Choice + (*StateProtocolBgpPeers_State)(nil), // 1681: otg.StateProtocolBgpPeers.State + (*StateProtocolIsis_Choice)(nil), // 1682: otg.StateProtocolIsis.Choice + (*StateProtocolIsisRouters_State)(nil), // 1683: otg.StateProtocolIsisRouters.State + (*ControlAction_Choice)(nil), // 1684: otg.ControlAction.Choice + (*ActionResponse_Choice)(nil), // 1685: otg.ActionResponse.Choice + (*ActionProtocol_Choice)(nil), // 1686: otg.ActionProtocol.Choice + (*ActionResponseProtocol_Choice)(nil), // 1687: otg.ActionResponseProtocol.Choice + (*ActionProtocolIpv4_Choice)(nil), // 1688: otg.ActionProtocolIpv4.Choice + (*ActionResponseProtocolIpv4_Choice)(nil), // 1689: otg.ActionResponseProtocolIpv4.Choice + (*ActionResponseProtocolIpv4PingResponse_Result)(nil), // 1690: otg.ActionResponseProtocolIpv4PingResponse.Result + (*ActionProtocolIpv6_Choice)(nil), // 1691: otg.ActionProtocolIpv6.Choice + (*ActionResponseProtocolIpv6_Choice)(nil), // 1692: otg.ActionResponseProtocolIpv6.Choice + (*ActionResponseProtocolIpv6PingResponse_Result)(nil), // 1693: otg.ActionResponseProtocolIpv6PingResponse.Result + (*ActionProtocolBgp_Choice)(nil), // 1694: otg.ActionProtocolBgp.Choice + (*ActionProtocolBgpNotification_Choice)(nil), // 1695: otg.ActionProtocolBgpNotification.Choice + (*MetricsRequest_Choice)(nil), // 1696: otg.MetricsRequest.Choice + (*MetricsResponse_Choice)(nil), // 1697: otg.MetricsResponse.Choice + (*PortMetricsRequest_ColumnNames)(nil), // 1698: otg.PortMetricsRequest.ColumnNames + (*PortMetric_Link)(nil), // 1699: otg.PortMetric.Link + (*PortMetric_Capture)(nil), // 1700: otg.PortMetric.Capture + (*PortMetric_Transmit)(nil), // 1701: otg.PortMetric.Transmit + (*FlowMetricsRequest_MetricNames)(nil), // 1702: otg.FlowMetricsRequest.MetricNames + (*FlowTaggedMetricsFilter_MetricNames)(nil), // 1703: otg.FlowTaggedMetricsFilter.MetricNames + (*FlowMetric_Transmit)(nil), // 1704: otg.FlowMetric.Transmit + (*FlowMetricTagValue_Choice)(nil), // 1705: otg.FlowMetricTagValue.Choice + (*Bgpv4MetricsRequest_ColumnNames)(nil), // 1706: otg.Bgpv4MetricsRequest.ColumnNames + (*Bgpv4Metric_SessionState)(nil), // 1707: otg.Bgpv4Metric.SessionState + (*Bgpv4Metric_FsmState)(nil), // 1708: otg.Bgpv4Metric.FsmState + (*Bgpv6MetricsRequest_ColumnNames)(nil), // 1709: otg.Bgpv6MetricsRequest.ColumnNames + (*Bgpv6Metric_SessionState)(nil), // 1710: otg.Bgpv6Metric.SessionState + (*Bgpv6Metric_FsmState)(nil), // 1711: otg.Bgpv6Metric.FsmState + (*IsisMetricsRequest_ColumnNames)(nil), // 1712: otg.IsisMetricsRequest.ColumnNames + (*LagMetricsRequest_ColumnNames)(nil), // 1713: otg.LagMetricsRequest.ColumnNames + (*LagMetric_OperStatus)(nil), // 1714: otg.LagMetric.OperStatus + (*LacpMetricsRequest_ColumnNames)(nil), // 1715: otg.LacpMetricsRequest.ColumnNames + (*LacpMetric_Activity)(nil), // 1716: otg.LacpMetric.Activity + (*LacpMetric_Timeout)(nil), // 1717: otg.LacpMetric.Timeout + (*LacpMetric_Synchronization)(nil), // 1718: otg.LacpMetric.Synchronization + (*LldpMetricsRequest_ColumnNames)(nil), // 1719: otg.LldpMetricsRequest.ColumnNames + (*RsvpMetricsRequest_ColumnNames)(nil), // 1720: otg.RsvpMetricsRequest.ColumnNames + (*Dhcpv4ClientMetricsRequest_ColumnNames)(nil), // 1721: otg.Dhcpv4ClientMetricsRequest.ColumnNames + (*Dhcpv4ServerMetricsRequest_ColumnNames)(nil), // 1722: otg.Dhcpv4ServerMetricsRequest.ColumnNames + (*Dhcpv6ClientMetricsRequest_ColumnNames)(nil), // 1723: otg.Dhcpv6ClientMetricsRequest.ColumnNames + (*Dhcpv6ServerMetricsRequest_ColumnNames)(nil), // 1724: otg.Dhcpv6ServerMetricsRequest.ColumnNames + (*StatesRequest_Choice)(nil), // 1725: otg.StatesRequest.Choice + (*StatesResponse_Choice)(nil), // 1726: otg.StatesResponse.Choice + (*BgpPrefixStateRequest_PrefixFilters)(nil), // 1727: otg.BgpPrefixStateRequest.PrefixFilters + (*BgpPrefixIpv4UnicastFilter_Origin)(nil), // 1728: otg.BgpPrefixIpv4UnicastFilter.Origin + (*BgpPrefixIpv6UnicastFilter_Origin)(nil), // 1729: otg.BgpPrefixIpv6UnicastFilter.Origin + (*BgpPrefixIpv4UnicastState_Origin)(nil), // 1730: otg.BgpPrefixIpv4UnicastState.Origin + (*BgpPrefixIpv6UnicastState_Origin)(nil), // 1731: otg.BgpPrefixIpv6UnicastState.Origin + (*ResultExtendedCommunityStructured_Choice)(nil), // 1732: otg.ResultExtendedCommunityStructured.Choice + (*ResultExtendedCommunityTransitive2OctetAsType_Choice)(nil), // 1733: otg.ResultExtendedCommunityTransitive2OctetAsType.Choice + (*ResultExtendedCommunityTransitiveIpv4AddressType_Choice)(nil), // 1734: otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice + (*ResultExtendedCommunityTransitive4OctetAsType_Choice)(nil), // 1735: otg.ResultExtendedCommunityTransitive4OctetAsType.Choice + (*ResultExtendedCommunityTransitiveOpaqueType_Choice)(nil), // 1736: otg.ResultExtendedCommunityTransitiveOpaqueType.Choice + (*ResultExtendedCommunityNonTransitive2OctetAsType_Choice)(nil), // 1737: otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice + (*ResultBgpCommunity_Type)(nil), // 1738: otg.ResultBgpCommunity.Type + (*ResultBgpAsPathSegment_Type)(nil), // 1739: otg.ResultBgpAsPathSegment.Type + (*IsisLspState_PduType)(nil), // 1740: otg.IsisLspState.PduType + (*IsisLspV4Prefix_RedistributionType)(nil), // 1741: otg.IsisLspV4Prefix.RedistributionType + (*IsisLspV4Prefix_OriginType)(nil), // 1742: otg.IsisLspV4Prefix.OriginType + (*IsisLspExtendedV4Prefix_RedistributionType)(nil), // 1743: otg.IsisLspExtendedV4Prefix.RedistributionType + (*IsisLspV6Prefix_RedistributionType)(nil), // 1744: otg.IsisLspV6Prefix.RedistributionType + (*IsisLspV6Prefix_OriginType)(nil), // 1745: otg.IsisLspV6Prefix.OriginType + (*LldpNeighborsState_ChassisIdType)(nil), // 1746: otg.LldpNeighborsState.ChassisIdType + (*LldpNeighborsState_PortIdType)(nil), // 1747: otg.LldpNeighborsState.PortIdType + (*LldpCapabilityState_CapabilityName)(nil), // 1748: otg.LldpCapabilityState.CapabilityName + (*RsvpLspState_SessionStatus)(nil), // 1749: otg.RsvpLspState.SessionStatus + (*RsvpLspState_LastFlapReason)(nil), // 1750: otg.RsvpLspState.LastFlapReason + (*RsvpLspIpv4Ero_Type)(nil), // 1751: otg.RsvpLspIpv4Ero.Type + (*PatternFlowEthernetDst_Choice)(nil), // 1752: otg.PatternFlowEthernetDst.Choice + (*PatternFlowEthernetSrc_Choice)(nil), // 1753: otg.PatternFlowEthernetSrc.Choice + (*PatternFlowEthernetEtherType_Choice)(nil), // 1754: otg.PatternFlowEthernetEtherType.Choice + (*PatternFlowEthernetPfcQueue_Choice)(nil), // 1755: otg.PatternFlowEthernetPfcQueue.Choice + (*PatternFlowVlanPriority_Choice)(nil), // 1756: otg.PatternFlowVlanPriority.Choice + (*PatternFlowVlanCfi_Choice)(nil), // 1757: otg.PatternFlowVlanCfi.Choice + (*PatternFlowVlanId_Choice)(nil), // 1758: otg.PatternFlowVlanId.Choice + (*PatternFlowVlanTpid_Choice)(nil), // 1759: otg.PatternFlowVlanTpid.Choice + (*PatternFlowVxlanFlags_Choice)(nil), // 1760: otg.PatternFlowVxlanFlags.Choice + (*PatternFlowVxlanReserved0_Choice)(nil), // 1761: otg.PatternFlowVxlanReserved0.Choice + (*PatternFlowVxlanVni_Choice)(nil), // 1762: otg.PatternFlowVxlanVni.Choice + (*PatternFlowVxlanReserved1_Choice)(nil), // 1763: otg.PatternFlowVxlanReserved1.Choice + (*PatternFlowIpv4Version_Choice)(nil), // 1764: otg.PatternFlowIpv4Version.Choice + (*PatternFlowIpv4HeaderLength_Choice)(nil), // 1765: otg.PatternFlowIpv4HeaderLength.Choice + (*PatternFlowIpv4TotalLength_Choice)(nil), // 1766: otg.PatternFlowIpv4TotalLength.Choice + (*PatternFlowIpv4Identification_Choice)(nil), // 1767: otg.PatternFlowIpv4Identification.Choice + (*PatternFlowIpv4Reserved_Choice)(nil), // 1768: otg.PatternFlowIpv4Reserved.Choice + (*PatternFlowIpv4DontFragment_Choice)(nil), // 1769: otg.PatternFlowIpv4DontFragment.Choice + (*PatternFlowIpv4MoreFragments_Choice)(nil), // 1770: otg.PatternFlowIpv4MoreFragments.Choice + (*PatternFlowIpv4FragmentOffset_Choice)(nil), // 1771: otg.PatternFlowIpv4FragmentOffset.Choice + (*PatternFlowIpv4TimeToLive_Choice)(nil), // 1772: otg.PatternFlowIpv4TimeToLive.Choice + (*PatternFlowIpv4Protocol_Choice)(nil), // 1773: otg.PatternFlowIpv4Protocol.Choice + (*PatternFlowIpv4HeaderChecksum_Choice)(nil), // 1774: otg.PatternFlowIpv4HeaderChecksum.Choice + (*PatternFlowIpv4HeaderChecksum_Generated)(nil), // 1775: otg.PatternFlowIpv4HeaderChecksum.Generated + (*PatternFlowIpv4Src_Choice)(nil), // 1776: otg.PatternFlowIpv4Src.Choice + (*PatternFlowIpv4Dst_Choice)(nil), // 1777: otg.PatternFlowIpv4Dst.Choice + (*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice)(nil), // 1778: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice + (*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice)(nil), // 1779: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice + (*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice)(nil), // 1780: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice + (*PatternFlowIpv4PriorityRaw_Choice)(nil), // 1781: otg.PatternFlowIpv4PriorityRaw.Choice + (*PatternFlowIpv4DscpPhb_Choice)(nil), // 1782: otg.PatternFlowIpv4DscpPhb.Choice + (*PatternFlowIpv4DscpEcn_Choice)(nil), // 1783: otg.PatternFlowIpv4DscpEcn.Choice + (*PatternFlowIpv4TosPrecedence_Choice)(nil), // 1784: otg.PatternFlowIpv4TosPrecedence.Choice + (*PatternFlowIpv4TosDelay_Choice)(nil), // 1785: otg.PatternFlowIpv4TosDelay.Choice + (*PatternFlowIpv4TosThroughput_Choice)(nil), // 1786: otg.PatternFlowIpv4TosThroughput.Choice + (*PatternFlowIpv4TosReliability_Choice)(nil), // 1787: otg.PatternFlowIpv4TosReliability.Choice + (*PatternFlowIpv4TosMonetary_Choice)(nil), // 1788: otg.PatternFlowIpv4TosMonetary.Choice + (*PatternFlowIpv4TosUnused_Choice)(nil), // 1789: otg.PatternFlowIpv4TosUnused.Choice + (*PatternFlowIpv6Version_Choice)(nil), // 1790: otg.PatternFlowIpv6Version.Choice + (*PatternFlowIpv6TrafficClass_Choice)(nil), // 1791: otg.PatternFlowIpv6TrafficClass.Choice + (*PatternFlowIpv6FlowLabel_Choice)(nil), // 1792: otg.PatternFlowIpv6FlowLabel.Choice + (*PatternFlowIpv6PayloadLength_Choice)(nil), // 1793: otg.PatternFlowIpv6PayloadLength.Choice + (*PatternFlowIpv6NextHeader_Choice)(nil), // 1794: otg.PatternFlowIpv6NextHeader.Choice + (*PatternFlowIpv6HopLimit_Choice)(nil), // 1795: otg.PatternFlowIpv6HopLimit.Choice + (*PatternFlowIpv6Src_Choice)(nil), // 1796: otg.PatternFlowIpv6Src.Choice + (*PatternFlowIpv6Dst_Choice)(nil), // 1797: otg.PatternFlowIpv6Dst.Choice + (*PatternFlowPfcPauseDst_Choice)(nil), // 1798: otg.PatternFlowPfcPauseDst.Choice + (*PatternFlowPfcPauseSrc_Choice)(nil), // 1799: otg.PatternFlowPfcPauseSrc.Choice + (*PatternFlowPfcPauseEtherType_Choice)(nil), // 1800: otg.PatternFlowPfcPauseEtherType.Choice + (*PatternFlowPfcPauseControlOpCode_Choice)(nil), // 1801: otg.PatternFlowPfcPauseControlOpCode.Choice + (*PatternFlowPfcPauseClassEnableVector_Choice)(nil), // 1802: otg.PatternFlowPfcPauseClassEnableVector.Choice + (*PatternFlowPfcPausePauseClass0_Choice)(nil), // 1803: otg.PatternFlowPfcPausePauseClass0.Choice + (*PatternFlowPfcPausePauseClass1_Choice)(nil), // 1804: otg.PatternFlowPfcPausePauseClass1.Choice + (*PatternFlowPfcPausePauseClass2_Choice)(nil), // 1805: otg.PatternFlowPfcPausePauseClass2.Choice + (*PatternFlowPfcPausePauseClass3_Choice)(nil), // 1806: otg.PatternFlowPfcPausePauseClass3.Choice + (*PatternFlowPfcPausePauseClass4_Choice)(nil), // 1807: otg.PatternFlowPfcPausePauseClass4.Choice + (*PatternFlowPfcPausePauseClass5_Choice)(nil), // 1808: otg.PatternFlowPfcPausePauseClass5.Choice + (*PatternFlowPfcPausePauseClass6_Choice)(nil), // 1809: otg.PatternFlowPfcPausePauseClass6.Choice + (*PatternFlowPfcPausePauseClass7_Choice)(nil), // 1810: otg.PatternFlowPfcPausePauseClass7.Choice + (*PatternFlowEthernetPauseDst_Choice)(nil), // 1811: otg.PatternFlowEthernetPauseDst.Choice + (*PatternFlowEthernetPauseSrc_Choice)(nil), // 1812: otg.PatternFlowEthernetPauseSrc.Choice + (*PatternFlowEthernetPauseEtherType_Choice)(nil), // 1813: otg.PatternFlowEthernetPauseEtherType.Choice + (*PatternFlowEthernetPauseControlOpCode_Choice)(nil), // 1814: otg.PatternFlowEthernetPauseControlOpCode.Choice + (*PatternFlowEthernetPauseTime_Choice)(nil), // 1815: otg.PatternFlowEthernetPauseTime.Choice + (*PatternFlowTcpSrcPort_Choice)(nil), // 1816: otg.PatternFlowTcpSrcPort.Choice + (*PatternFlowTcpDstPort_Choice)(nil), // 1817: otg.PatternFlowTcpDstPort.Choice + (*PatternFlowTcpSeqNum_Choice)(nil), // 1818: otg.PatternFlowTcpSeqNum.Choice + (*PatternFlowTcpAckNum_Choice)(nil), // 1819: otg.PatternFlowTcpAckNum.Choice + (*PatternFlowTcpDataOffset_Choice)(nil), // 1820: otg.PatternFlowTcpDataOffset.Choice + (*PatternFlowTcpEcnNs_Choice)(nil), // 1821: otg.PatternFlowTcpEcnNs.Choice + (*PatternFlowTcpEcnCwr_Choice)(nil), // 1822: otg.PatternFlowTcpEcnCwr.Choice + (*PatternFlowTcpEcnEcho_Choice)(nil), // 1823: otg.PatternFlowTcpEcnEcho.Choice + (*PatternFlowTcpCtlUrg_Choice)(nil), // 1824: otg.PatternFlowTcpCtlUrg.Choice + (*PatternFlowTcpCtlAck_Choice)(nil), // 1825: otg.PatternFlowTcpCtlAck.Choice + (*PatternFlowTcpCtlPsh_Choice)(nil), // 1826: otg.PatternFlowTcpCtlPsh.Choice + (*PatternFlowTcpCtlRst_Choice)(nil), // 1827: otg.PatternFlowTcpCtlRst.Choice + (*PatternFlowTcpCtlSyn_Choice)(nil), // 1828: otg.PatternFlowTcpCtlSyn.Choice + (*PatternFlowTcpCtlFin_Choice)(nil), // 1829: otg.PatternFlowTcpCtlFin.Choice + (*PatternFlowTcpWindow_Choice)(nil), // 1830: otg.PatternFlowTcpWindow.Choice + (*PatternFlowTcpChecksum_Choice)(nil), // 1831: otg.PatternFlowTcpChecksum.Choice + (*PatternFlowTcpChecksum_Generated)(nil), // 1832: otg.PatternFlowTcpChecksum.Generated + (*PatternFlowUdpSrcPort_Choice)(nil), // 1833: otg.PatternFlowUdpSrcPort.Choice + (*PatternFlowUdpDstPort_Choice)(nil), // 1834: otg.PatternFlowUdpDstPort.Choice + (*PatternFlowUdpLength_Choice)(nil), // 1835: otg.PatternFlowUdpLength.Choice + (*PatternFlowUdpChecksum_Choice)(nil), // 1836: otg.PatternFlowUdpChecksum.Choice + (*PatternFlowUdpChecksum_Generated)(nil), // 1837: otg.PatternFlowUdpChecksum.Generated + (*PatternFlowGreChecksumPresent_Choice)(nil), // 1838: otg.PatternFlowGreChecksumPresent.Choice + (*PatternFlowGreReserved0_Choice)(nil), // 1839: otg.PatternFlowGreReserved0.Choice + (*PatternFlowGreVersion_Choice)(nil), // 1840: otg.PatternFlowGreVersion.Choice + (*PatternFlowGreProtocol_Choice)(nil), // 1841: otg.PatternFlowGreProtocol.Choice + (*PatternFlowGreChecksum_Choice)(nil), // 1842: otg.PatternFlowGreChecksum.Choice + (*PatternFlowGreChecksum_Generated)(nil), // 1843: otg.PatternFlowGreChecksum.Generated + (*PatternFlowGreReserved1_Choice)(nil), // 1844: otg.PatternFlowGreReserved1.Choice + (*PatternFlowGtpv1Version_Choice)(nil), // 1845: otg.PatternFlowGtpv1Version.Choice + (*PatternFlowGtpv1ProtocolType_Choice)(nil), // 1846: otg.PatternFlowGtpv1ProtocolType.Choice + (*PatternFlowGtpv1Reserved_Choice)(nil), // 1847: otg.PatternFlowGtpv1Reserved.Choice + (*PatternFlowGtpv1EFlag_Choice)(nil), // 1848: otg.PatternFlowGtpv1EFlag.Choice + (*PatternFlowGtpv1SFlag_Choice)(nil), // 1849: otg.PatternFlowGtpv1SFlag.Choice + (*PatternFlowGtpv1PnFlag_Choice)(nil), // 1850: otg.PatternFlowGtpv1PnFlag.Choice + (*PatternFlowGtpv1MessageType_Choice)(nil), // 1851: otg.PatternFlowGtpv1MessageType.Choice + (*PatternFlowGtpv1MessageLength_Choice)(nil), // 1852: otg.PatternFlowGtpv1MessageLength.Choice + (*PatternFlowGtpv1Teid_Choice)(nil), // 1853: otg.PatternFlowGtpv1Teid.Choice + (*PatternFlowGtpv1SquenceNumber_Choice)(nil), // 1854: otg.PatternFlowGtpv1SquenceNumber.Choice + (*PatternFlowGtpv1NPduNumber_Choice)(nil), // 1855: otg.PatternFlowGtpv1NPduNumber.Choice + (*PatternFlowGtpv1NextExtensionHeaderType_Choice)(nil), // 1856: otg.PatternFlowGtpv1NextExtensionHeaderType.Choice + (*PatternFlowGtpExtensionExtensionLength_Choice)(nil), // 1857: otg.PatternFlowGtpExtensionExtensionLength.Choice + (*PatternFlowGtpExtensionContents_Choice)(nil), // 1858: otg.PatternFlowGtpExtensionContents.Choice + (*PatternFlowGtpExtensionNextExtensionHeader_Choice)(nil), // 1859: otg.PatternFlowGtpExtensionNextExtensionHeader.Choice + (*PatternFlowGtpv2Version_Choice)(nil), // 1860: otg.PatternFlowGtpv2Version.Choice + (*PatternFlowGtpv2PiggybackingFlag_Choice)(nil), // 1861: otg.PatternFlowGtpv2PiggybackingFlag.Choice + (*PatternFlowGtpv2TeidFlag_Choice)(nil), // 1862: otg.PatternFlowGtpv2TeidFlag.Choice + (*PatternFlowGtpv2Spare1_Choice)(nil), // 1863: otg.PatternFlowGtpv2Spare1.Choice + (*PatternFlowGtpv2MessageType_Choice)(nil), // 1864: otg.PatternFlowGtpv2MessageType.Choice + (*PatternFlowGtpv2MessageLength_Choice)(nil), // 1865: otg.PatternFlowGtpv2MessageLength.Choice + (*PatternFlowGtpv2Teid_Choice)(nil), // 1866: otg.PatternFlowGtpv2Teid.Choice + (*PatternFlowGtpv2SequenceNumber_Choice)(nil), // 1867: otg.PatternFlowGtpv2SequenceNumber.Choice + (*PatternFlowGtpv2Spare2_Choice)(nil), // 1868: otg.PatternFlowGtpv2Spare2.Choice + (*PatternFlowArpHardwareType_Choice)(nil), // 1869: otg.PatternFlowArpHardwareType.Choice + (*PatternFlowArpProtocolType_Choice)(nil), // 1870: otg.PatternFlowArpProtocolType.Choice + (*PatternFlowArpHardwareLength_Choice)(nil), // 1871: otg.PatternFlowArpHardwareLength.Choice + (*PatternFlowArpProtocolLength_Choice)(nil), // 1872: otg.PatternFlowArpProtocolLength.Choice + (*PatternFlowArpOperation_Choice)(nil), // 1873: otg.PatternFlowArpOperation.Choice + (*PatternFlowArpSenderHardwareAddr_Choice)(nil), // 1874: otg.PatternFlowArpSenderHardwareAddr.Choice + (*PatternFlowArpSenderProtocolAddr_Choice)(nil), // 1875: otg.PatternFlowArpSenderProtocolAddr.Choice + (*PatternFlowArpTargetHardwareAddr_Choice)(nil), // 1876: otg.PatternFlowArpTargetHardwareAddr.Choice + (*PatternFlowArpTargetProtocolAddr_Choice)(nil), // 1877: otg.PatternFlowArpTargetProtocolAddr.Choice + (*PatternFlowIcmpEchoType_Choice)(nil), // 1878: otg.PatternFlowIcmpEchoType.Choice + (*PatternFlowIcmpEchoCode_Choice)(nil), // 1879: otg.PatternFlowIcmpEchoCode.Choice + (*PatternFlowIcmpEchoChecksum_Choice)(nil), // 1880: otg.PatternFlowIcmpEchoChecksum.Choice + (*PatternFlowIcmpEchoChecksum_Generated)(nil), // 1881: otg.PatternFlowIcmpEchoChecksum.Generated + (*PatternFlowIcmpEchoIdentifier_Choice)(nil), // 1882: otg.PatternFlowIcmpEchoIdentifier.Choice + (*PatternFlowIcmpEchoSequenceNumber_Choice)(nil), // 1883: otg.PatternFlowIcmpEchoSequenceNumber.Choice + (*PatternFlowIcmpCommonChecksum_Choice)(nil), // 1884: otg.PatternFlowIcmpCommonChecksum.Choice + (*PatternFlowIcmpCommonChecksum_Generated)(nil), // 1885: otg.PatternFlowIcmpCommonChecksum.Generated + (*PatternFlowIcmpNextFieldsIdentifier_Choice)(nil), // 1886: otg.PatternFlowIcmpNextFieldsIdentifier.Choice + (*PatternFlowIcmpNextFieldsSequenceNumber_Choice)(nil), // 1887: otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice + (*PatternFlowIcmpv6EchoType_Choice)(nil), // 1888: otg.PatternFlowIcmpv6EchoType.Choice + (*PatternFlowIcmpv6EchoCode_Choice)(nil), // 1889: otg.PatternFlowIcmpv6EchoCode.Choice + (*PatternFlowIcmpv6EchoIdentifier_Choice)(nil), // 1890: otg.PatternFlowIcmpv6EchoIdentifier.Choice + (*PatternFlowIcmpv6EchoSequenceNumber_Choice)(nil), // 1891: otg.PatternFlowIcmpv6EchoSequenceNumber.Choice + (*PatternFlowIcmpv6EchoChecksum_Choice)(nil), // 1892: otg.PatternFlowIcmpv6EchoChecksum.Choice + (*PatternFlowIcmpv6EchoChecksum_Generated)(nil), // 1893: otg.PatternFlowIcmpv6EchoChecksum.Generated + (*PatternFlowIcmpv6CommonChecksum_Choice)(nil), // 1894: otg.PatternFlowIcmpv6CommonChecksum.Choice + (*PatternFlowIcmpv6CommonChecksum_Generated)(nil), // 1895: otg.PatternFlowIcmpv6CommonChecksum.Generated + (*PatternFlowPppAddress_Choice)(nil), // 1896: otg.PatternFlowPppAddress.Choice + (*PatternFlowPppControl_Choice)(nil), // 1897: otg.PatternFlowPppControl.Choice + (*PatternFlowPppProtocolType_Choice)(nil), // 1898: otg.PatternFlowPppProtocolType.Choice + (*PatternFlowIgmpv1Version_Choice)(nil), // 1899: otg.PatternFlowIgmpv1Version.Choice + (*PatternFlowIgmpv1Type_Choice)(nil), // 1900: otg.PatternFlowIgmpv1Type.Choice + (*PatternFlowIgmpv1Unused_Choice)(nil), // 1901: otg.PatternFlowIgmpv1Unused.Choice + (*PatternFlowIgmpv1Checksum_Choice)(nil), // 1902: otg.PatternFlowIgmpv1Checksum.Choice + (*PatternFlowIgmpv1Checksum_Generated)(nil), // 1903: otg.PatternFlowIgmpv1Checksum.Generated + (*PatternFlowIgmpv1GroupAddress_Choice)(nil), // 1904: otg.PatternFlowIgmpv1GroupAddress.Choice + (*PatternFlowMplsLabel_Choice)(nil), // 1905: otg.PatternFlowMplsLabel.Choice + (*PatternFlowMplsTrafficClass_Choice)(nil), // 1906: otg.PatternFlowMplsTrafficClass.Choice + (*PatternFlowMplsBottomOfStack_Choice)(nil), // 1907: otg.PatternFlowMplsBottomOfStack.Choice + (*PatternFlowMplsTimeToLive_Choice)(nil), // 1908: otg.PatternFlowMplsTimeToLive.Choice + (*PatternFlowSnmpv2CVersion_Choice)(nil), // 1909: otg.PatternFlowSnmpv2cVersion.Choice + (*PatternFlowSnmpv2CPDURequestId_Choice)(nil), // 1910: otg.PatternFlowSnmpv2cPDURequestId.Choice + (*PatternFlowSnmpv2CPDUErrorIndex_Choice)(nil), // 1911: otg.PatternFlowSnmpv2cPDUErrorIndex.Choice + (*PatternFlowSnmpv2CBulkPDURequestId_Choice)(nil), // 1912: otg.PatternFlowSnmpv2cBulkPDURequestId.Choice + (*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice)(nil), // 1913: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice + (*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice)(nil), // 1914: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice + (*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice)(nil), // 1915: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice)(nil), // 1916: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice)(nil), // 1917: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice)(nil), // 1918: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice)(nil), // 1919: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice + (*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice)(nil), // 1920: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice + (*PatternFlowSnmpv2CCommonRequestId_Choice)(nil), // 1921: otg.PatternFlowSnmpv2cCommonRequestId.Choice + (*PatternFlowRsvpRsvpChecksum_Choice)(nil), // 1922: otg.PatternFlowRsvpRsvpChecksum.Choice + (*PatternFlowRsvpRsvpChecksum_Generated)(nil), // 1923: otg.PatternFlowRsvpRsvpChecksum.Generated + (*PatternFlowRsvpTimeToLive_Choice)(nil), // 1924: otg.PatternFlowRsvpTimeToLive.Choice + (*PatternFlowRsvpReserved_Choice)(nil), // 1925: otg.PatternFlowRsvpReserved.Choice + (*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice)(nil), // 1926: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice + (*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice)(nil), // 1927: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice + (*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice)(nil), // 1928: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice + (*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice)(nil), // 1929: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice + (*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice)(nil), // 1930: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice + (*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice)(nil), // 1931: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice + (*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice)(nil), // 1932: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice + (*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice)(nil), // 1933: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice)(nil), // 1934: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice + (*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice)(nil), // 1935: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice + (*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice)(nil), // 1936: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice)(nil), // 1937: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice + (*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice)(nil), // 1938: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice)(nil), // 1939: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice)(nil), // 1940: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice + (*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice)(nil), // 1941: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice + (*PatternFlowRSVPPathSenderTspecIntServVersion_Choice)(nil), // 1942: otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice + (*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice)(nil), // 1943: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice + (*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice)(nil), // 1944: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice + (*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice)(nil), // 1945: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice + (*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice)(nil), // 1946: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice + (*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice)(nil), // 1947: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice + (*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice)(nil), // 1948: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice + (*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice)(nil), // 1949: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice + (*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice)(nil), // 1950: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice + (*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice)(nil), // 1951: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice + (*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice)(nil), // 1952: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice + (*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice)(nil), // 1953: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice)(nil), // 1954: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice + (*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice)(nil), // 1955: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice + (*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice)(nil), // 1956: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice + (*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice)(nil), // 1957: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice + (*PatternFlowRSVPPathObjectsCustomType_Choice)(nil), // 1958: otg.PatternFlowRSVPPathObjectsCustomType.Choice + (*emptypb.Empty)(nil), // 1959: google.protobuf.Empty } var file_otg_proto_depIdxs = []int32{ - 428, // 0: otg.Config.ports:type_name -> otg.Port - 430, // 1: otg.Config.lags:type_name -> otg.Lag - 448, // 2: otg.Config.layer1:type_name -> otg.Layer1 - 453, // 3: otg.Config.captures:type_name -> otg.Capture - 461, // 4: otg.Config.devices:type_name -> otg.Device - 650, // 5: otg.Config.flows:type_name -> otg.Flow - 763, // 6: otg.Config.events:type_name -> otg.Event - 427, // 7: otg.Config.options:type_name -> otg.ConfigOptions - 769, // 8: otg.Config.lldp:type_name -> otg.Lldp - 429, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions - 462, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions - 431, // 11: otg.Lag.ports:type_name -> otg.LagPort - 432, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol - 435, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp - 436, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase + 443, // 0: otg.Config.ports:type_name -> otg.Port + 445, // 1: otg.Config.lags:type_name -> otg.Lag + 493, // 2: otg.Config.layer1:type_name -> otg.Layer1 + 498, // 3: otg.Config.captures:type_name -> otg.Capture + 506, // 4: otg.Config.devices:type_name -> otg.Device + 704, // 5: otg.Config.flows:type_name -> otg.Flow + 818, // 6: otg.Config.events:type_name -> otg.Event + 442, // 7: otg.Config.options:type_name -> otg.ConfigOptions + 824, // 8: otg.Config.lldp:type_name -> otg.Lldp + 444, // 9: otg.ConfigOptions.port_options:type_name -> otg.PortOptions + 507, // 10: otg.ConfigOptions.protocol_options:type_name -> otg.ProtocolOptions + 446, // 11: otg.Lag.ports:type_name -> otg.LagPort + 447, // 12: otg.Lag.protocol:type_name -> otg.LagProtocol + 450, // 13: otg.LagPort.lacp:type_name -> otg.LagPortLacp + 451, // 14: otg.LagPort.ethernet:type_name -> otg.DeviceEthernetBase 0, // 15: otg.LagProtocol.choice:type_name -> otg.LagProtocol.Choice.Enum - 434, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp - 433, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic + 449, // 16: otg.LagProtocol.lacp:type_name -> otg.LagProtocolLacp + 448, // 17: otg.LagProtocol.static:type_name -> otg.LagProtocolStatic 1, // 18: otg.LagPortLacp.actor_activity:type_name -> otg.LagPortLacp.ActorActivity.Enum - 439, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan - 438, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection - 440, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 - 443, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 - 439, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan - 446, // 24: otg.DeviceEthernet.dhcpv4_interfaces:type_name -> otg.DeviceDhcpv4client - 2, // 25: otg.EthernetConnection.choice:type_name -> otg.EthernetConnection.Choice.Enum - 3, // 26: otg.DeviceVlan.tpid:type_name -> otg.DeviceVlan.Tpid.Enum - 442, // 27: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC - 4, // 28: otg.DeviceIpv4GatewayMAC.choice:type_name -> otg.DeviceIpv4GatewayMAC.Choice.Enum - 445, // 29: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC - 5, // 30: otg.DeviceIpv6GatewayMAC.choice:type_name -> otg.DeviceIpv6GatewayMAC.Choice.Enum - 6, // 31: otg.DeviceDhcpv4client.choice:type_name -> otg.DeviceDhcpv4client.Choice.Enum - 447, // 32: otg.DeviceDhcpv4client.parameters_request_list:type_name -> otg.Dhcpv4ClientParams - 7, // 33: otg.Layer1.speed:type_name -> otg.Layer1.Speed.Enum - 8, // 34: otg.Layer1.media:type_name -> otg.Layer1.Media.Enum - 449, // 35: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation - 450, // 36: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl - 9, // 37: otg.Layer1FlowControl.choice:type_name -> otg.Layer1FlowControl.Choice.Enum - 452, // 38: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb - 451, // 39: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x - 454, // 40: otg.Capture.filters:type_name -> otg.CaptureFilter - 10, // 41: otg.Capture.format:type_name -> otg.Capture.Format.Enum - 11, // 42: otg.CaptureFilter.choice:type_name -> otg.CaptureFilter.Choice.Enum - 455, // 43: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom - 457, // 44: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet - 458, // 45: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan - 459, // 46: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 - 460, // 47: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 - 456, // 48: otg.CaptureEthernet.src:type_name -> otg.CaptureField - 456, // 49: otg.CaptureEthernet.dst:type_name -> otg.CaptureField - 456, // 50: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField - 456, // 51: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField - 456, // 52: otg.CaptureVlan.priority:type_name -> otg.CaptureField - 456, // 53: otg.CaptureVlan.cfi:type_name -> otg.CaptureField - 456, // 54: otg.CaptureVlan.id:type_name -> otg.CaptureField - 456, // 55: otg.CaptureVlan.protocol:type_name -> otg.CaptureField - 456, // 56: otg.CaptureIpv4.version:type_name -> otg.CaptureField - 456, // 57: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField - 456, // 58: otg.CaptureIpv4.priority:type_name -> otg.CaptureField - 456, // 59: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField - 456, // 60: otg.CaptureIpv4.identification:type_name -> otg.CaptureField - 456, // 61: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField - 456, // 62: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField - 456, // 63: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField - 456, // 64: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField - 456, // 65: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField - 456, // 66: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField - 456, // 67: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField - 456, // 68: otg.CaptureIpv4.src:type_name -> otg.CaptureField - 456, // 69: otg.CaptureIpv4.dst:type_name -> otg.CaptureField - 456, // 70: otg.CaptureIpv6.version:type_name -> otg.CaptureField - 456, // 71: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField - 456, // 72: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField - 456, // 73: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField - 456, // 74: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField - 456, // 75: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField - 456, // 76: otg.CaptureIpv6.src:type_name -> otg.CaptureField - 456, // 77: otg.CaptureIpv6.dst:type_name -> otg.CaptureField - 437, // 78: otg.Device.ethernets:type_name -> otg.DeviceEthernet - 441, // 79: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback - 444, // 80: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback - 463, // 81: otg.Device.isis:type_name -> otg.DeviceIsisRouter - 482, // 82: otg.Device.bgp:type_name -> otg.DeviceBgpRouter - 623, // 83: otg.Device.vxlan:type_name -> otg.DeviceVxlan - 635, // 84: otg.Device.rsvp:type_name -> otg.DeviceRsvp - 646, // 85: otg.Device.dhcp_server:type_name -> otg.DeviceDhcpServer - 464, // 86: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance - 465, // 87: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface - 473, // 88: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic - 474, // 89: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced - 475, // 90: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication - 477, // 91: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange - 481, // 92: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange - 12, // 93: otg.IsisInterface.network_type:type_name -> otg.IsisInterface.NetworkType.Enum - 13, // 94: otg.IsisInterface.level_type:type_name -> otg.IsisInterface.LevelType.Enum - 466, // 95: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel - 466, // 96: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel - 467, // 97: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT - 468, // 98: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE - 470, // 99: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication - 471, // 100: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced - 472, // 101: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection - 469, // 102: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths - 14, // 103: otg.IsisInterfaceAuthentication.auth_type:type_name -> otg.IsisInterfaceAuthentication.AuthType.Enum - 476, // 104: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase - 476, // 105: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase - 15, // 106: otg.IsisAuthenticationBase.auth_type:type_name -> otg.IsisAuthenticationBase.AuthType.Enum - 478, // 107: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress - 16, // 108: otg.IsisV4RouteRange.origin_type:type_name -> otg.IsisV4RouteRange.OriginType.Enum - 17, // 109: otg.IsisV4RouteRange.redistribution_type:type_name -> otg.IsisV4RouteRange.RedistributionType.Enum - 479, // 110: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress - 18, // 111: otg.IsisV6RouteRange.origin_type:type_name -> otg.IsisV6RouteRange.OriginType.Enum - 19, // 112: otg.IsisV6RouteRange.redistribution_type:type_name -> otg.IsisV6RouteRange.RedistributionType.Enum - 491, // 113: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface - 617, // 114: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface - 20, // 115: otg.DeviceBgpMessageHeaderError.subcode:type_name -> otg.DeviceBgpMessageHeaderError.Subcode.Enum - 21, // 116: otg.DeviceBgpOpenMessageError.subcode:type_name -> otg.DeviceBgpOpenMessageError.Subcode.Enum - 22, // 117: otg.DeviceBgpUpdateMessageError.subcode:type_name -> otg.DeviceBgpUpdateMessageError.Subcode.Enum - 23, // 118: otg.DeviceBgpCeaseError.subcode:type_name -> otg.DeviceBgpCeaseError.Subcode.Enum - 492, // 119: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment - 24, // 120: otg.BgpV4Peer.as_type:type_name -> otg.BgpV4Peer.AsType.Enum - 25, // 121: otg.BgpV4Peer.as_number_width:type_name -> otg.BgpV4Peer.AsNumberWidth.Enum - 505, // 122: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced - 506, // 123: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability - 507, // 124: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 508, // 125: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 528, // 126: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 529, // 127: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 553, // 128: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 555, // 129: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 556, // 130: otg.BgpV4Peer.replay_updates:type_name -> otg.BgpUpdateReplay - 490, // 131: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer - 493, // 132: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 499, // 133: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis - 26, // 134: otg.BgpV4EthernetSegment.active_mode:type_name -> otg.BgpV4EthernetSegment.ActiveMode.Enum - 494, // 135: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 136: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity - 496, // 137: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 497, // 138: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath - 27, // 139: otg.BgpRouteAdvanced.origin:type_name -> otg.BgpRouteAdvanced.Origin.Enum - 28, // 140: otg.BgpCommunity.type:type_name -> otg.BgpCommunity.Type.Enum - 29, // 141: otg.BgpExtCommunity.type:type_name -> otg.BgpExtCommunity.Type.Enum - 30, // 142: otg.BgpExtCommunity.subtype:type_name -> otg.BgpExtCommunity.Subtype.Enum - 31, // 143: otg.BgpAsPath.as_set_mode:type_name -> otg.BgpAsPath.AsSetMode.Enum - 498, // 144: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment - 32, // 145: otg.BgpAsPathSegment.type:type_name -> otg.BgpAsPathSegment.Type.Enum - 33, // 146: otg.BgpV4EvpnEvis.choice:type_name -> otg.BgpV4EvpnEvis.Choice.Enum - 500, // 147: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan - 501, // 148: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain - 34, // 149: otg.BgpV4EviVxlan.replication_type:type_name -> otg.BgpV4EviVxlan.ReplicationType.Enum - 503, // 150: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 504, // 151: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 504, // 152: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 504, // 153: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 504, // 154: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 494, // 155: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 156: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity - 496, // 157: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 497, // 158: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath - 502, // 159: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 480, // 160: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress - 478, // 161: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress - 479, // 162: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress - 494, // 163: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 164: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity - 496, // 165: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity - 497, // 166: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath - 35, // 167: otg.BgpRouteDistinguisher.rd_type:type_name -> otg.BgpRouteDistinguisher.RdType.Enum - 36, // 168: otg.BgpRouteTarget.rt_type:type_name -> otg.BgpRouteTarget.RtType.Enum - 478, // 169: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress - 37, // 170: otg.BgpV4RouteRange.next_hop_mode:type_name -> otg.BgpV4RouteRange.NextHopMode.Enum - 38, // 171: otg.BgpV4RouteRange.next_hop_address_type:type_name -> otg.BgpV4RouteRange.NextHopAddressType.Enum - 494, // 172: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 173: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity - 497, // 174: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath - 509, // 175: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath - 496, // 176: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 510, // 177: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity - 39, // 178: otg.BgpExtendedCommunity.choice:type_name -> otg.BgpExtendedCommunity.Choice.Enum - 513, // 179: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType - 516, // 180: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType - 519, // 181: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType - 522, // 182: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType - 524, // 183: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType - 526, // 184: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType - 527, // 185: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType - 40, // 186: otg.BgpExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum - 511, // 187: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget - 512, // 188: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin - 41, // 189: otg.BgpExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - 515, // 190: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - 514, // 191: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - 42, // 192: otg.BgpExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum - 517, // 193: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget - 518, // 194: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin - 43, // 195: otg.BgpExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum - 520, // 196: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor - 521, // 197: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation - 44, // 198: otg.BgpExtendedCommunityTransitiveEvpnType.choice:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum - 523, // 199: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac - 45, // 200: otg.BgpExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - 525, // 201: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - 479, // 202: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress - 46, // 203: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum - 47, // 204: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum - 494, // 205: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 206: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity - 497, // 207: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath - 509, // 208: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath - 496, // 209: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity - 510, // 210: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity - 48, // 211: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum - 49, // 212: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum - 494, // 213: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced - 509, // 214: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath - 497, // 215: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath - 495, // 216: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity - 496, // 217: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity - 530, // 218: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv - 531, // 219: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 532, // 220: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 533, // 221: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 534, // 222: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 535, // 223: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 536, // 224: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 537, // 225: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 538, // 226: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 50, // 227: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum - 51, // 228: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum - 52, // 229: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum - 539, // 230: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment - 53, // 231: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum - 542, // 232: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv - 543, // 233: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv - 544, // 234: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv - 545, // 235: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv - 546, // 236: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv - 547, // 237: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv - 548, // 238: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv - 549, // 239: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv - 550, // 240: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv - 551, // 241: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv - 552, // 242: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv - 541, // 243: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 540, // 244: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 540, // 245: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 540, // 246: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 540, // 247: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 540, // 248: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 540, // 249: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid - 541, // 250: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 541, // 251: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 541, // 252: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure - 54, // 253: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum - 55, // 254: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum - 494, // 255: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced - 509, // 256: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath - 497, // 257: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath - 495, // 258: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity - 496, // 259: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity - 554, // 260: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv - 531, // 261: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv - 532, // 262: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv - 533, // 263: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv - 534, // 264: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv - 535, // 265: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv - 536, // 266: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv - 537, // 267: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv - 538, // 268: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList - 56, // 269: otg.BgpUpdateReplay.choice:type_name -> otg.BgpUpdateReplay.Choice.Enum - 559, // 270: otg.BgpUpdateReplay.structured_pdus:type_name -> otg.BgpStructuredPdus - 557, // 271: otg.BgpUpdateReplay.raw_bytes:type_name -> otg.BgpRawBytes - 558, // 272: otg.BgpRawBytes.updates:type_name -> otg.BgpOneUpdateReplay - 560, // 273: otg.BgpStructuredPdus.updates:type_name -> otg.BgpOneStructuredUpdateReplay - 567, // 274: otg.BgpOneStructuredUpdateReplay.path_attributes:type_name -> otg.BgpAttributes - 561, // 275: otg.BgpOneStructuredUpdateReplay.traditional_unreach_nlris:type_name -> otg.BgpOneTraditionalNlriPrefix - 561, // 276: otg.BgpOneStructuredUpdateReplay.traditional_reach_nlris:type_name -> otg.BgpOneTraditionalNlriPrefix - 564, // 277: otg.BgpOneTraditionalNlriPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId - 564, // 278: otg.BgpOneIpv4NLRIPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId - 564, // 279: otg.BgpOneIpv6NLRIPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId - 568, // 280: otg.BgpAttributes.other_attributes:type_name -> otg.BgpAttributesOtherAttribute - 57, // 281: otg.BgpAttributes.origin:type_name -> otg.BgpAttributes.Origin.Enum - 569, // 282: otg.BgpAttributes.as_path:type_name -> otg.BgpAttributesAsPath - 574, // 283: otg.BgpAttributes.as4_path:type_name -> otg.BgpAttributesAs4Path - 579, // 284: otg.BgpAttributes.next_hop:type_name -> otg.BgpAttributesNextHop - 583, // 285: otg.BgpAttributes.multi_exit_discriminator:type_name -> otg.BgpAttributesMultiExitDiscriminator - 584, // 286: otg.BgpAttributes.local_preference:type_name -> otg.BgpAttributesLocalPreference - 575, // 287: otg.BgpAttributes.aggregator:type_name -> otg.BgpAttributesAggregator - 576, // 288: otg.BgpAttributes.as4_aggregator:type_name -> otg.BgpAttributesAs4Aggregator - 577, // 289: otg.BgpAttributes.community:type_name -> otg.BgpAttributesCommunity - 585, // 290: otg.BgpAttributes.originator_id:type_name -> otg.BgpAttributesOriginatorId - 510, // 291: otg.BgpAttributes.extended_communities:type_name -> otg.BgpExtendedCommunity - 586, // 292: otg.BgpAttributes.tunnel_encapsulation:type_name -> otg.BgpAttributesTunnelEncapsulation - 581, // 293: otg.BgpAttributes.mp_reach:type_name -> otg.BgpAttributesMpReachNlri - 582, // 294: otg.BgpAttributes.mp_unreach:type_name -> otg.BgpAttributesMpUnreachNlri - 58, // 295: otg.BgpAttributesAsPath.choice:type_name -> otg.BgpAttributesAsPath.Choice.Enum - 570, // 296: otg.BgpAttributesAsPath.four_byte_as_path:type_name -> otg.BgpAttributesAsPathFourByteAsPath - 572, // 297: otg.BgpAttributesAsPath.two_byte_as_path:type_name -> otg.BgpAttributesAsPathTwoByteAsPath - 571, // 298: otg.BgpAttributesAsPathFourByteAsPath.segments:type_name -> otg.BgpAttributesFourByteAsPathSegment - 59, // 299: otg.BgpAttributesFourByteAsPathSegment.type:type_name -> otg.BgpAttributesFourByteAsPathSegment.Type.Enum - 573, // 300: otg.BgpAttributesAsPathTwoByteAsPath.segments:type_name -> otg.BgpAttributesTwoByteAsPathSegment - 60, // 301: otg.BgpAttributesTwoByteAsPathSegment.type:type_name -> otg.BgpAttributesTwoByteAsPathSegment.Type.Enum - 571, // 302: otg.BgpAttributesAs4Path.segments:type_name -> otg.BgpAttributesFourByteAsPathSegment - 61, // 303: otg.BgpAttributesAggregator.choice:type_name -> otg.BgpAttributesAggregator.Choice.Enum - 62, // 304: otg.BgpAttributesCommunity.choice:type_name -> otg.BgpAttributesCommunity.Choice.Enum - 578, // 305: otg.BgpAttributesCommunity.custom_community:type_name -> otg.BgpAttributesCustomCommunity - 63, // 306: otg.BgpAttributesNextHop.choice:type_name -> otg.BgpAttributesNextHop.Choice.Enum - 580, // 307: otg.BgpAttributesNextHop.ipv6_two_addresses:type_name -> otg.BgpAttributesNextHopIpv6TwoAddresses - 579, // 308: otg.BgpAttributesMpReachNlri.next_hop:type_name -> otg.BgpAttributesNextHop - 64, // 309: otg.BgpAttributesMpReachNlri.choice:type_name -> otg.BgpAttributesMpReachNlri.Choice.Enum - 562, // 310: otg.BgpAttributesMpReachNlri.ipv4_unicast:type_name -> otg.BgpOneIpv4NLRIPrefix - 563, // 311: otg.BgpAttributesMpReachNlri.ipv6_unicast:type_name -> otg.BgpOneIpv6NLRIPrefix - 565, // 312: otg.BgpAttributesMpReachNlri.ipv4_srpolicy:type_name -> otg.BgpIpv4SrPolicyNLRIPrefix - 566, // 313: otg.BgpAttributesMpReachNlri.ipv6_srpolicy:type_name -> otg.BgpIpv6SrPolicyNLRIPrefix - 65, // 314: otg.BgpAttributesMpUnreachNlri.choice:type_name -> otg.BgpAttributesMpUnreachNlri.Choice.Enum - 562, // 315: otg.BgpAttributesMpUnreachNlri.ipv4_unicast:type_name -> otg.BgpOneIpv4NLRIPrefix - 563, // 316: otg.BgpAttributesMpUnreachNlri.ipv6_unicast:type_name -> otg.BgpOneIpv6NLRIPrefix - 565, // 317: otg.BgpAttributesMpUnreachNlri.ipv4_srpolicy:type_name -> otg.BgpIpv4SrPolicyNLRIPrefix - 566, // 318: otg.BgpAttributesMpUnreachNlri.ipv6_srpolicy:type_name -> otg.BgpIpv6SrPolicyNLRIPrefix - 66, // 319: otg.BgpAttributesTunnelEncapsulation.choice:type_name -> otg.BgpAttributesTunnelEncapsulation.Choice.Enum - 587, // 320: otg.BgpAttributesTunnelEncapsulation.sr_policy:type_name -> otg.BgpAttributesSegmentRoutingPolicy - 588, // 321: otg.BgpAttributesSegmentRoutingPolicy.binding_segment_identifier:type_name -> otg.BgpAttributesBsid - 591, // 322: otg.BgpAttributesSegmentRoutingPolicy.srv6_binding_segment_identifier:type_name -> otg.BgpAttributesSrv6Bsid - 594, // 323: otg.BgpAttributesSegmentRoutingPolicy.preference:type_name -> otg.BgpAttributesSrPolicyPreference - 595, // 324: otg.BgpAttributesSegmentRoutingPolicy.priority:type_name -> otg.BgpAttributesSrPolicyPriority - 597, // 325: otg.BgpAttributesSegmentRoutingPolicy.policy_name:type_name -> otg.BgpAttributesSrPolicyPolicyName - 596, // 326: otg.BgpAttributesSegmentRoutingPolicy.policy_candidate_name:type_name -> otg.BgpAttributesSrPolicyPolicyCandidateName - 598, // 327: otg.BgpAttributesSegmentRoutingPolicy.explicit_null_label_policy:type_name -> otg.BgpAttributesSrPolicyExplicitNullPolicy - 599, // 328: otg.BgpAttributesSegmentRoutingPolicy.segment_list:type_name -> otg.BgpAttributesSrPolicySegmentList - 67, // 329: otg.BgpAttributesBsid.choice:type_name -> otg.BgpAttributesBsid.Choice.Enum - 589, // 330: otg.BgpAttributesBsid.mpls:type_name -> otg.BgpAttributesBsidMpls - 590, // 331: otg.BgpAttributesBsid.srv6:type_name -> otg.BgpAttributesBsidSrv6 - 592, // 332: otg.BgpAttributesBsidMpls.mpls_sid:type_name -> otg.BgpAttributesSidMpls - 614, // 333: otg.BgpAttributesSrv6Bsid.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - 68, // 334: otg.BgpAttributesSrPolicyExplicitNullPolicy.choice:type_name -> otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.Enum - 600, // 335: otg.BgpAttributesSrPolicySegmentList.weight:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListWeight - 601, // 336: otg.BgpAttributesSrPolicySegmentList.segments:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListSegment - 69, // 337: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.choice:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.Enum - 602, // 338: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_a:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeA - 603, // 339: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_b:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeB - 604, // 340: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_c:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeC - 605, // 341: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_d:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeD - 606, // 342: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_e:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeE - 607, // 343: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_f:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeF - 608, // 344: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_g:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeG - 609, // 345: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_h:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeH - 610, // 346: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_i:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeI - 611, // 347: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_j:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeJ - 612, // 348: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_k:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeK - 613, // 349: otg.BgpAttributesSegmentRoutingPolicyTypeA.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 350: otg.BgpAttributesSegmentRoutingPolicyTypeA.mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 351: otg.BgpAttributesSegmentRoutingPolicyTypeB.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 614, // 352: otg.BgpAttributesSegmentRoutingPolicyTypeB.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - 613, // 353: otg.BgpAttributesSegmentRoutingPolicyTypeC.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 354: otg.BgpAttributesSegmentRoutingPolicyTypeC.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 355: otg.BgpAttributesSegmentRoutingPolicyTypeD.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 356: otg.BgpAttributesSegmentRoutingPolicyTypeD.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 357: otg.BgpAttributesSegmentRoutingPolicyTypeE.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 358: otg.BgpAttributesSegmentRoutingPolicyTypeE.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 359: otg.BgpAttributesSegmentRoutingPolicyTypeF.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 360: otg.BgpAttributesSegmentRoutingPolicyTypeF.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 361: otg.BgpAttributesSegmentRoutingPolicyTypeG.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 362: otg.BgpAttributesSegmentRoutingPolicyTypeG.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 363: otg.BgpAttributesSegmentRoutingPolicyTypeH.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 592, // 364: otg.BgpAttributesSegmentRoutingPolicyTypeH.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls - 613, // 365: otg.BgpAttributesSegmentRoutingPolicyTypeI.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 593, // 366: otg.BgpAttributesSegmentRoutingPolicyTypeI.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 - 614, // 367: otg.BgpAttributesSegmentRoutingPolicyTypeI.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - 613, // 368: otg.BgpAttributesSegmentRoutingPolicyTypeJ.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 593, // 369: otg.BgpAttributesSegmentRoutingPolicyTypeJ.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 - 614, // 370: otg.BgpAttributesSegmentRoutingPolicyTypeJ.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - 613, // 371: otg.BgpAttributesSegmentRoutingPolicyTypeK.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags - 593, // 372: otg.BgpAttributesSegmentRoutingPolicyTypeK.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 - 614, // 373: otg.BgpAttributesSegmentRoutingPolicyTypeK.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure - 618, // 374: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting - 619, // 375: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment - 70, // 376: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum - 71, // 377: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum - 505, // 378: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced - 506, // 379: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability - 507, // 380: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter - 508, // 381: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange - 528, // 382: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange - 529, // 383: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy - 553, // 384: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy - 555, // 385: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart - 556, // 386: otg.BgpV6Peer.replay_updates:type_name -> otg.BgpUpdateReplay - 616, // 387: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer - 493, // 388: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection - 620, // 389: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis - 72, // 390: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum - 494, // 391: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 392: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity - 496, // 393: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity - 497, // 394: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath - 73, // 395: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum - 621, // 396: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan - 622, // 397: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain - 74, // 398: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum - 503, // 399: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher - 504, // 400: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget - 504, // 401: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget - 504, // 402: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget - 504, // 403: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget - 494, // 404: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced - 495, // 405: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity - 496, // 406: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity - 497, // 407: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath - 502, // 408: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange - 624, // 409: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel - 625, // 410: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel - 626, // 411: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode - 627, // 412: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode - 75, // 413: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum - 628, // 414: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast - 633, // 415: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast - 76, // 416: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum - 629, // 417: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast - 634, // 418: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast - 631, // 419: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep - 632, // 420: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep - 630, // 421: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 630, // 422: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache - 636, // 423: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface - 637, // 424: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface - 638, // 425: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp - 639, // 426: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp - 77, // 427: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum - 640, // 428: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute - 642, // 429: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec - 643, // 430: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute - 644, // 431: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro - 641, // 432: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities - 78, // 433: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum - 645, // 434: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject - 79, // 435: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum - 80, // 436: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum - 647, // 437: otg.DeviceDhcpServer.ipv4_interfaces:type_name -> otg.DhcpServerV4 - 648, // 438: otg.DhcpServerV4.address_pools:type_name -> otg.DhcpServerV4Pool - 649, // 439: otg.DhcpServerV4Pool.options:type_name -> otg.DhcpServerV4PoolOption - 651, // 440: otg.Flow.tx_rx:type_name -> otg.FlowTxRx - 654, // 441: otg.Flow.packet:type_name -> otg.FlowHeader - 654, // 442: otg.Flow.egress_packet:type_name -> otg.FlowHeader - 745, // 443: otg.Flow.size:type_name -> otg.FlowSize - 750, // 444: otg.Flow.rate:type_name -> otg.FlowRate - 751, // 445: otg.Flow.duration:type_name -> otg.FlowDuration - 758, // 446: otg.Flow.metrics:type_name -> otg.FlowMetrics - 81, // 447: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum - 652, // 448: otg.FlowTxRx.port:type_name -> otg.FlowPort - 653, // 449: otg.FlowTxRx.device:type_name -> otg.FlowRouter - 82, // 450: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum - 83, // 451: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum - 655, // 452: otg.FlowHeader.custom:type_name -> otg.FlowCustom - 657, // 453: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet - 658, // 454: otg.FlowHeader.vlan:type_name -> otg.FlowVlan - 659, // 455: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan - 660, // 456: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 - 669, // 457: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 - 670, // 458: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause - 671, // 459: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause - 672, // 460: otg.FlowHeader.tcp:type_name -> otg.FlowTcp - 673, // 461: otg.FlowHeader.udp:type_name -> otg.FlowUdp - 674, // 462: otg.FlowHeader.gre:type_name -> otg.FlowGre - 675, // 463: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 - 677, // 464: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 - 678, // 465: otg.FlowHeader.arp:type_name -> otg.FlowArp - 679, // 466: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp - 681, // 467: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 - 683, // 468: otg.FlowHeader.ppp:type_name -> otg.FlowPpp - 684, // 469: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 - 685, // 470: otg.FlowHeader.mpls:type_name -> otg.FlowMpls - 686, // 471: otg.FlowHeader.snmpv2c:type_name -> otg.FlowSnmpv2c - 693, // 472: otg.FlowHeader.rsvp:type_name -> otg.FlowRsvp - 656, // 473: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag - 913, // 474: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst - 916, // 475: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc - 919, // 476: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType - 922, // 477: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue - 925, // 478: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority - 928, // 479: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi - 931, // 480: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId - 934, // 481: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid - 937, // 482: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags - 940, // 483: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 - 943, // 484: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni - 946, // 485: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 - 949, // 486: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version - 952, // 487: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength - 665, // 488: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority - 955, // 489: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength - 958, // 490: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification - 961, // 491: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved - 964, // 492: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment - 967, // 493: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments - 970, // 494: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset - 973, // 495: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive - 976, // 496: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol - 977, // 497: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum - 981, // 498: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src - 985, // 499: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst - 661, // 500: otg.FlowIpv4.options:type_name -> otg.FlowIpv4Options - 84, // 501: otg.FlowIpv4Options.choice:type_name -> otg.FlowIpv4Options.Choice.Enum - 662, // 502: otg.FlowIpv4Options.custom:type_name -> otg.FlowIpv4OptionsCustom - 663, // 503: otg.FlowIpv4OptionsCustom.type:type_name -> otg.FlowIpv4OptionsCustomType - 664, // 504: otg.FlowIpv4OptionsCustom.length:type_name -> otg.FlowIpv4OptionsCustomLength - 987, // 505: otg.FlowIpv4OptionsCustomType.copied_flag:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag - 989, // 506: otg.FlowIpv4OptionsCustomType.option_class:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass - 991, // 507: otg.FlowIpv4OptionsCustomType.option_number:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber - 85, // 508: otg.FlowIpv4OptionsCustomLength.choice:type_name -> otg.FlowIpv4OptionsCustomLength.Choice.Enum - 86, // 509: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum - 994, // 510: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw - 667, // 511: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos - 666, // 512: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp - 997, // 513: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb - 1000, // 514: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn - 1003, // 515: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence - 1006, // 516: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay - 1009, // 517: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput - 1012, // 518: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability - 1015, // 519: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary - 1018, // 520: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused - 87, // 521: otg.FlowIpv4Auto.choice:type_name -> otg.FlowIpv4Auto.Choice.Enum - 1021, // 522: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version - 1024, // 523: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass - 1028, // 524: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel - 1031, // 525: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength - 1034, // 526: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader - 1037, // 527: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit - 1040, // 528: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src - 1043, // 529: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst - 1046, // 530: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst - 1049, // 531: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc - 1052, // 532: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType - 1055, // 533: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode - 1058, // 534: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector - 1061, // 535: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 - 1064, // 536: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 - 1067, // 537: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 - 1070, // 538: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 - 1073, // 539: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 - 1076, // 540: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 - 1079, // 541: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 - 1082, // 542: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 - 1085, // 543: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst - 1088, // 544: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc - 1091, // 545: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType - 1094, // 546: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode - 1097, // 547: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime - 1101, // 548: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort - 1105, // 549: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort - 1108, // 550: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum - 1111, // 551: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum - 1114, // 552: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset - 1117, // 553: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs - 1120, // 554: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr - 1123, // 555: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho - 1126, // 556: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg - 1129, // 557: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck - 1132, // 558: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh - 1135, // 559: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst - 1138, // 560: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn - 1141, // 561: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin - 1144, // 562: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow - 1145, // 563: otg.FlowTcp.checksum:type_name -> otg.PatternFlowTcpChecksum - 1149, // 564: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort - 1153, // 565: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort - 1156, // 566: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength - 1157, // 567: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum - 1160, // 568: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent - 1163, // 569: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 - 1166, // 570: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion - 1169, // 571: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol - 1170, // 572: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum - 1173, // 573: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 - 1176, // 574: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version - 1179, // 575: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType - 1182, // 576: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved - 1185, // 577: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag - 1188, // 578: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag - 1191, // 579: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag - 1194, // 580: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType - 1197, // 581: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength - 1200, // 582: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid - 1203, // 583: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber - 1206, // 584: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber - 1209, // 585: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType - 676, // 586: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension - 1212, // 587: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength - 1215, // 588: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents - 1218, // 589: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader - 1221, // 590: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version - 1224, // 591: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag - 1227, // 592: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag - 1230, // 593: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 - 1233, // 594: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType - 1236, // 595: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength - 1239, // 596: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid - 1242, // 597: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber - 1245, // 598: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 - 1248, // 599: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType - 1251, // 600: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType - 1254, // 601: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength - 1257, // 602: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength - 1260, // 603: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation - 1263, // 604: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr - 1266, // 605: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr - 1269, // 606: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr - 1272, // 607: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr - 88, // 608: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum - 680, // 609: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho - 1275, // 610: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType - 1278, // 611: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode - 1279, // 612: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum - 1282, // 613: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier - 1285, // 614: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber - 89, // 615: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum - 682, // 616: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo - 1295, // 617: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType - 1298, // 618: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode - 1301, // 619: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier - 1304, // 620: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber - 1305, // 621: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum - 1309, // 622: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress - 1312, // 623: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl - 1315, // 624: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType - 1318, // 625: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version - 1321, // 626: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type - 1324, // 627: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused - 1325, // 628: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum - 1328, // 629: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress - 1331, // 630: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel - 1334, // 631: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass - 1337, // 632: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack - 1340, // 633: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive - 1342, // 634: otg.FlowSnmpv2c.version:type_name -> otg.PatternFlowSnmpv2cVersion - 687, // 635: otg.FlowSnmpv2c.data:type_name -> otg.FlowSnmpv2cData - 90, // 636: otg.FlowSnmpv2cData.choice:type_name -> otg.FlowSnmpv2cData.Choice.Enum - 688, // 637: otg.FlowSnmpv2cData.get_request:type_name -> otg.FlowSnmpv2cPDU - 688, // 638: otg.FlowSnmpv2cData.get_next_request:type_name -> otg.FlowSnmpv2cPDU - 688, // 639: otg.FlowSnmpv2cData.response:type_name -> otg.FlowSnmpv2cPDU - 688, // 640: otg.FlowSnmpv2cData.set_request:type_name -> otg.FlowSnmpv2cPDU - 689, // 641: otg.FlowSnmpv2cData.get_bulk_request:type_name -> otg.FlowSnmpv2cBulkPDU - 688, // 642: otg.FlowSnmpv2cData.inform_request:type_name -> otg.FlowSnmpv2cPDU - 688, // 643: otg.FlowSnmpv2cData.snmpv2_trap:type_name -> otg.FlowSnmpv2cPDU - 688, // 644: otg.FlowSnmpv2cData.report:type_name -> otg.FlowSnmpv2cPDU - 1344, // 645: otg.FlowSnmpv2cPDU.request_id:type_name -> otg.PatternFlowSnmpv2cPDURequestId - 91, // 646: otg.FlowSnmpv2cPDU.error_status:type_name -> otg.FlowSnmpv2cPDU.ErrorStatus.Enum - 1346, // 647: otg.FlowSnmpv2cPDU.error_index:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex - 690, // 648: otg.FlowSnmpv2cPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding - 1348, // 649: otg.FlowSnmpv2cBulkPDU.request_id:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId - 1349, // 650: otg.FlowSnmpv2cBulkPDU.non_repeaters:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters - 1351, // 651: otg.FlowSnmpv2cBulkPDU.max_repetitions:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions - 690, // 652: otg.FlowSnmpv2cBulkPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding - 691, // 653: otg.FlowSnmpv2cVariableBinding.value:type_name -> otg.FlowSnmpv2cVariableBindingValue - 92, // 654: otg.FlowSnmpv2cVariableBindingValue.choice:type_name -> otg.FlowSnmpv2cVariableBindingValue.Choice.Enum - 1353, // 655: otg.FlowSnmpv2cVariableBindingValue.integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue - 692, // 656: otg.FlowSnmpv2cVariableBindingValue.string_value:type_name -> otg.FlowSnmpv2cVariableBindingStringValue - 1355, // 657: otg.FlowSnmpv2cVariableBindingValue.ip_address_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue - 1357, // 658: otg.FlowSnmpv2cVariableBindingValue.counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue - 1359, // 659: otg.FlowSnmpv2cVariableBindingValue.timeticks_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue - 1361, // 660: otg.FlowSnmpv2cVariableBindingValue.big_counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue - 1363, // 661: otg.FlowSnmpv2cVariableBindingValue.unsigned_integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue - 93, // 662: otg.FlowSnmpv2cVariableBindingStringValue.choice:type_name -> otg.FlowSnmpv2cVariableBindingStringValue.Choice.Enum - 94, // 663: otg.FlowRsvp.flag:type_name -> otg.FlowRsvp.Flag.Enum - 1366, // 664: otg.FlowRsvp.rsvp_checksum:type_name -> otg.PatternFlowRsvpRsvpChecksum - 1368, // 665: otg.FlowRsvp.time_to_live:type_name -> otg.PatternFlowRsvpTimeToLive - 1370, // 666: otg.FlowRsvp.reserved:type_name -> otg.PatternFlowRsvpReserved - 694, // 667: otg.FlowRsvp.rsvp_length:type_name -> otg.FlowRSVPLength - 695, // 668: otg.FlowRsvp.message_type:type_name -> otg.FlowRSVPMessage - 95, // 669: otg.FlowRSVPLength.choice:type_name -> otg.FlowRSVPLength.Choice.Enum - 96, // 670: otg.FlowRSVPMessage.choice:type_name -> otg.FlowRSVPMessage.Choice.Enum - 696, // 671: otg.FlowRSVPMessage.path:type_name -> otg.FlowRSVPPathMessage - 697, // 672: otg.FlowRSVPPathMessage.objects:type_name -> otg.FlowRSVPPathObjects - 699, // 673: otg.FlowRSVPPathObjects.class_num:type_name -> otg.FlowRSVPPathObjectsClass - 97, // 674: otg.FlowRSVPObjectLength.choice:type_name -> otg.FlowRSVPObjectLength.Choice.Enum - 98, // 675: otg.FlowRSVPPathObjectsClass.choice:type_name -> otg.FlowRSVPPathObjectsClass.Choice.Enum - 700, // 676: otg.FlowRSVPPathObjectsClass.session:type_name -> otg.FlowRSVPPathObjectsClassSession - 704, // 677: otg.FlowRSVPPathObjectsClass.rsvp_hop:type_name -> otg.FlowRSVPPathObjectsClassRsvpHop - 707, // 678: otg.FlowRSVPPathObjectsClass.time_values:type_name -> otg.FlowRSVPPathObjectsClassTimeValues - 710, // 679: otg.FlowRSVPPathObjectsClass.explicit_route:type_name -> otg.FlowRSVPPathObjectsClassExplicitRoute - 719, // 680: otg.FlowRSVPPathObjectsClass.label_request:type_name -> otg.FlowRSVPPathObjectsClassLabelRequest - 722, // 681: otg.FlowRSVPPathObjectsClass.session_attribute:type_name -> otg.FlowRSVPPathObjectsClassSessionAttribute - 728, // 682: otg.FlowRSVPPathObjectsClass.sender_template:type_name -> otg.FlowRSVPPathObjectsClassSenderTemplate - 731, // 683: otg.FlowRSVPPathObjectsClass.sender_tspec:type_name -> otg.FlowRSVPPathObjectsClassSenderTspec - 734, // 684: otg.FlowRSVPPathObjectsClass.record_route:type_name -> otg.FlowRSVPPathObjectsClassRecordRoute - 744, // 685: otg.FlowRSVPPathObjectsClass.custom:type_name -> otg.FlowRSVPPathObjectsCustom - 698, // 686: otg.FlowRSVPPathObjectsClassSession.length:type_name -> otg.FlowRSVPObjectLength - 701, // 687: otg.FlowRSVPPathObjectsClassSession.c_type:type_name -> otg.FlowRSVPPathObjectsSessionCType - 99, // 688: otg.FlowRSVPPathObjectsSessionCType.choice:type_name -> otg.FlowRSVPPathObjectsSessionCType.Choice.Enum - 702, // 689: otg.FlowRSVPPathObjectsSessionCType.lsp_tunnel_ipv4:type_name -> otg.FlowRSVPPathSessionLspTunnelIpv4 - 1372, // 690: otg.FlowRSVPPathSessionLspTunnelIpv4.ipv4_tunnel_end_point_address:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress - 1374, // 691: otg.FlowRSVPPathSessionLspTunnelIpv4.reserved:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved - 1376, // 692: otg.FlowRSVPPathSessionLspTunnelIpv4.tunnel_id:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId - 703, // 693: otg.FlowRSVPPathSessionLspTunnelIpv4.extended_tunnel_id:type_name -> otg.FlowRSVPPathSessionExtTunnelId - 100, // 694: otg.FlowRSVPPathSessionExtTunnelId.choice:type_name -> otg.FlowRSVPPathSessionExtTunnelId.Choice.Enum - 1378, // 695: otg.FlowRSVPPathSessionExtTunnelId.as_integer:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger - 1380, // 696: otg.FlowRSVPPathSessionExtTunnelId.as_ipv4:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 - 698, // 697: otg.FlowRSVPPathObjectsClassRsvpHop.length:type_name -> otg.FlowRSVPObjectLength - 705, // 698: otg.FlowRSVPPathObjectsClassRsvpHop.c_type:type_name -> otg.FlowRSVPPathObjectsRsvpHopCType - 101, // 699: otg.FlowRSVPPathObjectsRsvpHopCType.choice:type_name -> otg.FlowRSVPPathObjectsRsvpHopCType.Choice.Enum - 706, // 700: otg.FlowRSVPPathObjectsRsvpHopCType.ipv4:type_name -> otg.FlowRSVPPathRsvpHopIpv4 - 1382, // 701: otg.FlowRSVPPathRsvpHopIpv4.ipv4_address:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address - 1384, // 702: otg.FlowRSVPPathRsvpHopIpv4.logical_interface_handle:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle - 698, // 703: otg.FlowRSVPPathObjectsClassTimeValues.length:type_name -> otg.FlowRSVPObjectLength - 708, // 704: otg.FlowRSVPPathObjectsClassTimeValues.c_type:type_name -> otg.FlowRSVPPathObjectsTimeValuesCType - 102, // 705: otg.FlowRSVPPathObjectsTimeValuesCType.choice:type_name -> otg.FlowRSVPPathObjectsTimeValuesCType.Choice.Enum - 709, // 706: otg.FlowRSVPPathObjectsTimeValuesCType.type_1:type_name -> otg.FlowRSVPPathTimeValuesType1 - 1386, // 707: otg.FlowRSVPPathTimeValuesType1.refresh_period_r:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR - 698, // 708: otg.FlowRSVPPathObjectsClassExplicitRoute.length:type_name -> otg.FlowRSVPObjectLength - 711, // 709: otg.FlowRSVPPathObjectsClassExplicitRoute.c_type:type_name -> otg.FlowRSVPPathObjectsClassExplicitRouteCType - 103, // 710: otg.FlowRSVPPathObjectsClassExplicitRouteCType.choice:type_name -> otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.Enum - 712, // 711: otg.FlowRSVPPathObjectsClassExplicitRouteCType.type_1:type_name -> otg.FlowRSVPPathExplicitRouteType1 - 713, // 712: otg.FlowRSVPPathExplicitRouteType1.subobjects:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjects - 714, // 713: otg.FlowRSVPType1ExplicitRouteSubobjects.type:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjectsType - 104, // 714: otg.FlowRSVPType1ExplicitRouteSubobjectsType.choice:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.Enum - 715, // 715: otg.FlowRSVPType1ExplicitRouteSubobjectsType.ipv4_prefix:type_name -> otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix - 716, // 716: otg.FlowRSVPType1ExplicitRouteSubobjectsType.as_number:type_name -> otg.FlowRSVPPathExplicitRouteType1ASNumber - 1388, // 717: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.l_bit:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit - 717, // 718: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.length:type_name -> otg.FlowRSVPExplicitRouteLength - 1390, // 719: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.ipv4_address:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address - 1392, // 720: otg.FlowRSVPPathExplicitRouteType1ASNumber.l_bit:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit - 718, // 721: otg.FlowRSVPPathExplicitRouteType1ASNumber.length:type_name -> otg.FlowRSVPExplicitRouteASNumberLength - 105, // 722: otg.FlowRSVPExplicitRouteLength.choice:type_name -> otg.FlowRSVPExplicitRouteLength.Choice.Enum - 106, // 723: otg.FlowRSVPExplicitRouteASNumberLength.choice:type_name -> otg.FlowRSVPExplicitRouteASNumberLength.Choice.Enum - 698, // 724: otg.FlowRSVPPathObjectsClassLabelRequest.length:type_name -> otg.FlowRSVPObjectLength - 720, // 725: otg.FlowRSVPPathObjectsClassLabelRequest.c_type:type_name -> otg.FlowRSVPPathObjectsLabelRequestCType - 107, // 726: otg.FlowRSVPPathObjectsLabelRequestCType.choice:type_name -> otg.FlowRSVPPathObjectsLabelRequestCType.Choice.Enum - 721, // 727: otg.FlowRSVPPathObjectsLabelRequestCType.without_label_range:type_name -> otg.FlowRSVPPathLabelRequestWithoutLabelRange - 1394, // 728: otg.FlowRSVPPathLabelRequestWithoutLabelRange.reserved:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved - 1396, // 729: otg.FlowRSVPPathLabelRequestWithoutLabelRange.l3pid:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid - 698, // 730: otg.FlowRSVPPathObjectsClassSessionAttribute.length:type_name -> otg.FlowRSVPObjectLength - 723, // 731: otg.FlowRSVPPathObjectsClassSessionAttribute.c_type:type_name -> otg.FlowRSVPPathObjectsSessionAttributeCType - 108, // 732: otg.FlowRSVPPathObjectsSessionAttributeCType.choice:type_name -> otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.Enum - 724, // 733: otg.FlowRSVPPathObjectsSessionAttributeCType.lsp_tunnel:type_name -> otg.FlowRSVPPathSessionAttributeLspTunnel - 725, // 734: otg.FlowRSVPPathObjectsSessionAttributeCType.lsp_tunnel_ra:type_name -> otg.FlowRSVPPathSessionAttributeLspTunnelRa - 726, // 735: otg.FlowRSVPPathSessionAttributeLspTunnel.flags:type_name -> otg.FlowRSVPLspTunnelFlag - 727, // 736: otg.FlowRSVPPathSessionAttributeLspTunnel.name_length:type_name -> otg.FlowRSVPSessionAttributeNameLength - 726, // 737: otg.FlowRSVPPathSessionAttributeLspTunnelRa.flags:type_name -> otg.FlowRSVPLspTunnelFlag - 727, // 738: otg.FlowRSVPPathSessionAttributeLspTunnelRa.name_length:type_name -> otg.FlowRSVPSessionAttributeNameLength - 109, // 739: otg.FlowRSVPLspTunnelFlag.choice:type_name -> otg.FlowRSVPLspTunnelFlag.Choice.Enum - 110, // 740: otg.FlowRSVPSessionAttributeNameLength.choice:type_name -> otg.FlowRSVPSessionAttributeNameLength.Choice.Enum - 698, // 741: otg.FlowRSVPPathObjectsClassSenderTemplate.length:type_name -> otg.FlowRSVPObjectLength - 729, // 742: otg.FlowRSVPPathObjectsClassSenderTemplate.c_type:type_name -> otg.FlowRSVPPathObjectsSenderTemplateCType - 111, // 743: otg.FlowRSVPPathObjectsSenderTemplateCType.choice:type_name -> otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.Enum - 730, // 744: otg.FlowRSVPPathObjectsSenderTemplateCType.lsp_tunnel_ipv4:type_name -> otg.FlowRSVPPathSenderTemplateLspTunnelIpv4 - 1398, // 745: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.ipv4_tunnel_sender_address:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress - 1400, // 746: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.reserved:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved - 1402, // 747: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.lsp_id:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId - 698, // 748: otg.FlowRSVPPathObjectsClassSenderTspec.length:type_name -> otg.FlowRSVPObjectLength - 732, // 749: otg.FlowRSVPPathObjectsClassSenderTspec.c_type:type_name -> otg.FlowRSVPPathObjectsSenderTspecCType - 112, // 750: otg.FlowRSVPPathObjectsSenderTspecCType.choice:type_name -> otg.FlowRSVPPathObjectsSenderTspecCType.Choice.Enum - 733, // 751: otg.FlowRSVPPathObjectsSenderTspecCType.int_serv:type_name -> otg.FlowRSVPPathSenderTspecIntServ - 1404, // 752: otg.FlowRSVPPathSenderTspecIntServ.version:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersion - 1406, // 753: otg.FlowRSVPPathSenderTspecIntServ.reserved1:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1 - 1408, // 754: otg.FlowRSVPPathSenderTspecIntServ.overall_length:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLength - 1410, // 755: otg.FlowRSVPPathSenderTspecIntServ.service_header:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader - 1412, // 756: otg.FlowRSVPPathSenderTspecIntServ.zero_bit:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBit - 1414, // 757: otg.FlowRSVPPathSenderTspecIntServ.reserved2:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2 - 1416, // 758: otg.FlowRSVPPathSenderTspecIntServ.length_of_service_data:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData - 1418, // 759: otg.FlowRSVPPathSenderTspecIntServ.parameter_id_token_bucket_tspec:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec - 1420, // 760: otg.FlowRSVPPathSenderTspecIntServ.parameter_127_flag:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag - 1422, // 761: otg.FlowRSVPPathSenderTspecIntServ.parameter_127_length:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length - 1424, // 762: otg.FlowRSVPPathSenderTspecIntServ.minimum_policed_unit:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit - 1426, // 763: otg.FlowRSVPPathSenderTspecIntServ.maximum_packet_size:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize - 698, // 764: otg.FlowRSVPPathObjectsClassRecordRoute.length:type_name -> otg.FlowRSVPObjectLength - 735, // 765: otg.FlowRSVPPathObjectsClassRecordRoute.c_type:type_name -> otg.FlowRSVPPathObjectsRecordRouteCType - 113, // 766: otg.FlowRSVPPathObjectsRecordRouteCType.choice:type_name -> otg.FlowRSVPPathObjectsRecordRouteCType.Choice.Enum - 736, // 767: otg.FlowRSVPPathObjectsRecordRouteCType.type_1:type_name -> otg.FlowRSVPPathRecordRouteType1 - 737, // 768: otg.FlowRSVPPathRecordRouteType1.subobjects:type_name -> otg.FlowRSVPType1RecordRouteSubobjects - 738, // 769: otg.FlowRSVPType1RecordRouteSubobjects.type:type_name -> otg.FlowRSVPPathObjectsRecordRouteSubObjectType - 114, // 770: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.choice:type_name -> otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.Enum - 739, // 771: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.ipv4_address:type_name -> otg.FlowRSVPPathRecordRouteType1Ipv4Address - 741, // 772: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.label:type_name -> otg.FlowRSVPPathRecordRouteType1Label - 743, // 773: otg.FlowRSVPPathRecordRouteType1Ipv4Address.length:type_name -> otg.FlowRSVPRouteRecordLength - 1428, // 774: otg.FlowRSVPPathRecordRouteType1Ipv4Address.ipv4_address:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address - 1430, // 775: otg.FlowRSVPPathRecordRouteType1Ipv4Address.prefix_length:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength - 740, // 776: otg.FlowRSVPPathRecordRouteType1Ipv4Address.flags:type_name -> otg.FlowRSVPRecordRouteIPv4Flag - 115, // 777: otg.FlowRSVPRecordRouteIPv4Flag.choice:type_name -> otg.FlowRSVPRecordRouteIPv4Flag.Choice.Enum - 743, // 778: otg.FlowRSVPPathRecordRouteType1Label.length:type_name -> otg.FlowRSVPRouteRecordLength - 1431, // 779: otg.FlowRSVPPathRecordRouteType1Label.flags:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelFlags - 1432, // 780: otg.FlowRSVPPathRecordRouteType1Label.c_type:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelCType - 742, // 781: otg.FlowRSVPPathRecordRouteType1Label.label:type_name -> otg.FlowRSVPPathRecordRouteLabel - 116, // 782: otg.FlowRSVPPathRecordRouteLabel.choice:type_name -> otg.FlowRSVPPathRecordRouteLabel.Choice.Enum - 117, // 783: otg.FlowRSVPRouteRecordLength.choice:type_name -> otg.FlowRSVPRouteRecordLength.Choice.Enum - 1434, // 784: otg.FlowRSVPPathObjectsCustom.type:type_name -> otg.PatternFlowRSVPPathObjectsCustomType - 698, // 785: otg.FlowRSVPPathObjectsCustom.length:type_name -> otg.FlowRSVPObjectLength - 118, // 786: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum - 746, // 787: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement - 747, // 788: otg.FlowSize.random:type_name -> otg.FlowSizeRandom - 748, // 789: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs - 119, // 790: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum - 120, // 791: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum - 749, // 792: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom - 121, // 793: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum - 122, // 794: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum - 754, // 795: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets - 755, // 796: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds - 756, // 797: otg.FlowDuration.burst:type_name -> otg.FlowBurst - 752, // 798: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous - 753, // 799: otg.FlowContinuous.delay:type_name -> otg.FlowDelay - 123, // 800: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum - 753, // 801: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay - 753, // 802: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay - 757, // 803: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap - 124, // 804: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum - 761, // 805: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio - 759, // 806: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics - 760, // 807: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags - 125, // 808: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum - 126, // 809: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum - 762, // 810: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount - 765, // 811: otg.Event.link:type_name -> otg.EventLink - 764, // 812: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold - 766, // 813: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw - 127, // 814: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum - 767, // 815: otg.EventSubscription.events:type_name -> otg.EventRequest - 770, // 816: otg.Lldp.connection:type_name -> otg.LldpConnection - 771, // 817: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId - 772, // 818: otg.Lldp.port_id:type_name -> otg.LldpPortId - 775, // 819: otg.Lldp.system_name:type_name -> otg.LldpSystemName - 128, // 820: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum - 129, // 821: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum - 773, // 822: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType - 130, // 823: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum - 774, // 824: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType - 131, // 825: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum - 132, // 826: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum - 133, // 827: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum - 134, // 828: otg.Error.kind:type_name -> otg.Error.Kind.Enum - 135, // 829: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum - 779, // 830: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate - 136, // 831: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum - 650, // 832: otg.FlowsUpdate.flows:type_name -> otg.Flow - 137, // 833: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum - 781, // 834: otg.ControlState.port:type_name -> otg.StatePort - 783, // 835: otg.ControlState.protocol:type_name -> otg.StateProtocol - 782, // 836: otg.ControlState.traffic:type_name -> otg.StateTraffic - 138, // 837: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum - 784, // 838: otg.StatePort.link:type_name -> otg.StatePortLink - 785, // 839: otg.StatePort.capture:type_name -> otg.StatePortCapture - 139, // 840: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum - 786, // 841: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit - 140, // 842: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum - 787, // 843: otg.StateProtocol.all:type_name -> otg.StateProtocolAll - 788, // 844: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute - 789, // 845: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp - 792, // 846: otg.StateProtocol.bgp:type_name -> otg.StateProtocolBgp - 794, // 847: otg.StateProtocol.isis:type_name -> otg.StateProtocolIsis - 141, // 848: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum - 142, // 849: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum - 143, // 850: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum - 144, // 851: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum - 145, // 852: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum - 146, // 853: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum - 790, // 854: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin - 791, // 855: otg.StateProtocolLacp.member_ports:type_name -> otg.StateProtocolLacpMemberPorts - 147, // 856: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum - 148, // 857: otg.StateProtocolLacpMemberPorts.state:type_name -> otg.StateProtocolLacpMemberPorts.State.Enum - 149, // 858: otg.StateProtocolBgp.choice:type_name -> otg.StateProtocolBgp.Choice.Enum - 793, // 859: otg.StateProtocolBgp.peers:type_name -> otg.StateProtocolBgpPeers - 150, // 860: otg.StateProtocolBgpPeers.state:type_name -> otg.StateProtocolBgpPeers.State.Enum - 151, // 861: otg.StateProtocolIsis.choice:type_name -> otg.StateProtocolIsis.Choice.Enum - 795, // 862: otg.StateProtocolIsis.routers:type_name -> otg.StateProtocolIsisRouters - 152, // 863: otg.StateProtocolIsisRouters.state:type_name -> otg.StateProtocolIsisRouters.State.Enum - 153, // 864: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum - 799, // 865: otg.ControlAction.protocol:type_name -> otg.ActionProtocol - 798, // 866: otg.ControlActionResponse.response:type_name -> otg.ActionResponse - 154, // 867: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum - 800, // 868: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol - 155, // 869: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum - 801, // 870: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 - 807, // 871: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 - 813, // 872: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp - 156, // 873: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum - 802, // 874: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 - 808, // 875: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 - 157, // 876: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum - 803, // 877: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping - 158, // 878: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum - 805, // 879: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping - 804, // 880: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest - 806, // 881: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse - 159, // 882: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - 160, // 883: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum - 809, // 884: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping - 161, // 885: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum - 811, // 886: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping - 810, // 887: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest - 812, // 888: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse - 162, // 889: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - 163, // 890: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum - 814, // 891: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification - 815, // 892: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart - 164, // 893: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum - 488, // 894: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError - 483, // 895: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError - 484, // 896: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError - 485, // 897: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError - 486, // 898: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired - 487, // 899: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError - 489, // 900: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError - 165, // 901: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum - 818, // 902: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest - 820, // 903: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest - 829, // 904: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest - 831, // 905: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest - 833, // 906: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest - 835, // 907: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest - 837, // 908: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest - 839, // 909: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest - 841, // 910: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest - 843, // 911: otg.MetricsRequest.dhcpv4_client:type_name -> otg.Dhcpv4ClientMetricsRequest - 845, // 912: otg.MetricsRequest.dhcpv4_server:type_name -> otg.Dhcpv4ServerMetricsRequest - 166, // 913: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum - 819, // 914: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric - 823, // 915: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric - 830, // 916: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric - 832, // 917: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric - 834, // 918: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric - 836, // 919: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric - 838, // 920: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric - 840, // 921: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric - 842, // 922: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric - 844, // 923: otg.MetricsResponse.dhcpv4client_metrics:type_name -> otg.Dhcpv4ClientMetric - 846, // 924: otg.MetricsResponse.dhcpv4server_metrics:type_name -> otg.Dhcpv4ServerMetric - 167, // 925: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum - 168, // 926: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum - 169, // 927: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum - 170, // 928: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum - 171, // 929: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum - 821, // 930: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter - 172, // 931: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum - 822, // 932: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter - 173, // 933: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum - 827, // 934: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp - 828, // 935: otg.FlowMetric.latency:type_name -> otg.MetricLatency - 824, // 936: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric - 825, // 937: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag - 827, // 938: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp - 828, // 939: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency - 826, // 940: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue - 174, // 941: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum - 175, // 942: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum - 176, // 943: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum - 177, // 944: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum - 178, // 945: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum - 179, // 946: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum - 180, // 947: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum - 181, // 948: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum - 182, // 949: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum - 183, // 950: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum - 184, // 951: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum - 185, // 952: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum - 186, // 953: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum - 187, // 954: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum - 188, // 955: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum - 189, // 956: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum - 190, // 957: otg.Dhcpv4ClientMetricsRequest.column_names:type_name -> otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum - 191, // 958: otg.Dhcpv4ServerMetricsRequest.column_names:type_name -> otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum - 192, // 959: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum - 849, // 960: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest - 851, // 961: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest - 853, // 962: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest - 878, // 963: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest - 895, // 964: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest - 899, // 965: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest - 905, // 966: otg.StatesRequest.dhcpv4_interfaces:type_name -> otg.Dhcpv4InterfaceStateRequest - 907, // 967: otg.StatesRequest.dhcpv4_leases:type_name -> otg.Dhcpv4LeaseStateRequest - 193, // 968: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum - 850, // 969: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State - 852, // 970: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State - 856, // 971: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState - 879, // 972: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState - 896, // 973: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState - 900, // 974: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState - 906, // 975: otg.StatesResponse.dhcpv4_interfaces:type_name -> otg.Dhcpv4InterfaceState - 908, // 976: otg.StatesResponse.dhcpv4_leases:type_name -> otg.Dhcpv4LeasesState - 194, // 977: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum - 854, // 978: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter - 855, // 979: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter - 195, // 980: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - 196, // 981: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - 857, // 982: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState - 858, // 983: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState - 197, // 984: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum - 875, // 985: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity - 859, // 986: otg.BgpPrefixIpv4UnicastState.extended_communities:type_name -> otg.ResultExtendedCommunity - 876, // 987: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 198, // 988: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum - 875, // 989: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity - 859, // 990: otg.BgpPrefixIpv6UnicastState.extended_communities:type_name -> otg.ResultExtendedCommunity - 876, // 991: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 860, // 992: otg.ResultExtendedCommunity.structured:type_name -> otg.ResultExtendedCommunityStructured - 199, // 993: otg.ResultExtendedCommunityStructured.choice:type_name -> otg.ResultExtendedCommunityStructured.Choice.Enum - 863, // 994: otg.ResultExtendedCommunityStructured.transitive_2octet_as_type:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsType - 866, // 995: otg.ResultExtendedCommunityStructured.transitive_ipv4_address_type:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressType - 869, // 996: otg.ResultExtendedCommunityStructured.transitive_4octet_as_type:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsType - 872, // 997: otg.ResultExtendedCommunityStructured.transitive_opaque_type:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueType - 874, // 998: otg.ResultExtendedCommunityStructured.non_transitive_2octet_as_type:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsType - 200, // 999: otg.ResultExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.Enum - 861, // 1000: otg.ResultExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget - 862, // 1001: otg.ResultExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin - 201, // 1002: otg.ResultExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.Enum - 865, // 1003: otg.ResultExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget - 864, // 1004: otg.ResultExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin - 202, // 1005: otg.ResultExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.Enum - 867, // 1006: otg.ResultExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget - 868, // 1007: otg.ResultExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin - 203, // 1008: otg.ResultExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.Enum - 870, // 1009: otg.ResultExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueTypeColor - 871, // 1010: otg.ResultExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation - 204, // 1011: otg.ResultExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.Enum - 873, // 1012: otg.ResultExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth - 205, // 1013: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum - 877, // 1014: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment - 206, // 1015: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum - 880, // 1016: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState - 207, // 1017: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum - 883, // 1018: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags - 881, // 1019: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs - 882, // 1020: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname - 884, // 1021: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv - 885, // 1022: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv - 887, // 1023: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv - 888, // 1024: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv - 890, // 1025: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv - 892, // 1026: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv - 886, // 1027: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 886, // 1028: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 889, // 1029: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 889, // 1030: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 208, // 1031: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum - 209, // 1032: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum - 891, // 1033: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix - 210, // 1034: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - 894, // 1035: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 893, // 1036: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix - 211, // 1037: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum - 212, // 1038: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum - 894, // 1039: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 213, // 1040: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum - 214, // 1041: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum - 897, // 1042: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState - 898, // 1043: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState - 215, // 1044: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum - 901, // 1045: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState - 902, // 1046: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState - 903, // 1047: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro - 904, // 1048: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero - 216, // 1049: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum - 217, // 1050: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum - 218, // 1051: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum - 909, // 1052: otg.Dhcpv4LeasesState.leases:type_name -> otg.Dhcpv4LeaseState - 219, // 1053: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum - 911, // 1054: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter - 911, // 1055: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter - 912, // 1056: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag - 220, // 1057: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum - 914, // 1058: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter - 914, // 1059: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter - 915, // 1060: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag - 221, // 1061: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum - 917, // 1062: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 917, // 1063: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 918, // 1064: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag - 222, // 1065: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum - 920, // 1066: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 920, // 1067: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 921, // 1068: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag - 223, // 1069: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum - 923, // 1070: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter - 923, // 1071: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter - 924, // 1072: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag - 224, // 1073: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum - 926, // 1074: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter - 926, // 1075: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter - 927, // 1076: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag - 225, // 1077: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum - 929, // 1078: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter - 929, // 1079: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter - 930, // 1080: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag - 226, // 1081: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum - 932, // 1082: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter - 932, // 1083: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter - 933, // 1084: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag - 227, // 1085: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum - 935, // 1086: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter - 935, // 1087: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter - 936, // 1088: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag - 228, // 1089: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum - 938, // 1090: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter - 938, // 1091: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter - 939, // 1092: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag - 229, // 1093: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum - 941, // 1094: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter - 941, // 1095: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter - 942, // 1096: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag - 230, // 1097: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum - 944, // 1098: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter - 944, // 1099: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter - 945, // 1100: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag - 231, // 1101: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum - 947, // 1102: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter - 947, // 1103: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter - 948, // 1104: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag - 232, // 1105: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum - 950, // 1106: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 950, // 1107: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 951, // 1108: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag - 233, // 1109: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum - 953, // 1110: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 953, // 1111: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 954, // 1112: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag - 234, // 1113: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum - 956, // 1114: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter - 956, // 1115: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter - 957, // 1116: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag - 235, // 1117: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum - 959, // 1118: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter - 959, // 1119: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter - 960, // 1120: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag - 236, // 1121: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum - 962, // 1122: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 962, // 1123: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 963, // 1124: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag - 237, // 1125: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum - 965, // 1126: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 965, // 1127: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 966, // 1128: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag - 238, // 1129: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum - 968, // 1130: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 968, // 1131: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 969, // 1132: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag - 239, // 1133: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum - 971, // 1134: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 971, // 1135: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 972, // 1136: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag - 240, // 1137: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum - 974, // 1138: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter - 974, // 1139: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter - 975, // 1140: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag - 241, // 1141: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - 242, // 1142: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - 243, // 1143: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum - 978, // 1144: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter - 978, // 1145: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter - 979, // 1146: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag - 668, // 1147: otg.PatternFlowIpv4Src.auto:type_name -> otg.FlowIpv4Auto - 980, // 1148: otg.PatternFlowIpv4Src.random:type_name -> otg.PatternFlowIpv4SrcRandom - 244, // 1149: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum - 982, // 1150: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter - 982, // 1151: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter - 983, // 1152: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag - 668, // 1153: otg.PatternFlowIpv4Dst.auto:type_name -> otg.FlowIpv4Auto - 984, // 1154: otg.PatternFlowIpv4Dst.random:type_name -> otg.PatternFlowIpv4DstRandom - 245, // 1155: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum - 986, // 1156: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - 986, // 1157: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter - 246, // 1158: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum - 988, // 1159: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - 988, // 1160: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter - 247, // 1161: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum - 990, // 1162: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - 990, // 1163: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter - 248, // 1164: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum - 992, // 1165: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 992, // 1166: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 993, // 1167: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag - 249, // 1168: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum - 995, // 1169: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 995, // 1170: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 996, // 1171: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag - 250, // 1172: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum - 998, // 1173: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 998, // 1174: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 999, // 1175: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag - 251, // 1176: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum - 1001, // 1177: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 1001, // 1178: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 1002, // 1179: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag - 252, // 1180: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum - 1004, // 1181: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter - 1004, // 1182: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter - 1005, // 1183: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag - 253, // 1184: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum - 1007, // 1185: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 1007, // 1186: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 1008, // 1187: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag - 254, // 1188: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum - 1010, // 1189: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 1010, // 1190: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 1011, // 1191: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag - 255, // 1192: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum - 1013, // 1193: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 1013, // 1194: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 1014, // 1195: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag - 256, // 1196: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum - 1016, // 1197: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 1016, // 1198: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 1017, // 1199: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag - 257, // 1200: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum - 1019, // 1201: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter - 1019, // 1202: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter - 1020, // 1203: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag - 258, // 1204: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum - 1022, // 1205: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 1022, // 1206: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 1023, // 1207: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag - 259, // 1208: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum - 1025, // 1209: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 1025, // 1210: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 1026, // 1211: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag - 1027, // 1212: otg.PatternFlowIpv6FlowLabel.random:type_name -> otg.PatternFlowIpv6FlowLabelRandom - 260, // 1213: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum - 1029, // 1214: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 1029, // 1215: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 1030, // 1216: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag - 261, // 1217: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum - 1032, // 1218: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 1032, // 1219: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 1033, // 1220: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag - 262, // 1221: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum - 1035, // 1222: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter - 1035, // 1223: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter - 1036, // 1224: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag - 263, // 1225: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum - 1038, // 1226: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter - 1038, // 1227: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter - 1039, // 1228: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag - 264, // 1229: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum - 1041, // 1230: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter - 1041, // 1231: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter - 1042, // 1232: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag - 265, // 1233: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum - 1044, // 1234: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter - 1044, // 1235: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter - 1045, // 1236: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag - 266, // 1237: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum - 1047, // 1238: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter - 1047, // 1239: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter - 1048, // 1240: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag - 267, // 1241: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum - 1050, // 1242: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 1050, // 1243: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 1051, // 1244: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag - 268, // 1245: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - 1053, // 1246: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 1053, // 1247: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 1054, // 1248: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag - 269, // 1249: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - 1056, // 1250: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 1056, // 1251: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 1057, // 1252: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag - 270, // 1253: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum - 1059, // 1254: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 1059, // 1255: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 1060, // 1256: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag - 271, // 1257: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum - 1062, // 1258: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 1062, // 1259: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 1063, // 1260: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag - 272, // 1261: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum - 1065, // 1262: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 1065, // 1263: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 1066, // 1264: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag - 273, // 1265: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum - 1068, // 1266: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 1068, // 1267: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 1069, // 1268: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag - 274, // 1269: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum - 1071, // 1270: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 1071, // 1271: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 1072, // 1272: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag - 275, // 1273: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum - 1074, // 1274: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 1074, // 1275: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 1075, // 1276: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag - 276, // 1277: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum - 1077, // 1278: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 1077, // 1279: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 1078, // 1280: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag - 277, // 1281: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum - 1080, // 1282: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 1080, // 1283: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 1081, // 1284: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag - 278, // 1285: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum - 1083, // 1286: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter - 1083, // 1287: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter - 1084, // 1288: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag - 279, // 1289: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum - 1086, // 1290: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 1086, // 1291: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 1087, // 1292: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag - 280, // 1293: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum - 1089, // 1294: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 1089, // 1295: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 1090, // 1296: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag - 281, // 1297: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - 1092, // 1298: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 1092, // 1299: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 1093, // 1300: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag - 282, // 1301: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum - 1095, // 1302: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 1095, // 1303: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 1096, // 1304: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag - 283, // 1305: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum - 1098, // 1306: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter - 1098, // 1307: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter - 1099, // 1308: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag - 1100, // 1309: otg.PatternFlowTcpSrcPort.random:type_name -> otg.PatternFlowTcpSrcPortRandom - 284, // 1310: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum - 1102, // 1311: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter - 1102, // 1312: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter - 1103, // 1313: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag - 1104, // 1314: otg.PatternFlowTcpDstPort.random:type_name -> otg.PatternFlowTcpDstPortRandom - 285, // 1315: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum - 1106, // 1316: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter - 1106, // 1317: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter - 1107, // 1318: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag - 286, // 1319: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum - 1109, // 1320: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter - 1109, // 1321: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter - 1110, // 1322: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag - 287, // 1323: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum - 1112, // 1324: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter - 1112, // 1325: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter - 1113, // 1326: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag - 288, // 1327: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum - 1115, // 1328: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter - 1115, // 1329: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter - 1116, // 1330: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag - 289, // 1331: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum - 1118, // 1332: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter - 1118, // 1333: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter - 1119, // 1334: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag - 290, // 1335: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum - 1121, // 1336: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter - 1121, // 1337: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter - 1122, // 1338: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag - 291, // 1339: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum - 1124, // 1340: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter - 1124, // 1341: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter - 1125, // 1342: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag - 292, // 1343: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum - 1127, // 1344: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter - 1127, // 1345: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter - 1128, // 1346: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag - 293, // 1347: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum - 1130, // 1348: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter - 1130, // 1349: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter - 1131, // 1350: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag - 294, // 1351: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum - 1133, // 1352: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter - 1133, // 1353: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter - 1134, // 1354: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag - 295, // 1355: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum - 1136, // 1356: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter - 1136, // 1357: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter - 1137, // 1358: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag - 296, // 1359: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum - 1139, // 1360: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter - 1139, // 1361: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter - 1140, // 1362: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag - 297, // 1363: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum - 1142, // 1364: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter - 1142, // 1365: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter - 1143, // 1366: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag - 298, // 1367: otg.PatternFlowTcpChecksum.choice:type_name -> otg.PatternFlowTcpChecksum.Choice.Enum - 299, // 1368: otg.PatternFlowTcpChecksum.generated:type_name -> otg.PatternFlowTcpChecksum.Generated.Enum - 300, // 1369: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum - 1146, // 1370: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter - 1146, // 1371: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter - 1147, // 1372: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag - 1148, // 1373: otg.PatternFlowUdpSrcPort.random:type_name -> otg.PatternFlowUdpSrcPortRandom - 301, // 1374: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum - 1150, // 1375: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter - 1150, // 1376: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter - 1151, // 1377: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag - 1152, // 1378: otg.PatternFlowUdpDstPort.random:type_name -> otg.PatternFlowUdpDstPortRandom - 302, // 1379: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum - 1154, // 1380: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter - 1154, // 1381: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter - 1155, // 1382: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag - 303, // 1383: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum - 304, // 1384: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum - 305, // 1385: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum - 1158, // 1386: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter - 1158, // 1387: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter - 1159, // 1388: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag - 306, // 1389: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum - 1161, // 1390: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter - 1161, // 1391: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter - 1162, // 1392: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag - 307, // 1393: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum - 1164, // 1394: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter - 1164, // 1395: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter - 1165, // 1396: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag - 308, // 1397: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum - 1167, // 1398: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter - 1167, // 1399: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter - 1168, // 1400: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag - 309, // 1401: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum - 310, // 1402: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum - 311, // 1403: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum - 1171, // 1404: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter - 1171, // 1405: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter - 1172, // 1406: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag - 312, // 1407: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum - 1174, // 1408: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter - 1174, // 1409: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter - 1175, // 1410: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag - 313, // 1411: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum - 1177, // 1412: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 1177, // 1413: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 1178, // 1414: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag - 314, // 1415: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum - 1180, // 1416: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter - 1180, // 1417: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter - 1181, // 1418: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag - 315, // 1419: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum - 1183, // 1420: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter - 1183, // 1421: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter - 1184, // 1422: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag - 316, // 1423: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum - 1186, // 1424: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter - 1186, // 1425: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter - 1187, // 1426: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag - 317, // 1427: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum - 1189, // 1428: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 1189, // 1429: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 1190, // 1430: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag - 318, // 1431: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum - 1192, // 1432: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 1192, // 1433: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 1193, // 1434: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag - 319, // 1435: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum - 1195, // 1436: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 1195, // 1437: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 1196, // 1438: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag - 320, // 1439: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum - 1198, // 1440: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter - 1198, // 1441: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter - 1199, // 1442: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag - 321, // 1443: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - 1201, // 1444: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 1201, // 1445: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 1202, // 1446: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag - 322, // 1447: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum - 1204, // 1448: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 1204, // 1449: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 1205, // 1450: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag - 323, // 1451: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - 1207, // 1452: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 1207, // 1453: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 1208, // 1454: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - 324, // 1455: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - 1210, // 1456: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 1210, // 1457: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 1211, // 1458: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag - 325, // 1459: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum - 1213, // 1460: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 1213, // 1461: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 1214, // 1462: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag - 326, // 1463: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - 1216, // 1464: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 1216, // 1465: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 1217, // 1466: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - 327, // 1467: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum - 1219, // 1468: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter - 1219, // 1469: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter - 1220, // 1470: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag - 328, // 1471: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - 1222, // 1472: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 1222, // 1473: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 1223, // 1474: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag - 329, // 1475: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum - 1225, // 1476: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 1225, // 1477: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 1226, // 1478: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag - 330, // 1479: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum - 1228, // 1480: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter - 1228, // 1481: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter - 1229, // 1482: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag - 331, // 1483: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum - 1231, // 1484: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 1231, // 1485: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 1232, // 1486: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag - 332, // 1487: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum - 1234, // 1488: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 1234, // 1489: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 1235, // 1490: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag - 333, // 1491: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum - 1237, // 1492: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter - 1237, // 1493: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter - 1238, // 1494: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag - 334, // 1495: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - 1240, // 1496: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 1240, // 1497: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 1241, // 1498: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag - 335, // 1499: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum - 1243, // 1500: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter - 1243, // 1501: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter - 1244, // 1502: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag - 336, // 1503: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum - 1246, // 1504: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter - 1246, // 1505: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter - 1247, // 1506: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag - 337, // 1507: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum - 1249, // 1508: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter - 1249, // 1509: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter - 1250, // 1510: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag - 338, // 1511: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum - 1252, // 1512: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter - 1252, // 1513: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter - 1253, // 1514: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag - 339, // 1515: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum - 1255, // 1516: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter - 1255, // 1517: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter - 1256, // 1518: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag - 340, // 1519: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum - 1258, // 1520: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter - 1258, // 1521: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter - 1259, // 1522: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag - 341, // 1523: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - 1261, // 1524: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 1261, // 1525: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 1262, // 1526: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag - 342, // 1527: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - 1264, // 1528: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 1264, // 1529: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 1265, // 1530: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag - 343, // 1531: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - 1267, // 1532: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 1267, // 1533: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 1268, // 1534: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag - 344, // 1535: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - 1270, // 1536: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 1270, // 1537: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 1271, // 1538: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag - 345, // 1539: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum - 1273, // 1540: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 1273, // 1541: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 1274, // 1542: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag - 346, // 1543: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum - 1276, // 1544: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 1276, // 1545: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 1277, // 1546: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag - 347, // 1547: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum - 348, // 1548: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum - 349, // 1549: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - 1280, // 1550: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 1280, // 1551: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 1281, // 1552: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag - 350, // 1553: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - 1283, // 1554: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 1283, // 1555: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 1284, // 1556: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag - 351, // 1557: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum - 352, // 1558: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum - 353, // 1559: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - 1287, // 1560: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 1287, // 1561: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 1288, // 1562: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - 354, // 1563: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - 1290, // 1564: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 1290, // 1565: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 1291, // 1566: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - 355, // 1567: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum - 1293, // 1568: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 1293, // 1569: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 1294, // 1570: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag - 356, // 1571: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum - 1296, // 1572: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 1296, // 1573: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 1297, // 1574: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag - 357, // 1575: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - 1299, // 1576: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 1299, // 1577: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 1300, // 1578: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag - 358, // 1579: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - 1302, // 1580: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 1302, // 1581: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 1303, // 1582: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - 359, // 1583: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - 360, // 1584: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - 361, // 1585: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - 362, // 1586: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - 363, // 1587: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum - 1307, // 1588: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter - 1307, // 1589: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter - 1308, // 1590: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag - 364, // 1591: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum - 1310, // 1592: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter - 1310, // 1593: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter - 1311, // 1594: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag - 365, // 1595: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum - 1313, // 1596: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1313, // 1597: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1314, // 1598: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag - 366, // 1599: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum - 1316, // 1600: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1316, // 1601: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1317, // 1602: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag - 367, // 1603: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum - 1319, // 1604: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1319, // 1605: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1320, // 1606: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag - 368, // 1607: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum - 1322, // 1608: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1322, // 1609: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1323, // 1610: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag - 369, // 1611: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum - 370, // 1612: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum - 371, // 1613: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - 1326, // 1614: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1326, // 1615: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1327, // 1616: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag - 372, // 1617: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum - 1329, // 1618: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter - 1329, // 1619: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter - 1330, // 1620: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag - 373, // 1621: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum - 1332, // 1622: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1332, // 1623: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1333, // 1624: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag - 374, // 1625: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum - 1335, // 1626: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1335, // 1627: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1336, // 1628: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag - 375, // 1629: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum - 1338, // 1630: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1338, // 1631: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1339, // 1632: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag - 376, // 1633: otg.PatternFlowSnmpv2cVersion.choice:type_name -> otg.PatternFlowSnmpv2cVersion.Choice.Enum - 1341, // 1634: otg.PatternFlowSnmpv2cVersion.increment:type_name -> otg.PatternFlowSnmpv2cVersionCounter - 1341, // 1635: otg.PatternFlowSnmpv2cVersion.decrement:type_name -> otg.PatternFlowSnmpv2cVersionCounter - 377, // 1636: otg.PatternFlowSnmpv2cPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum - 1343, // 1637: otg.PatternFlowSnmpv2cPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter - 1343, // 1638: otg.PatternFlowSnmpv2cPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter - 378, // 1639: otg.PatternFlowSnmpv2cPDUErrorIndex.choice:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum - 1345, // 1640: otg.PatternFlowSnmpv2cPDUErrorIndex.increment:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter - 1345, // 1641: otg.PatternFlowSnmpv2cPDUErrorIndex.decrement:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter - 379, // 1642: otg.PatternFlowSnmpv2cBulkPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum - 1347, // 1643: otg.PatternFlowSnmpv2cBulkPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter - 1347, // 1644: otg.PatternFlowSnmpv2cBulkPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter - 380, // 1645: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum - 381, // 1646: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum - 1350, // 1647: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter - 1350, // 1648: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter - 382, // 1649: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum - 1352, // 1650: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter - 1352, // 1651: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter - 383, // 1652: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum - 1354, // 1653: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter - 1354, // 1654: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter - 384, // 1655: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum - 1356, // 1656: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter - 1356, // 1657: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter - 385, // 1658: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum - 1358, // 1659: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter - 1358, // 1660: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter - 386, // 1661: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum - 1360, // 1662: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter - 1360, // 1663: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter - 387, // 1664: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum - 1362, // 1665: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter - 1362, // 1666: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter - 388, // 1667: otg.PatternFlowSnmpv2cCommonRequestId.choice:type_name -> otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum - 1364, // 1668: otg.PatternFlowSnmpv2cCommonRequestId.increment:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter - 1364, // 1669: otg.PatternFlowSnmpv2cCommonRequestId.decrement:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter - 389, // 1670: otg.PatternFlowRsvpRsvpChecksum.choice:type_name -> otg.PatternFlowRsvpRsvpChecksum.Choice.Enum - 390, // 1671: otg.PatternFlowRsvpRsvpChecksum.generated:type_name -> otg.PatternFlowRsvpRsvpChecksum.Generated.Enum - 391, // 1672: otg.PatternFlowRsvpTimeToLive.choice:type_name -> otg.PatternFlowRsvpTimeToLive.Choice.Enum - 1367, // 1673: otg.PatternFlowRsvpTimeToLive.increment:type_name -> otg.PatternFlowRsvpTimeToLiveCounter - 1367, // 1674: otg.PatternFlowRsvpTimeToLive.decrement:type_name -> otg.PatternFlowRsvpTimeToLiveCounter - 392, // 1675: otg.PatternFlowRsvpReserved.choice:type_name -> otg.PatternFlowRsvpReserved.Choice.Enum - 1369, // 1676: otg.PatternFlowRsvpReserved.increment:type_name -> otg.PatternFlowRsvpReservedCounter - 1369, // 1677: otg.PatternFlowRsvpReserved.decrement:type_name -> otg.PatternFlowRsvpReservedCounter - 393, // 1678: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice.Enum - 1371, // 1679: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter - 1371, // 1680: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter - 394, // 1681: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice.Enum - 1373, // 1682: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter - 1373, // 1683: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter - 395, // 1684: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice.Enum - 1375, // 1685: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter - 1375, // 1686: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter - 396, // 1687: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.choice:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice.Enum - 1377, // 1688: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.increment:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter - 1377, // 1689: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.decrement:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter - 397, // 1690: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.choice:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice.Enum - 1379, // 1691: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.increment:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter - 1379, // 1692: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.decrement:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter - 398, // 1693: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.choice:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice.Enum - 1381, // 1694: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.increment:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter - 1381, // 1695: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.decrement:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter - 399, // 1696: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.choice:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice.Enum - 1383, // 1697: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.increment:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter - 1383, // 1698: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.decrement:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter - 400, // 1699: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.choice:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice.Enum - 1385, // 1700: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.increment:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter - 1385, // 1701: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.decrement:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter - 401, // 1702: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice.Enum - 1387, // 1703: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter - 1387, // 1704: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter - 402, // 1705: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice.Enum - 1389, // 1706: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter - 1389, // 1707: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter - 403, // 1708: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice.Enum - 1391, // 1709: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter - 1391, // 1710: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter - 404, // 1711: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.choice:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice.Enum - 1393, // 1712: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.increment:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter - 1393, // 1713: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.decrement:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter - 405, // 1714: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.choice:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice.Enum - 1395, // 1715: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.increment:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter - 1395, // 1716: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.decrement:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter - 406, // 1717: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice.Enum - 1397, // 1718: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter - 1397, // 1719: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter - 407, // 1720: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice.Enum - 1399, // 1721: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter - 1399, // 1722: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter - 408, // 1723: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice.Enum - 1401, // 1724: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter - 1401, // 1725: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter - 409, // 1726: otg.PatternFlowRSVPPathSenderTspecIntServVersion.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice.Enum - 1403, // 1727: otg.PatternFlowRSVPPathSenderTspecIntServVersion.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter - 1403, // 1728: otg.PatternFlowRSVPPathSenderTspecIntServVersion.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter - 410, // 1729: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice.Enum - 1405, // 1730: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter - 1405, // 1731: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter - 411, // 1732: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice.Enum - 1407, // 1733: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter - 1407, // 1734: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter - 412, // 1735: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice.Enum - 1409, // 1736: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter - 1409, // 1737: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter - 413, // 1738: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice.Enum - 1411, // 1739: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter - 1411, // 1740: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter - 414, // 1741: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice.Enum - 1413, // 1742: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter - 1413, // 1743: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter - 415, // 1744: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice.Enum - 1415, // 1745: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter - 1415, // 1746: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter - 416, // 1747: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice.Enum - 1417, // 1748: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter - 1417, // 1749: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter - 417, // 1750: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice.Enum - 1419, // 1751: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter - 1419, // 1752: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter - 418, // 1753: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice.Enum - 1421, // 1754: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter - 1421, // 1755: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter - 419, // 1756: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice.Enum - 1423, // 1757: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter - 1423, // 1758: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter - 420, // 1759: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice.Enum - 1425, // 1760: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter - 1425, // 1761: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter - 421, // 1762: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice.Enum - 1427, // 1763: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.increment:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter - 1427, // 1764: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.decrement:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter - 422, // 1765: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice.Enum - 1429, // 1766: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.increment:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter - 1429, // 1767: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.decrement:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter - 423, // 1768: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice.Enum - 424, // 1769: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice.Enum - 425, // 1770: otg.PatternFlowRSVPPathObjectsCustomType.choice:type_name -> otg.PatternFlowRSVPPathObjectsCustomType.Choice.Enum - 1433, // 1771: otg.PatternFlowRSVPPathObjectsCustomType.increment:type_name -> otg.PatternFlowRSVPPathObjectsCustomTypeCounter - 1433, // 1772: otg.PatternFlowRSVPPathObjectsCustomType.decrement:type_name -> otg.PatternFlowRSVPPathObjectsCustomTypeCounter - 777, // 1773: otg.Success.warning:type_name -> otg.Warning - 776, // 1774: otg.Failure.error:type_name -> otg.Error - 426, // 1775: otg.SetConfigRequest.config:type_name -> otg.Config - 778, // 1776: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate - 777, // 1777: otg.SetConfigResponse.warning:type_name -> otg.Warning - 426, // 1778: otg.GetConfigResponse.config:type_name -> otg.Config - 777, // 1779: otg.UpdateConfigResponse.warning:type_name -> otg.Warning - 780, // 1780: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState - 777, // 1781: otg.SetControlStateResponse.warning:type_name -> otg.Warning - 796, // 1782: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction - 797, // 1783: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse - 816, // 1784: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest - 817, // 1785: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse - 847, // 1786: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest - 848, // 1787: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse - 910, // 1788: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest - 1435, // 1789: otg.GetVersionResponse.version:type_name -> otg.Version - 1438, // 1790: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest - 1880, // 1791: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty - 1439, // 1792: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest - 1443, // 1793: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest - 1445, // 1794: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest - 1447, // 1795: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest - 1449, // 1796: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest - 1451, // 1797: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest - 1880, // 1798: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty - 1440, // 1799: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse - 1441, // 1800: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse - 1442, // 1801: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse - 1444, // 1802: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse - 1446, // 1803: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse - 1448, // 1804: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse - 1450, // 1805: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse - 1452, // 1806: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse - 1453, // 1807: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse - 1799, // [1799:1808] is the sub-list for method output_type - 1790, // [1790:1799] is the sub-list for method input_type - 1790, // [1790:1790] is the sub-list for extension type_name - 1790, // [1790:1790] is the sub-list for extension extendee - 0, // [0:1790] is the sub-list for field type_name + 454, // 19: otg.DeviceEthernetBase.vlans:type_name -> otg.DeviceVlan + 453, // 20: otg.DeviceEthernet.connection:type_name -> otg.EthernetConnection + 455, // 21: otg.DeviceEthernet.ipv4_addresses:type_name -> otg.DeviceIpv4 + 458, // 22: otg.DeviceEthernet.ipv6_addresses:type_name -> otg.DeviceIpv6 + 454, // 23: otg.DeviceEthernet.vlans:type_name -> otg.DeviceVlan + 461, // 24: otg.DeviceEthernet.dhcpv4_interfaces:type_name -> otg.DeviceDhcpv4client + 463, // 25: otg.DeviceEthernet.dhcpv6_interfaces:type_name -> otg.DeviceDhcpv6client + 2, // 26: otg.EthernetConnection.choice:type_name -> otg.EthernetConnection.Choice.Enum + 3, // 27: otg.DeviceVlan.tpid:type_name -> otg.DeviceVlan.Tpid.Enum + 457, // 28: otg.DeviceIpv4.gateway_mac:type_name -> otg.DeviceIpv4GatewayMAC + 4, // 29: otg.DeviceIpv4GatewayMAC.choice:type_name -> otg.DeviceIpv4GatewayMAC.Choice.Enum + 460, // 30: otg.DeviceIpv6.gateway_mac:type_name -> otg.DeviceIpv6GatewayMAC + 5, // 31: otg.DeviceIpv6GatewayMAC.choice:type_name -> otg.DeviceIpv6GatewayMAC.Choice.Enum + 6, // 32: otg.DeviceDhcpv4client.choice:type_name -> otg.DeviceDhcpv4client.Choice.Enum + 462, // 33: otg.DeviceDhcpv4client.parameters_request_list:type_name -> otg.Dhcpv4ClientParams + 466, // 34: otg.DeviceDhcpv6client.ia_type:type_name -> otg.DeviceDhcpv6clientIaType + 468, // 35: otg.DeviceDhcpv6client.duid_type:type_name -> otg.DeviceDhcpv6clientDuidType + 464, // 36: otg.DeviceDhcpv6client.options_request:type_name -> otg.DeviceDhcpv6ClientOptionsRequest + 465, // 37: otg.DeviceDhcpv6client.options:type_name -> otg.DeviceDhcpv6ClientOptions + 479, // 38: otg.DeviceDhcpv6ClientOptionsRequest.request:type_name -> otg.Dhcpv6ClientOptionsOptionsRequest + 482, // 39: otg.DeviceDhcpv6ClientOptionsRequest.associated_dhcp_messages:type_name -> otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages + 471, // 40: otg.DeviceDhcpv6ClientOptions.server_identifier:type_name -> otg.Dhcpv6ClientOptionsServerIdentifier + 481, // 41: otg.DeviceDhcpv6ClientOptions.vendor_class:type_name -> otg.Dhcpv6ClientOptionsVendorClass + 485, // 42: otg.DeviceDhcpv6ClientOptions.vendor_info:type_name -> otg.Dhcpv6ClientOptionsVendorInfo + 490, // 43: otg.DeviceDhcpv6ClientOptions.fqdn:type_name -> otg.Dhcpv6ClientOptionsFqdn + 7, // 44: otg.DeviceDhcpv6clientIaType.choice:type_name -> otg.DeviceDhcpv6clientIaType.Choice.Enum + 467, // 45: otg.DeviceDhcpv6clientIaType.iana:type_name -> otg.DeviceDhcpv6clientIaTimeValue + 467, // 46: otg.DeviceDhcpv6clientIaType.iapd:type_name -> otg.DeviceDhcpv6clientIaTimeValue + 467, // 47: otg.DeviceDhcpv6clientIaType.ianapd:type_name -> otg.DeviceDhcpv6clientIaTimeValue + 8, // 48: otg.DeviceDhcpv6clientDuidType.choice:type_name -> otg.DeviceDhcpv6clientDuidType.Choice.Enum + 470, // 49: otg.DeviceDhcpv6clientDuidType.llt:type_name -> otg.DeviceDhcpv6clientNoDuid + 469, // 50: otg.DeviceDhcpv6clientDuidType.en:type_name -> otg.DeviceDhcpv6clientDuidValue + 470, // 51: otg.DeviceDhcpv6clientDuidType.ll:type_name -> otg.DeviceDhcpv6clientNoDuid + 9, // 52: otg.Dhcpv6ClientOptionsServerIdentifier.choice:type_name -> otg.Dhcpv6ClientOptionsServerIdentifier.Choice.Enum + 472, // 53: otg.Dhcpv6ClientOptionsServerIdentifier.duid_llt:type_name -> otg.Dhcpv6ClientOptionsDuidLlt + 473, // 54: otg.Dhcpv6ClientOptionsServerIdentifier.duid_en:type_name -> otg.Dhcpv6ClientOptionsDuidEn + 474, // 55: otg.Dhcpv6ClientOptionsServerIdentifier.duid_ll:type_name -> otg.Dhcpv6ClientOptionsDuidLl + 475, // 56: otg.Dhcpv6ClientOptionsServerIdentifier.duid_uuid:type_name -> otg.Dhcpv6ClientOptionsDuidUuid + 478, // 57: otg.Dhcpv6ClientOptionsDuidLlt.link_layer_address:type_name -> otg.Dhcpv6ClientOptionsLinkLayerAddress + 478, // 58: otg.Dhcpv6ClientOptionsDuidLl.link_layer_address:type_name -> otg.Dhcpv6ClientOptionsLinkLayerAddress + 476, // 59: otg.Dhcpv6ClientOptionsDuidUuid.version:type_name -> otg.Dhcpv6ClientOptionsDuidUuidVersion + 477, // 60: otg.Dhcpv6ClientOptionsDuidUuid.variant:type_name -> otg.Dhcpv6ClientOptionsDuidUuidVariant + 10, // 61: otg.Dhcpv6ClientOptionsDuidUuidVersion.choice:type_name -> otg.Dhcpv6ClientOptionsDuidUuidVersion.Choice.Enum + 11, // 62: otg.Dhcpv6ClientOptionsDuidUuidVariant.choice:type_name -> otg.Dhcpv6ClientOptionsDuidUuidVariant.Choice.Enum + 12, // 63: otg.Dhcpv6ClientOptionsOptionsRequest.choice:type_name -> otg.Dhcpv6ClientOptionsOptionsRequest.Choice.Enum + 480, // 64: otg.Dhcpv6ClientOptionsOptionsRequest.custom:type_name -> otg.Dhcpv6ClientOptionsCustom + 483, // 65: otg.Dhcpv6ClientOptionsVendorClass.associated_dhcp_messages:type_name -> otg.Dhcpv6ClientOptionsIncludedMessages + 13, // 66: otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.choice:type_name -> otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.Choice.Enum + 484, // 67: otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.msg_types:type_name -> otg.Dhcpv6ClientOptionsMessageType + 14, // 68: otg.Dhcpv6ClientOptionsIncludedMessages.choice:type_name -> otg.Dhcpv6ClientOptionsIncludedMessages.Choice.Enum + 484, // 69: otg.Dhcpv6ClientOptionsIncludedMessages.msg_types:type_name -> otg.Dhcpv6ClientOptionsMessageType + 15, // 70: otg.Dhcpv6ClientOptionsMessageType.choice:type_name -> otg.Dhcpv6ClientOptionsMessageType.Choice.Enum + 489, // 71: otg.Dhcpv6ClientOptionsVendorInfo.option_data:type_name -> otg.Dhcpv6OptionsVendorSpecificOptions + 483, // 72: otg.Dhcpv6ClientOptionsVendorInfo.associated_dhcp_messages:type_name -> otg.Dhcpv6ClientOptionsIncludedMessages + 489, // 73: otg.Dhcpv6ServerOptionsVendorInfo.option_data:type_name -> otg.Dhcpv6OptionsVendorSpecificOptions + 487, // 74: otg.Dhcpv6ServerOptionsVendorInfo.associated_dhcp_messages:type_name -> otg.Dhcpv6ServerOptionsIncludedMessages + 16, // 75: otg.Dhcpv6ServerOptionsIncludedMessages.choice:type_name -> otg.Dhcpv6ServerOptionsIncludedMessages.Choice.Enum + 488, // 76: otg.Dhcpv6ServerOptionsIncludedMessages.msg_types:type_name -> otg.Dhcpv6ServerOptionsMessageType + 17, // 77: otg.Dhcpv6ServerOptionsMessageType.choice:type_name -> otg.Dhcpv6ServerOptionsMessageType.Choice.Enum + 483, // 78: otg.Dhcpv6ClientOptionsFqdn.associated_dhcp_messages:type_name -> otg.Dhcpv6ClientOptionsIncludedMessages + 492, // 79: otg.Dhcpv6ServerOptionsBootfileUrl.bootfile_params:type_name -> otg.Dhcpv6ServerOptionsBootFileParams + 487, // 80: otg.Dhcpv6ServerOptionsBootfileUrl.associated_dhcp_messages:type_name -> otg.Dhcpv6ServerOptionsIncludedMessages + 18, // 81: otg.Layer1.speed:type_name -> otg.Layer1.Speed.Enum + 19, // 82: otg.Layer1.media:type_name -> otg.Layer1.Media.Enum + 494, // 83: otg.Layer1.auto_negotiation:type_name -> otg.Layer1AutoNegotiation + 495, // 84: otg.Layer1.flow_control:type_name -> otg.Layer1FlowControl + 20, // 85: otg.Layer1FlowControl.choice:type_name -> otg.Layer1FlowControl.Choice.Enum + 497, // 86: otg.Layer1FlowControl.ieee_802_1qbb:type_name -> otg.Layer1Ieee8021qbb + 496, // 87: otg.Layer1FlowControl.ieee_802_3x:type_name -> otg.Layer1Ieee8023x + 499, // 88: otg.Capture.filters:type_name -> otg.CaptureFilter + 21, // 89: otg.Capture.format:type_name -> otg.Capture.Format.Enum + 22, // 90: otg.CaptureFilter.choice:type_name -> otg.CaptureFilter.Choice.Enum + 500, // 91: otg.CaptureFilter.custom:type_name -> otg.CaptureCustom + 502, // 92: otg.CaptureFilter.ethernet:type_name -> otg.CaptureEthernet + 503, // 93: otg.CaptureFilter.vlan:type_name -> otg.CaptureVlan + 504, // 94: otg.CaptureFilter.ipv4:type_name -> otg.CaptureIpv4 + 505, // 95: otg.CaptureFilter.ipv6:type_name -> otg.CaptureIpv6 + 501, // 96: otg.CaptureEthernet.src:type_name -> otg.CaptureField + 501, // 97: otg.CaptureEthernet.dst:type_name -> otg.CaptureField + 501, // 98: otg.CaptureEthernet.ether_type:type_name -> otg.CaptureField + 501, // 99: otg.CaptureEthernet.pfc_queue:type_name -> otg.CaptureField + 501, // 100: otg.CaptureVlan.priority:type_name -> otg.CaptureField + 501, // 101: otg.CaptureVlan.cfi:type_name -> otg.CaptureField + 501, // 102: otg.CaptureVlan.id:type_name -> otg.CaptureField + 501, // 103: otg.CaptureVlan.protocol:type_name -> otg.CaptureField + 501, // 104: otg.CaptureIpv4.version:type_name -> otg.CaptureField + 501, // 105: otg.CaptureIpv4.header_length:type_name -> otg.CaptureField + 501, // 106: otg.CaptureIpv4.priority:type_name -> otg.CaptureField + 501, // 107: otg.CaptureIpv4.total_length:type_name -> otg.CaptureField + 501, // 108: otg.CaptureIpv4.identification:type_name -> otg.CaptureField + 501, // 109: otg.CaptureIpv4.reserved:type_name -> otg.CaptureField + 501, // 110: otg.CaptureIpv4.dont_fragment:type_name -> otg.CaptureField + 501, // 111: otg.CaptureIpv4.more_fragments:type_name -> otg.CaptureField + 501, // 112: otg.CaptureIpv4.fragment_offset:type_name -> otg.CaptureField + 501, // 113: otg.CaptureIpv4.time_to_live:type_name -> otg.CaptureField + 501, // 114: otg.CaptureIpv4.protocol:type_name -> otg.CaptureField + 501, // 115: otg.CaptureIpv4.header_checksum:type_name -> otg.CaptureField + 501, // 116: otg.CaptureIpv4.src:type_name -> otg.CaptureField + 501, // 117: otg.CaptureIpv4.dst:type_name -> otg.CaptureField + 501, // 118: otg.CaptureIpv6.version:type_name -> otg.CaptureField + 501, // 119: otg.CaptureIpv6.traffic_class:type_name -> otg.CaptureField + 501, // 120: otg.CaptureIpv6.flow_label:type_name -> otg.CaptureField + 501, // 121: otg.CaptureIpv6.payload_length:type_name -> otg.CaptureField + 501, // 122: otg.CaptureIpv6.next_header:type_name -> otg.CaptureField + 501, // 123: otg.CaptureIpv6.hop_limit:type_name -> otg.CaptureField + 501, // 124: otg.CaptureIpv6.src:type_name -> otg.CaptureField + 501, // 125: otg.CaptureIpv6.dst:type_name -> otg.CaptureField + 452, // 126: otg.Device.ethernets:type_name -> otg.DeviceEthernet + 456, // 127: otg.Device.ipv4_loopbacks:type_name -> otg.DeviceIpv4Loopback + 459, // 128: otg.Device.ipv6_loopbacks:type_name -> otg.DeviceIpv6Loopback + 508, // 129: otg.Device.isis:type_name -> otg.DeviceIsisRouter + 527, // 130: otg.Device.bgp:type_name -> otg.DeviceBgpRouter + 668, // 131: otg.Device.vxlan:type_name -> otg.DeviceVxlan + 680, // 132: otg.Device.rsvp:type_name -> otg.DeviceRsvp + 691, // 133: otg.Device.dhcp_server:type_name -> otg.DeviceDhcpServer + 509, // 134: otg.DeviceIsisRouter.instance:type_name -> otg.DeviceIsisMultiInstance + 510, // 135: otg.DeviceIsisRouter.interfaces:type_name -> otg.IsisInterface + 518, // 136: otg.DeviceIsisRouter.basic:type_name -> otg.IsisBasic + 519, // 137: otg.DeviceIsisRouter.advanced:type_name -> otg.IsisAdvanced + 520, // 138: otg.DeviceIsisRouter.router_auth:type_name -> otg.IsisAuthentication + 522, // 139: otg.DeviceIsisRouter.v4_routes:type_name -> otg.IsisV4RouteRange + 526, // 140: otg.DeviceIsisRouter.v6_routes:type_name -> otg.IsisV6RouteRange + 23, // 141: otg.IsisInterface.network_type:type_name -> otg.IsisInterface.NetworkType.Enum + 24, // 142: otg.IsisInterface.level_type:type_name -> otg.IsisInterface.LevelType.Enum + 511, // 143: otg.IsisInterface.l1_settings:type_name -> otg.IsisInterfaceLevel + 511, // 144: otg.IsisInterface.l2_settings:type_name -> otg.IsisInterfaceLevel + 512, // 145: otg.IsisInterface.multi_topology_ids:type_name -> otg.IsisMT + 513, // 146: otg.IsisInterface.traffic_engineering:type_name -> otg.LinkStateTE + 515, // 147: otg.IsisInterface.authentication:type_name -> otg.IsisInterfaceAuthentication + 516, // 148: otg.IsisInterface.advanced:type_name -> otg.IsisInterfaceAdvanced + 517, // 149: otg.IsisInterface.link_protection:type_name -> otg.IsisInterfaceLinkProtection + 514, // 150: otg.LinkStateTE.priority_bandwidths:type_name -> otg.LinkStatepriorityBandwidths + 25, // 151: otg.IsisInterfaceAuthentication.auth_type:type_name -> otg.IsisInterfaceAuthentication.AuthType.Enum + 521, // 152: otg.IsisAuthentication.area_auth:type_name -> otg.IsisAuthenticationBase + 521, // 153: otg.IsisAuthentication.domain_auth:type_name -> otg.IsisAuthenticationBase + 26, // 154: otg.IsisAuthenticationBase.auth_type:type_name -> otg.IsisAuthenticationBase.AuthType.Enum + 523, // 155: otg.IsisV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 27, // 156: otg.IsisV4RouteRange.origin_type:type_name -> otg.IsisV4RouteRange.OriginType.Enum + 28, // 157: otg.IsisV4RouteRange.redistribution_type:type_name -> otg.IsisV4RouteRange.RedistributionType.Enum + 524, // 158: otg.IsisV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 29, // 159: otg.IsisV6RouteRange.origin_type:type_name -> otg.IsisV6RouteRange.OriginType.Enum + 30, // 160: otg.IsisV6RouteRange.redistribution_type:type_name -> otg.IsisV6RouteRange.RedistributionType.Enum + 536, // 161: otg.DeviceBgpRouter.ipv4_interfaces:type_name -> otg.BgpV4Interface + 662, // 162: otg.DeviceBgpRouter.ipv6_interfaces:type_name -> otg.BgpV6Interface + 31, // 163: otg.DeviceBgpMessageHeaderError.subcode:type_name -> otg.DeviceBgpMessageHeaderError.Subcode.Enum + 32, // 164: otg.DeviceBgpOpenMessageError.subcode:type_name -> otg.DeviceBgpOpenMessageError.Subcode.Enum + 33, // 165: otg.DeviceBgpUpdateMessageError.subcode:type_name -> otg.DeviceBgpUpdateMessageError.Subcode.Enum + 34, // 166: otg.DeviceBgpCeaseError.subcode:type_name -> otg.DeviceBgpCeaseError.Subcode.Enum + 537, // 167: otg.BgpV4Peer.evpn_ethernet_segments:type_name -> otg.BgpV4EthernetSegment + 35, // 168: otg.BgpV4Peer.as_type:type_name -> otg.BgpV4Peer.AsType.Enum + 36, // 169: otg.BgpV4Peer.as_number_width:type_name -> otg.BgpV4Peer.AsNumberWidth.Enum + 550, // 170: otg.BgpV4Peer.advanced:type_name -> otg.BgpAdvanced + 551, // 171: otg.BgpV4Peer.capability:type_name -> otg.BgpCapability + 552, // 172: otg.BgpV4Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 553, // 173: otg.BgpV4Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 573, // 174: otg.BgpV4Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 574, // 175: otg.BgpV4Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 598, // 176: otg.BgpV4Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 600, // 177: otg.BgpV4Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 601, // 178: otg.BgpV4Peer.replay_updates:type_name -> otg.BgpUpdateReplay + 535, // 179: otg.BgpV4Interface.peers:type_name -> otg.BgpV4Peer + 538, // 180: otg.BgpV4EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 544, // 181: otg.BgpV4EthernetSegment.evis:type_name -> otg.BgpV4EvpnEvis + 37, // 182: otg.BgpV4EthernetSegment.active_mode:type_name -> otg.BgpV4EthernetSegment.ActiveMode.Enum + 539, // 183: otg.BgpV4EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 184: otg.BgpV4EthernetSegment.communities:type_name -> otg.BgpCommunity + 541, // 185: otg.BgpV4EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 542, // 186: otg.BgpV4EthernetSegment.as_path:type_name -> otg.BgpAsPath + 38, // 187: otg.BgpRouteAdvanced.origin:type_name -> otg.BgpRouteAdvanced.Origin.Enum + 39, // 188: otg.BgpCommunity.type:type_name -> otg.BgpCommunity.Type.Enum + 40, // 189: otg.BgpExtCommunity.type:type_name -> otg.BgpExtCommunity.Type.Enum + 41, // 190: otg.BgpExtCommunity.subtype:type_name -> otg.BgpExtCommunity.Subtype.Enum + 42, // 191: otg.BgpAsPath.as_set_mode:type_name -> otg.BgpAsPath.AsSetMode.Enum + 543, // 192: otg.BgpAsPath.segments:type_name -> otg.BgpAsPathSegment + 43, // 193: otg.BgpAsPathSegment.type:type_name -> otg.BgpAsPathSegment.Type.Enum + 44, // 194: otg.BgpV4EvpnEvis.choice:type_name -> otg.BgpV4EvpnEvis.Choice.Enum + 545, // 195: otg.BgpV4EvpnEvis.evi_vxlan:type_name -> otg.BgpV4EviVxlan + 546, // 196: otg.BgpV4EviVxlan.broadcast_domains:type_name -> otg.BgpV4EviVxlanBroadcastDomain + 45, // 197: otg.BgpV4EviVxlan.replication_type:type_name -> otg.BgpV4EviVxlan.ReplicationType.Enum + 548, // 198: otg.BgpV4EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 549, // 199: otg.BgpV4EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 549, // 200: otg.BgpV4EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 549, // 201: otg.BgpV4EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 549, // 202: otg.BgpV4EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 539, // 203: otg.BgpV4EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 204: otg.BgpV4EviVxlan.communities:type_name -> otg.BgpCommunity + 541, // 205: otg.BgpV4EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 542, // 206: otg.BgpV4EviVxlan.as_path:type_name -> otg.BgpAsPath + 547, // 207: otg.BgpV4EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 525, // 208: otg.BgpCMacIpRange.mac_addresses:type_name -> otg.MACRouteAddress + 523, // 209: otg.BgpCMacIpRange.ipv4_addresses:type_name -> otg.V4RouteAddress + 524, // 210: otg.BgpCMacIpRange.ipv6_addresses:type_name -> otg.V6RouteAddress + 539, // 211: otg.BgpCMacIpRange.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 212: otg.BgpCMacIpRange.communities:type_name -> otg.BgpCommunity + 541, // 213: otg.BgpCMacIpRange.ext_communities:type_name -> otg.BgpExtCommunity + 542, // 214: otg.BgpCMacIpRange.as_path:type_name -> otg.BgpAsPath + 46, // 215: otg.BgpRouteDistinguisher.rd_type:type_name -> otg.BgpRouteDistinguisher.RdType.Enum + 47, // 216: otg.BgpRouteTarget.rt_type:type_name -> otg.BgpRouteTarget.RtType.Enum + 523, // 217: otg.BgpV4RouteRange.addresses:type_name -> otg.V4RouteAddress + 48, // 218: otg.BgpV4RouteRange.next_hop_mode:type_name -> otg.BgpV4RouteRange.NextHopMode.Enum + 49, // 219: otg.BgpV4RouteRange.next_hop_address_type:type_name -> otg.BgpV4RouteRange.NextHopAddressType.Enum + 539, // 220: otg.BgpV4RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 221: otg.BgpV4RouteRange.communities:type_name -> otg.BgpCommunity + 542, // 222: otg.BgpV4RouteRange.as_path:type_name -> otg.BgpAsPath + 554, // 223: otg.BgpV4RouteRange.add_path:type_name -> otg.BgpAddPath + 541, // 224: otg.BgpV4RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 555, // 225: otg.BgpV4RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 50, // 226: otg.BgpExtendedCommunity.choice:type_name -> otg.BgpExtendedCommunity.Choice.Enum + 558, // 227: otg.BgpExtendedCommunity.transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType + 561, // 228: otg.BgpExtendedCommunity.transitive_ipv4_address_type:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType + 564, // 229: otg.BgpExtendedCommunity.transitive_4octet_as_type:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType + 567, // 230: otg.BgpExtendedCommunity.transitive_opaque_type:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType + 569, // 231: otg.BgpExtendedCommunity.transitive_evpn_type:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType + 571, // 232: otg.BgpExtendedCommunity.non_transitive_2octet_as_type:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType + 572, // 233: otg.BgpExtendedCommunity.custom:type_name -> otg.BgpExtendedCommunityCustomType + 51, // 234: otg.BgpExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsType.Choice.Enum + 556, // 235: otg.BgpExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget + 557, // 236: otg.BgpExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin + 52, // 237: otg.BgpExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + 560, // 238: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + 559, // 239: otg.BgpExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + 53, // 240: otg.BgpExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsType.Choice.Enum + 562, // 241: otg.BgpExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget + 563, // 242: otg.BgpExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin + 54, // 243: otg.BgpExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueType.Choice.Enum + 565, // 244: otg.BgpExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeColor + 566, // 245: otg.BgpExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation + 55, // 246: otg.BgpExtendedCommunityTransitiveEvpnType.choice:type_name -> otg.BgpExtendedCommunityTransitiveEvpnType.Choice.Enum + 568, // 247: otg.BgpExtendedCommunityTransitiveEvpnType.router_mac_subtype:type_name -> otg.BgpExtendedCommunityTransitiveEvpnTypeRouterMac + 56, // 248: otg.BgpExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + 570, // 249: otg.BgpExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + 524, // 250: otg.BgpV6RouteRange.addresses:type_name -> otg.V6RouteAddress + 57, // 251: otg.BgpV6RouteRange.next_hop_mode:type_name -> otg.BgpV6RouteRange.NextHopMode.Enum + 58, // 252: otg.BgpV6RouteRange.next_hop_address_type:type_name -> otg.BgpV6RouteRange.NextHopAddressType.Enum + 539, // 253: otg.BgpV6RouteRange.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 254: otg.BgpV6RouteRange.communities:type_name -> otg.BgpCommunity + 542, // 255: otg.BgpV6RouteRange.as_path:type_name -> otg.BgpAsPath + 554, // 256: otg.BgpV6RouteRange.add_path:type_name -> otg.BgpAddPath + 541, // 257: otg.BgpV6RouteRange.ext_communities:type_name -> otg.BgpExtCommunity + 555, // 258: otg.BgpV6RouteRange.extended_communities:type_name -> otg.BgpExtendedCommunity + 59, // 259: otg.BgpSrteV4Policy.next_hop_mode:type_name -> otg.BgpSrteV4Policy.NextHopMode.Enum + 60, // 260: otg.BgpSrteV4Policy.next_hop_address_type:type_name -> otg.BgpSrteV4Policy.NextHopAddressType.Enum + 539, // 261: otg.BgpSrteV4Policy.advanced:type_name -> otg.BgpRouteAdvanced + 554, // 262: otg.BgpSrteV4Policy.add_path:type_name -> otg.BgpAddPath + 542, // 263: otg.BgpSrteV4Policy.as_path:type_name -> otg.BgpAsPath + 540, // 264: otg.BgpSrteV4Policy.communities:type_name -> otg.BgpCommunity + 541, // 265: otg.BgpSrteV4Policy.ext_communities:type_name -> otg.BgpExtCommunity + 575, // 266: otg.BgpSrteV4Policy.tunnel_tlvs:type_name -> otg.BgpSrteV4TunnelTlv + 576, // 267: otg.BgpSrteV4TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 577, // 268: otg.BgpSrteV4TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 578, // 269: otg.BgpSrteV4TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 579, // 270: otg.BgpSrteV4TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 580, // 271: otg.BgpSrteV4TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 581, // 272: otg.BgpSrteV4TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 582, // 273: otg.BgpSrteV4TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 583, // 274: otg.BgpSrteV4TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 61, // 275: otg.BgpSrteRemoteEndpointSubTlv.address_family:type_name -> otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.Enum + 62, // 276: otg.BgpSrteBindingSubTlv.binding_sid_type:type_name -> otg.BgpSrteBindingSubTlv.BindingSidType.Enum + 63, // 277: otg.BgpSrteExplicitNullLabelPolicySubTlv.explicit_null_label_policy:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.Enum + 584, // 278: otg.BgpSrteSegmentList.segments:type_name -> otg.BgpSrteSegment + 64, // 279: otg.BgpSrteSegment.segment_type:type_name -> otg.BgpSrteSegment.SegmentType.Enum + 587, // 280: otg.BgpSrteSegment.type_a:type_name -> otg.BgpSrteSegmentATypeSubTlv + 588, // 281: otg.BgpSrteSegment.type_b:type_name -> otg.BgpSrteSegmentBTypeSubTlv + 589, // 282: otg.BgpSrteSegment.type_c:type_name -> otg.BgpSrteSegmentCTypeSubTlv + 590, // 283: otg.BgpSrteSegment.type_d:type_name -> otg.BgpSrteSegmentDTypeSubTlv + 591, // 284: otg.BgpSrteSegment.type_e:type_name -> otg.BgpSrteSegmentETypeSubTlv + 592, // 285: otg.BgpSrteSegment.type_f:type_name -> otg.BgpSrteSegmentFTypeSubTlv + 593, // 286: otg.BgpSrteSegment.type_g:type_name -> otg.BgpSrteSegmentGTypeSubTlv + 594, // 287: otg.BgpSrteSegment.type_h:type_name -> otg.BgpSrteSegmentHTypeSubTlv + 595, // 288: otg.BgpSrteSegment.type_i:type_name -> otg.BgpSrteSegmentITypeSubTlv + 596, // 289: otg.BgpSrteSegment.type_j:type_name -> otg.BgpSrteSegmentJTypeSubTlv + 597, // 290: otg.BgpSrteSegment.type_k:type_name -> otg.BgpSrteSegmentKTypeSubTlv + 586, // 291: otg.BgpSrteSegmentBTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 585, // 292: otg.BgpSrteSegmentCTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 585, // 293: otg.BgpSrteSegmentDTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 585, // 294: otg.BgpSrteSegmentETypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 585, // 295: otg.BgpSrteSegmentFTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 585, // 296: otg.BgpSrteSegmentGTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 585, // 297: otg.BgpSrteSegmentHTypeSubTlv.sr_mpls_sid:type_name -> otg.BgpSrteSrMplsSid + 586, // 298: otg.BgpSrteSegmentITypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 586, // 299: otg.BgpSrteSegmentJTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 586, // 300: otg.BgpSrteSegmentKTypeSubTlv.srv6_sid_endpoint_behavior:type_name -> otg.BgpSrteSRv6SIDEndpointBehaviorAndStructure + 65, // 301: otg.BgpSrteV6Policy.next_hop_mode:type_name -> otg.BgpSrteV6Policy.NextHopMode.Enum + 66, // 302: otg.BgpSrteV6Policy.next_hop_address_type:type_name -> otg.BgpSrteV6Policy.NextHopAddressType.Enum + 539, // 303: otg.BgpSrteV6Policy.advanced:type_name -> otg.BgpRouteAdvanced + 554, // 304: otg.BgpSrteV6Policy.add_path:type_name -> otg.BgpAddPath + 542, // 305: otg.BgpSrteV6Policy.as_path:type_name -> otg.BgpAsPath + 540, // 306: otg.BgpSrteV6Policy.communities:type_name -> otg.BgpCommunity + 541, // 307: otg.BgpSrteV6Policy.extcommunities:type_name -> otg.BgpExtCommunity + 599, // 308: otg.BgpSrteV6Policy.tunnel_tlvs:type_name -> otg.BgpSrteV6TunnelTlv + 576, // 309: otg.BgpSrteV6TunnelTlv.remote_endpoint_sub_tlv:type_name -> otg.BgpSrteRemoteEndpointSubTlv + 577, // 310: otg.BgpSrteV6TunnelTlv.color_sub_tlv:type_name -> otg.BgpSrteColorSubTlv + 578, // 311: otg.BgpSrteV6TunnelTlv.binding_sub_tlv:type_name -> otg.BgpSrteBindingSubTlv + 579, // 312: otg.BgpSrteV6TunnelTlv.preference_sub_tlv:type_name -> otg.BgpSrtePreferenceSubTlv + 580, // 313: otg.BgpSrteV6TunnelTlv.policy_priority_sub_tlv:type_name -> otg.BgpSrtePolicyPrioritySubTlv + 581, // 314: otg.BgpSrteV6TunnelTlv.policy_name_sub_tlv:type_name -> otg.BgpSrtePolicyNameSubTlv + 582, // 315: otg.BgpSrteV6TunnelTlv.explicit_null_label_policy_sub_tlv:type_name -> otg.BgpSrteExplicitNullLabelPolicySubTlv + 583, // 316: otg.BgpSrteV6TunnelTlv.segment_lists:type_name -> otg.BgpSrteSegmentList + 67, // 317: otg.BgpUpdateReplay.choice:type_name -> otg.BgpUpdateReplay.Choice.Enum + 604, // 318: otg.BgpUpdateReplay.structured_pdus:type_name -> otg.BgpStructuredPdus + 602, // 319: otg.BgpUpdateReplay.raw_bytes:type_name -> otg.BgpRawBytes + 603, // 320: otg.BgpRawBytes.updates:type_name -> otg.BgpOneUpdateReplay + 605, // 321: otg.BgpStructuredPdus.updates:type_name -> otg.BgpOneStructuredUpdateReplay + 612, // 322: otg.BgpOneStructuredUpdateReplay.path_attributes:type_name -> otg.BgpAttributes + 606, // 323: otg.BgpOneStructuredUpdateReplay.traditional_unreach_nlris:type_name -> otg.BgpOneTraditionalNlriPrefix + 606, // 324: otg.BgpOneStructuredUpdateReplay.traditional_reach_nlris:type_name -> otg.BgpOneTraditionalNlriPrefix + 609, // 325: otg.BgpOneTraditionalNlriPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId + 609, // 326: otg.BgpOneIpv4NLRIPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId + 609, // 327: otg.BgpOneIpv6NLRIPrefix.path_id:type_name -> otg.BgpNLRIPrefixPathId + 613, // 328: otg.BgpAttributes.other_attributes:type_name -> otg.BgpAttributesOtherAttribute + 68, // 329: otg.BgpAttributes.origin:type_name -> otg.BgpAttributes.Origin.Enum + 614, // 330: otg.BgpAttributes.as_path:type_name -> otg.BgpAttributesAsPath + 619, // 331: otg.BgpAttributes.as4_path:type_name -> otg.BgpAttributesAs4Path + 624, // 332: otg.BgpAttributes.next_hop:type_name -> otg.BgpAttributesNextHop + 628, // 333: otg.BgpAttributes.multi_exit_discriminator:type_name -> otg.BgpAttributesMultiExitDiscriminator + 629, // 334: otg.BgpAttributes.local_preference:type_name -> otg.BgpAttributesLocalPreference + 620, // 335: otg.BgpAttributes.aggregator:type_name -> otg.BgpAttributesAggregator + 621, // 336: otg.BgpAttributes.as4_aggregator:type_name -> otg.BgpAttributesAs4Aggregator + 622, // 337: otg.BgpAttributes.community:type_name -> otg.BgpAttributesCommunity + 630, // 338: otg.BgpAttributes.originator_id:type_name -> otg.BgpAttributesOriginatorId + 555, // 339: otg.BgpAttributes.extended_communities:type_name -> otg.BgpExtendedCommunity + 631, // 340: otg.BgpAttributes.tunnel_encapsulation:type_name -> otg.BgpAttributesTunnelEncapsulation + 626, // 341: otg.BgpAttributes.mp_reach:type_name -> otg.BgpAttributesMpReachNlri + 627, // 342: otg.BgpAttributes.mp_unreach:type_name -> otg.BgpAttributesMpUnreachNlri + 69, // 343: otg.BgpAttributesAsPath.choice:type_name -> otg.BgpAttributesAsPath.Choice.Enum + 615, // 344: otg.BgpAttributesAsPath.four_byte_as_path:type_name -> otg.BgpAttributesAsPathFourByteAsPath + 617, // 345: otg.BgpAttributesAsPath.two_byte_as_path:type_name -> otg.BgpAttributesAsPathTwoByteAsPath + 616, // 346: otg.BgpAttributesAsPathFourByteAsPath.segments:type_name -> otg.BgpAttributesFourByteAsPathSegment + 70, // 347: otg.BgpAttributesFourByteAsPathSegment.type:type_name -> otg.BgpAttributesFourByteAsPathSegment.Type.Enum + 618, // 348: otg.BgpAttributesAsPathTwoByteAsPath.segments:type_name -> otg.BgpAttributesTwoByteAsPathSegment + 71, // 349: otg.BgpAttributesTwoByteAsPathSegment.type:type_name -> otg.BgpAttributesTwoByteAsPathSegment.Type.Enum + 616, // 350: otg.BgpAttributesAs4Path.segments:type_name -> otg.BgpAttributesFourByteAsPathSegment + 72, // 351: otg.BgpAttributesAggregator.choice:type_name -> otg.BgpAttributesAggregator.Choice.Enum + 73, // 352: otg.BgpAttributesCommunity.choice:type_name -> otg.BgpAttributesCommunity.Choice.Enum + 623, // 353: otg.BgpAttributesCommunity.custom_community:type_name -> otg.BgpAttributesCustomCommunity + 74, // 354: otg.BgpAttributesNextHop.choice:type_name -> otg.BgpAttributesNextHop.Choice.Enum + 625, // 355: otg.BgpAttributesNextHop.ipv6_two_addresses:type_name -> otg.BgpAttributesNextHopIpv6TwoAddresses + 624, // 356: otg.BgpAttributesMpReachNlri.next_hop:type_name -> otg.BgpAttributesNextHop + 75, // 357: otg.BgpAttributesMpReachNlri.choice:type_name -> otg.BgpAttributesMpReachNlri.Choice.Enum + 607, // 358: otg.BgpAttributesMpReachNlri.ipv4_unicast:type_name -> otg.BgpOneIpv4NLRIPrefix + 608, // 359: otg.BgpAttributesMpReachNlri.ipv6_unicast:type_name -> otg.BgpOneIpv6NLRIPrefix + 610, // 360: otg.BgpAttributesMpReachNlri.ipv4_srpolicy:type_name -> otg.BgpIpv4SrPolicyNLRIPrefix + 611, // 361: otg.BgpAttributesMpReachNlri.ipv6_srpolicy:type_name -> otg.BgpIpv6SrPolicyNLRIPrefix + 76, // 362: otg.BgpAttributesMpUnreachNlri.choice:type_name -> otg.BgpAttributesMpUnreachNlri.Choice.Enum + 607, // 363: otg.BgpAttributesMpUnreachNlri.ipv4_unicast:type_name -> otg.BgpOneIpv4NLRIPrefix + 608, // 364: otg.BgpAttributesMpUnreachNlri.ipv6_unicast:type_name -> otg.BgpOneIpv6NLRIPrefix + 610, // 365: otg.BgpAttributesMpUnreachNlri.ipv4_srpolicy:type_name -> otg.BgpIpv4SrPolicyNLRIPrefix + 611, // 366: otg.BgpAttributesMpUnreachNlri.ipv6_srpolicy:type_name -> otg.BgpIpv6SrPolicyNLRIPrefix + 77, // 367: otg.BgpAttributesTunnelEncapsulation.choice:type_name -> otg.BgpAttributesTunnelEncapsulation.Choice.Enum + 632, // 368: otg.BgpAttributesTunnelEncapsulation.sr_policy:type_name -> otg.BgpAttributesSegmentRoutingPolicy + 633, // 369: otg.BgpAttributesSegmentRoutingPolicy.binding_segment_identifier:type_name -> otg.BgpAttributesBsid + 636, // 370: otg.BgpAttributesSegmentRoutingPolicy.srv6_binding_segment_identifier:type_name -> otg.BgpAttributesSrv6Bsid + 639, // 371: otg.BgpAttributesSegmentRoutingPolicy.preference:type_name -> otg.BgpAttributesSrPolicyPreference + 640, // 372: otg.BgpAttributesSegmentRoutingPolicy.priority:type_name -> otg.BgpAttributesSrPolicyPriority + 642, // 373: otg.BgpAttributesSegmentRoutingPolicy.policy_name:type_name -> otg.BgpAttributesSrPolicyPolicyName + 641, // 374: otg.BgpAttributesSegmentRoutingPolicy.policy_candidate_name:type_name -> otg.BgpAttributesSrPolicyPolicyCandidateName + 643, // 375: otg.BgpAttributesSegmentRoutingPolicy.explicit_null_label_policy:type_name -> otg.BgpAttributesSrPolicyExplicitNullPolicy + 644, // 376: otg.BgpAttributesSegmentRoutingPolicy.segment_list:type_name -> otg.BgpAttributesSrPolicySegmentList + 78, // 377: otg.BgpAttributesBsid.choice:type_name -> otg.BgpAttributesBsid.Choice.Enum + 634, // 378: otg.BgpAttributesBsid.mpls:type_name -> otg.BgpAttributesBsidMpls + 635, // 379: otg.BgpAttributesBsid.srv6:type_name -> otg.BgpAttributesBsidSrv6 + 637, // 380: otg.BgpAttributesBsidMpls.mpls_sid:type_name -> otg.BgpAttributesSidMpls + 659, // 381: otg.BgpAttributesSrv6Bsid.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + 79, // 382: otg.BgpAttributesSrPolicyExplicitNullPolicy.choice:type_name -> otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.Enum + 645, // 383: otg.BgpAttributesSrPolicySegmentList.weight:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListWeight + 646, // 384: otg.BgpAttributesSrPolicySegmentList.segments:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListSegment + 80, // 385: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.choice:type_name -> otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.Enum + 647, // 386: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_a:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeA + 648, // 387: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_b:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeB + 649, // 388: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_c:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeC + 650, // 389: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_d:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeD + 651, // 390: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_e:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeE + 652, // 391: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_f:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeF + 653, // 392: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_g:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeG + 654, // 393: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_h:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeH + 655, // 394: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_i:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeI + 656, // 395: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_j:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeJ + 657, // 396: otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.type_k:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeK + 658, // 397: otg.BgpAttributesSegmentRoutingPolicyTypeA.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 398: otg.BgpAttributesSegmentRoutingPolicyTypeA.mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 399: otg.BgpAttributesSegmentRoutingPolicyTypeB.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 659, // 400: otg.BgpAttributesSegmentRoutingPolicyTypeB.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + 658, // 401: otg.BgpAttributesSegmentRoutingPolicyTypeC.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 402: otg.BgpAttributesSegmentRoutingPolicyTypeC.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 403: otg.BgpAttributesSegmentRoutingPolicyTypeD.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 404: otg.BgpAttributesSegmentRoutingPolicyTypeD.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 405: otg.BgpAttributesSegmentRoutingPolicyTypeE.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 406: otg.BgpAttributesSegmentRoutingPolicyTypeE.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 407: otg.BgpAttributesSegmentRoutingPolicyTypeF.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 408: otg.BgpAttributesSegmentRoutingPolicyTypeF.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 409: otg.BgpAttributesSegmentRoutingPolicyTypeG.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 410: otg.BgpAttributesSegmentRoutingPolicyTypeG.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 411: otg.BgpAttributesSegmentRoutingPolicyTypeH.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 637, // 412: otg.BgpAttributesSegmentRoutingPolicyTypeH.sr_mpls_sid:type_name -> otg.BgpAttributesSidMpls + 658, // 413: otg.BgpAttributesSegmentRoutingPolicyTypeI.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 638, // 414: otg.BgpAttributesSegmentRoutingPolicyTypeI.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 + 659, // 415: otg.BgpAttributesSegmentRoutingPolicyTypeI.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + 658, // 416: otg.BgpAttributesSegmentRoutingPolicyTypeJ.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 638, // 417: otg.BgpAttributesSegmentRoutingPolicyTypeJ.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 + 659, // 418: otg.BgpAttributesSegmentRoutingPolicyTypeJ.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + 658, // 419: otg.BgpAttributesSegmentRoutingPolicyTypeK.flags:type_name -> otg.BgpAttributesSegmentRoutingPolicyTypeFlags + 638, // 420: otg.BgpAttributesSegmentRoutingPolicyTypeK.srv6_sid:type_name -> otg.BgpAttributesSidSrv6 + 659, // 421: otg.BgpAttributesSegmentRoutingPolicyTypeK.srv6_endpoint_behavior:type_name -> otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure + 663, // 422: otg.BgpV6Peer.segment_routing:type_name -> otg.BgpV6SegmentRouting + 664, // 423: otg.BgpV6Peer.evpn_ethernet_segments:type_name -> otg.BgpV6EthernetSegment + 81, // 424: otg.BgpV6Peer.as_type:type_name -> otg.BgpV6Peer.AsType.Enum + 82, // 425: otg.BgpV6Peer.as_number_width:type_name -> otg.BgpV6Peer.AsNumberWidth.Enum + 550, // 426: otg.BgpV6Peer.advanced:type_name -> otg.BgpAdvanced + 551, // 427: otg.BgpV6Peer.capability:type_name -> otg.BgpCapability + 552, // 428: otg.BgpV6Peer.learned_information_filter:type_name -> otg.BgpLearnedInformationFilter + 553, // 429: otg.BgpV6Peer.v4_routes:type_name -> otg.BgpV4RouteRange + 573, // 430: otg.BgpV6Peer.v6_routes:type_name -> otg.BgpV6RouteRange + 574, // 431: otg.BgpV6Peer.v4_srte_policies:type_name -> otg.BgpSrteV4Policy + 598, // 432: otg.BgpV6Peer.v6_srte_policies:type_name -> otg.BgpSrteV6Policy + 600, // 433: otg.BgpV6Peer.graceful_restart:type_name -> otg.BgpGracefulRestart + 601, // 434: otg.BgpV6Peer.replay_updates:type_name -> otg.BgpUpdateReplay + 661, // 435: otg.BgpV6Interface.peers:type_name -> otg.BgpV6Peer + 538, // 436: otg.BgpV6EthernetSegment.df_election:type_name -> otg.BgpEthernetSegmentDfElection + 665, // 437: otg.BgpV6EthernetSegment.evis:type_name -> otg.BgpV6EvpnEvis + 83, // 438: otg.BgpV6EthernetSegment.active_mode:type_name -> otg.BgpV6EthernetSegment.ActiveMode.Enum + 539, // 439: otg.BgpV6EthernetSegment.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 440: otg.BgpV6EthernetSegment.communities:type_name -> otg.BgpCommunity + 541, // 441: otg.BgpV6EthernetSegment.ext_communities:type_name -> otg.BgpExtCommunity + 542, // 442: otg.BgpV6EthernetSegment.as_path:type_name -> otg.BgpAsPath + 84, // 443: otg.BgpV6EvpnEvis.choice:type_name -> otg.BgpV6EvpnEvis.Choice.Enum + 666, // 444: otg.BgpV6EvpnEvis.evi_vxlan:type_name -> otg.BgpV6EviVxlan + 667, // 445: otg.BgpV6EviVxlan.broadcast_domains:type_name -> otg.BgpV6EviVxlanBroadcastDomain + 85, // 446: otg.BgpV6EviVxlan.replication_type:type_name -> otg.BgpV6EviVxlan.ReplicationType.Enum + 548, // 447: otg.BgpV6EviVxlan.route_distinguisher:type_name -> otg.BgpRouteDistinguisher + 549, // 448: otg.BgpV6EviVxlan.route_target_export:type_name -> otg.BgpRouteTarget + 549, // 449: otg.BgpV6EviVxlan.route_target_import:type_name -> otg.BgpRouteTarget + 549, // 450: otg.BgpV6EviVxlan.l3_route_target_export:type_name -> otg.BgpRouteTarget + 549, // 451: otg.BgpV6EviVxlan.l3_route_target_import:type_name -> otg.BgpRouteTarget + 539, // 452: otg.BgpV6EviVxlan.advanced:type_name -> otg.BgpRouteAdvanced + 540, // 453: otg.BgpV6EviVxlan.communities:type_name -> otg.BgpCommunity + 541, // 454: otg.BgpV6EviVxlan.ext_communities:type_name -> otg.BgpExtCommunity + 542, // 455: otg.BgpV6EviVxlan.as_path:type_name -> otg.BgpAsPath + 547, // 456: otg.BgpV6EviVxlanBroadcastDomain.cmac_ip_range:type_name -> otg.BgpCMacIpRange + 669, // 457: otg.DeviceVxlan.v4_tunnels:type_name -> otg.VxlanV4Tunnel + 670, // 458: otg.DeviceVxlan.v6_tunnels:type_name -> otg.VxlanV6Tunnel + 671, // 459: otg.VxlanV4Tunnel.destination_ip_mode:type_name -> otg.VxlanV4TunnelDestinationIPMode + 672, // 460: otg.VxlanV6Tunnel.destination_ip_mode:type_name -> otg.VxlanV6TunnelDestinationIPMode + 86, // 461: otg.VxlanV4TunnelDestinationIPMode.choice:type_name -> otg.VxlanV4TunnelDestinationIPMode.Choice.Enum + 673, // 462: otg.VxlanV4TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicast + 678, // 463: otg.VxlanV4TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV4TunnelDestinationIPModeMulticast + 87, // 464: otg.VxlanV6TunnelDestinationIPMode.choice:type_name -> otg.VxlanV6TunnelDestinationIPMode.Choice.Enum + 674, // 465: otg.VxlanV6TunnelDestinationIPMode.unicast:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicast + 679, // 466: otg.VxlanV6TunnelDestinationIPMode.multicast:type_name -> otg.VxlanV6TunnelDestinationIPModeMulticast + 676, // 467: otg.VxlanV4TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV4TunnelDestinationIPModeUnicastVtep + 677, // 468: otg.VxlanV6TunnelDestinationIPModeUnicast.vteps:type_name -> otg.VxlanV6TunnelDestinationIPModeUnicastVtep + 675, // 469: otg.VxlanV4TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 675, // 470: otg.VxlanV6TunnelDestinationIPModeUnicastVtep.arp_suppression_cache:type_name -> otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCache + 681, // 471: otg.DeviceRsvp.ipv4_interfaces:type_name -> otg.RsvpIpv4Interface + 682, // 472: otg.DeviceRsvp.lsp_ipv4_interfaces:type_name -> otg.RsvpLspIpv4Interface + 683, // 473: otg.RsvpLspIpv4Interface.p2p_egress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp + 684, // 474: otg.RsvpLspIpv4Interface.p2p_ingress_ipv4_lsps:type_name -> otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp + 88, // 475: otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.reservation_style:type_name -> otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.Enum + 685, // 476: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.session_attribute:type_name -> otg.RsvpSessionAttribute + 687, // 477: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.tspec:type_name -> otg.RsvpTspec + 688, // 478: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.fast_reroute:type_name -> otg.RsvpFastReroute + 689, // 479: otg.RsvpLspIpv4InterfaceP2PIngressIpv4Lsp.ero:type_name -> otg.RsvpEro + 686, // 480: otg.RsvpSessionAttribute.resource_affinities:type_name -> otg.RsvpResourceAffinities + 89, // 481: otg.RsvpEro.prepend_neighbor_ip:type_name -> otg.RsvpEro.PrependNeighborIp.Enum + 690, // 482: otg.RsvpEro.subobjects:type_name -> otg.RsvpEroSubobject + 90, // 483: otg.RsvpEroSubobject.type:type_name -> otg.RsvpEroSubobject.Type.Enum + 91, // 484: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum + 692, // 485: otg.DeviceDhcpServer.ipv4_interfaces:type_name -> otg.DhcpServerV4 + 695, // 486: otg.DeviceDhcpServer.ipv6_interfaces:type_name -> otg.DhcpServerV6 + 693, // 487: otg.DhcpServerV4.address_pools:type_name -> otg.DhcpServerV4Pool + 694, // 488: otg.DhcpServerV4Pool.options:type_name -> otg.DhcpServerV4PoolOption + 697, // 489: otg.DhcpServerV6.leases:type_name -> otg.DhcpV6ServerLease + 696, // 490: otg.DhcpServerV6.options:type_name -> otg.Dhcpv6ServerOptions + 702, // 491: otg.Dhcpv6ServerOptions.dns:type_name -> otg.DhcpV6ServerDns + 486, // 492: otg.Dhcpv6ServerOptions.vendor_info:type_name -> otg.Dhcpv6ServerOptionsVendorInfo + 491, // 493: otg.Dhcpv6ServerOptions.bootfile_url:type_name -> otg.Dhcpv6ServerOptionsBootfileUrl + 698, // 494: otg.DhcpV6ServerLease.ia_type:type_name -> otg.Dhcpv6ServerIaType + 92, // 495: otg.Dhcpv6ServerIaType.choice:type_name -> otg.Dhcpv6ServerIaType.Choice.Enum + 699, // 496: otg.Dhcpv6ServerIaType.iana:type_name -> otg.Dhcpv6ServerPoolInfo + 699, // 497: otg.Dhcpv6ServerIaType.iata:type_name -> otg.Dhcpv6ServerPoolInfo + 700, // 498: otg.Dhcpv6ServerIaType.iapd:type_name -> otg.Dhcpv6ServerIapdPoolInfo + 701, // 499: otg.Dhcpv6ServerIaType.ianapd:type_name -> otg.Dhcpv6ServerIanapdPoolInfo + 699, // 500: otg.Dhcpv6ServerIanapdPoolInfo.iana:type_name -> otg.Dhcpv6ServerPoolInfo + 700, // 501: otg.Dhcpv6ServerIanapdPoolInfo.iapd:type_name -> otg.Dhcpv6ServerIapdPoolInfo + 703, // 502: otg.DhcpV6ServerDns.secondary_dns:type_name -> otg.DhcpV6ServerSecondaryDns + 705, // 503: otg.Flow.tx_rx:type_name -> otg.FlowTxRx + 708, // 504: otg.Flow.packet:type_name -> otg.FlowHeader + 708, // 505: otg.Flow.egress_packet:type_name -> otg.FlowHeader + 800, // 506: otg.Flow.size:type_name -> otg.FlowSize + 805, // 507: otg.Flow.rate:type_name -> otg.FlowRate + 806, // 508: otg.Flow.duration:type_name -> otg.FlowDuration + 813, // 509: otg.Flow.metrics:type_name -> otg.FlowMetrics + 93, // 510: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum + 706, // 511: otg.FlowTxRx.port:type_name -> otg.FlowPort + 707, // 512: otg.FlowTxRx.device:type_name -> otg.FlowRouter + 94, // 513: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum + 95, // 514: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum + 709, // 515: otg.FlowHeader.custom:type_name -> otg.FlowCustom + 711, // 516: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet + 712, // 517: otg.FlowHeader.vlan:type_name -> otg.FlowVlan + 713, // 518: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan + 714, // 519: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 + 723, // 520: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 + 725, // 521: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause + 726, // 522: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause + 727, // 523: otg.FlowHeader.tcp:type_name -> otg.FlowTcp + 728, // 524: otg.FlowHeader.udp:type_name -> otg.FlowUdp + 729, // 525: otg.FlowHeader.gre:type_name -> otg.FlowGre + 730, // 526: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 + 732, // 527: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 + 733, // 528: otg.FlowHeader.arp:type_name -> otg.FlowArp + 734, // 529: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp + 736, // 530: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 + 738, // 531: otg.FlowHeader.ppp:type_name -> otg.FlowPpp + 739, // 532: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 + 740, // 533: otg.FlowHeader.mpls:type_name -> otg.FlowMpls + 741, // 534: otg.FlowHeader.snmpv2c:type_name -> otg.FlowSnmpv2c + 748, // 535: otg.FlowHeader.rsvp:type_name -> otg.FlowRsvp + 710, // 536: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag + 977, // 537: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst + 980, // 538: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc + 983, // 539: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType + 986, // 540: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue + 989, // 541: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority + 992, // 542: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi + 995, // 543: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId + 998, // 544: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid + 1001, // 545: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags + 1004, // 546: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 + 1007, // 547: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni + 1010, // 548: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 + 1013, // 549: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version + 1016, // 550: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength + 719, // 551: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority + 1019, // 552: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength + 1022, // 553: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification + 1025, // 554: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved + 1028, // 555: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment + 1031, // 556: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments + 1034, // 557: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset + 1037, // 558: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive + 1040, // 559: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol + 1041, // 560: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum + 1045, // 561: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src + 1049, // 562: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst + 715, // 563: otg.FlowIpv4.options:type_name -> otg.FlowIpv4Options + 96, // 564: otg.FlowIpv4Options.choice:type_name -> otg.FlowIpv4Options.Choice.Enum + 716, // 565: otg.FlowIpv4Options.custom:type_name -> otg.FlowIpv4OptionsCustom + 717, // 566: otg.FlowIpv4OptionsCustom.type:type_name -> otg.FlowIpv4OptionsCustomType + 718, // 567: otg.FlowIpv4OptionsCustom.length:type_name -> otg.FlowIpv4OptionsCustomLength + 1051, // 568: otg.FlowIpv4OptionsCustomType.copied_flag:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag + 1053, // 569: otg.FlowIpv4OptionsCustomType.option_class:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass + 1055, // 570: otg.FlowIpv4OptionsCustomType.option_number:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber + 97, // 571: otg.FlowIpv4OptionsCustomLength.choice:type_name -> otg.FlowIpv4OptionsCustomLength.Choice.Enum + 98, // 572: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum + 1058, // 573: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw + 721, // 574: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos + 720, // 575: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp + 1061, // 576: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb + 1064, // 577: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn + 1067, // 578: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence + 1070, // 579: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay + 1073, // 580: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput + 1076, // 581: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability + 1079, // 582: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary + 1082, // 583: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused + 99, // 584: otg.FlowIpv4Auto.choice:type_name -> otg.FlowIpv4Auto.Choice.Enum + 1085, // 585: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version + 1088, // 586: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass + 1092, // 587: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel + 1095, // 588: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength + 1098, // 589: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader + 1101, // 590: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit + 1104, // 591: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src + 1107, // 592: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst + 100, // 593: otg.FlowIpv6Auto.choice:type_name -> otg.FlowIpv6Auto.Choice.Enum + 1110, // 594: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst + 1113, // 595: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc + 1116, // 596: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType + 1119, // 597: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode + 1122, // 598: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector + 1125, // 599: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 + 1128, // 600: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 + 1131, // 601: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 + 1134, // 602: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 + 1137, // 603: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 + 1140, // 604: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 + 1143, // 605: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 + 1146, // 606: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 + 1149, // 607: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst + 1152, // 608: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc + 1155, // 609: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType + 1158, // 610: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode + 1161, // 611: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime + 1165, // 612: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort + 1169, // 613: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort + 1172, // 614: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum + 1175, // 615: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum + 1178, // 616: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset + 1181, // 617: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs + 1184, // 618: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr + 1187, // 619: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho + 1190, // 620: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg + 1193, // 621: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck + 1196, // 622: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh + 1199, // 623: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst + 1202, // 624: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn + 1205, // 625: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin + 1208, // 626: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow + 1209, // 627: otg.FlowTcp.checksum:type_name -> otg.PatternFlowTcpChecksum + 1213, // 628: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort + 1217, // 629: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort + 1220, // 630: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength + 1221, // 631: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum + 1224, // 632: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent + 1227, // 633: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 + 1230, // 634: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion + 1233, // 635: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol + 1234, // 636: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum + 1237, // 637: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 + 1240, // 638: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version + 1243, // 639: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType + 1246, // 640: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved + 1249, // 641: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag + 1252, // 642: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag + 1255, // 643: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag + 1258, // 644: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType + 1261, // 645: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength + 1264, // 646: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid + 1267, // 647: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber + 1270, // 648: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber + 1273, // 649: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType + 731, // 650: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension + 1276, // 651: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength + 1279, // 652: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents + 1282, // 653: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader + 1285, // 654: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version + 1288, // 655: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag + 1291, // 656: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag + 1294, // 657: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 + 1297, // 658: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType + 1300, // 659: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength + 1303, // 660: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid + 1306, // 661: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber + 1309, // 662: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 + 1312, // 663: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType + 1315, // 664: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType + 1318, // 665: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength + 1321, // 666: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength + 1324, // 667: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation + 1327, // 668: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr + 1330, // 669: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr + 1333, // 670: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr + 1336, // 671: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr + 101, // 672: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum + 735, // 673: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho + 1339, // 674: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType + 1342, // 675: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode + 1343, // 676: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum + 1346, // 677: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier + 1349, // 678: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber + 102, // 679: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum + 737, // 680: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo + 1359, // 681: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType + 1362, // 682: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode + 1365, // 683: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier + 1368, // 684: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber + 1369, // 685: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum + 1373, // 686: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress + 1376, // 687: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl + 1379, // 688: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType + 1382, // 689: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version + 1385, // 690: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type + 1388, // 691: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused + 1389, // 692: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum + 1392, // 693: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress + 1395, // 694: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel + 1398, // 695: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass + 1401, // 696: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack + 1404, // 697: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive + 1406, // 698: otg.FlowSnmpv2c.version:type_name -> otg.PatternFlowSnmpv2cVersion + 742, // 699: otg.FlowSnmpv2c.data:type_name -> otg.FlowSnmpv2cData + 103, // 700: otg.FlowSnmpv2cData.choice:type_name -> otg.FlowSnmpv2cData.Choice.Enum + 743, // 701: otg.FlowSnmpv2cData.get_request:type_name -> otg.FlowSnmpv2cPDU + 743, // 702: otg.FlowSnmpv2cData.get_next_request:type_name -> otg.FlowSnmpv2cPDU + 743, // 703: otg.FlowSnmpv2cData.response:type_name -> otg.FlowSnmpv2cPDU + 743, // 704: otg.FlowSnmpv2cData.set_request:type_name -> otg.FlowSnmpv2cPDU + 744, // 705: otg.FlowSnmpv2cData.get_bulk_request:type_name -> otg.FlowSnmpv2cBulkPDU + 743, // 706: otg.FlowSnmpv2cData.inform_request:type_name -> otg.FlowSnmpv2cPDU + 743, // 707: otg.FlowSnmpv2cData.snmpv2_trap:type_name -> otg.FlowSnmpv2cPDU + 743, // 708: otg.FlowSnmpv2cData.report:type_name -> otg.FlowSnmpv2cPDU + 1408, // 709: otg.FlowSnmpv2cPDU.request_id:type_name -> otg.PatternFlowSnmpv2cPDURequestId + 104, // 710: otg.FlowSnmpv2cPDU.error_status:type_name -> otg.FlowSnmpv2cPDU.ErrorStatus.Enum + 1410, // 711: otg.FlowSnmpv2cPDU.error_index:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex + 745, // 712: otg.FlowSnmpv2cPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding + 1412, // 713: otg.FlowSnmpv2cBulkPDU.request_id:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId + 1413, // 714: otg.FlowSnmpv2cBulkPDU.non_repeaters:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters + 1415, // 715: otg.FlowSnmpv2cBulkPDU.max_repetitions:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions + 745, // 716: otg.FlowSnmpv2cBulkPDU.variable_bindings:type_name -> otg.FlowSnmpv2cVariableBinding + 746, // 717: otg.FlowSnmpv2cVariableBinding.value:type_name -> otg.FlowSnmpv2cVariableBindingValue + 105, // 718: otg.FlowSnmpv2cVariableBindingValue.choice:type_name -> otg.FlowSnmpv2cVariableBindingValue.Choice.Enum + 1417, // 719: otg.FlowSnmpv2cVariableBindingValue.integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue + 747, // 720: otg.FlowSnmpv2cVariableBindingValue.string_value:type_name -> otg.FlowSnmpv2cVariableBindingStringValue + 1419, // 721: otg.FlowSnmpv2cVariableBindingValue.ip_address_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue + 1421, // 722: otg.FlowSnmpv2cVariableBindingValue.counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue + 1423, // 723: otg.FlowSnmpv2cVariableBindingValue.timeticks_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue + 1425, // 724: otg.FlowSnmpv2cVariableBindingValue.big_counter_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue + 1427, // 725: otg.FlowSnmpv2cVariableBindingValue.unsigned_integer_value:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue + 106, // 726: otg.FlowSnmpv2cVariableBindingStringValue.choice:type_name -> otg.FlowSnmpv2cVariableBindingStringValue.Choice.Enum + 107, // 727: otg.FlowRsvp.flag:type_name -> otg.FlowRsvp.Flag.Enum + 1430, // 728: otg.FlowRsvp.rsvp_checksum:type_name -> otg.PatternFlowRsvpRsvpChecksum + 1432, // 729: otg.FlowRsvp.time_to_live:type_name -> otg.PatternFlowRsvpTimeToLive + 1434, // 730: otg.FlowRsvp.reserved:type_name -> otg.PatternFlowRsvpReserved + 749, // 731: otg.FlowRsvp.rsvp_length:type_name -> otg.FlowRSVPLength + 750, // 732: otg.FlowRsvp.message_type:type_name -> otg.FlowRSVPMessage + 108, // 733: otg.FlowRSVPLength.choice:type_name -> otg.FlowRSVPLength.Choice.Enum + 109, // 734: otg.FlowRSVPMessage.choice:type_name -> otg.FlowRSVPMessage.Choice.Enum + 751, // 735: otg.FlowRSVPMessage.path:type_name -> otg.FlowRSVPPathMessage + 752, // 736: otg.FlowRSVPPathMessage.objects:type_name -> otg.FlowRSVPPathObjects + 754, // 737: otg.FlowRSVPPathObjects.class_num:type_name -> otg.FlowRSVPPathObjectsClass + 110, // 738: otg.FlowRSVPObjectLength.choice:type_name -> otg.FlowRSVPObjectLength.Choice.Enum + 111, // 739: otg.FlowRSVPPathObjectsClass.choice:type_name -> otg.FlowRSVPPathObjectsClass.Choice.Enum + 755, // 740: otg.FlowRSVPPathObjectsClass.session:type_name -> otg.FlowRSVPPathObjectsClassSession + 759, // 741: otg.FlowRSVPPathObjectsClass.rsvp_hop:type_name -> otg.FlowRSVPPathObjectsClassRsvpHop + 762, // 742: otg.FlowRSVPPathObjectsClass.time_values:type_name -> otg.FlowRSVPPathObjectsClassTimeValues + 765, // 743: otg.FlowRSVPPathObjectsClass.explicit_route:type_name -> otg.FlowRSVPPathObjectsClassExplicitRoute + 774, // 744: otg.FlowRSVPPathObjectsClass.label_request:type_name -> otg.FlowRSVPPathObjectsClassLabelRequest + 777, // 745: otg.FlowRSVPPathObjectsClass.session_attribute:type_name -> otg.FlowRSVPPathObjectsClassSessionAttribute + 783, // 746: otg.FlowRSVPPathObjectsClass.sender_template:type_name -> otg.FlowRSVPPathObjectsClassSenderTemplate + 786, // 747: otg.FlowRSVPPathObjectsClass.sender_tspec:type_name -> otg.FlowRSVPPathObjectsClassSenderTspec + 789, // 748: otg.FlowRSVPPathObjectsClass.record_route:type_name -> otg.FlowRSVPPathObjectsClassRecordRoute + 799, // 749: otg.FlowRSVPPathObjectsClass.custom:type_name -> otg.FlowRSVPPathObjectsCustom + 753, // 750: otg.FlowRSVPPathObjectsClassSession.length:type_name -> otg.FlowRSVPObjectLength + 756, // 751: otg.FlowRSVPPathObjectsClassSession.c_type:type_name -> otg.FlowRSVPPathObjectsSessionCType + 112, // 752: otg.FlowRSVPPathObjectsSessionCType.choice:type_name -> otg.FlowRSVPPathObjectsSessionCType.Choice.Enum + 757, // 753: otg.FlowRSVPPathObjectsSessionCType.lsp_tunnel_ipv4:type_name -> otg.FlowRSVPPathSessionLspTunnelIpv4 + 1436, // 754: otg.FlowRSVPPathSessionLspTunnelIpv4.ipv4_tunnel_end_point_address:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress + 1438, // 755: otg.FlowRSVPPathSessionLspTunnelIpv4.reserved:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved + 1440, // 756: otg.FlowRSVPPathSessionLspTunnelIpv4.tunnel_id:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId + 758, // 757: otg.FlowRSVPPathSessionLspTunnelIpv4.extended_tunnel_id:type_name -> otg.FlowRSVPPathSessionExtTunnelId + 113, // 758: otg.FlowRSVPPathSessionExtTunnelId.choice:type_name -> otg.FlowRSVPPathSessionExtTunnelId.Choice.Enum + 1442, // 759: otg.FlowRSVPPathSessionExtTunnelId.as_integer:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger + 1444, // 760: otg.FlowRSVPPathSessionExtTunnelId.as_ipv4:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4 + 753, // 761: otg.FlowRSVPPathObjectsClassRsvpHop.length:type_name -> otg.FlowRSVPObjectLength + 760, // 762: otg.FlowRSVPPathObjectsClassRsvpHop.c_type:type_name -> otg.FlowRSVPPathObjectsRsvpHopCType + 114, // 763: otg.FlowRSVPPathObjectsRsvpHopCType.choice:type_name -> otg.FlowRSVPPathObjectsRsvpHopCType.Choice.Enum + 761, // 764: otg.FlowRSVPPathObjectsRsvpHopCType.ipv4:type_name -> otg.FlowRSVPPathRsvpHopIpv4 + 1446, // 765: otg.FlowRSVPPathRsvpHopIpv4.ipv4_address:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address + 1448, // 766: otg.FlowRSVPPathRsvpHopIpv4.logical_interface_handle:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle + 753, // 767: otg.FlowRSVPPathObjectsClassTimeValues.length:type_name -> otg.FlowRSVPObjectLength + 763, // 768: otg.FlowRSVPPathObjectsClassTimeValues.c_type:type_name -> otg.FlowRSVPPathObjectsTimeValuesCType + 115, // 769: otg.FlowRSVPPathObjectsTimeValuesCType.choice:type_name -> otg.FlowRSVPPathObjectsTimeValuesCType.Choice.Enum + 764, // 770: otg.FlowRSVPPathObjectsTimeValuesCType.type_1:type_name -> otg.FlowRSVPPathTimeValuesType1 + 1450, // 771: otg.FlowRSVPPathTimeValuesType1.refresh_period_r:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR + 753, // 772: otg.FlowRSVPPathObjectsClassExplicitRoute.length:type_name -> otg.FlowRSVPObjectLength + 766, // 773: otg.FlowRSVPPathObjectsClassExplicitRoute.c_type:type_name -> otg.FlowRSVPPathObjectsClassExplicitRouteCType + 116, // 774: otg.FlowRSVPPathObjectsClassExplicitRouteCType.choice:type_name -> otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.Enum + 767, // 775: otg.FlowRSVPPathObjectsClassExplicitRouteCType.type_1:type_name -> otg.FlowRSVPPathExplicitRouteType1 + 768, // 776: otg.FlowRSVPPathExplicitRouteType1.subobjects:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjects + 769, // 777: otg.FlowRSVPType1ExplicitRouteSubobjects.type:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjectsType + 117, // 778: otg.FlowRSVPType1ExplicitRouteSubobjectsType.choice:type_name -> otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.Enum + 770, // 779: otg.FlowRSVPType1ExplicitRouteSubobjectsType.ipv4_prefix:type_name -> otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix + 771, // 780: otg.FlowRSVPType1ExplicitRouteSubobjectsType.as_number:type_name -> otg.FlowRSVPPathExplicitRouteType1ASNumber + 1452, // 781: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.l_bit:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit + 772, // 782: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.length:type_name -> otg.FlowRSVPExplicitRouteLength + 1454, // 783: otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix.ipv4_address:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address + 1456, // 784: otg.FlowRSVPPathExplicitRouteType1ASNumber.l_bit:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit + 773, // 785: otg.FlowRSVPPathExplicitRouteType1ASNumber.length:type_name -> otg.FlowRSVPExplicitRouteASNumberLength + 118, // 786: otg.FlowRSVPExplicitRouteLength.choice:type_name -> otg.FlowRSVPExplicitRouteLength.Choice.Enum + 119, // 787: otg.FlowRSVPExplicitRouteASNumberLength.choice:type_name -> otg.FlowRSVPExplicitRouteASNumberLength.Choice.Enum + 753, // 788: otg.FlowRSVPPathObjectsClassLabelRequest.length:type_name -> otg.FlowRSVPObjectLength + 775, // 789: otg.FlowRSVPPathObjectsClassLabelRequest.c_type:type_name -> otg.FlowRSVPPathObjectsLabelRequestCType + 120, // 790: otg.FlowRSVPPathObjectsLabelRequestCType.choice:type_name -> otg.FlowRSVPPathObjectsLabelRequestCType.Choice.Enum + 776, // 791: otg.FlowRSVPPathObjectsLabelRequestCType.without_label_range:type_name -> otg.FlowRSVPPathLabelRequestWithoutLabelRange + 1458, // 792: otg.FlowRSVPPathLabelRequestWithoutLabelRange.reserved:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved + 1460, // 793: otg.FlowRSVPPathLabelRequestWithoutLabelRange.l3pid:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid + 753, // 794: otg.FlowRSVPPathObjectsClassSessionAttribute.length:type_name -> otg.FlowRSVPObjectLength + 778, // 795: otg.FlowRSVPPathObjectsClassSessionAttribute.c_type:type_name -> otg.FlowRSVPPathObjectsSessionAttributeCType + 121, // 796: otg.FlowRSVPPathObjectsSessionAttributeCType.choice:type_name -> otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.Enum + 779, // 797: otg.FlowRSVPPathObjectsSessionAttributeCType.lsp_tunnel:type_name -> otg.FlowRSVPPathSessionAttributeLspTunnel + 780, // 798: otg.FlowRSVPPathObjectsSessionAttributeCType.lsp_tunnel_ra:type_name -> otg.FlowRSVPPathSessionAttributeLspTunnelRa + 781, // 799: otg.FlowRSVPPathSessionAttributeLspTunnel.flags:type_name -> otg.FlowRSVPLspTunnelFlag + 782, // 800: otg.FlowRSVPPathSessionAttributeLspTunnel.name_length:type_name -> otg.FlowRSVPSessionAttributeNameLength + 781, // 801: otg.FlowRSVPPathSessionAttributeLspTunnelRa.flags:type_name -> otg.FlowRSVPLspTunnelFlag + 782, // 802: otg.FlowRSVPPathSessionAttributeLspTunnelRa.name_length:type_name -> otg.FlowRSVPSessionAttributeNameLength + 122, // 803: otg.FlowRSVPLspTunnelFlag.choice:type_name -> otg.FlowRSVPLspTunnelFlag.Choice.Enum + 123, // 804: otg.FlowRSVPSessionAttributeNameLength.choice:type_name -> otg.FlowRSVPSessionAttributeNameLength.Choice.Enum + 753, // 805: otg.FlowRSVPPathObjectsClassSenderTemplate.length:type_name -> otg.FlowRSVPObjectLength + 784, // 806: otg.FlowRSVPPathObjectsClassSenderTemplate.c_type:type_name -> otg.FlowRSVPPathObjectsSenderTemplateCType + 124, // 807: otg.FlowRSVPPathObjectsSenderTemplateCType.choice:type_name -> otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.Enum + 785, // 808: otg.FlowRSVPPathObjectsSenderTemplateCType.lsp_tunnel_ipv4:type_name -> otg.FlowRSVPPathSenderTemplateLspTunnelIpv4 + 1462, // 809: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.ipv4_tunnel_sender_address:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress + 1464, // 810: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.reserved:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved + 1466, // 811: otg.FlowRSVPPathSenderTemplateLspTunnelIpv4.lsp_id:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId + 753, // 812: otg.FlowRSVPPathObjectsClassSenderTspec.length:type_name -> otg.FlowRSVPObjectLength + 787, // 813: otg.FlowRSVPPathObjectsClassSenderTspec.c_type:type_name -> otg.FlowRSVPPathObjectsSenderTspecCType + 125, // 814: otg.FlowRSVPPathObjectsSenderTspecCType.choice:type_name -> otg.FlowRSVPPathObjectsSenderTspecCType.Choice.Enum + 788, // 815: otg.FlowRSVPPathObjectsSenderTspecCType.int_serv:type_name -> otg.FlowRSVPPathSenderTspecIntServ + 1468, // 816: otg.FlowRSVPPathSenderTspecIntServ.version:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersion + 1470, // 817: otg.FlowRSVPPathSenderTspecIntServ.reserved1:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1 + 1472, // 818: otg.FlowRSVPPathSenderTspecIntServ.overall_length:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLength + 1474, // 819: otg.FlowRSVPPathSenderTspecIntServ.service_header:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader + 1476, // 820: otg.FlowRSVPPathSenderTspecIntServ.zero_bit:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBit + 1478, // 821: otg.FlowRSVPPathSenderTspecIntServ.reserved2:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2 + 1480, // 822: otg.FlowRSVPPathSenderTspecIntServ.length_of_service_data:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData + 1482, // 823: otg.FlowRSVPPathSenderTspecIntServ.parameter_id_token_bucket_tspec:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec + 1484, // 824: otg.FlowRSVPPathSenderTspecIntServ.parameter_127_flag:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag + 1486, // 825: otg.FlowRSVPPathSenderTspecIntServ.parameter_127_length:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length + 1488, // 826: otg.FlowRSVPPathSenderTspecIntServ.minimum_policed_unit:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit + 1490, // 827: otg.FlowRSVPPathSenderTspecIntServ.maximum_packet_size:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize + 753, // 828: otg.FlowRSVPPathObjectsClassRecordRoute.length:type_name -> otg.FlowRSVPObjectLength + 790, // 829: otg.FlowRSVPPathObjectsClassRecordRoute.c_type:type_name -> otg.FlowRSVPPathObjectsRecordRouteCType + 126, // 830: otg.FlowRSVPPathObjectsRecordRouteCType.choice:type_name -> otg.FlowRSVPPathObjectsRecordRouteCType.Choice.Enum + 791, // 831: otg.FlowRSVPPathObjectsRecordRouteCType.type_1:type_name -> otg.FlowRSVPPathRecordRouteType1 + 792, // 832: otg.FlowRSVPPathRecordRouteType1.subobjects:type_name -> otg.FlowRSVPType1RecordRouteSubobjects + 793, // 833: otg.FlowRSVPType1RecordRouteSubobjects.type:type_name -> otg.FlowRSVPPathObjectsRecordRouteSubObjectType + 127, // 834: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.choice:type_name -> otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.Enum + 794, // 835: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.ipv4_address:type_name -> otg.FlowRSVPPathRecordRouteType1Ipv4Address + 796, // 836: otg.FlowRSVPPathObjectsRecordRouteSubObjectType.label:type_name -> otg.FlowRSVPPathRecordRouteType1Label + 798, // 837: otg.FlowRSVPPathRecordRouteType1Ipv4Address.length:type_name -> otg.FlowRSVPRouteRecordLength + 1492, // 838: otg.FlowRSVPPathRecordRouteType1Ipv4Address.ipv4_address:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address + 1494, // 839: otg.FlowRSVPPathRecordRouteType1Ipv4Address.prefix_length:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength + 795, // 840: otg.FlowRSVPPathRecordRouteType1Ipv4Address.flags:type_name -> otg.FlowRSVPRecordRouteIPv4Flag + 128, // 841: otg.FlowRSVPRecordRouteIPv4Flag.choice:type_name -> otg.FlowRSVPRecordRouteIPv4Flag.Choice.Enum + 798, // 842: otg.FlowRSVPPathRecordRouteType1Label.length:type_name -> otg.FlowRSVPRouteRecordLength + 1495, // 843: otg.FlowRSVPPathRecordRouteType1Label.flags:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelFlags + 1496, // 844: otg.FlowRSVPPathRecordRouteType1Label.c_type:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelCType + 797, // 845: otg.FlowRSVPPathRecordRouteType1Label.label:type_name -> otg.FlowRSVPPathRecordRouteLabel + 129, // 846: otg.FlowRSVPPathRecordRouteLabel.choice:type_name -> otg.FlowRSVPPathRecordRouteLabel.Choice.Enum + 130, // 847: otg.FlowRSVPRouteRecordLength.choice:type_name -> otg.FlowRSVPRouteRecordLength.Choice.Enum + 1498, // 848: otg.FlowRSVPPathObjectsCustom.type:type_name -> otg.PatternFlowRSVPPathObjectsCustomType + 753, // 849: otg.FlowRSVPPathObjectsCustom.length:type_name -> otg.FlowRSVPObjectLength + 131, // 850: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum + 801, // 851: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement + 802, // 852: otg.FlowSize.random:type_name -> otg.FlowSizeRandom + 803, // 853: otg.FlowSize.weight_pairs:type_name -> otg.FlowSizeWeightPairs + 132, // 854: otg.FlowSizeWeightPairs.choice:type_name -> otg.FlowSizeWeightPairs.Choice.Enum + 133, // 855: otg.FlowSizeWeightPairs.predefined:type_name -> otg.FlowSizeWeightPairs.Predefined.Enum + 804, // 856: otg.FlowSizeWeightPairs.custom:type_name -> otg.FlowSizeWeightPairsCustom + 134, // 857: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum + 135, // 858: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum + 809, // 859: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets + 810, // 860: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds + 811, // 861: otg.FlowDuration.burst:type_name -> otg.FlowBurst + 807, // 862: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous + 808, // 863: otg.FlowContinuous.delay:type_name -> otg.FlowDelay + 136, // 864: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum + 808, // 865: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay + 808, // 866: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay + 812, // 867: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap + 137, // 868: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum + 816, // 869: otg.FlowMetrics.rx_tx_ratio:type_name -> otg.FlowRxTxRatio + 814, // 870: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics + 815, // 871: otg.FlowMetrics.predefined_metric_tags:type_name -> otg.FlowPredefinedTags + 138, // 872: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum + 139, // 873: otg.FlowRxTxRatio.choice:type_name -> otg.FlowRxTxRatio.Choice.Enum + 817, // 874: otg.FlowRxTxRatio.rx_count:type_name -> otg.FlowRxTxRatioRxCount + 820, // 875: otg.Event.link:type_name -> otg.EventLink + 819, // 876: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold + 821, // 877: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw + 140, // 878: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum + 822, // 879: otg.EventSubscription.events:type_name -> otg.EventRequest + 825, // 880: otg.Lldp.connection:type_name -> otg.LldpConnection + 826, // 881: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId + 827, // 882: otg.Lldp.port_id:type_name -> otg.LldpPortId + 830, // 883: otg.Lldp.system_name:type_name -> otg.LldpSystemName + 141, // 884: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum + 142, // 885: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum + 828, // 886: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType + 143, // 887: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum + 829, // 888: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType + 144, // 889: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum + 145, // 890: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum + 146, // 891: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum + 147, // 892: otg.Error.kind:type_name -> otg.Error.Kind.Enum + 148, // 893: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum + 834, // 894: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate + 149, // 895: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum + 704, // 896: otg.FlowsUpdate.flows:type_name -> otg.Flow + 150, // 897: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum + 836, // 898: otg.ControlState.port:type_name -> otg.StatePort + 838, // 899: otg.ControlState.protocol:type_name -> otg.StateProtocol + 837, // 900: otg.ControlState.traffic:type_name -> otg.StateTraffic + 151, // 901: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum + 839, // 902: otg.StatePort.link:type_name -> otg.StatePortLink + 840, // 903: otg.StatePort.capture:type_name -> otg.StatePortCapture + 152, // 904: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum + 841, // 905: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit + 153, // 906: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum + 842, // 907: otg.StateProtocol.all:type_name -> otg.StateProtocolAll + 843, // 908: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute + 844, // 909: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp + 847, // 910: otg.StateProtocol.bgp:type_name -> otg.StateProtocolBgp + 849, // 911: otg.StateProtocol.isis:type_name -> otg.StateProtocolIsis + 154, // 912: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum + 155, // 913: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum + 156, // 914: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum + 157, // 915: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum + 158, // 916: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum + 159, // 917: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum + 845, // 918: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin + 846, // 919: otg.StateProtocolLacp.member_ports:type_name -> otg.StateProtocolLacpMemberPorts + 160, // 920: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum + 161, // 921: otg.StateProtocolLacpMemberPorts.state:type_name -> otg.StateProtocolLacpMemberPorts.State.Enum + 162, // 922: otg.StateProtocolBgp.choice:type_name -> otg.StateProtocolBgp.Choice.Enum + 848, // 923: otg.StateProtocolBgp.peers:type_name -> otg.StateProtocolBgpPeers + 163, // 924: otg.StateProtocolBgpPeers.state:type_name -> otg.StateProtocolBgpPeers.State.Enum + 164, // 925: otg.StateProtocolIsis.choice:type_name -> otg.StateProtocolIsis.Choice.Enum + 850, // 926: otg.StateProtocolIsis.routers:type_name -> otg.StateProtocolIsisRouters + 165, // 927: otg.StateProtocolIsisRouters.state:type_name -> otg.StateProtocolIsisRouters.State.Enum + 166, // 928: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum + 854, // 929: otg.ControlAction.protocol:type_name -> otg.ActionProtocol + 853, // 930: otg.ControlActionResponse.response:type_name -> otg.ActionResponse + 167, // 931: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum + 855, // 932: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol + 168, // 933: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum + 856, // 934: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 + 862, // 935: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 + 868, // 936: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp + 169, // 937: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum + 857, // 938: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 + 863, // 939: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 + 170, // 940: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum + 858, // 941: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping + 171, // 942: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum + 860, // 943: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping + 859, // 944: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest + 861, // 945: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse + 172, // 946: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + 173, // 947: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum + 864, // 948: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping + 174, // 949: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum + 866, // 950: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping + 865, // 951: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest + 867, // 952: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse + 175, // 953: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + 176, // 954: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum + 869, // 955: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification + 870, // 956: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart + 177, // 957: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum + 533, // 958: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError + 528, // 959: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError + 529, // 960: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError + 530, // 961: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError + 531, // 962: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired + 532, // 963: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError + 534, // 964: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError + 178, // 965: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum + 873, // 966: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest + 875, // 967: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest + 884, // 968: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest + 886, // 969: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest + 888, // 970: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest + 890, // 971: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest + 892, // 972: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest + 894, // 973: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest + 896, // 974: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest + 898, // 975: otg.MetricsRequest.dhcpv4_client:type_name -> otg.Dhcpv4ClientMetricsRequest + 900, // 976: otg.MetricsRequest.dhcpv4_server:type_name -> otg.Dhcpv4ServerMetricsRequest + 902, // 977: otg.MetricsRequest.dhcpv6_client:type_name -> otg.Dhcpv6ClientMetricsRequest + 904, // 978: otg.MetricsRequest.dhcpv6_server:type_name -> otg.Dhcpv6ServerMetricsRequest + 179, // 979: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum + 874, // 980: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric + 878, // 981: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric + 885, // 982: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric + 887, // 983: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric + 889, // 984: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric + 891, // 985: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric + 893, // 986: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric + 895, // 987: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric + 897, // 988: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric + 899, // 989: otg.MetricsResponse.dhcpv4client_metrics:type_name -> otg.Dhcpv4ClientMetric + 901, // 990: otg.MetricsResponse.dhcpv4server_metrics:type_name -> otg.Dhcpv4ServerMetric + 903, // 991: otg.MetricsResponse.dhcpv6client_metrics:type_name -> otg.Dhcpv6ClientMetric + 905, // 992: otg.MetricsResponse.dhcpv6server_metrics:type_name -> otg.Dhcpv6ServerMetric + 180, // 993: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum + 181, // 994: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum + 182, // 995: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum + 183, // 996: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum + 184, // 997: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum + 876, // 998: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter + 185, // 999: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum + 877, // 1000: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter + 186, // 1001: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum + 882, // 1002: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp + 883, // 1003: otg.FlowMetric.latency:type_name -> otg.MetricLatency + 879, // 1004: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric + 880, // 1005: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag + 882, // 1006: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp + 883, // 1007: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency + 881, // 1008: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue + 187, // 1009: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum + 188, // 1010: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum + 189, // 1011: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum + 190, // 1012: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum + 191, // 1013: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum + 192, // 1014: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum + 193, // 1015: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum + 194, // 1016: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum + 195, // 1017: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum + 196, // 1018: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum + 197, // 1019: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum + 198, // 1020: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum + 199, // 1021: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum + 200, // 1022: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum + 201, // 1023: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum + 202, // 1024: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum + 203, // 1025: otg.Dhcpv4ClientMetricsRequest.column_names:type_name -> otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum + 204, // 1026: otg.Dhcpv4ServerMetricsRequest.column_names:type_name -> otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum + 205, // 1027: otg.Dhcpv6ClientMetricsRequest.column_names:type_name -> otg.Dhcpv6ClientMetricsRequest.ColumnNames.Enum + 206, // 1028: otg.Dhcpv6ServerMetricsRequest.column_names:type_name -> otg.Dhcpv6ServerMetricsRequest.ColumnNames.Enum + 207, // 1029: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum + 908, // 1030: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest + 910, // 1031: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest + 912, // 1032: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest + 937, // 1033: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest + 954, // 1034: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest + 958, // 1035: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest + 964, // 1036: otg.StatesRequest.dhcpv4_interfaces:type_name -> otg.Dhcpv4InterfaceStateRequest + 966, // 1037: otg.StatesRequest.dhcpv4_leases:type_name -> otg.Dhcpv4LeaseStateRequest + 969, // 1038: otg.StatesRequest.dhcpv6_interfaces:type_name -> otg.Dhcpv6InterfaceStateRequest + 971, // 1039: otg.StatesRequest.dhcpv6_leases:type_name -> otg.Dhcpv6LeaseStateRequest + 208, // 1040: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum + 909, // 1041: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State + 911, // 1042: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State + 915, // 1043: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState + 938, // 1044: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState + 955, // 1045: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState + 959, // 1046: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState + 965, // 1047: otg.StatesResponse.dhcpv4_interfaces:type_name -> otg.Dhcpv4InterfaceState + 967, // 1048: otg.StatesResponse.dhcpv4_leases:type_name -> otg.Dhcpv4LeasesState + 970, // 1049: otg.StatesResponse.dhcpv6_interfaces:type_name -> otg.Dhcpv6InterfaceState + 972, // 1050: otg.StatesResponse.dhcpv6_leases:type_name -> otg.Dhcpv6LeasesState + 209, // 1051: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum + 913, // 1052: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter + 914, // 1053: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter + 210, // 1054: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + 211, // 1055: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + 916, // 1056: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState + 917, // 1057: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState + 212, // 1058: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum + 934, // 1059: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity + 918, // 1060: otg.BgpPrefixIpv4UnicastState.extended_communities:type_name -> otg.ResultExtendedCommunity + 935, // 1061: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 213, // 1062: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum + 934, // 1063: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity + 918, // 1064: otg.BgpPrefixIpv6UnicastState.extended_communities:type_name -> otg.ResultExtendedCommunity + 935, // 1065: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 919, // 1066: otg.ResultExtendedCommunity.structured:type_name -> otg.ResultExtendedCommunityStructured + 214, // 1067: otg.ResultExtendedCommunityStructured.choice:type_name -> otg.ResultExtendedCommunityStructured.Choice.Enum + 922, // 1068: otg.ResultExtendedCommunityStructured.transitive_2octet_as_type:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsType + 925, // 1069: otg.ResultExtendedCommunityStructured.transitive_ipv4_address_type:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressType + 928, // 1070: otg.ResultExtendedCommunityStructured.transitive_4octet_as_type:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsType + 931, // 1071: otg.ResultExtendedCommunityStructured.transitive_opaque_type:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueType + 933, // 1072: otg.ResultExtendedCommunityStructured.non_transitive_2octet_as_type:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsType + 215, // 1073: otg.ResultExtendedCommunityTransitive2OctetAsType.choice:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.Enum + 920, // 1074: otg.ResultExtendedCommunityTransitive2OctetAsType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget + 921, // 1075: otg.ResultExtendedCommunityTransitive2OctetAsType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin + 216, // 1076: otg.ResultExtendedCommunityTransitiveIpv4AddressType.choice:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.Enum + 924, // 1077: otg.ResultExtendedCommunityTransitiveIpv4AddressType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget + 923, // 1078: otg.ResultExtendedCommunityTransitiveIpv4AddressType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin + 217, // 1079: otg.ResultExtendedCommunityTransitive4OctetAsType.choice:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.Enum + 926, // 1080: otg.ResultExtendedCommunityTransitive4OctetAsType.route_target_subtype:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget + 927, // 1081: otg.ResultExtendedCommunityTransitive4OctetAsType.route_origin_subtype:type_name -> otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin + 218, // 1082: otg.ResultExtendedCommunityTransitiveOpaqueType.choice:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.Enum + 929, // 1083: otg.ResultExtendedCommunityTransitiveOpaqueType.color_subtype:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueTypeColor + 930, // 1084: otg.ResultExtendedCommunityTransitiveOpaqueType.encapsulation_subtype:type_name -> otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation + 219, // 1085: otg.ResultExtendedCommunityNonTransitive2OctetAsType.choice:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.Enum + 932, // 1086: otg.ResultExtendedCommunityNonTransitive2OctetAsType.link_bandwidth_subtype:type_name -> otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth + 220, // 1087: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum + 936, // 1088: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment + 221, // 1089: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum + 939, // 1090: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState + 222, // 1091: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum + 942, // 1092: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags + 940, // 1093: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs + 941, // 1094: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname + 943, // 1095: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv + 944, // 1096: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv + 946, // 1097: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv + 947, // 1098: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv + 949, // 1099: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv + 951, // 1100: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv + 945, // 1101: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 945, // 1102: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 948, // 1103: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 948, // 1104: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 223, // 1105: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum + 224, // 1106: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum + 950, // 1107: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix + 225, // 1108: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + 953, // 1109: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 952, // 1110: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix + 226, // 1111: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum + 227, // 1112: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum + 953, // 1113: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 228, // 1114: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum + 229, // 1115: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum + 956, // 1116: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState + 957, // 1117: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState + 230, // 1118: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum + 960, // 1119: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState + 961, // 1120: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState + 962, // 1121: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro + 963, // 1122: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero + 231, // 1123: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum + 232, // 1124: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum + 233, // 1125: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum + 968, // 1126: otg.Dhcpv4LeasesState.leases:type_name -> otg.Dhcpv4LeaseState + 973, // 1127: otg.Dhcpv6LeasesState.leases:type_name -> otg.Dhcpv6ServerLeaseState + 234, // 1128: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum + 975, // 1129: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter + 975, // 1130: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter + 976, // 1131: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag + 235, // 1132: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum + 978, // 1133: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter + 978, // 1134: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter + 979, // 1135: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag + 236, // 1136: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum + 981, // 1137: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 981, // 1138: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 982, // 1139: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag + 237, // 1140: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum + 984, // 1141: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 984, // 1142: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 985, // 1143: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag + 238, // 1144: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum + 987, // 1145: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter + 987, // 1146: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter + 988, // 1147: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag + 239, // 1148: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum + 990, // 1149: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter + 990, // 1150: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter + 991, // 1151: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag + 240, // 1152: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum + 993, // 1153: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter + 993, // 1154: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter + 994, // 1155: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag + 241, // 1156: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum + 996, // 1157: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter + 996, // 1158: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter + 997, // 1159: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag + 242, // 1160: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum + 999, // 1161: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter + 999, // 1162: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter + 1000, // 1163: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag + 243, // 1164: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum + 1002, // 1165: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter + 1002, // 1166: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter + 1003, // 1167: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag + 244, // 1168: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum + 1005, // 1169: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter + 1005, // 1170: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter + 1006, // 1171: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag + 245, // 1172: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum + 1008, // 1173: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter + 1008, // 1174: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter + 1009, // 1175: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag + 246, // 1176: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum + 1011, // 1177: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter + 1011, // 1178: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter + 1012, // 1179: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag + 247, // 1180: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum + 1014, // 1181: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 1014, // 1182: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 1015, // 1183: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag + 248, // 1184: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum + 1017, // 1185: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 1017, // 1186: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 1018, // 1187: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag + 249, // 1188: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum + 1020, // 1189: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter + 1020, // 1190: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter + 1021, // 1191: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag + 250, // 1192: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum + 1023, // 1193: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter + 1023, // 1194: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter + 1024, // 1195: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag + 251, // 1196: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum + 1026, // 1197: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 1026, // 1198: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 1027, // 1199: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag + 252, // 1200: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum + 1029, // 1201: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 1029, // 1202: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 1030, // 1203: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag + 253, // 1204: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum + 1032, // 1205: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 1032, // 1206: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 1033, // 1207: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag + 254, // 1208: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum + 1035, // 1209: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 1035, // 1210: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 1036, // 1211: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag + 255, // 1212: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum + 1038, // 1213: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter + 1038, // 1214: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter + 1039, // 1215: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag + 256, // 1216: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + 257, // 1217: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + 258, // 1218: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum + 1042, // 1219: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter + 1042, // 1220: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter + 1043, // 1221: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag + 722, // 1222: otg.PatternFlowIpv4Src.auto:type_name -> otg.FlowIpv4Auto + 1044, // 1223: otg.PatternFlowIpv4Src.random:type_name -> otg.PatternFlowIpv4SrcRandom + 259, // 1224: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum + 1046, // 1225: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter + 1046, // 1226: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter + 1047, // 1227: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag + 722, // 1228: otg.PatternFlowIpv4Dst.auto:type_name -> otg.FlowIpv4Auto + 1048, // 1229: otg.PatternFlowIpv4Dst.random:type_name -> otg.PatternFlowIpv4DstRandom + 260, // 1230: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.Choice.Enum + 1050, // 1231: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + 1050, // 1232: otg.PatternFlowIpv4OptionsCustomTypeCopiedFlag.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter + 261, // 1233: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClass.Choice.Enum + 1052, // 1234: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + 1052, // 1235: otg.PatternFlowIpv4OptionsCustomTypeOptionClass.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionClassCounter + 262, // 1236: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.choice:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.Choice.Enum + 1054, // 1237: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.increment:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + 1054, // 1238: otg.PatternFlowIpv4OptionsCustomTypeOptionNumber.decrement:type_name -> otg.PatternFlowIpv4OptionsCustomTypeOptionNumberCounter + 263, // 1239: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum + 1056, // 1240: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 1056, // 1241: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 1057, // 1242: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag + 264, // 1243: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum + 1059, // 1244: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 1059, // 1245: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 1060, // 1246: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag + 265, // 1247: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum + 1062, // 1248: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 1062, // 1249: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 1063, // 1250: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag + 266, // 1251: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum + 1065, // 1252: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 1065, // 1253: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 1066, // 1254: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag + 267, // 1255: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum + 1068, // 1256: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter + 1068, // 1257: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter + 1069, // 1258: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag + 268, // 1259: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum + 1071, // 1260: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 1071, // 1261: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 1072, // 1262: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag + 269, // 1263: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum + 1074, // 1264: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 1074, // 1265: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 1075, // 1266: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag + 270, // 1267: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum + 1077, // 1268: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 1077, // 1269: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 1078, // 1270: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag + 271, // 1271: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum + 1080, // 1272: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 1080, // 1273: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 1081, // 1274: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag + 272, // 1275: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum + 1083, // 1276: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter + 1083, // 1277: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter + 1084, // 1278: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag + 273, // 1279: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum + 1086, // 1280: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 1086, // 1281: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 1087, // 1282: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag + 274, // 1283: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum + 1089, // 1284: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 1089, // 1285: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 1090, // 1286: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag + 1091, // 1287: otg.PatternFlowIpv6FlowLabel.random:type_name -> otg.PatternFlowIpv6FlowLabelRandom + 275, // 1288: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum + 1093, // 1289: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 1093, // 1290: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 1094, // 1291: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag + 276, // 1292: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum + 1096, // 1293: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 1096, // 1294: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 1097, // 1295: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag + 277, // 1296: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum + 1099, // 1297: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter + 1099, // 1298: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter + 1100, // 1299: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag + 278, // 1300: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum + 1102, // 1301: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter + 1102, // 1302: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter + 1103, // 1303: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag + 724, // 1304: otg.PatternFlowIpv6Src.auto:type_name -> otg.FlowIpv6Auto + 279, // 1305: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum + 1105, // 1306: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter + 1105, // 1307: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter + 1106, // 1308: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag + 724, // 1309: otg.PatternFlowIpv6Dst.auto:type_name -> otg.FlowIpv6Auto + 280, // 1310: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum + 1108, // 1311: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter + 1108, // 1312: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter + 1109, // 1313: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag + 281, // 1314: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum + 1111, // 1315: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter + 1111, // 1316: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter + 1112, // 1317: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag + 282, // 1318: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum + 1114, // 1319: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 1114, // 1320: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 1115, // 1321: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag + 283, // 1322: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + 1117, // 1323: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 1117, // 1324: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 1118, // 1325: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag + 284, // 1326: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + 1120, // 1327: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 1120, // 1328: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 1121, // 1329: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag + 285, // 1330: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum + 1123, // 1331: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 1123, // 1332: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 1124, // 1333: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag + 286, // 1334: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum + 1126, // 1335: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 1126, // 1336: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 1127, // 1337: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag + 287, // 1338: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum + 1129, // 1339: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 1129, // 1340: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 1130, // 1341: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag + 288, // 1342: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum + 1132, // 1343: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 1132, // 1344: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 1133, // 1345: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag + 289, // 1346: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum + 1135, // 1347: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 1135, // 1348: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 1136, // 1349: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag + 290, // 1350: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum + 1138, // 1351: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 1138, // 1352: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 1139, // 1353: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag + 291, // 1354: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum + 1141, // 1355: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 1141, // 1356: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 1142, // 1357: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag + 292, // 1358: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum + 1144, // 1359: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 1144, // 1360: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 1145, // 1361: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag + 293, // 1362: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum + 1147, // 1363: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter + 1147, // 1364: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter + 1148, // 1365: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag + 294, // 1366: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum + 1150, // 1367: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 1150, // 1368: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 1151, // 1369: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag + 295, // 1370: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum + 1153, // 1371: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 1153, // 1372: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 1154, // 1373: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag + 296, // 1374: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + 1156, // 1375: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 1156, // 1376: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 1157, // 1377: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag + 297, // 1378: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum + 1159, // 1379: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 1159, // 1380: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 1160, // 1381: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag + 298, // 1382: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum + 1162, // 1383: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter + 1162, // 1384: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter + 1163, // 1385: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag + 1164, // 1386: otg.PatternFlowTcpSrcPort.random:type_name -> otg.PatternFlowTcpSrcPortRandom + 299, // 1387: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum + 1166, // 1388: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter + 1166, // 1389: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter + 1167, // 1390: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag + 1168, // 1391: otg.PatternFlowTcpDstPort.random:type_name -> otg.PatternFlowTcpDstPortRandom + 300, // 1392: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum + 1170, // 1393: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter + 1170, // 1394: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter + 1171, // 1395: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag + 301, // 1396: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum + 1173, // 1397: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter + 1173, // 1398: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter + 1174, // 1399: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag + 302, // 1400: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum + 1176, // 1401: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter + 1176, // 1402: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter + 1177, // 1403: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag + 303, // 1404: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum + 1179, // 1405: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter + 1179, // 1406: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter + 1180, // 1407: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag + 304, // 1408: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum + 1182, // 1409: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter + 1182, // 1410: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter + 1183, // 1411: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag + 305, // 1412: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum + 1185, // 1413: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter + 1185, // 1414: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter + 1186, // 1415: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag + 306, // 1416: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum + 1188, // 1417: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter + 1188, // 1418: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter + 1189, // 1419: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag + 307, // 1420: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum + 1191, // 1421: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter + 1191, // 1422: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter + 1192, // 1423: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag + 308, // 1424: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum + 1194, // 1425: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter + 1194, // 1426: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter + 1195, // 1427: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag + 309, // 1428: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum + 1197, // 1429: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter + 1197, // 1430: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter + 1198, // 1431: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag + 310, // 1432: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum + 1200, // 1433: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter + 1200, // 1434: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter + 1201, // 1435: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag + 311, // 1436: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum + 1203, // 1437: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter + 1203, // 1438: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter + 1204, // 1439: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag + 312, // 1440: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum + 1206, // 1441: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter + 1206, // 1442: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter + 1207, // 1443: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag + 313, // 1444: otg.PatternFlowTcpChecksum.choice:type_name -> otg.PatternFlowTcpChecksum.Choice.Enum + 314, // 1445: otg.PatternFlowTcpChecksum.generated:type_name -> otg.PatternFlowTcpChecksum.Generated.Enum + 315, // 1446: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum + 1210, // 1447: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter + 1210, // 1448: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter + 1211, // 1449: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag + 1212, // 1450: otg.PatternFlowUdpSrcPort.random:type_name -> otg.PatternFlowUdpSrcPortRandom + 316, // 1451: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum + 1214, // 1452: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter + 1214, // 1453: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter + 1215, // 1454: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag + 1216, // 1455: otg.PatternFlowUdpDstPort.random:type_name -> otg.PatternFlowUdpDstPortRandom + 317, // 1456: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum + 1218, // 1457: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter + 1218, // 1458: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter + 1219, // 1459: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag + 318, // 1460: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum + 319, // 1461: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum + 320, // 1462: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum + 1222, // 1463: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter + 1222, // 1464: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter + 1223, // 1465: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag + 321, // 1466: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum + 1225, // 1467: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter + 1225, // 1468: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter + 1226, // 1469: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag + 322, // 1470: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum + 1228, // 1471: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter + 1228, // 1472: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter + 1229, // 1473: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag + 323, // 1474: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum + 1231, // 1475: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter + 1231, // 1476: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter + 1232, // 1477: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag + 324, // 1478: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum + 325, // 1479: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum + 326, // 1480: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum + 1235, // 1481: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter + 1235, // 1482: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter + 1236, // 1483: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag + 327, // 1484: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum + 1238, // 1485: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter + 1238, // 1486: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter + 1239, // 1487: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag + 328, // 1488: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum + 1241, // 1489: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 1241, // 1490: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 1242, // 1491: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag + 329, // 1492: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum + 1244, // 1493: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter + 1244, // 1494: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter + 1245, // 1495: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag + 330, // 1496: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum + 1247, // 1497: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter + 1247, // 1498: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter + 1248, // 1499: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag + 331, // 1500: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum + 1250, // 1501: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter + 1250, // 1502: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter + 1251, // 1503: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag + 332, // 1504: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum + 1253, // 1505: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 1253, // 1506: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 1254, // 1507: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag + 333, // 1508: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum + 1256, // 1509: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 1256, // 1510: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 1257, // 1511: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag + 334, // 1512: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum + 1259, // 1513: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 1259, // 1514: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 1260, // 1515: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag + 335, // 1516: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum + 1262, // 1517: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter + 1262, // 1518: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter + 1263, // 1519: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag + 336, // 1520: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + 1265, // 1521: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 1265, // 1522: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 1266, // 1523: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag + 337, // 1524: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum + 1268, // 1525: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 1268, // 1526: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 1269, // 1527: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag + 338, // 1528: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + 1271, // 1529: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 1271, // 1530: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 1272, // 1531: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + 339, // 1532: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + 1274, // 1533: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 1274, // 1534: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 1275, // 1535: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag + 340, // 1536: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum + 1277, // 1537: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 1277, // 1538: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 1278, // 1539: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag + 341, // 1540: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + 1280, // 1541: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 1280, // 1542: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 1281, // 1543: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + 342, // 1544: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum + 1283, // 1545: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter + 1283, // 1546: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter + 1284, // 1547: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag + 343, // 1548: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + 1286, // 1549: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 1286, // 1550: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 1287, // 1551: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag + 344, // 1552: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum + 1289, // 1553: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 1289, // 1554: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 1290, // 1555: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag + 345, // 1556: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum + 1292, // 1557: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter + 1292, // 1558: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter + 1293, // 1559: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag + 346, // 1560: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum + 1295, // 1561: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 1295, // 1562: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 1296, // 1563: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag + 347, // 1564: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum + 1298, // 1565: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 1298, // 1566: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 1299, // 1567: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag + 348, // 1568: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum + 1301, // 1569: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter + 1301, // 1570: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter + 1302, // 1571: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag + 349, // 1572: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + 1304, // 1573: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 1304, // 1574: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 1305, // 1575: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag + 350, // 1576: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum + 1307, // 1577: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter + 1307, // 1578: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter + 1308, // 1579: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag + 351, // 1580: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum + 1310, // 1581: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter + 1310, // 1582: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter + 1311, // 1583: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag + 352, // 1584: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum + 1313, // 1585: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter + 1313, // 1586: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter + 1314, // 1587: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag + 353, // 1588: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum + 1316, // 1589: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter + 1316, // 1590: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter + 1317, // 1591: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag + 354, // 1592: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum + 1319, // 1593: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter + 1319, // 1594: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter + 1320, // 1595: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag + 355, // 1596: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum + 1322, // 1597: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter + 1322, // 1598: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter + 1323, // 1599: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag + 356, // 1600: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + 1325, // 1601: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 1325, // 1602: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 1326, // 1603: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag + 357, // 1604: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + 1328, // 1605: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 1328, // 1606: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 1329, // 1607: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag + 358, // 1608: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + 1331, // 1609: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 1331, // 1610: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 1332, // 1611: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag + 359, // 1612: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + 1334, // 1613: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 1334, // 1614: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 1335, // 1615: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag + 360, // 1616: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum + 1337, // 1617: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 1337, // 1618: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 1338, // 1619: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag + 361, // 1620: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum + 1340, // 1621: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 1340, // 1622: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 1341, // 1623: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag + 362, // 1624: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum + 363, // 1625: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum + 364, // 1626: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + 1344, // 1627: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 1344, // 1628: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 1345, // 1629: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag + 365, // 1630: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + 1347, // 1631: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 1347, // 1632: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 1348, // 1633: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag + 366, // 1634: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum + 367, // 1635: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum + 368, // 1636: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + 1351, // 1637: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1351, // 1638: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 1352, // 1639: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + 369, // 1640: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + 1354, // 1641: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1354, // 1642: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 1355, // 1643: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + 370, // 1644: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum + 1357, // 1645: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1357, // 1646: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 1358, // 1647: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag + 371, // 1648: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum + 1360, // 1649: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1360, // 1650: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 1361, // 1651: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag + 372, // 1652: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + 1363, // 1653: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1363, // 1654: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1364, // 1655: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag + 373, // 1656: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + 1366, // 1657: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1366, // 1658: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1367, // 1659: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + 374, // 1660: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + 375, // 1661: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + 376, // 1662: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + 377, // 1663: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + 378, // 1664: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum + 1371, // 1665: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter + 1371, // 1666: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter + 1372, // 1667: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag + 379, // 1668: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum + 1374, // 1669: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter + 1374, // 1670: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter + 1375, // 1671: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag + 380, // 1672: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum + 1377, // 1673: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1377, // 1674: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1378, // 1675: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag + 381, // 1676: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum + 1380, // 1677: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1380, // 1678: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1381, // 1679: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag + 382, // 1680: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum + 1383, // 1681: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1383, // 1682: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1384, // 1683: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag + 383, // 1684: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum + 1386, // 1685: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1386, // 1686: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1387, // 1687: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag + 384, // 1688: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum + 385, // 1689: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum + 386, // 1690: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + 1390, // 1691: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1390, // 1692: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1391, // 1693: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag + 387, // 1694: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum + 1393, // 1695: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter + 1393, // 1696: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter + 1394, // 1697: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag + 388, // 1698: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum + 1396, // 1699: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1396, // 1700: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1397, // 1701: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag + 389, // 1702: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum + 1399, // 1703: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1399, // 1704: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1400, // 1705: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag + 390, // 1706: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum + 1402, // 1707: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1402, // 1708: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1403, // 1709: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag + 391, // 1710: otg.PatternFlowSnmpv2cVersion.choice:type_name -> otg.PatternFlowSnmpv2cVersion.Choice.Enum + 1405, // 1711: otg.PatternFlowSnmpv2cVersion.increment:type_name -> otg.PatternFlowSnmpv2cVersionCounter + 1405, // 1712: otg.PatternFlowSnmpv2cVersion.decrement:type_name -> otg.PatternFlowSnmpv2cVersionCounter + 392, // 1713: otg.PatternFlowSnmpv2cPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cPDURequestId.Choice.Enum + 1407, // 1714: otg.PatternFlowSnmpv2cPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter + 1407, // 1715: otg.PatternFlowSnmpv2cPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cPDURequestIdCounter + 393, // 1716: otg.PatternFlowSnmpv2cPDUErrorIndex.choice:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndex.Choice.Enum + 1409, // 1717: otg.PatternFlowSnmpv2cPDUErrorIndex.increment:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter + 1409, // 1718: otg.PatternFlowSnmpv2cPDUErrorIndex.decrement:type_name -> otg.PatternFlowSnmpv2cPDUErrorIndexCounter + 394, // 1719: otg.PatternFlowSnmpv2cBulkPDURequestId.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestId.Choice.Enum + 1411, // 1720: otg.PatternFlowSnmpv2cBulkPDURequestId.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + 1411, // 1721: otg.PatternFlowSnmpv2cBulkPDURequestId.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDURequestIdCounter + 395, // 1722: otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUNonRepeaters.Choice.Enum + 396, // 1723: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.choice:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.Choice.Enum + 1414, // 1724: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.increment:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + 1414, // 1725: otg.PatternFlowSnmpv2cBulkPDUMaxRepetitions.decrement:type_name -> otg.PatternFlowSnmpv2cBulkPDUMaxRepetitionsCounter + 397, // 1726: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.Choice.Enum + 1416, // 1727: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + 1416, // 1728: otg.PatternFlowSnmpv2cVariableBindingValueIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIntegerValueCounter + 398, // 1729: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.Choice.Enum + 1418, // 1730: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + 1418, // 1731: otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueIpAddressValueCounter + 399, // 1732: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.Choice.Enum + 1420, // 1733: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + 1420, // 1734: otg.PatternFlowSnmpv2cVariableBindingValueCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueCounterValueCounter + 400, // 1735: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.Choice.Enum + 1422, // 1736: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + 1422, // 1737: otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueTimeticksValueCounter + 401, // 1738: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.Choice.Enum + 1424, // 1739: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + 1424, // 1740: otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueBigCounterValueCounter + 402, // 1741: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.choice:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.Choice.Enum + 1426, // 1742: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.increment:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + 1426, // 1743: otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValue.decrement:type_name -> otg.PatternFlowSnmpv2cVariableBindingValueUnsignedIntegerValueCounter + 403, // 1744: otg.PatternFlowSnmpv2cCommonRequestId.choice:type_name -> otg.PatternFlowSnmpv2cCommonRequestId.Choice.Enum + 1428, // 1745: otg.PatternFlowSnmpv2cCommonRequestId.increment:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter + 1428, // 1746: otg.PatternFlowSnmpv2cCommonRequestId.decrement:type_name -> otg.PatternFlowSnmpv2cCommonRequestIdCounter + 404, // 1747: otg.PatternFlowRsvpRsvpChecksum.choice:type_name -> otg.PatternFlowRsvpRsvpChecksum.Choice.Enum + 405, // 1748: otg.PatternFlowRsvpRsvpChecksum.generated:type_name -> otg.PatternFlowRsvpRsvpChecksum.Generated.Enum + 406, // 1749: otg.PatternFlowRsvpTimeToLive.choice:type_name -> otg.PatternFlowRsvpTimeToLive.Choice.Enum + 1431, // 1750: otg.PatternFlowRsvpTimeToLive.increment:type_name -> otg.PatternFlowRsvpTimeToLiveCounter + 1431, // 1751: otg.PatternFlowRsvpTimeToLive.decrement:type_name -> otg.PatternFlowRsvpTimeToLiveCounter + 407, // 1752: otg.PatternFlowRsvpReserved.choice:type_name -> otg.PatternFlowRsvpReserved.Choice.Enum + 1433, // 1753: otg.PatternFlowRsvpReserved.increment:type_name -> otg.PatternFlowRsvpReservedCounter + 1433, // 1754: otg.PatternFlowRsvpReserved.decrement:type_name -> otg.PatternFlowRsvpReservedCounter + 408, // 1755: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.Choice.Enum + 1435, // 1756: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter + 1435, // 1757: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter + 409, // 1758: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.Choice.Enum + 1437, // 1759: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter + 1437, // 1760: otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter + 410, // 1761: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.choice:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.Choice.Enum + 1439, // 1762: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.increment:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter + 1439, // 1763: otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId.decrement:type_name -> otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter + 411, // 1764: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.choice:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.Choice.Enum + 1441, // 1765: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.increment:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter + 1441, // 1766: otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger.decrement:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter + 412, // 1767: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.choice:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.Choice.Enum + 1443, // 1768: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.increment:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter + 1443, // 1769: otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4.decrement:type_name -> otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter + 413, // 1770: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.choice:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.Choice.Enum + 1445, // 1771: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.increment:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter + 1445, // 1772: otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address.decrement:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter + 414, // 1773: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.choice:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.Choice.Enum + 1447, // 1774: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.increment:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter + 1447, // 1775: otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle.decrement:type_name -> otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter + 415, // 1776: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.choice:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.Choice.Enum + 1449, // 1777: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.increment:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter + 1449, // 1778: otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR.decrement:type_name -> otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter + 416, // 1779: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.Choice.Enum + 1451, // 1780: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter + 1451, // 1781: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter + 417, // 1782: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.Choice.Enum + 1453, // 1783: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter + 1453, // 1784: otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter + 418, // 1785: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.choice:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.Choice.Enum + 1455, // 1786: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.increment:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter + 1455, // 1787: otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit.decrement:type_name -> otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter + 419, // 1788: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.choice:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.Choice.Enum + 1457, // 1789: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.increment:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter + 1457, // 1790: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved.decrement:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter + 420, // 1791: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.choice:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.Choice.Enum + 1459, // 1792: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.increment:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter + 1459, // 1793: otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid.decrement:type_name -> otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pidCounter + 421, // 1794: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.Choice.Enum + 1461, // 1795: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter + 1461, // 1796: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter + 422, // 1797: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.Choice.Enum + 1463, // 1798: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter + 1463, // 1799: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter + 423, // 1800: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.choice:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.Choice.Enum + 1465, // 1801: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.increment:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter + 1465, // 1802: otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId.decrement:type_name -> otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter + 424, // 1803: otg.PatternFlowRSVPPathSenderTspecIntServVersion.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersion.Choice.Enum + 1467, // 1804: otg.PatternFlowRSVPPathSenderTspecIntServVersion.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter + 1467, // 1805: otg.PatternFlowRSVPPathSenderTspecIntServVersion.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServVersionCounter + 425, // 1806: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1.Choice.Enum + 1469, // 1807: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter + 1469, // 1808: otg.PatternFlowRSVPPathSenderTspecIntServReserved1.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved1Counter + 426, // 1809: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.Choice.Enum + 1471, // 1810: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter + 1471, // 1811: otg.PatternFlowRSVPPathSenderTspecIntServOverallLength.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter + 427, // 1812: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.Choice.Enum + 1473, // 1813: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter + 1473, // 1814: otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter + 428, // 1815: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.Choice.Enum + 1475, // 1816: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter + 1475, // 1817: otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter + 429, // 1818: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2.Choice.Enum + 1477, // 1819: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter + 1477, // 1820: otg.PatternFlowRSVPPathSenderTspecIntServReserved2.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter + 430, // 1821: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.Choice.Enum + 1479, // 1822: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter + 1479, // 1823: otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter + 431, // 1824: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.Choice.Enum + 1481, // 1825: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter + 1481, // 1826: otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter + 432, // 1827: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.Choice.Enum + 1483, // 1828: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter + 1483, // 1829: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter + 433, // 1830: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.Choice.Enum + 1485, // 1831: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter + 1485, // 1832: otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter + 434, // 1833: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.Choice.Enum + 1487, // 1834: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter + 1487, // 1835: otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter + 435, // 1836: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.choice:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.Choice.Enum + 1489, // 1837: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.increment:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter + 1489, // 1838: otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.decrement:type_name -> otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter + 436, // 1839: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.Choice.Enum + 1491, // 1840: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.increment:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter + 1491, // 1841: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.decrement:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter + 437, // 1842: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.Choice.Enum + 1493, // 1843: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.increment:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter + 1493, // 1844: otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.decrement:type_name -> otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter + 438, // 1845: otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.Choice.Enum + 439, // 1846: otg.PatternFlowRSVPPathRecordRouteType1LabelCType.choice:type_name -> otg.PatternFlowRSVPPathRecordRouteType1LabelCType.Choice.Enum + 440, // 1847: otg.PatternFlowRSVPPathObjectsCustomType.choice:type_name -> otg.PatternFlowRSVPPathObjectsCustomType.Choice.Enum + 1497, // 1848: otg.PatternFlowRSVPPathObjectsCustomType.increment:type_name -> otg.PatternFlowRSVPPathObjectsCustomTypeCounter + 1497, // 1849: otg.PatternFlowRSVPPathObjectsCustomType.decrement:type_name -> otg.PatternFlowRSVPPathObjectsCustomTypeCounter + 832, // 1850: otg.Success.warning:type_name -> otg.Warning + 831, // 1851: otg.Failure.error:type_name -> otg.Error + 441, // 1852: otg.SetConfigRequest.config:type_name -> otg.Config + 833, // 1853: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate + 832, // 1854: otg.SetConfigResponse.warning:type_name -> otg.Warning + 441, // 1855: otg.GetConfigResponse.config:type_name -> otg.Config + 832, // 1856: otg.UpdateConfigResponse.warning:type_name -> otg.Warning + 835, // 1857: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState + 832, // 1858: otg.SetControlStateResponse.warning:type_name -> otg.Warning + 851, // 1859: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction + 852, // 1860: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse + 871, // 1861: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest + 872, // 1862: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse + 906, // 1863: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest + 907, // 1864: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse + 974, // 1865: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest + 1499, // 1866: otg.GetVersionResponse.version:type_name -> otg.Version + 1502, // 1867: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest + 1959, // 1868: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty + 1503, // 1869: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest + 1507, // 1870: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest + 1509, // 1871: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest + 1511, // 1872: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest + 1513, // 1873: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest + 1515, // 1874: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest + 1959, // 1875: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty + 1504, // 1876: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse + 1505, // 1877: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse + 1506, // 1878: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse + 1508, // 1879: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse + 1510, // 1880: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse + 1512, // 1881: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse + 1514, // 1882: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse + 1516, // 1883: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse + 1517, // 1884: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse + 1876, // [1876:1885] is the sub-list for method output_type + 1867, // [1867:1876] is the sub-list for method input_type + 1867, // [1867:1867] is the sub-list for extension type_name + 1867, // [1867:1867] is the sub-list for extension extendee + 0, // [0:1867] is the sub-list for field type_name } func init() { file_otg_proto_init() } @@ -146837,7 +153136,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Layer1); i { + switch v := v.(*DeviceDhcpv6Client); i { case 0: return &v.state case 1: @@ -146849,7 +153148,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Layer1AutoNegotiation); i { + switch v := v.(*DeviceDhcpv6ClientOptionsRequest); i { case 0: return &v.state case 1: @@ -146861,7 +153160,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Layer1FlowControl); i { + switch v := v.(*DeviceDhcpv6ClientOptions); i { case 0: return &v.state case 1: @@ -146873,7 +153172,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Layer1Ieee8023X); i { + switch v := v.(*DeviceDhcpv6ClientIaType); i { case 0: return &v.state case 1: @@ -146885,7 +153184,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Layer1Ieee8021Qbb); i { + switch v := v.(*DeviceDhcpv6ClientIaTimeValue); i { case 0: return &v.state case 1: @@ -146897,7 +153196,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Capture); i { + switch v := v.(*DeviceDhcpv6ClientDuidType); i { case 0: return &v.state case 1: @@ -146909,7 +153208,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureFilter); i { + switch v := v.(*DeviceDhcpv6ClientDuidValue); i { case 0: return &v.state case 1: @@ -146921,7 +153220,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureCustom); i { + switch v := v.(*DeviceDhcpv6ClientNoDuid); i { case 0: return &v.state case 1: @@ -146933,7 +153232,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureField); i { + switch v := v.(*Dhcpv6ClientOptionsServerIdentifier); i { case 0: return &v.state case 1: @@ -146945,7 +153244,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureEthernet); i { + switch v := v.(*Dhcpv6ClientOptionsDuidLlt); i { case 0: return &v.state case 1: @@ -146957,7 +153256,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureVlan); i { + switch v := v.(*Dhcpv6ClientOptionsDuidEn); i { case 0: return &v.state case 1: @@ -146969,7 +153268,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureIpv4); i { + switch v := v.(*Dhcpv6ClientOptionsDuidLl); i { case 0: return &v.state case 1: @@ -146981,7 +153280,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CaptureIpv6); i { + switch v := v.(*Dhcpv6ClientOptionsDuidUuid); i { case 0: return &v.state case 1: @@ -146993,7 +153292,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Device); i { + switch v := v.(*Dhcpv6ClientOptionsDuidUuidVersion); i { case 0: return &v.state case 1: @@ -147005,7 +153304,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProtocolOptions); i { + switch v := v.(*Dhcpv6ClientOptionsDuidUuidVariant); i { case 0: return &v.state case 1: @@ -147017,7 +153316,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceIsisRouter); i { + switch v := v.(*Dhcpv6ClientOptionsLinkLayerAddress); i { case 0: return &v.state case 1: @@ -147029,7 +153328,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceIsisMultiInstance); i { + switch v := v.(*Dhcpv6ClientOptionsOptionsRequest); i { case 0: return &v.state case 1: @@ -147041,7 +153340,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisInterface); i { + switch v := v.(*Dhcpv6ClientOptionsCustom); i { case 0: return &v.state case 1: @@ -147053,7 +153352,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisInterfaceLevel); i { + switch v := v.(*Dhcpv6ClientOptionsVendorClass); i { case 0: return &v.state case 1: @@ -147065,7 +153364,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisMT); i { + switch v := v.(*Dhcpv6ClientOptionsOptionsRequestIncludedMessages); i { case 0: return &v.state case 1: @@ -147077,7 +153376,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LinkStateTE); i { + switch v := v.(*Dhcpv6ClientOptionsIncludedMessages); i { case 0: return &v.state case 1: @@ -147089,7 +153388,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LinkStatepriorityBandwidths); i { + switch v := v.(*Dhcpv6ClientOptionsMessageType); i { case 0: return &v.state case 1: @@ -147101,7 +153400,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisInterfaceAuthentication); i { + switch v := v.(*Dhcpv6ClientOptionsVendorInfo); i { case 0: return &v.state case 1: @@ -147113,7 +153412,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisInterfaceAdvanced); i { + switch v := v.(*Dhcpv6ServerOptionsVendorInfo); i { case 0: return &v.state case 1: @@ -147125,7 +153424,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisInterfaceLinkProtection); i { + switch v := v.(*Dhcpv6ServerOptionsIncludedMessages); i { case 0: return &v.state case 1: @@ -147137,7 +153436,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisBasic); i { + switch v := v.(*Dhcpv6ServerOptionsMessageType); i { case 0: return &v.state case 1: @@ -147149,7 +153448,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisAdvanced); i { + switch v := v.(*Dhcpv6OptionsVendorSpecificOptions); i { case 0: return &v.state case 1: @@ -147161,7 +153460,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisAuthentication); i { + switch v := v.(*Dhcpv6ClientOptionsFqdn); i { case 0: return &v.state case 1: @@ -147173,7 +153472,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisAuthenticationBase); i { + switch v := v.(*Dhcpv6ServerOptionsBootfileUrl); i { case 0: return &v.state case 1: @@ -147185,7 +153484,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisV4RouteRange); i { + switch v := v.(*Dhcpv6ServerOptionsBootFileParams); i { case 0: return &v.state case 1: @@ -147197,7 +153496,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*V4RouteAddress); i { + switch v := v.(*Layer1); i { case 0: return &v.state case 1: @@ -147209,7 +153508,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*V6RouteAddress); i { + switch v := v.(*Layer1AutoNegotiation); i { case 0: return &v.state case 1: @@ -147221,7 +153520,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MACRouteAddress); i { + switch v := v.(*Layer1FlowControl); i { case 0: return &v.state case 1: @@ -147233,7 +153532,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsisV6RouteRange); i { + switch v := v.(*Layer1Ieee8023X); i { case 0: return &v.state case 1: @@ -147245,7 +153544,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpRouter); i { + switch v := v.(*Layer1Ieee8021Qbb); i { case 0: return &v.state case 1: @@ -147257,7 +153556,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpMessageHeaderError); i { + switch v := v.(*Capture); i { case 0: return &v.state case 1: @@ -147269,7 +153568,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpOpenMessageError); i { + switch v := v.(*CaptureFilter); i { case 0: return &v.state case 1: @@ -147281,7 +153580,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpUpdateMessageError); i { + switch v := v.(*CaptureCustom); i { case 0: return &v.state case 1: @@ -147293,7 +153592,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpHoldTimerExpired); i { + switch v := v.(*CaptureField); i { case 0: return &v.state case 1: @@ -147305,7 +153604,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpFiniteStateMachineError); i { + switch v := v.(*CaptureEthernet); i { case 0: return &v.state case 1: @@ -147317,7 +153616,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpCeaseError); i { + switch v := v.(*CaptureVlan); i { case 0: return &v.state case 1: @@ -147329,7 +153628,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceBgpCustomError); i { + switch v := v.(*CaptureIpv4); i { case 0: return &v.state case 1: @@ -147341,7 +153640,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Peer); i { + switch v := v.(*CaptureIpv6); i { case 0: return &v.state case 1: @@ -147353,7 +153652,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4Interface); i { + switch v := v.(*Device); i { case 0: return &v.state case 1: @@ -147365,7 +153664,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EthernetSegment); i { + switch v := v.(*ProtocolOptions); i { case 0: return &v.state case 1: @@ -147377,7 +153676,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpEthernetSegmentDfElection); i { + switch v := v.(*DeviceIsisRouter); i { case 0: return &v.state case 1: @@ -147389,7 +153688,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteAdvanced); i { + switch v := v.(*DeviceIsisMultiInstance); i { case 0: return &v.state case 1: @@ -147401,7 +153700,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCommunity); i { + switch v := v.(*IsisInterface); i { case 0: return &v.state case 1: @@ -147413,7 +153712,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtCommunity); i { + switch v := v.(*IsisInterfaceLevel); i { case 0: return &v.state case 1: @@ -147425,7 +153724,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPath); i { + switch v := v.(*IsisMT); i { case 0: return &v.state case 1: @@ -147437,7 +153736,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAsPathSegment); i { + switch v := v.(*LinkStateTE); i { case 0: return &v.state case 1: @@ -147449,7 +153748,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EvpnEvis); i { + switch v := v.(*LinkStatepriorityBandwidths); i { case 0: return &v.state case 1: @@ -147461,7 +153760,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlan); i { + switch v := v.(*IsisInterfaceAuthentication); i { case 0: return &v.state case 1: @@ -147473,7 +153772,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { + switch v := v.(*IsisInterfaceAdvanced); i { case 0: return &v.state case 1: @@ -147485,7 +153784,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCMacIpRange); i { + switch v := v.(*IsisInterfaceLinkProtection); i { case 0: return &v.state case 1: @@ -147497,7 +153796,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteDistinguisher); i { + switch v := v.(*IsisBasic); i { case 0: return &v.state case 1: @@ -147509,7 +153808,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpRouteTarget); i { + switch v := v.(*IsisAdvanced); i { case 0: return &v.state case 1: @@ -147521,7 +153820,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAdvanced); i { + switch v := v.(*IsisAuthentication); i { case 0: return &v.state case 1: @@ -147533,7 +153832,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpCapability); i { + switch v := v.(*IsisAuthenticationBase); i { case 0: return &v.state case 1: @@ -147545,7 +153844,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpLearnedInformationFilter); i { + switch v := v.(*IsisV4RouteRange); i { case 0: return &v.state case 1: @@ -147557,7 +153856,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV4RouteRange); i { + switch v := v.(*V4RouteAddress); i { case 0: return &v.state case 1: @@ -147569,7 +153868,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpAddPath); i { + switch v := v.(*V6RouteAddress); i { case 0: return &v.state case 1: @@ -147581,7 +153880,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunity); i { + switch v := v.(*MACRouteAddress); i { case 0: return &v.state case 1: @@ -147593,7 +153892,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget); i { + switch v := v.(*IsisV6RouteRange); i { case 0: return &v.state case 1: @@ -147605,7 +153904,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin); i { + switch v := v.(*DeviceBgpRouter); i { case 0: return &v.state case 1: @@ -147617,7 +153916,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType); i { + switch v := v.(*DeviceBgpMessageHeaderError); i { case 0: return &v.state case 1: @@ -147629,7 +153928,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin); i { + switch v := v.(*DeviceBgpOpenMessageError); i { case 0: return &v.state case 1: @@ -147641,7 +153940,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget); i { + switch v := v.(*DeviceBgpUpdateMessageError); i { case 0: return &v.state case 1: @@ -147653,7 +153952,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType); i { + switch v := v.(*DeviceBgpHoldTimerExpired); i { case 0: return &v.state case 1: @@ -147665,7 +153964,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget); i { + switch v := v.(*DeviceBgpFiniteStateMachineError); i { case 0: return &v.state case 1: @@ -147677,7 +153976,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin); i { + switch v := v.(*DeviceBgpCeaseError); i { case 0: return &v.state case 1: @@ -147689,7 +153988,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType); i { + switch v := v.(*DeviceBgpCustomError); i { case 0: return &v.state case 1: @@ -147701,7 +154000,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeColor); i { + switch v := v.(*BgpV4Peer); i { case 0: return &v.state case 1: @@ -147713,7 +154012,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation); i { + switch v := v.(*BgpV4Interface); i { case 0: return &v.state case 1: @@ -147725,7 +154024,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType); i { + switch v := v.(*BgpV4EthernetSegment); i { case 0: return &v.state case 1: @@ -147737,7 +154036,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveEvpnTypeRouterMac); i { + switch v := v.(*BgpEthernetSegmentDfElection); i { case 0: return &v.state case 1: @@ -147749,7 +154048,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityTransitiveEvpnType); i { + switch v := v.(*BgpRouteAdvanced); i { case 0: return &v.state case 1: @@ -147761,7 +154060,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth); i { + switch v := v.(*BgpCommunity); i { case 0: return &v.state case 1: @@ -147773,7 +154072,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType); i { + switch v := v.(*BgpExtCommunity); i { case 0: return &v.state case 1: @@ -147785,7 +154084,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpExtendedCommunityCustomType); i { + switch v := v.(*BgpAsPath); i { case 0: return &v.state case 1: @@ -147797,7 +154096,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpV6RouteRange); i { + switch v := v.(*BgpAsPathSegment); i { case 0: return &v.state case 1: @@ -147809,7 +154108,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteV4Policy); i { + switch v := v.(*BgpV4EvpnEvis); i { case 0: return &v.state case 1: @@ -147821,7 +154120,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteV4TunnelTlv); i { + switch v := v.(*BgpV4EviVxlan); i { case 0: return &v.state case 1: @@ -147833,7 +154132,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteRemoteEndpointSubTlv); i { + switch v := v.(*BgpV4EviVxlanBroadcastDomain); i { case 0: return &v.state case 1: @@ -147845,7 +154144,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteColorSubTlv); i { + switch v := v.(*BgpCMacIpRange); i { case 0: return &v.state case 1: @@ -147857,7 +154156,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteBindingSubTlv); i { + switch v := v.(*BgpRouteDistinguisher); i { case 0: return &v.state case 1: @@ -147869,7 +154168,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrtePreferenceSubTlv); i { + switch v := v.(*BgpRouteTarget); i { case 0: return &v.state case 1: @@ -147881,7 +154180,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrtePolicyPrioritySubTlv); i { + switch v := v.(*BgpAdvanced); i { case 0: return &v.state case 1: @@ -147893,7 +154192,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrtePolicyNameSubTlv); i { + switch v := v.(*BgpCapability); i { case 0: return &v.state case 1: @@ -147905,7 +154204,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv); i { + switch v := v.(*BgpLearnedInformationFilter); i { case 0: return &v.state case 1: @@ -147917,7 +154216,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentList); i { + switch v := v.(*BgpV4RouteRange); i { case 0: return &v.state case 1: @@ -147929,7 +154228,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegment); i { + switch v := v.(*BgpAddPath); i { case 0: return &v.state case 1: @@ -147941,7 +154240,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSrMplsSid); i { + switch v := v.(*BgpExtendedCommunity); i { case 0: return &v.state case 1: @@ -147953,7 +154252,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSRv6SIDEndpointBehaviorAndStructure); i { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -147965,7 +154264,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentATypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -147977,7 +154276,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentBTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType); i { case 0: return &v.state case 1: @@ -147989,7 +154288,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentCTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -148001,7 +154300,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentDTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressTypeRouteTarget); i { case 0: return &v.state case 1: @@ -148013,7 +154312,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentETypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType); i { case 0: return &v.state case 1: @@ -148025,7 +154324,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentFTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteTarget); i { case 0: return &v.state case 1: @@ -148037,7 +154336,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentGTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsTypeRouteOrigin); i { case 0: return &v.state case 1: @@ -148049,7 +154348,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentHTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType); i { case 0: return &v.state case 1: @@ -148061,7 +154360,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentITypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeColor); i { case 0: return &v.state case 1: @@ -148073,7 +154372,7 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BgpSrteSegmentJTypeSubTlv); i { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueTypeEncapsulation); i { case 0: return &v.state case 1: @@ -148085,6 +154384,366 @@ func file_otg_proto_init() { } } file_otg_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnTypeRouterMac); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityTransitiveEvpnType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpExtendedCommunityCustomType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpV6RouteRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteV4Policy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteV4TunnelTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteRemoteEndpointSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteColorSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteBindingSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrtePreferenceSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrtePolicyPrioritySubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrtePolicyNameSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegment); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSrMplsSid); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSRv6SIDEndpointBehaviorAndStructure); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentATypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentBTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentCTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentDTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentETypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentFTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentGTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentHTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentITypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BgpSrteSegmentJTypeSubTlv); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegmentKTypeSubTlv); i { case 0: return &v.state @@ -148096,7 +154755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy); i { case 0: return &v.state @@ -148108,7 +154767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6TunnelTlv); i { case 0: return &v.state @@ -148120,7 +154779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpGracefulRestart); i { case 0: return &v.state @@ -148132,7 +154791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpUpdateReplay); i { case 0: return &v.state @@ -148144,7 +154803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRawBytes); i { case 0: return &v.state @@ -148156,7 +154815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpOneUpdateReplay); i { case 0: return &v.state @@ -148168,7 +154827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpStructuredPdus); i { case 0: return &v.state @@ -148180,7 +154839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpOneStructuredUpdateReplay); i { case 0: return &v.state @@ -148192,7 +154851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpOneTraditionalNlriPrefix); i { case 0: return &v.state @@ -148204,7 +154863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpOneIpv4NLRIPrefix); i { case 0: return &v.state @@ -148216,7 +154875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpOneIpv6NLRIPrefix); i { case 0: return &v.state @@ -148228,7 +154887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpNLRIPrefixPathId); i { case 0: return &v.state @@ -148240,7 +154899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpIpv4SrPolicyNLRIPrefix); i { case 0: return &v.state @@ -148252,7 +154911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpIpv6SrPolicyNLRIPrefix); i { case 0: return &v.state @@ -148264,7 +154923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributes); i { case 0: return &v.state @@ -148276,7 +154935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesOtherAttribute); i { case 0: return &v.state @@ -148288,7 +154947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAsPath); i { case 0: return &v.state @@ -148300,7 +154959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAsPathFourByteAsPath); i { case 0: return &v.state @@ -148312,7 +154971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesFourByteAsPathSegment); i { case 0: return &v.state @@ -148324,7 +154983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAsPathTwoByteAsPath); i { case 0: return &v.state @@ -148336,7 +154995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesTwoByteAsPathSegment); i { case 0: return &v.state @@ -148348,7 +155007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAs4Path); i { case 0: return &v.state @@ -148360,7 +155019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAggregator); i { case 0: return &v.state @@ -148372,7 +155031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAs4Aggregator); i { case 0: return &v.state @@ -148384,7 +155043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesCommunity); i { case 0: return &v.state @@ -148396,7 +155055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesCustomCommunity); i { case 0: return &v.state @@ -148408,7 +155067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesNextHop); i { case 0: return &v.state @@ -148420,7 +155079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesNextHopIpv6TwoAddresses); i { case 0: return &v.state @@ -148432,7 +155091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesMpReachNlri); i { case 0: return &v.state @@ -148444,7 +155103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesMpUnreachNlri); i { case 0: return &v.state @@ -148456,7 +155115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesMultiExitDiscriminator); i { case 0: return &v.state @@ -148468,7 +155127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesLocalPreference); i { case 0: return &v.state @@ -148480,7 +155139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesOriginatorId); i { case 0: return &v.state @@ -148492,7 +155151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesTunnelEncapsulation); i { case 0: return &v.state @@ -148504,7 +155163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicy); i { case 0: return &v.state @@ -148516,7 +155175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesBsid); i { case 0: return &v.state @@ -148528,7 +155187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesBsidMpls); i { case 0: return &v.state @@ -148540,7 +155199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesBsidSrv6); i { case 0: return &v.state @@ -148552,7 +155211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrv6Bsid); i { case 0: return &v.state @@ -148564,7 +155223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSidMpls); i { case 0: return &v.state @@ -148576,7 +155235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSidSrv6); i { case 0: return &v.state @@ -148588,7 +155247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyPreference); i { case 0: return &v.state @@ -148600,7 +155259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyPriority); i { case 0: return &v.state @@ -148612,7 +155271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyPolicyCandidateName); i { case 0: return &v.state @@ -148624,7 +155283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyPolicyName); i { case 0: return &v.state @@ -148636,7 +155295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyExplicitNullPolicy); i { case 0: return &v.state @@ -148648,7 +155307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicySegmentList); i { case 0: return &v.state @@ -148660,7 +155319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicySegmentListWeight); i { case 0: return &v.state @@ -148672,7 +155331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicySegmentListSegment); i { case 0: return &v.state @@ -148684,7 +155343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeA); i { case 0: return &v.state @@ -148696,7 +155355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeB); i { case 0: return &v.state @@ -148708,7 +155367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeC); i { case 0: return &v.state @@ -148720,7 +155379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeD); i { case 0: return &v.state @@ -148732,7 +155391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeE); i { case 0: return &v.state @@ -148744,7 +155403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeF); i { case 0: return &v.state @@ -148756,7 +155415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeG); i { case 0: return &v.state @@ -148768,7 +155427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeH); i { case 0: return &v.state @@ -148780,7 +155439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeI); i { case 0: return &v.state @@ -148792,7 +155451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeJ); i { case 0: return &v.state @@ -148804,7 +155463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeK); i { case 0: return &v.state @@ -148816,7 +155475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicyTypeFlags); i { case 0: return &v.state @@ -148828,7 +155487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure); i { case 0: return &v.state @@ -148840,7 +155499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpNLRIPrefixSegmentRoutingDistinguisher); i { case 0: return &v.state @@ -148852,7 +155511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer); i { case 0: return &v.state @@ -148864,7 +155523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Interface); i { case 0: return &v.state @@ -148876,7 +155535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6SegmentRouting); i { case 0: return &v.state @@ -148888,7 +155547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment); i { case 0: return &v.state @@ -148900,7 +155559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis); i { case 0: return &v.state @@ -148912,7 +155571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan); i { case 0: return &v.state @@ -148924,7 +155583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlanBroadcastDomain); i { case 0: return &v.state @@ -148936,7 +155595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceVxlan); i { case 0: return &v.state @@ -148948,7 +155607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4Tunnel); i { case 0: return &v.state @@ -148960,7 +155619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6Tunnel); i { case 0: return &v.state @@ -148972,7 +155631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode); i { case 0: return &v.state @@ -148984,7 +155643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode); i { case 0: return &v.state @@ -148996,7 +155655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -149008,7 +155667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[203].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicast); i { case 0: return &v.state @@ -149020,7 +155679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[204].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanTunnelDestinationIPModeUnicastArpSuppressionCache); i { case 0: return &v.state @@ -149032,7 +155691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[205].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -149044,7 +155703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[206].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeUnicastVtep); i { case 0: return &v.state @@ -149056,7 +155715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[207].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -149068,7 +155727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[208].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPModeMulticast); i { case 0: return &v.state @@ -149080,7 +155739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[209].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceRsvp); i { case 0: return &v.state @@ -149092,7 +155751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[210].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIpv4Interface); i { case 0: return &v.state @@ -149104,7 +155763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[211].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Interface); i { case 0: return &v.state @@ -149116,7 +155775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[212].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp); i { case 0: return &v.state @@ -149128,7 +155787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[213].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PIngressIpv4Lsp); i { case 0: return &v.state @@ -149140,7 +155799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[214].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpSessionAttribute); i { case 0: return &v.state @@ -149152,7 +155811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[215].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpResourceAffinities); i { case 0: return &v.state @@ -149164,7 +155823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[216].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpTspec); i { case 0: return &v.state @@ -149176,7 +155835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[217].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpFastReroute); i { case 0: return &v.state @@ -149188,7 +155847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[218].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro); i { case 0: return &v.state @@ -149200,7 +155859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[219].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject); i { case 0: return &v.state @@ -149212,7 +155871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[220].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceDhcpServer); i { case 0: return &v.state @@ -149224,7 +155883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[221].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DhcpServerV4); i { case 0: return &v.state @@ -149236,7 +155895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[222].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DhcpServerV4Pool); i { case 0: return &v.state @@ -149248,7 +155907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[223].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DhcpServerV4PoolOption); i { case 0: return &v.state @@ -149260,7 +155919,115 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[224].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DhcpServerV6); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DhcpV6ServerLease); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerIaType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerPoolInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerIapdPoolInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerIanapdPoolInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DhcpV6ServerDns); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DhcpV6ServerSecondaryDns); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Flow); i { case 0: return &v.state @@ -149272,7 +156039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[225].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx); i { case 0: return &v.state @@ -149284,7 +156051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[226].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPort); i { case 0: return &v.state @@ -149296,7 +156063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[227].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter); i { case 0: return &v.state @@ -149308,7 +156075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[228].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader); i { case 0: return &v.state @@ -149320,7 +156087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[229].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustom); i { case 0: return &v.state @@ -149332,7 +156099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[230].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowCustomMetricTag); i { case 0: return &v.state @@ -149344,7 +156111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[231].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernet); i { case 0: return &v.state @@ -149356,7 +156123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[232].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVlan); i { case 0: return &v.state @@ -149368,7 +156135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[233].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowVxlan); i { case 0: return &v.state @@ -149380,7 +156147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[234].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4); i { case 0: return &v.state @@ -149392,7 +156159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[235].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Options); i { case 0: return &v.state @@ -149404,7 +156171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[236].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4OptionsCustom); i { case 0: return &v.state @@ -149416,7 +156183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[237].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4OptionsCustomType); i { case 0: return &v.state @@ -149428,7 +156195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[238].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4OptionsCustomLength); i { case 0: return &v.state @@ -149440,7 +156207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[239].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority); i { case 0: return &v.state @@ -149452,7 +156219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[240].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Dscp); i { case 0: return &v.state @@ -149464,7 +156231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[241].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Tos); i { case 0: return &v.state @@ -149476,7 +156243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[242].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Auto); i { case 0: return &v.state @@ -149488,7 +156255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[243].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv6); i { case 0: return &v.state @@ -149500,7 +156267,19 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[244].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIpv6Auto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPfcPause); i { case 0: return &v.state @@ -149512,7 +156291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[245].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowEthernetPause); i { case 0: return &v.state @@ -149524,7 +156303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[246].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTcp); i { case 0: return &v.state @@ -149536,7 +156315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[247].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowUdp); i { case 0: return &v.state @@ -149548,7 +156327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[248].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGre); i { case 0: return &v.state @@ -149560,7 +156339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[249].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv1); i { case 0: return &v.state @@ -149572,7 +156351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[250].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpExtension); i { case 0: return &v.state @@ -149584,7 +156363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[251].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowGtpv2); i { case 0: return &v.state @@ -149596,7 +156375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[252].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowArp); i { case 0: return &v.state @@ -149608,7 +156387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[253].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp); i { case 0: return &v.state @@ -149620,7 +156399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[254].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpEcho); i { case 0: return &v.state @@ -149632,7 +156411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[255].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6); i { case 0: return &v.state @@ -149644,7 +156423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[256].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6Echo); i { case 0: return &v.state @@ -149656,7 +156435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[257].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPpp); i { case 0: return &v.state @@ -149668,7 +156447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[258].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIgmpv1); i { case 0: return &v.state @@ -149680,7 +156459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[259].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMpls); i { case 0: return &v.state @@ -149692,7 +156471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[260].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2C); i { case 0: return &v.state @@ -149704,7 +156483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[261].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CData); i { case 0: return &v.state @@ -149716,7 +156495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[262].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CPDU); i { case 0: return &v.state @@ -149728,7 +156507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[263].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CBulkPDU); i { case 0: return &v.state @@ -149740,7 +156519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[264].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CVariableBinding); i { case 0: return &v.state @@ -149752,7 +156531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[265].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CVariableBindingValue); i { case 0: return &v.state @@ -149764,7 +156543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[266].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CVariableBindingStringValue); i { case 0: return &v.state @@ -149776,7 +156555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[267].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRsvp); i { case 0: return &v.state @@ -149788,7 +156567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[268].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPLength); i { case 0: return &v.state @@ -149800,7 +156579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[269].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPMessage); i { case 0: return &v.state @@ -149812,7 +156591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[270].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathMessage); i { case 0: return &v.state @@ -149824,7 +156603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[271].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjects); i { case 0: return &v.state @@ -149836,7 +156615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[272].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPObjectLength); i { case 0: return &v.state @@ -149848,7 +156627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[273].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClass); i { case 0: return &v.state @@ -149860,7 +156639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[274].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassSession); i { case 0: return &v.state @@ -149872,7 +156651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[275].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSessionCType); i { case 0: return &v.state @@ -149884,7 +156663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[276].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSessionLspTunnelIpv4); i { case 0: return &v.state @@ -149896,7 +156675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[277].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSessionExtTunnelId); i { case 0: return &v.state @@ -149908,7 +156687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[278].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassRsvpHop); i { case 0: return &v.state @@ -149920,7 +156699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[279].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRsvpHopCType); i { case 0: return &v.state @@ -149932,7 +156711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[280].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRsvpHopIpv4); i { case 0: return &v.state @@ -149944,7 +156723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[281].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassTimeValues); i { case 0: return &v.state @@ -149956,7 +156735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[282].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsTimeValuesCType); i { case 0: return &v.state @@ -149968,7 +156747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[283].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathTimeValuesType1); i { case 0: return &v.state @@ -149980,7 +156759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[284].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassExplicitRoute); i { case 0: return &v.state @@ -149992,7 +156771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[285].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassExplicitRouteCType); i { case 0: return &v.state @@ -150004,7 +156783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[286].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathExplicitRouteType1); i { case 0: return &v.state @@ -150016,7 +156795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[287].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPType1ExplicitRouteSubobjects); i { case 0: return &v.state @@ -150028,7 +156807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[288].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPType1ExplicitRouteSubobjectsType); i { case 0: return &v.state @@ -150040,7 +156819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[289].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathExplicitRouteType1Ipv4Prefix); i { case 0: return &v.state @@ -150052,7 +156831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[290].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathExplicitRouteType1ASNumber); i { case 0: return &v.state @@ -150064,7 +156843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[291].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPExplicitRouteLength); i { case 0: return &v.state @@ -150076,7 +156855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[292].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPExplicitRouteASNumberLength); i { case 0: return &v.state @@ -150088,7 +156867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[293].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassLabelRequest); i { case 0: return &v.state @@ -150100,7 +156879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[294].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsLabelRequestCType); i { case 0: return &v.state @@ -150112,7 +156891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[295].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathLabelRequestWithoutLabelRange); i { case 0: return &v.state @@ -150124,7 +156903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[296].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassSessionAttribute); i { case 0: return &v.state @@ -150136,7 +156915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[297].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSessionAttributeCType); i { case 0: return &v.state @@ -150148,7 +156927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[298].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSessionAttributeLspTunnel); i { case 0: return &v.state @@ -150160,7 +156939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[299].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSessionAttributeLspTunnelRa); i { case 0: return &v.state @@ -150172,7 +156951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[300].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPLspTunnelFlag); i { case 0: return &v.state @@ -150184,7 +156963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[301].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPSessionAttributeNameLength); i { case 0: return &v.state @@ -150196,7 +156975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[302].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassSenderTemplate); i { case 0: return &v.state @@ -150208,7 +156987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[303].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSenderTemplateCType); i { case 0: return &v.state @@ -150220,7 +156999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[304].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSenderTemplateLspTunnelIpv4); i { case 0: return &v.state @@ -150232,7 +157011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[305].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassSenderTspec); i { case 0: return &v.state @@ -150244,7 +157023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[306].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSenderTspecCType); i { case 0: return &v.state @@ -150256,7 +157035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[307].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSenderTspecIntServ); i { case 0: return &v.state @@ -150268,7 +157047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[308].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassRecordRoute); i { case 0: return &v.state @@ -150280,7 +157059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[309].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRecordRouteCType); i { case 0: return &v.state @@ -150292,7 +157071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[310].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRecordRouteType1); i { case 0: return &v.state @@ -150304,7 +157083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[311].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPType1RecordRouteSubobjects); i { case 0: return &v.state @@ -150316,7 +157095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[312].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRecordRouteSubObjectType); i { case 0: return &v.state @@ -150328,7 +157107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[313].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRecordRouteType1Ipv4Address); i { case 0: return &v.state @@ -150340,7 +157119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[314].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPRecordRouteIPv4Flag); i { case 0: return &v.state @@ -150352,7 +157131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[315].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRecordRouteType1Label); i { case 0: return &v.state @@ -150364,7 +157143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[316].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRecordRouteLabel); i { case 0: return &v.state @@ -150376,7 +157155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[317].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPRouteRecordLength); i { case 0: return &v.state @@ -150388,7 +157167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[318].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsCustom); i { case 0: return &v.state @@ -150400,7 +157179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[319].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize); i { case 0: return &v.state @@ -150412,7 +157191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[320].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeIncrement); i { case 0: return &v.state @@ -150424,7 +157203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[321].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeRandom); i { case 0: return &v.state @@ -150436,7 +157215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[322].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs); i { case 0: return &v.state @@ -150448,7 +157227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[323].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairsCustom); i { case 0: return &v.state @@ -150460,7 +157239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[324].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate); i { case 0: return &v.state @@ -150472,7 +157251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[325].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration); i { case 0: return &v.state @@ -150484,7 +157263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[326].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowContinuous); i { case 0: return &v.state @@ -150496,7 +157275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[327].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay); i { case 0: return &v.state @@ -150508,7 +157287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[328].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedPackets); i { case 0: return &v.state @@ -150520,7 +157299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[329].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowFixedSeconds); i { case 0: return &v.state @@ -150532,7 +157311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[330].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowBurst); i { case 0: return &v.state @@ -150544,7 +157323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[331].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap); i { case 0: return &v.state @@ -150556,7 +157335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[332].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetrics); i { case 0: return &v.state @@ -150568,7 +157347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[333].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics); i { case 0: return &v.state @@ -150580,7 +157359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[334].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowPredefinedTags); i { case 0: return &v.state @@ -150592,7 +157371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[335].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio); i { case 0: return &v.state @@ -150604,7 +157383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[336].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatioRxCount); i { case 0: return &v.state @@ -150616,7 +157395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[337].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state @@ -150628,7 +157407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[338].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRxRateThreshold); i { case 0: return &v.state @@ -150640,7 +157419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[339].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventLink); i { case 0: return &v.state @@ -150652,7 +157431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[340].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRouteAdvertiseWithdraw); i { case 0: return &v.state @@ -150664,7 +157443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[341].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest); i { case 0: return &v.state @@ -150676,7 +157455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[342].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventSubscription); i { case 0: return &v.state @@ -150688,7 +157467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[343].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Lldp); i { case 0: return &v.state @@ -150700,7 +157479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[344].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection); i { case 0: return &v.state @@ -150712,7 +157491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[345].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId); i { case 0: return &v.state @@ -150724,7 +157503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[346].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId); i { case 0: return &v.state @@ -150736,7 +157515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[347].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType); i { case 0: return &v.state @@ -150748,7 +157527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[348].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType); i { case 0: return &v.state @@ -150760,7 +157539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[349].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName); i { case 0: return &v.state @@ -150772,7 +157551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[350].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error); i { case 0: return &v.state @@ -150784,7 +157563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[351].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Warning); i { case 0: return &v.state @@ -150796,7 +157575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[352].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate); i { case 0: return &v.state @@ -150808,7 +157587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[353].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate); i { case 0: return &v.state @@ -150820,7 +157599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[354].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState); i { case 0: return &v.state @@ -150832,7 +157611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[355].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort); i { case 0: return &v.state @@ -150844,7 +157623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[356].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic); i { case 0: return &v.state @@ -150856,7 +157635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[357].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol); i { case 0: return &v.state @@ -150868,7 +157647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[358].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink); i { case 0: return &v.state @@ -150880,7 +157659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[359].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture); i { case 0: return &v.state @@ -150892,7 +157671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[360].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit); i { case 0: return &v.state @@ -150904,7 +157683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[361].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll); i { case 0: return &v.state @@ -150916,7 +157695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[362].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute); i { case 0: return &v.state @@ -150928,7 +157707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[363].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp); i { case 0: return &v.state @@ -150940,7 +157719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[364].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin); i { case 0: return &v.state @@ -150952,7 +157731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[365].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpMemberPorts); i { case 0: return &v.state @@ -150964,7 +157743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[366].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgp); i { case 0: return &v.state @@ -150976,7 +157755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[367].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgpPeers); i { case 0: return &v.state @@ -150988,7 +157767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[368].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsis); i { case 0: return &v.state @@ -151000,7 +157779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[369].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsisRouters); i { case 0: return &v.state @@ -151012,7 +157791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[370].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction); i { case 0: return &v.state @@ -151024,7 +157803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[371].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlActionResponse); i { case 0: return &v.state @@ -151036,7 +157815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[372].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse); i { case 0: return &v.state @@ -151048,7 +157827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[373].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol); i { case 0: return &v.state @@ -151060,7 +157839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[374].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol); i { case 0: return &v.state @@ -151072,7 +157851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[375].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4); i { case 0: return &v.state @@ -151084,7 +157863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[376].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4); i { case 0: return &v.state @@ -151096,7 +157875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[377].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4Ping); i { case 0: return &v.state @@ -151108,7 +157887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[378].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4PingRequest); i { case 0: return &v.state @@ -151120,7 +157899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[379].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4Ping); i { case 0: return &v.state @@ -151132,7 +157911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[380].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse); i { case 0: return &v.state @@ -151144,7 +157923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[381].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6); i { case 0: return &v.state @@ -151156,7 +157935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[382].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6); i { case 0: return &v.state @@ -151168,7 +157947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[383].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6Ping); i { case 0: return &v.state @@ -151180,7 +157959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[384].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6PingRequest); i { case 0: return &v.state @@ -151192,7 +157971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[385].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6Ping); i { case 0: return &v.state @@ -151204,7 +157983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[386].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse); i { case 0: return &v.state @@ -151216,7 +157995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[387].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp); i { case 0: return &v.state @@ -151228,7 +158007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[388].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification); i { case 0: return &v.state @@ -151240,7 +158019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[389].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpInitiateGracefulRestart); i { case 0: return &v.state @@ -151252,7 +158031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[390].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest); i { case 0: return &v.state @@ -151264,7 +158043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[391].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse); i { case 0: return &v.state @@ -151276,7 +158055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[392].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest); i { case 0: return &v.state @@ -151288,7 +158067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[393].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric); i { case 0: return &v.state @@ -151300,7 +158079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[394].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest); i { case 0: return &v.state @@ -151312,7 +158091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[395].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter); i { case 0: return &v.state @@ -151324,7 +158103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[396].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagFilter); i { case 0: return &v.state @@ -151336,7 +158115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[397].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric); i { case 0: return &v.state @@ -151348,7 +158127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[398].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetric); i { case 0: return &v.state @@ -151360,7 +158139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[399].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTag); i { case 0: return &v.state @@ -151372,7 +158151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[400].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue); i { case 0: return &v.state @@ -151384,7 +158163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[401].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricTimestamp); i { case 0: return &v.state @@ -151396,7 +158175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[402].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricLatency); i { case 0: return &v.state @@ -151408,7 +158187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[403].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest); i { case 0: return &v.state @@ -151420,7 +158199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[404].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric); i { case 0: return &v.state @@ -151432,7 +158211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[405].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest); i { case 0: return &v.state @@ -151444,7 +158223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[406].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric); i { case 0: return &v.state @@ -151456,7 +158235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[407].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest); i { case 0: return &v.state @@ -151468,7 +158247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[408].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetric); i { case 0: return &v.state @@ -151480,7 +158259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[409].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest); i { case 0: return &v.state @@ -151492,7 +158271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[410].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric); i { case 0: return &v.state @@ -151504,7 +158283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[411].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest); i { case 0: return &v.state @@ -151516,7 +158295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[412].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric); i { case 0: return &v.state @@ -151528,7 +158307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[413].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest); i { case 0: return &v.state @@ -151540,7 +158319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[414].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetric); i { case 0: return &v.state @@ -151552,7 +158331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[415].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest); i { case 0: return &v.state @@ -151564,7 +158343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[416].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetric); i { case 0: return &v.state @@ -151576,7 +158355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[417].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ClientMetricsRequest); i { case 0: return &v.state @@ -151588,7 +158367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[418].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ClientMetric); i { case 0: return &v.state @@ -151600,7 +158379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[419].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ServerMetricsRequest); i { case 0: return &v.state @@ -151612,7 +158391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[420].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ServerMetric); i { case 0: return &v.state @@ -151624,7 +158403,55 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[421].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientMetricsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientMetric); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerMetricsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerMetric); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest); i { case 0: return &v.state @@ -151636,7 +158463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[422].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse); i { case 0: return &v.state @@ -151648,7 +158475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[423].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4StatesRequest); i { case 0: return &v.state @@ -151660,7 +158487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[424].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv4State); i { case 0: return &v.state @@ -151672,7 +158499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[425].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6StatesRequest); i { case 0: return &v.state @@ -151684,7 +158511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[426].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Neighborsv6State); i { case 0: return &v.state @@ -151696,7 +158523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[427].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest); i { case 0: return &v.state @@ -151708,7 +158535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[428].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter); i { case 0: return &v.state @@ -151720,7 +158547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[429].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter); i { case 0: return &v.state @@ -151732,7 +158559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[430].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixesState); i { case 0: return &v.state @@ -151744,7 +158571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[431].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState); i { case 0: return &v.state @@ -151756,7 +158583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[432].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState); i { case 0: return &v.state @@ -151768,7 +158595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[433].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunity); i { case 0: return &v.state @@ -151780,7 +158607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[434].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityStructured); i { case 0: return &v.state @@ -151792,7 +158619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[435].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget); i { case 0: return &v.state @@ -151804,7 +158631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[436].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin); i { case 0: return &v.state @@ -151816,7 +158643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[437].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive2OctetAsType); i { case 0: return &v.state @@ -151828,7 +158655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[438].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin); i { case 0: return &v.state @@ -151840,7 +158667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[439].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget); i { case 0: return &v.state @@ -151852,7 +158679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[440].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveIpv4AddressType); i { case 0: return &v.state @@ -151864,7 +158691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[441].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget); i { case 0: return &v.state @@ -151876,7 +158703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[442].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin); i { case 0: return &v.state @@ -151888,7 +158715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[443].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive4OctetAsType); i { case 0: return &v.state @@ -151900,7 +158727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[444].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveOpaqueTypeColor); i { case 0: return &v.state @@ -151912,7 +158739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[445].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation); i { case 0: return &v.state @@ -151924,7 +158751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[446].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveOpaqueType); i { case 0: return &v.state @@ -151936,7 +158763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[447].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth); i { case 0: return &v.state @@ -151948,7 +158775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[448].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityNonTransitive2OctetAsType); i { case 0: return &v.state @@ -151960,7 +158787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[449].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity); i { case 0: return &v.state @@ -151972,7 +158799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[450].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPath); i { case 0: return &v.state @@ -151984,7 +158811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[451].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment); i { case 0: return &v.state @@ -151996,7 +158823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[452].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsStateRequest); i { case 0: return &v.state @@ -152008,7 +158835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[453].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspsState); i { case 0: return &v.state @@ -152020,7 +158847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[454].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState); i { case 0: return &v.state @@ -152032,7 +158859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[455].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspTlvs); i { case 0: return &v.state @@ -152044,7 +158871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[456].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspHostname); i { case 0: return &v.state @@ -152056,7 +158883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[457].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspFlags); i { case 0: return &v.state @@ -152068,7 +158895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[458].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIsReachabilityTlv); i { case 0: return &v.state @@ -152080,7 +158907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[459].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIsReachabilityTlv); i { case 0: return &v.state @@ -152092,7 +158919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[460].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspneighbor); i { case 0: return &v.state @@ -152104,7 +158931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[461].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4InternalReachabilityTlv); i { case 0: return &v.state @@ -152116,7 +158943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[462].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv4ExternalReachabilityTlv); i { case 0: return &v.state @@ -152128,7 +158955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[463].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix); i { case 0: return &v.state @@ -152140,7 +158967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[464].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedIpv4ReachabilityTlv); i { case 0: return &v.state @@ -152152,7 +158979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[465].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix); i { case 0: return &v.state @@ -152164,7 +158991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[466].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspIpv6ReachabilityTlv); i { case 0: return &v.state @@ -152176,7 +159003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[467].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix); i { case 0: return &v.state @@ -152188,7 +159015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[468].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspPrefixAttributes); i { case 0: return &v.state @@ -152200,7 +159027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[469].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsStateRequest); i { case 0: return &v.state @@ -152212,7 +159039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[470].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState); i { case 0: return &v.state @@ -152224,7 +159051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[471].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCustomTLVState); i { case 0: return &v.state @@ -152236,7 +159063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[472].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState); i { case 0: return &v.state @@ -152248,7 +159075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[473].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsStateRequest); i { case 0: return &v.state @@ -152260,7 +159087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[474].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspsState); i { case 0: return &v.state @@ -152272,7 +159099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[475].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpIPv4LspState); i { case 0: return &v.state @@ -152284,7 +159111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[476].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState); i { case 0: return &v.state @@ -152296,7 +159123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[477].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Rro); i { case 0: return &v.state @@ -152308,7 +159135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[478].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero); i { case 0: return &v.state @@ -152320,7 +159147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[479].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4InterfaceStateRequest); i { case 0: return &v.state @@ -152332,7 +159159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[480].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4InterfaceState); i { case 0: return &v.state @@ -152344,7 +159171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[481].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4LeaseStateRequest); i { case 0: return &v.state @@ -152356,7 +159183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[482].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4LeasesState); i { case 0: return &v.state @@ -152368,7 +159195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[483].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4LeaseState); i { case 0: return &v.state @@ -152380,7 +159207,67 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[484].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6InterfaceStateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6InterfaceState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6LeaseStateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6LeasesState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerLeaseState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureRequest); i { case 0: return &v.state @@ -152392,7 +159279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[485].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstCounter); i { case 0: return &v.state @@ -152404,7 +159291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[486].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDstMetricTag); i { case 0: return &v.state @@ -152416,7 +159303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[487].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst); i { case 0: return &v.state @@ -152428,7 +159315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[488].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcCounter); i { case 0: return &v.state @@ -152440,7 +159327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[489].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrcMetricTag); i { case 0: return &v.state @@ -152452,7 +159339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[490].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc); i { case 0: return &v.state @@ -152464,7 +159351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[491].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeCounter); i { case 0: return &v.state @@ -152476,7 +159363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[492].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherTypeMetricTag); i { case 0: return &v.state @@ -152488,7 +159375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[493].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType); i { case 0: return &v.state @@ -152500,7 +159387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[494].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueCounter); i { case 0: return &v.state @@ -152512,7 +159399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[495].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueueMetricTag); i { case 0: return &v.state @@ -152524,7 +159411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[496].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue); i { case 0: return &v.state @@ -152536,7 +159423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[497].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityCounter); i { case 0: return &v.state @@ -152548,7 +159435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[498].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriorityMetricTag); i { case 0: return &v.state @@ -152560,7 +159447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[499].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority); i { case 0: return &v.state @@ -152572,7 +159459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[500].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiCounter); i { case 0: return &v.state @@ -152584,7 +159471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[501].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfiMetricTag); i { case 0: return &v.state @@ -152596,7 +159483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[502].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi); i { case 0: return &v.state @@ -152608,7 +159495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[503].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdCounter); i { case 0: return &v.state @@ -152620,7 +159507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[504].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanIdMetricTag); i { case 0: return &v.state @@ -152632,7 +159519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[505].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId); i { case 0: return &v.state @@ -152644,7 +159531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[506].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidCounter); i { case 0: return &v.state @@ -152656,7 +159543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[507].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpidMetricTag); i { case 0: return &v.state @@ -152668,7 +159555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[508].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid); i { case 0: return &v.state @@ -152680,7 +159567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[509].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsCounter); i { case 0: return &v.state @@ -152692,7 +159579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[510].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlagsMetricTag); i { case 0: return &v.state @@ -152704,7 +159591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[511].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags); i { case 0: return &v.state @@ -152716,7 +159603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[512].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0Counter); i { case 0: return &v.state @@ -152728,7 +159615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[513].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0MetricTag); i { case 0: return &v.state @@ -152740,7 +159627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[514].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0); i { case 0: return &v.state @@ -152752,7 +159639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[515].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniCounter); i { case 0: return &v.state @@ -152764,7 +159651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[516].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVniMetricTag); i { case 0: return &v.state @@ -152776,7 +159663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[517].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni); i { case 0: return &v.state @@ -152788,7 +159675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[518].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1Counter); i { case 0: return &v.state @@ -152800,7 +159687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[519].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1MetricTag); i { case 0: return &v.state @@ -152812,7 +159699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[520].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1); i { case 0: return &v.state @@ -152824,7 +159711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[521].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionCounter); i { case 0: return &v.state @@ -152836,7 +159723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[522].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4VersionMetricTag); i { case 0: return &v.state @@ -152848,7 +159735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[523].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version); i { case 0: return &v.state @@ -152860,7 +159747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[524].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthCounter); i { case 0: return &v.state @@ -152872,7 +159759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[525].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLengthMetricTag); i { case 0: return &v.state @@ -152884,7 +159771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[526].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength); i { case 0: return &v.state @@ -152896,7 +159783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[527].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthCounter); i { case 0: return &v.state @@ -152908,7 +159795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[528].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLengthMetricTag); i { case 0: return &v.state @@ -152920,7 +159807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[529].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength); i { case 0: return &v.state @@ -152932,7 +159819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[530].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationCounter); i { case 0: return &v.state @@ -152944,7 +159831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[531].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4IdentificationMetricTag); i { case 0: return &v.state @@ -152956,7 +159843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[532].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification); i { case 0: return &v.state @@ -152968,7 +159855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[533].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedCounter); i { case 0: return &v.state @@ -152980,7 +159867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[534].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ReservedMetricTag); i { case 0: return &v.state @@ -152992,7 +159879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[535].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved); i { case 0: return &v.state @@ -153004,7 +159891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[536].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentCounter); i { case 0: return &v.state @@ -153016,7 +159903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[537].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragmentMetricTag); i { case 0: return &v.state @@ -153028,7 +159915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[538].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment); i { case 0: return &v.state @@ -153040,7 +159927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[539].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsCounter); i { case 0: return &v.state @@ -153052,7 +159939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[540].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragmentsMetricTag); i { case 0: return &v.state @@ -153064,7 +159951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[541].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments); i { case 0: return &v.state @@ -153076,7 +159963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[542].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetCounter); i { case 0: return &v.state @@ -153088,7 +159975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[543].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffsetMetricTag); i { case 0: return &v.state @@ -153100,7 +159987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[544].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset); i { case 0: return &v.state @@ -153112,7 +159999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[545].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveCounter); i { case 0: return &v.state @@ -153124,7 +160011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[546].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLiveMetricTag); i { case 0: return &v.state @@ -153136,7 +160023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[547].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive); i { case 0: return &v.state @@ -153148,7 +160035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[548].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolCounter); i { case 0: return &v.state @@ -153160,7 +160047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[549].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4ProtocolMetricTag); i { case 0: return &v.state @@ -153172,7 +160059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[550].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol); i { case 0: return &v.state @@ -153184,7 +160071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[551].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum); i { case 0: return &v.state @@ -153196,7 +160083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[552].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcCounter); i { case 0: return &v.state @@ -153208,7 +160095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[553].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcMetricTag); i { case 0: return &v.state @@ -153220,7 +160107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[554].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4SrcRandom); i { case 0: return &v.state @@ -153232,7 +160119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[555].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src); i { case 0: return &v.state @@ -153244,7 +160131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[556].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstCounter); i { case 0: return &v.state @@ -153256,7 +160143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[557].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstMetricTag); i { case 0: return &v.state @@ -153268,7 +160155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[558].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DstRandom); i { case 0: return &v.state @@ -153280,7 +160167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[559].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst); i { case 0: return &v.state @@ -153292,7 +160179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[560].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlagCounter); i { case 0: return &v.state @@ -153304,7 +160191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[561].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlag); i { case 0: return &v.state @@ -153316,7 +160203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[562].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClassCounter); i { case 0: return &v.state @@ -153328,7 +160215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[563].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClass); i { case 0: return &v.state @@ -153340,7 +160227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[564].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumberCounter); i { case 0: return &v.state @@ -153352,7 +160239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[565].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumber); i { case 0: return &v.state @@ -153364,7 +160251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[566].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawCounter); i { case 0: return &v.state @@ -153376,7 +160263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[567].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRawMetricTag); i { case 0: return &v.state @@ -153388,7 +160275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[568].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw); i { case 0: return &v.state @@ -153400,7 +160287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[569].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbCounter); i { case 0: return &v.state @@ -153412,7 +160299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[570].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhbMetricTag); i { case 0: return &v.state @@ -153424,7 +160311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[571].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb); i { case 0: return &v.state @@ -153436,7 +160323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[572].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnCounter); i { case 0: return &v.state @@ -153448,7 +160335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[573].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcnMetricTag); i { case 0: return &v.state @@ -153460,7 +160347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[574].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn); i { case 0: return &v.state @@ -153472,7 +160359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[575].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceCounter); i { case 0: return &v.state @@ -153484,7 +160371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[576].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedenceMetricTag); i { case 0: return &v.state @@ -153496,7 +160383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[577].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence); i { case 0: return &v.state @@ -153508,7 +160395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[578].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayCounter); i { case 0: return &v.state @@ -153520,7 +160407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[579].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelayMetricTag); i { case 0: return &v.state @@ -153532,7 +160419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[580].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay); i { case 0: return &v.state @@ -153544,7 +160431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[581].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputCounter); i { case 0: return &v.state @@ -153556,7 +160443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[582].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughputMetricTag); i { case 0: return &v.state @@ -153568,7 +160455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[583].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput); i { case 0: return &v.state @@ -153580,7 +160467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[584].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityCounter); i { case 0: return &v.state @@ -153592,7 +160479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[585].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliabilityMetricTag); i { case 0: return &v.state @@ -153604,7 +160491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[586].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability); i { case 0: return &v.state @@ -153616,7 +160503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[587].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryCounter); i { case 0: return &v.state @@ -153628,7 +160515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[588].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetaryMetricTag); i { case 0: return &v.state @@ -153640,7 +160527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[589].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary); i { case 0: return &v.state @@ -153652,7 +160539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[590].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedCounter); i { case 0: return &v.state @@ -153664,7 +160551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[591].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnusedMetricTag); i { case 0: return &v.state @@ -153676,7 +160563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[592].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused); i { case 0: return &v.state @@ -153688,7 +160575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[593].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionCounter); i { case 0: return &v.state @@ -153700,7 +160587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[594].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6VersionMetricTag); i { case 0: return &v.state @@ -153712,7 +160599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[595].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version); i { case 0: return &v.state @@ -153724,7 +160611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[596].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassCounter); i { case 0: return &v.state @@ -153736,7 +160623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[597].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClassMetricTag); i { case 0: return &v.state @@ -153748,7 +160635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[598].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass); i { case 0: return &v.state @@ -153760,7 +160647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[599].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelCounter); i { case 0: return &v.state @@ -153772,7 +160659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[600].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelMetricTag); i { case 0: return &v.state @@ -153784,7 +160671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[601].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabelRandom); i { case 0: return &v.state @@ -153796,7 +160683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[602].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel); i { case 0: return &v.state @@ -153808,7 +160695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[603].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthCounter); i { case 0: return &v.state @@ -153820,7 +160707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[604].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLengthMetricTag); i { case 0: return &v.state @@ -153832,7 +160719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[605].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength); i { case 0: return &v.state @@ -153844,7 +160731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[606].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderCounter); i { case 0: return &v.state @@ -153856,7 +160743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[607].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeaderMetricTag); i { case 0: return &v.state @@ -153868,7 +160755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[608].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader); i { case 0: return &v.state @@ -153880,7 +160767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[609].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitCounter); i { case 0: return &v.state @@ -153892,7 +160779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[610].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimitMetricTag); i { case 0: return &v.state @@ -153904,7 +160791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[611].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit); i { case 0: return &v.state @@ -153916,7 +160803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[612].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcCounter); i { case 0: return &v.state @@ -153928,7 +160815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[613].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6SrcMetricTag); i { case 0: return &v.state @@ -153940,7 +160827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[614].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src); i { case 0: return &v.state @@ -153952,7 +160839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[615].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstCounter); i { case 0: return &v.state @@ -153964,7 +160851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[616].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6DstMetricTag); i { case 0: return &v.state @@ -153976,7 +160863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[617].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst); i { case 0: return &v.state @@ -153988,7 +160875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[618].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstCounter); i { case 0: return &v.state @@ -154000,7 +160887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[619].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDstMetricTag); i { case 0: return &v.state @@ -154012,7 +160899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[620].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst); i { case 0: return &v.state @@ -154024,7 +160911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[621].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcCounter); i { case 0: return &v.state @@ -154036,7 +160923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[622].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrcMetricTag); i { case 0: return &v.state @@ -154048,7 +160935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[623].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc); i { case 0: return &v.state @@ -154060,7 +160947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[624].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeCounter); i { case 0: return &v.state @@ -154072,7 +160959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[625].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -154084,7 +160971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[626].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType); i { case 0: return &v.state @@ -154096,7 +160983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[627].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeCounter); i { case 0: return &v.state @@ -154108,7 +160995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[628].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -154120,7 +161007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[629].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode); i { case 0: return &v.state @@ -154132,7 +161019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[630].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorCounter); i { case 0: return &v.state @@ -154144,7 +161031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[631].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVectorMetricTag); i { case 0: return &v.state @@ -154156,7 +161043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[632].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector); i { case 0: return &v.state @@ -154168,7 +161055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[633].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0Counter); i { case 0: return &v.state @@ -154180,7 +161067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[634].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0MetricTag); i { case 0: return &v.state @@ -154192,7 +161079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[635].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0); i { case 0: return &v.state @@ -154204,7 +161091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[636].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1Counter); i { case 0: return &v.state @@ -154216,7 +161103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[637].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1MetricTag); i { case 0: return &v.state @@ -154228,7 +161115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[638].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1); i { case 0: return &v.state @@ -154240,7 +161127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[639].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2Counter); i { case 0: return &v.state @@ -154252,7 +161139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[640].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2MetricTag); i { case 0: return &v.state @@ -154264,7 +161151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[641].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2); i { case 0: return &v.state @@ -154276,7 +161163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[642].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3Counter); i { case 0: return &v.state @@ -154288,7 +161175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[643].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3MetricTag); i { case 0: return &v.state @@ -154300,7 +161187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[644].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3); i { case 0: return &v.state @@ -154312,7 +161199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[645].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4Counter); i { case 0: return &v.state @@ -154324,7 +161211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[646].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4MetricTag); i { case 0: return &v.state @@ -154336,7 +161223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[647].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4); i { case 0: return &v.state @@ -154348,7 +161235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[648].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5Counter); i { case 0: return &v.state @@ -154360,7 +161247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[649].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5MetricTag); i { case 0: return &v.state @@ -154372,7 +161259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[650].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5); i { case 0: return &v.state @@ -154384,7 +161271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[651].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6Counter); i { case 0: return &v.state @@ -154396,7 +161283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[652].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6MetricTag); i { case 0: return &v.state @@ -154408,7 +161295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[653].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6); i { case 0: return &v.state @@ -154420,7 +161307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[654].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7Counter); i { case 0: return &v.state @@ -154432,7 +161319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[655].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7MetricTag); i { case 0: return &v.state @@ -154444,7 +161331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[656].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7); i { case 0: return &v.state @@ -154456,7 +161343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[657].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstCounter); i { case 0: return &v.state @@ -154468,7 +161355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[658].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDstMetricTag); i { case 0: return &v.state @@ -154480,7 +161367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[659].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst); i { case 0: return &v.state @@ -154492,7 +161379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[660].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcCounter); i { case 0: return &v.state @@ -154504,7 +161391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[661].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrcMetricTag); i { case 0: return &v.state @@ -154516,7 +161403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[662].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc); i { case 0: return &v.state @@ -154528,7 +161415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[663].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeCounter); i { case 0: return &v.state @@ -154540,7 +161427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[664].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherTypeMetricTag); i { case 0: return &v.state @@ -154552,7 +161439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[665].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType); i { case 0: return &v.state @@ -154564,7 +161451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[666].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeCounter); i { case 0: return &v.state @@ -154576,7 +161463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[667].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCodeMetricTag); i { case 0: return &v.state @@ -154588,7 +161475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[668].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode); i { case 0: return &v.state @@ -154600,7 +161487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[669].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeCounter); i { case 0: return &v.state @@ -154612,7 +161499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[670].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTimeMetricTag); i { case 0: return &v.state @@ -154624,7 +161511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[671].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime); i { case 0: return &v.state @@ -154636,7 +161523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[672].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortCounter); i { case 0: return &v.state @@ -154648,7 +161535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[673].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortMetricTag); i { case 0: return &v.state @@ -154660,7 +161547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[674].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPortRandom); i { case 0: return &v.state @@ -154672,7 +161559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[675].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort); i { case 0: return &v.state @@ -154684,7 +161571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[676].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortCounter); i { case 0: return &v.state @@ -154696,7 +161583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[677].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortMetricTag); i { case 0: return &v.state @@ -154708,7 +161595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[678].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPortRandom); i { case 0: return &v.state @@ -154720,7 +161607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[679].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort); i { case 0: return &v.state @@ -154732,7 +161619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[680].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumCounter); i { case 0: return &v.state @@ -154744,7 +161631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[681].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNumMetricTag); i { case 0: return &v.state @@ -154756,7 +161643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[682].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum); i { case 0: return &v.state @@ -154768,7 +161655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[683].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumCounter); i { case 0: return &v.state @@ -154780,7 +161667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[684].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNumMetricTag); i { case 0: return &v.state @@ -154792,7 +161679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[685].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum); i { case 0: return &v.state @@ -154804,7 +161691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[686].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetCounter); i { case 0: return &v.state @@ -154816,7 +161703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[687].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffsetMetricTag); i { case 0: return &v.state @@ -154828,7 +161715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[688].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset); i { case 0: return &v.state @@ -154840,7 +161727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[689].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsCounter); i { case 0: return &v.state @@ -154852,7 +161739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[690].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNsMetricTag); i { case 0: return &v.state @@ -154864,7 +161751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[691].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs); i { case 0: return &v.state @@ -154876,7 +161763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[692].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrCounter); i { case 0: return &v.state @@ -154888,7 +161775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[693].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwrMetricTag); i { case 0: return &v.state @@ -154900,7 +161787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[694].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr); i { case 0: return &v.state @@ -154912,7 +161799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[695].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoCounter); i { case 0: return &v.state @@ -154924,7 +161811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[696].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEchoMetricTag); i { case 0: return &v.state @@ -154936,7 +161823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[697].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho); i { case 0: return &v.state @@ -154948,7 +161835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[698].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgCounter); i { case 0: return &v.state @@ -154960,7 +161847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[699].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrgMetricTag); i { case 0: return &v.state @@ -154972,7 +161859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[700].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg); i { case 0: return &v.state @@ -154984,7 +161871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[701].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckCounter); i { case 0: return &v.state @@ -154996,7 +161883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[702].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAckMetricTag); i { case 0: return &v.state @@ -155008,7 +161895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[703].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck); i { case 0: return &v.state @@ -155020,7 +161907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[704].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshCounter); i { case 0: return &v.state @@ -155032,7 +161919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[705].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPshMetricTag); i { case 0: return &v.state @@ -155044,7 +161931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[706].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh); i { case 0: return &v.state @@ -155056,7 +161943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[707].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstCounter); i { case 0: return &v.state @@ -155068,7 +161955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[708].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRstMetricTag); i { case 0: return &v.state @@ -155080,7 +161967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[709].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst); i { case 0: return &v.state @@ -155092,7 +161979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[710].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynCounter); i { case 0: return &v.state @@ -155104,7 +161991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[711].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSynMetricTag); i { case 0: return &v.state @@ -155116,7 +162003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[712].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn); i { case 0: return &v.state @@ -155128,7 +162015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[713].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinCounter); i { case 0: return &v.state @@ -155140,7 +162027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[714].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFinMetricTag); i { case 0: return &v.state @@ -155152,7 +162039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[715].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin); i { case 0: return &v.state @@ -155164,7 +162051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[716].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowCounter); i { case 0: return &v.state @@ -155176,7 +162063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[717].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindowMetricTag); i { case 0: return &v.state @@ -155188,7 +162075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[718].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow); i { case 0: return &v.state @@ -155200,7 +162087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[719].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpChecksum); i { case 0: return &v.state @@ -155212,7 +162099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[720].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortCounter); i { case 0: return &v.state @@ -155224,7 +162111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[721].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortMetricTag); i { case 0: return &v.state @@ -155236,7 +162123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[722].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPortRandom); i { case 0: return &v.state @@ -155248,7 +162135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[723].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort); i { case 0: return &v.state @@ -155260,7 +162147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[724].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortCounter); i { case 0: return &v.state @@ -155272,7 +162159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[725].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortMetricTag); i { case 0: return &v.state @@ -155284,7 +162171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[726].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPortRandom); i { case 0: return &v.state @@ -155296,7 +162183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[727].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort); i { case 0: return &v.state @@ -155308,7 +162195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[728].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthCounter); i { case 0: return &v.state @@ -155320,7 +162207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[729].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLengthMetricTag); i { case 0: return &v.state @@ -155332,7 +162219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[730].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength); i { case 0: return &v.state @@ -155344,7 +162231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[731].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum); i { case 0: return &v.state @@ -155356,7 +162243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[732].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentCounter); i { case 0: return &v.state @@ -155368,7 +162255,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[733].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresentMetricTag); i { case 0: return &v.state @@ -155380,7 +162267,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[734].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent); i { case 0: return &v.state @@ -155392,7 +162279,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[735].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0Counter); i { case 0: return &v.state @@ -155404,7 +162291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[736].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0MetricTag); i { case 0: return &v.state @@ -155416,7 +162303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[737].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0); i { case 0: return &v.state @@ -155428,7 +162315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[738].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionCounter); i { case 0: return &v.state @@ -155440,7 +162327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[739].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersionMetricTag); i { case 0: return &v.state @@ -155452,7 +162339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[740].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion); i { case 0: return &v.state @@ -155464,7 +162351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[741].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolCounter); i { case 0: return &v.state @@ -155476,7 +162363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[742].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocolMetricTag); i { case 0: return &v.state @@ -155488,7 +162375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[743].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol); i { case 0: return &v.state @@ -155500,7 +162387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[744].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum); i { case 0: return &v.state @@ -155512,7 +162399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[745].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1Counter); i { case 0: return &v.state @@ -155524,7 +162411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[746].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1MetricTag); i { case 0: return &v.state @@ -155536,7 +162423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[747].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1); i { case 0: return &v.state @@ -155548,7 +162435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[748].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionCounter); i { case 0: return &v.state @@ -155560,7 +162447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[749].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1VersionMetricTag); i { case 0: return &v.state @@ -155572,7 +162459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[750].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version); i { case 0: return &v.state @@ -155584,7 +162471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[751].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeCounter); i { case 0: return &v.state @@ -155596,7 +162483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[752].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolTypeMetricTag); i { case 0: return &v.state @@ -155608,7 +162495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[753].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType); i { case 0: return &v.state @@ -155620,7 +162507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[754].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedCounter); i { case 0: return &v.state @@ -155632,7 +162519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[755].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ReservedMetricTag); i { case 0: return &v.state @@ -155644,7 +162531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[756].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved); i { case 0: return &v.state @@ -155656,7 +162543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[757].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagCounter); i { case 0: return &v.state @@ -155668,7 +162555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[758].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlagMetricTag); i { case 0: return &v.state @@ -155680,7 +162567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[759].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag); i { case 0: return &v.state @@ -155692,7 +162579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[760].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagCounter); i { case 0: return &v.state @@ -155704,7 +162591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[761].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlagMetricTag); i { case 0: return &v.state @@ -155716,7 +162603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[762].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag); i { case 0: return &v.state @@ -155728,7 +162615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[763].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagCounter); i { case 0: return &v.state @@ -155740,7 +162627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[764].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlagMetricTag); i { case 0: return &v.state @@ -155752,7 +162639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[765].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag); i { case 0: return &v.state @@ -155764,7 +162651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[766].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeCounter); i { case 0: return &v.state @@ -155776,7 +162663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[767].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageTypeMetricTag); i { case 0: return &v.state @@ -155788,7 +162675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[768].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType); i { case 0: return &v.state @@ -155800,7 +162687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[769].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthCounter); i { case 0: return &v.state @@ -155812,7 +162699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[770].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLengthMetricTag); i { case 0: return &v.state @@ -155824,7 +162711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[771].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength); i { case 0: return &v.state @@ -155836,7 +162723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[772].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidCounter); i { case 0: return &v.state @@ -155848,7 +162735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[773].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1TeidMetricTag); i { case 0: return &v.state @@ -155860,7 +162747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[774].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid); i { case 0: return &v.state @@ -155872,7 +162759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[775].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberCounter); i { case 0: return &v.state @@ -155884,7 +162771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[776].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumberMetricTag); i { case 0: return &v.state @@ -155896,7 +162783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[777].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber); i { case 0: return &v.state @@ -155908,7 +162795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[778].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberCounter); i { case 0: return &v.state @@ -155920,7 +162807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[779].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumberMetricTag); i { case 0: return &v.state @@ -155932,7 +162819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[780].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber); i { case 0: return &v.state @@ -155944,7 +162831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[781].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeCounter); i { case 0: return &v.state @@ -155956,7 +162843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[782].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag); i { case 0: return &v.state @@ -155968,7 +162855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[783].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType); i { case 0: return &v.state @@ -155980,7 +162867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[784].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthCounter); i { case 0: return &v.state @@ -155992,7 +162879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[785].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLengthMetricTag); i { case 0: return &v.state @@ -156004,7 +162891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[786].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength); i { case 0: return &v.state @@ -156016,7 +162903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[787].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsCounter); i { case 0: return &v.state @@ -156028,7 +162915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[788].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContentsMetricTag); i { case 0: return &v.state @@ -156040,7 +162927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[789].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents); i { case 0: return &v.state @@ -156052,7 +162939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[790].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderCounter); i { case 0: return &v.state @@ -156064,7 +162951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[791].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeaderMetricTag); i { case 0: return &v.state @@ -156076,7 +162963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[792].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader); i { case 0: return &v.state @@ -156088,7 +162975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[793].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionCounter); i { case 0: return &v.state @@ -156100,7 +162987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[794].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2VersionMetricTag); i { case 0: return &v.state @@ -156112,7 +162999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[795].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version); i { case 0: return &v.state @@ -156124,7 +163011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[796].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagCounter); i { case 0: return &v.state @@ -156136,7 +163023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[797].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlagMetricTag); i { case 0: return &v.state @@ -156148,7 +163035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[798].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag); i { case 0: return &v.state @@ -156160,7 +163047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[799].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagCounter); i { case 0: return &v.state @@ -156172,7 +163059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[800].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlagMetricTag); i { case 0: return &v.state @@ -156184,7 +163071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[801].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag); i { case 0: return &v.state @@ -156196,7 +163083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[802].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1Counter); i { case 0: return &v.state @@ -156208,7 +163095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[803].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1MetricTag); i { case 0: return &v.state @@ -156220,7 +163107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[804].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1); i { case 0: return &v.state @@ -156232,7 +163119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[805].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeCounter); i { case 0: return &v.state @@ -156244,7 +163131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[806].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageTypeMetricTag); i { case 0: return &v.state @@ -156256,7 +163143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[807].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType); i { case 0: return &v.state @@ -156268,7 +163155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[808].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthCounter); i { case 0: return &v.state @@ -156280,7 +163167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[809].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLengthMetricTag); i { case 0: return &v.state @@ -156292,7 +163179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[810].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength); i { case 0: return &v.state @@ -156304,7 +163191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[811].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidCounter); i { case 0: return &v.state @@ -156316,7 +163203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[812].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidMetricTag); i { case 0: return &v.state @@ -156328,7 +163215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[813].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid); i { case 0: return &v.state @@ -156340,7 +163227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[814].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberCounter); i { case 0: return &v.state @@ -156352,7 +163239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[815].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumberMetricTag); i { case 0: return &v.state @@ -156364,7 +163251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[816].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber); i { case 0: return &v.state @@ -156376,7 +163263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[817].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2Counter); i { case 0: return &v.state @@ -156388,7 +163275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[818].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2MetricTag); i { case 0: return &v.state @@ -156400,7 +163287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[819].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2); i { case 0: return &v.state @@ -156412,7 +163299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[820].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeCounter); i { case 0: return &v.state @@ -156424,7 +163311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[821].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareTypeMetricTag); i { case 0: return &v.state @@ -156436,7 +163323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[822].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType); i { case 0: return &v.state @@ -156448,7 +163335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[823].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeCounter); i { case 0: return &v.state @@ -156460,7 +163347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[824].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolTypeMetricTag); i { case 0: return &v.state @@ -156472,7 +163359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[825].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType); i { case 0: return &v.state @@ -156484,7 +163371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[826].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthCounter); i { case 0: return &v.state @@ -156496,7 +163383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[827].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLengthMetricTag); i { case 0: return &v.state @@ -156508,7 +163395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[828].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength); i { case 0: return &v.state @@ -156520,7 +163407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[829].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthCounter); i { case 0: return &v.state @@ -156532,7 +163419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[830].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLengthMetricTag); i { case 0: return &v.state @@ -156544,7 +163431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[831].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength); i { case 0: return &v.state @@ -156556,7 +163443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[832].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationCounter); i { case 0: return &v.state @@ -156568,7 +163455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[833].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperationMetricTag); i { case 0: return &v.state @@ -156580,7 +163467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[834].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation); i { case 0: return &v.state @@ -156592,7 +163479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[835].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrCounter); i { case 0: return &v.state @@ -156604,7 +163491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[836].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddrMetricTag); i { case 0: return &v.state @@ -156616,7 +163503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[837].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr); i { case 0: return &v.state @@ -156628,7 +163515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[838].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrCounter); i { case 0: return &v.state @@ -156640,7 +163527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[839].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddrMetricTag); i { case 0: return &v.state @@ -156652,7 +163539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[840].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr); i { case 0: return &v.state @@ -156664,7 +163551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[841].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrCounter); i { case 0: return &v.state @@ -156676,7 +163563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[842].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddrMetricTag); i { case 0: return &v.state @@ -156688,7 +163575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[843].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr); i { case 0: return &v.state @@ -156700,7 +163587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[844].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrCounter); i { case 0: return &v.state @@ -156712,7 +163599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[845].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddrMetricTag); i { case 0: return &v.state @@ -156724,7 +163611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[846].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr); i { case 0: return &v.state @@ -156736,7 +163623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[847].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeCounter); i { case 0: return &v.state @@ -156748,7 +163635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[848].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoTypeMetricTag); i { case 0: return &v.state @@ -156760,7 +163647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[849].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType); i { case 0: return &v.state @@ -156772,7 +163659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[850].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeCounter); i { case 0: return &v.state @@ -156784,7 +163671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[851].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCodeMetricTag); i { case 0: return &v.state @@ -156796,7 +163683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[852].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode); i { case 0: return &v.state @@ -156808,7 +163695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[853].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum); i { case 0: return &v.state @@ -156820,7 +163707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[854].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierCounter); i { case 0: return &v.state @@ -156832,7 +163719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[855].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifierMetricTag); i { case 0: return &v.state @@ -156844,7 +163731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[856].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier); i { case 0: return &v.state @@ -156856,7 +163743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[857].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberCounter); i { case 0: return &v.state @@ -156868,7 +163755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[858].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -156880,7 +163767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[859].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber); i { case 0: return &v.state @@ -156892,7 +163779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[860].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum); i { case 0: return &v.state @@ -156904,7 +163791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[861].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierCounter); i { case 0: return &v.state @@ -156916,7 +163803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[862].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifierMetricTag); i { case 0: return &v.state @@ -156928,7 +163815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[863].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier); i { case 0: return &v.state @@ -156940,7 +163827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[864].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberCounter); i { case 0: return &v.state @@ -156952,7 +163839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[865].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumberMetricTag); i { case 0: return &v.state @@ -156964,7 +163851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[866].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber); i { case 0: return &v.state @@ -156976,7 +163863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[867].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeCounter); i { case 0: return &v.state @@ -156988,7 +163875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[868].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoTypeMetricTag); i { case 0: return &v.state @@ -157000,7 +163887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[869].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType); i { case 0: return &v.state @@ -157012,7 +163899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[870].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeCounter); i { case 0: return &v.state @@ -157024,7 +163911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[871].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCodeMetricTag); i { case 0: return &v.state @@ -157036,7 +163923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[872].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode); i { case 0: return &v.state @@ -157048,7 +163935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[873].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierCounter); i { case 0: return &v.state @@ -157060,7 +163947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[874].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifierMetricTag); i { case 0: return &v.state @@ -157072,7 +163959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[875].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier); i { case 0: return &v.state @@ -157084,7 +163971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[876].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberCounter); i { case 0: return &v.state @@ -157096,7 +163983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[877].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumberMetricTag); i { case 0: return &v.state @@ -157108,7 +163995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[878].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber); i { case 0: return &v.state @@ -157120,7 +164007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[879].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum); i { case 0: return &v.state @@ -157132,7 +164019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[880].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum); i { case 0: return &v.state @@ -157144,7 +164031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[881].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressCounter); i { case 0: return &v.state @@ -157156,7 +164043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[882].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddressMetricTag); i { case 0: return &v.state @@ -157168,7 +164055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[883].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress); i { case 0: return &v.state @@ -157180,7 +164067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[884].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlCounter); i { case 0: return &v.state @@ -157192,7 +164079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[885].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControlMetricTag); i { case 0: return &v.state @@ -157204,7 +164091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[886].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl); i { case 0: return &v.state @@ -157216,7 +164103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[887].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeCounter); i { case 0: return &v.state @@ -157228,7 +164115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[888].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolTypeMetricTag); i { case 0: return &v.state @@ -157240,7 +164127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[889].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType); i { case 0: return &v.state @@ -157252,7 +164139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[890].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionCounter); i { case 0: return &v.state @@ -157264,7 +164151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[891].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1VersionMetricTag); i { case 0: return &v.state @@ -157276,7 +164163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[892].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version); i { case 0: return &v.state @@ -157288,7 +164175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[893].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeCounter); i { case 0: return &v.state @@ -157300,7 +164187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[894].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1TypeMetricTag); i { case 0: return &v.state @@ -157312,7 +164199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[895].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type); i { case 0: return &v.state @@ -157324,7 +164211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[896].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedCounter); i { case 0: return &v.state @@ -157336,7 +164223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[897].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1UnusedMetricTag); i { case 0: return &v.state @@ -157348,7 +164235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[898].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused); i { case 0: return &v.state @@ -157360,7 +164247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[899].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum); i { case 0: return &v.state @@ -157372,7 +164259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[900].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressCounter); i { case 0: return &v.state @@ -157384,7 +164271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[901].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddressMetricTag); i { case 0: return &v.state @@ -157396,7 +164283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[902].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress); i { case 0: return &v.state @@ -157408,7 +164295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[903].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelCounter); i { case 0: return &v.state @@ -157420,7 +164307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[904].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabelMetricTag); i { case 0: return &v.state @@ -157432,7 +164319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[905].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel); i { case 0: return &v.state @@ -157444,7 +164331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[906].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassCounter); i { case 0: return &v.state @@ -157456,7 +164343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[907].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClassMetricTag); i { case 0: return &v.state @@ -157468,7 +164355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[908].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass); i { case 0: return &v.state @@ -157480,7 +164367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[909].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackCounter); i { case 0: return &v.state @@ -157492,7 +164379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[910].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStackMetricTag); i { case 0: return &v.state @@ -157504,7 +164391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[911].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack); i { case 0: return &v.state @@ -157516,7 +164403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[912].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveCounter); i { case 0: return &v.state @@ -157528,7 +164415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[913].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLiveMetricTag); i { case 0: return &v.state @@ -157540,7 +164427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[914].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive); i { case 0: return &v.state @@ -157552,7 +164439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[915].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVersionCounter); i { case 0: return &v.state @@ -157564,7 +164451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[916].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVersion); i { case 0: return &v.state @@ -157576,7 +164463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[917].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDURequestIdCounter); i { case 0: return &v.state @@ -157588,7 +164475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[918].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDURequestId); i { case 0: return &v.state @@ -157600,7 +164487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[919].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDUErrorIndexCounter); i { case 0: return &v.state @@ -157612,7 +164499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[920].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDUErrorIndex); i { case 0: return &v.state @@ -157624,7 +164511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[921].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDURequestIdCounter); i { case 0: return &v.state @@ -157636,7 +164523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[922].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDURequestId); i { case 0: return &v.state @@ -157648,7 +164535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[923].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDUNonRepeaters); i { case 0: return &v.state @@ -157660,7 +164547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[924].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitionsCounter); i { case 0: return &v.state @@ -157672,7 +164559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[925].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitions); i { case 0: return &v.state @@ -157684,7 +164571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[926].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValueCounter); i { case 0: return &v.state @@ -157696,7 +164583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[927].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValue); i { case 0: return &v.state @@ -157708,7 +164595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[928].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValueCounter); i { case 0: return &v.state @@ -157720,7 +164607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[929].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValue); i { case 0: return &v.state @@ -157732,7 +164619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[930].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValueCounter); i { case 0: return &v.state @@ -157744,7 +164631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[931].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValue); i { case 0: return &v.state @@ -157756,7 +164643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[932].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValueCounter); i { case 0: return &v.state @@ -157768,7 +164655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[933].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValue); i { case 0: return &v.state @@ -157780,7 +164667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[934].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValueCounter); i { case 0: return &v.state @@ -157792,7 +164679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[935].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValue); i { case 0: return &v.state @@ -157804,7 +164691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[936].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValueCounter); i { case 0: return &v.state @@ -157816,7 +164703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[937].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue); i { case 0: return &v.state @@ -157828,7 +164715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[938].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CCommonRequestIdCounter); i { case 0: return &v.state @@ -157840,7 +164727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[939].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CCommonRequestId); i { case 0: return &v.state @@ -157852,7 +164739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[940].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpRsvpChecksum); i { case 0: return &v.state @@ -157864,7 +164751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[941].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpTimeToLiveCounter); i { case 0: return &v.state @@ -157876,7 +164763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[942].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpTimeToLive); i { case 0: return &v.state @@ -157888,7 +164775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[943].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpReservedCounter); i { case 0: return &v.state @@ -157900,7 +164787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[944].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpReserved); i { case 0: return &v.state @@ -157912,7 +164799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[945].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddressCounter); i { case 0: return &v.state @@ -157924,7 +164811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[946].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress); i { case 0: return &v.state @@ -157936,7 +164823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[947].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4ReservedCounter); i { case 0: return &v.state @@ -157948,7 +164835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[948].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved); i { case 0: return &v.state @@ -157960,7 +164847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[949].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelIdCounter); i { case 0: return &v.state @@ -157972,7 +164859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[950].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId); i { case 0: return &v.state @@ -157984,7 +164871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[951].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsIntegerCounter); i { case 0: return &v.state @@ -157996,7 +164883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[952].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsInteger); i { case 0: return &v.state @@ -158008,7 +164895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[953].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4Counter); i { case 0: return &v.state @@ -158020,7 +164907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[954].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4); i { case 0: return &v.state @@ -158032,7 +164919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[955].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4Ipv4AddressCounter); i { case 0: return &v.state @@ -158044,7 +164931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[956].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address); i { case 0: return &v.state @@ -158056,7 +164943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[957].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandleCounter); i { case 0: return &v.state @@ -158068,7 +164955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[958].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle); i { case 0: return &v.state @@ -158080,7 +164967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[959].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathTimeValuesType1RefreshPeriodRCounter); i { case 0: return &v.state @@ -158092,7 +164979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[960].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR); i { case 0: return &v.state @@ -158104,7 +164991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[961].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBitCounter); i { case 0: return &v.state @@ -158116,7 +165003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[962].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit); i { case 0: return &v.state @@ -158128,7 +165015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[963].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4AddressCounter); i { case 0: return &v.state @@ -158140,7 +165027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[964].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address); i { case 0: return &v.state @@ -158152,7 +165039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[965].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1ASNumberLBitCounter); i { case 0: return &v.state @@ -158164,7 +165051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[966].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit); i { case 0: return &v.state @@ -158176,7 +165063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[967].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReservedCounter); i { case 0: return &v.state @@ -158188,7 +165075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[968].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved); i { case 0: return &v.state @@ -158200,7 +165087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[969].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3PidCounter); i { case 0: return &v.state @@ -158212,7 +165099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[970].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid); i { case 0: return &v.state @@ -158224,7 +165111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[971].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddressCounter); i { case 0: return &v.state @@ -158236,7 +165123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[972].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress); i { case 0: return &v.state @@ -158248,7 +165135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[973].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4ReservedCounter); i { case 0: return &v.state @@ -158260,7 +165147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[974].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved); i { case 0: return &v.state @@ -158272,7 +165159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[975].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspIdCounter); i { case 0: return &v.state @@ -158284,7 +165171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[976].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId); i { case 0: return &v.state @@ -158296,7 +165183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[977].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServVersionCounter); i { case 0: return &v.state @@ -158308,7 +165195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[978].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServVersion); i { case 0: return &v.state @@ -158320,7 +165207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[979].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved1Counter); i { case 0: return &v.state @@ -158332,7 +165219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[980].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved1); i { case 0: return &v.state @@ -158344,8 +165231,140 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[981].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter); i { + file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServOverallLength); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServServiceHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServZeroBit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved2Counter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec); i { case 0: return &v.state case 1: @@ -158356,8 +165375,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[982].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServOverallLength); i { + file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter); i { case 0: return &v.state case 1: @@ -158368,8 +165387,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[983].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter); i { + file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Flag); i { case 0: return &v.state case 1: @@ -158380,8 +165399,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[984].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServServiceHeader); i { + file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter); i { case 0: return &v.state case 1: @@ -158392,8 +165411,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[985].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServZeroBitCounter); i { + file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Length); i { case 0: return &v.state case 1: @@ -158404,8 +165423,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[986].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServZeroBit); i { + file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter); i { case 0: return &v.state case 1: @@ -158416,8 +165435,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[987].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved2Counter); i { + file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit); i { case 0: return &v.state case 1: @@ -158428,8 +165447,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[988].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved2); i { + file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter); i { case 0: return &v.state case 1: @@ -158440,8 +165459,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[989].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter); i { + file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize); i { case 0: return &v.state case 1: @@ -158452,8 +165471,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[990].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData); i { + file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter); i { case 0: return &v.state case 1: @@ -158464,8 +165483,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[991].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter); i { + file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address); i { case 0: return &v.state case 1: @@ -158476,8 +165495,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[992].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec); i { + file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter); i { case 0: return &v.state case 1: @@ -158488,8 +165507,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[993].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127FlagCounter); i { + file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength); i { case 0: return &v.state case 1: @@ -158500,8 +165519,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[994].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Flag); i { + file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelFlags); i { case 0: return &v.state case 1: @@ -158512,8 +165531,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[995].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter); i { + file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelCType); i { case 0: return &v.state case 1: @@ -158524,8 +165543,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[996].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Length); i { + file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathObjectsCustomTypeCounter); i { case 0: return &v.state case 1: @@ -158536,8 +165555,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[997].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter); i { + file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PatternFlowRSVPPathObjectsCustomType); i { case 0: return &v.state case 1: @@ -158548,8 +165567,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[998].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit); i { + file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Version); i { case 0: return &v.state case 1: @@ -158560,8 +165579,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[999].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter); i { + file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Success); i { case 0: return &v.state case 1: @@ -158572,8 +165591,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1000].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize); i { + file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Failure); i { case 0: return &v.state case 1: @@ -158584,8 +165603,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1001].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter); i { + file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetConfigRequest); i { case 0: return &v.state case 1: @@ -158596,8 +165615,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1002].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address); i { + file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateConfigRequest); i { case 0: return &v.state case 1: @@ -158608,8 +165627,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1003].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter); i { + file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetConfigResponse); i { case 0: return &v.state case 1: @@ -158620,8 +165639,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1004].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength); i { + file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConfigResponse); i { case 0: return &v.state case 1: @@ -158632,8 +165651,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1005].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelFlags); i { + file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateConfigResponse); i { case 0: return &v.state case 1: @@ -158644,8 +165663,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1006].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelCType); i { + file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetControlStateRequest); i { case 0: return &v.state case 1: @@ -158656,8 +165675,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1007].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathObjectsCustomTypeCounter); i { + file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetControlStateResponse); i { case 0: return &v.state case 1: @@ -158668,8 +165687,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1008].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PatternFlowRSVPPathObjectsCustomType); i { + file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetControlActionRequest); i { case 0: return &v.state case 1: @@ -158680,8 +165699,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1009].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Version); i { + file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetControlActionResponse); i { case 0: return &v.state case 1: @@ -158692,8 +165711,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1010].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Success); i { + file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetricsRequest); i { case 0: return &v.state case 1: @@ -158704,8 +165723,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1011].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Failure); i { + file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMetricsResponse); i { case 0: return &v.state case 1: @@ -158716,8 +165735,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1012].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConfigRequest); i { + file_otg_proto_msgTypes[1072].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatesRequest); i { case 0: return &v.state case 1: @@ -158728,8 +165747,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1013].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConfigRequest); i { + file_otg_proto_msgTypes[1073].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStatesResponse); i { case 0: return &v.state case 1: @@ -158740,8 +165759,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1014].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConfigResponse); i { + file_otg_proto_msgTypes[1074].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptureRequest); i { case 0: return &v.state case 1: @@ -158752,8 +165771,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1015].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConfigResponse); i { + file_otg_proto_msgTypes[1075].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCaptureResponse); i { case 0: return &v.state case 1: @@ -158764,8 +165783,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1016].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConfigResponse); i { + file_otg_proto_msgTypes[1076].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVersionResponse); i { case 0: return &v.state case 1: @@ -158776,8 +165795,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1017].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetControlStateRequest); i { + file_otg_proto_msgTypes[1077].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagProtocol_Choice); i { case 0: return &v.state case 1: @@ -158788,8 +165807,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1018].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetControlStateResponse); i { + file_otg_proto_msgTypes[1078].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LagPortLacp_ActorActivity); i { case 0: return &v.state case 1: @@ -158800,8 +165819,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1019].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetControlActionRequest); i { + file_otg_proto_msgTypes[1079].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EthernetConnection_Choice); i { case 0: return &v.state case 1: @@ -158812,8 +165831,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1020].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetControlActionResponse); i { + file_otg_proto_msgTypes[1080].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceVlan_Tpid); i { case 0: return &v.state case 1: @@ -158824,8 +165843,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1021].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMetricsRequest); i { + file_otg_proto_msgTypes[1081].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceIpv4GatewayMAC_Choice); i { case 0: return &v.state case 1: @@ -158836,8 +165855,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1022].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMetricsResponse); i { + file_otg_proto_msgTypes[1082].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceIpv6GatewayMAC_Choice); i { case 0: return &v.state case 1: @@ -158848,8 +165867,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1023].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatesRequest); i { + file_otg_proto_msgTypes[1083].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceDhcpv4Client_Choice); i { case 0: return &v.state case 1: @@ -158860,8 +165879,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1024].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatesResponse); i { + file_otg_proto_msgTypes[1084].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceDhcpv6ClientIaType_Choice); i { case 0: return &v.state case 1: @@ -158872,8 +165891,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1025].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCaptureRequest); i { + file_otg_proto_msgTypes[1085].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeviceDhcpv6ClientDuidType_Choice); i { case 0: return &v.state case 1: @@ -158884,8 +165903,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1026].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCaptureResponse); i { + file_otg_proto_msgTypes[1086].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsServerIdentifier_Choice); i { case 0: return &v.state case 1: @@ -158896,8 +165915,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1027].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVersionResponse); i { + file_otg_proto_msgTypes[1087].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsDuidUuidVersion_Choice); i { case 0: return &v.state case 1: @@ -158908,8 +165927,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1028].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagProtocol_Choice); i { + file_otg_proto_msgTypes[1088].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsDuidUuidVariant_Choice); i { case 0: return &v.state case 1: @@ -158920,8 +165939,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1029].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LagPortLacp_ActorActivity); i { + file_otg_proto_msgTypes[1089].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsOptionsRequest_Choice); i { case 0: return &v.state case 1: @@ -158932,8 +165951,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1030].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EthernetConnection_Choice); i { + file_otg_proto_msgTypes[1090].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsOptionsRequestIncludedMessages_Choice); i { case 0: return &v.state case 1: @@ -158944,8 +165963,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1031].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceVlan_Tpid); i { + file_otg_proto_msgTypes[1091].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsIncludedMessages_Choice); i { case 0: return &v.state case 1: @@ -158956,8 +165975,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1032].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceIpv4GatewayMAC_Choice); i { + file_otg_proto_msgTypes[1092].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientOptionsMessageType_Choice); i { case 0: return &v.state case 1: @@ -158968,8 +165987,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1033].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceIpv6GatewayMAC_Choice); i { + file_otg_proto_msgTypes[1093].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerOptionsIncludedMessages_Choice); i { case 0: return &v.state case 1: @@ -158980,8 +165999,8 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1034].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeviceDhcpv4Client_Choice); i { + file_otg_proto_msgTypes[1094].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerOptionsMessageType_Choice); i { case 0: return &v.state case 1: @@ -158992,7 +166011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1035].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1095].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Speed); i { case 0: return &v.state @@ -159004,7 +166023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1036].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1096].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1_Media); i { case 0: return &v.state @@ -159016,7 +166035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1037].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1097].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Layer1FlowControl_Choice); i { case 0: return &v.state @@ -159028,7 +166047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1038].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1098].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Capture_Format); i { case 0: return &v.state @@ -159040,7 +166059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1039].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1099].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CaptureFilter_Choice); i { case 0: return &v.state @@ -159052,7 +166071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1040].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_NetworkType); i { case 0: return &v.state @@ -159064,7 +166083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1041].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterface_LevelType); i { case 0: return &v.state @@ -159076,7 +166095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1042].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisInterfaceAuthentication_AuthType); i { case 0: return &v.state @@ -159088,7 +166107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1043].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisAuthenticationBase_AuthType); i { case 0: return &v.state @@ -159100,7 +166119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1044].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_OriginType); i { case 0: return &v.state @@ -159112,7 +166131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1045].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV4RouteRange_RedistributionType); i { case 0: return &v.state @@ -159124,7 +166143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1046].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_OriginType); i { case 0: return &v.state @@ -159136,7 +166155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1047].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisV6RouteRange_RedistributionType); i { case 0: return &v.state @@ -159148,7 +166167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1048].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpMessageHeaderError_Subcode); i { case 0: return &v.state @@ -159160,7 +166179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1049].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpOpenMessageError_Subcode); i { case 0: return &v.state @@ -159172,7 +166191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1050].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpUpdateMessageError_Subcode); i { case 0: return &v.state @@ -159184,7 +166203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1051].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceBgpCeaseError_Subcode); i { case 0: return &v.state @@ -159196,7 +166215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1052].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsType); i { case 0: return &v.state @@ -159208,7 +166227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1053].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4Peer_AsNumberWidth); i { case 0: return &v.state @@ -159220,7 +166239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1054].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -159232,7 +166251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1055].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteAdvanced_Origin); i { case 0: return &v.state @@ -159244,7 +166263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1056].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpCommunity_Type); i { case 0: return &v.state @@ -159256,7 +166275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1057].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Type); i { case 0: return &v.state @@ -159268,7 +166287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1058].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtCommunity_Subtype); i { case 0: return &v.state @@ -159280,7 +166299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1059].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPath_AsSetMode); i { case 0: return &v.state @@ -159292,7 +166311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1060].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAsPathSegment_Type); i { case 0: return &v.state @@ -159304,7 +166323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1061].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EvpnEvis_Choice); i { case 0: return &v.state @@ -159316,7 +166335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1062].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4EviVxlan_ReplicationType); i { case 0: return &v.state @@ -159328,7 +166347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1063].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteDistinguisher_RdType); i { case 0: return &v.state @@ -159340,7 +166359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1064].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpRouteTarget_RtType); i { case 0: return &v.state @@ -159352,7 +166371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1065].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopMode); i { case 0: return &v.state @@ -159364,7 +166383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1066].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV4RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -159376,7 +166395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1067].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunity_Choice); i { case 0: return &v.state @@ -159388,7 +166407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1068].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -159400,7 +166419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1069].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveIpv4AddressType_Choice); i { case 0: return &v.state @@ -159412,7 +166431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1070].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitive4OctetAsType_Choice); i { case 0: return &v.state @@ -159424,7 +166443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1071].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveOpaqueType_Choice); i { case 0: return &v.state @@ -159436,7 +166455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1072].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1132].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityTransitiveEvpnType_Choice); i { case 0: return &v.state @@ -159448,7 +166467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1073].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1133].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpExtendedCommunityNonTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -159460,7 +166479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1074].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1134].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopMode); i { case 0: return &v.state @@ -159472,7 +166491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1075].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1135].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6RouteRange_NextHopAddressType); i { case 0: return &v.state @@ -159484,7 +166503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1076].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1136].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopMode); i { case 0: return &v.state @@ -159496,7 +166515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1077].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1137].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV4Policy_NextHopAddressType); i { case 0: return &v.state @@ -159508,7 +166527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1078].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1138].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteRemoteEndpointSubTlv_AddressFamily); i { case 0: return &v.state @@ -159520,7 +166539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1079].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1139].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteBindingSubTlv_BindingSidType); i { case 0: return &v.state @@ -159532,7 +166551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1080].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1140].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteExplicitNullLabelPolicySubTlv_ExplicitNullLabelPolicy); i { case 0: return &v.state @@ -159544,7 +166563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1081].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1141].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteSegment_SegmentType); i { case 0: return &v.state @@ -159556,7 +166575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1082].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopMode); i { case 0: return &v.state @@ -159568,7 +166587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1083].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpSrteV6Policy_NextHopAddressType); i { case 0: return &v.state @@ -159580,7 +166599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1084].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpUpdateReplay_Choice); i { case 0: return &v.state @@ -159592,7 +166611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1085].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributes_Origin); i { case 0: return &v.state @@ -159604,7 +166623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1086].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAsPath_Choice); i { case 0: return &v.state @@ -159616,7 +166635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1087].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesFourByteAsPathSegment_Type); i { case 0: return &v.state @@ -159628,7 +166647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1088].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesTwoByteAsPathSegment_Type); i { case 0: return &v.state @@ -159640,7 +166659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1089].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesAggregator_Choice); i { case 0: return &v.state @@ -159652,7 +166671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1090].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesCommunity_Choice); i { case 0: return &v.state @@ -159664,7 +166683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1091].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesNextHop_Choice); i { case 0: return &v.state @@ -159676,7 +166695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1092].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesMpReachNlri_Choice); i { case 0: return &v.state @@ -159688,7 +166707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1093].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesMpUnreachNlri_Choice); i { case 0: return &v.state @@ -159700,7 +166719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1094].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesTunnelEncapsulation_Choice); i { case 0: return &v.state @@ -159712,7 +166731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1095].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesBsid_Choice); i { case 0: return &v.state @@ -159724,7 +166743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1096].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSrPolicyExplicitNullPolicy_Choice); i { case 0: return &v.state @@ -159736,7 +166755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1097].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpAttributesSegmentRoutingPolicySegmentListSegment_Choice); i { case 0: return &v.state @@ -159748,7 +166767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1098].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsType); i { case 0: return &v.state @@ -159760,7 +166779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1099].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6Peer_AsNumberWidth); i { case 0: return &v.state @@ -159772,7 +166791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1100].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EthernetSegment_ActiveMode); i { case 0: return &v.state @@ -159784,7 +166803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1101].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EvpnEvis_Choice); i { case 0: return &v.state @@ -159796,7 +166815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1102].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpV6EviVxlan_ReplicationType); i { case 0: return &v.state @@ -159808,7 +166827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1103].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1163].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV4TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -159820,7 +166839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1104].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1164].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VxlanV6TunnelDestinationIPMode_Choice); i { case 0: return &v.state @@ -159832,7 +166851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1105].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1165].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4InterfaceP2PEgressIpv4Lsp_ReservationStyle); i { case 0: return &v.state @@ -159844,7 +166863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1106].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1166].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEro_PrependNeighborIp); i { case 0: return &v.state @@ -159856,7 +166875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1107].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1167].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_Type); i { case 0: return &v.state @@ -159868,7 +166887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1108].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1168].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpEroSubobject_HopType); i { case 0: return &v.state @@ -159880,7 +166899,19 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1109].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerIaType_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1170].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTxRx_Choice); i { case 0: return &v.state @@ -159892,7 +166923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1110].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1171].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRouter_Mode); i { case 0: return &v.state @@ -159904,7 +166935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1111].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1172].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowHeader_Choice); i { case 0: return &v.state @@ -159916,7 +166947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1112].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1173].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Options_Choice); i { case 0: return &v.state @@ -159928,7 +166959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1113].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1174].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4OptionsCustomLength_Choice); i { case 0: return &v.state @@ -159940,7 +166971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1114].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1175].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Priority_Choice); i { case 0: return &v.state @@ -159952,7 +166983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1115].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1176].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIpv4Auto_Choice); i { case 0: return &v.state @@ -159964,7 +166995,19 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1116].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1177].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FlowIpv6Auto_Choice); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1178].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmp_Choice); i { case 0: return &v.state @@ -159976,7 +167019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1117].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1179].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowIcmpv6_Choice); i { case 0: return &v.state @@ -159988,7 +167031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1118].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1180].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CData_Choice); i { case 0: return &v.state @@ -160000,7 +167043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1119].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1181].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CPDU_ErrorStatus); i { case 0: return &v.state @@ -160012,7 +167055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1120].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1182].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CVariableBindingValue_Choice); i { case 0: return &v.state @@ -160024,7 +167067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1121].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1183].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSnmpv2CVariableBindingStringValue_Choice); i { case 0: return &v.state @@ -160036,7 +167079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1122].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1184].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRsvp_Flag); i { case 0: return &v.state @@ -160048,7 +167091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1123].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1185].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPLength_Choice); i { case 0: return &v.state @@ -160060,7 +167103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1124].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1186].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPMessage_Choice); i { case 0: return &v.state @@ -160072,7 +167115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1125].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1187].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPObjectLength_Choice); i { case 0: return &v.state @@ -160084,7 +167127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1126].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1188].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClass_Choice); i { case 0: return &v.state @@ -160096,7 +167139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1127].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1189].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSessionCType_Choice); i { case 0: return &v.state @@ -160108,7 +167151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1128].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1190].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathSessionExtTunnelId_Choice); i { case 0: return &v.state @@ -160120,7 +167163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1129].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1191].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRsvpHopCType_Choice); i { case 0: return &v.state @@ -160132,7 +167175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1130].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1192].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsTimeValuesCType_Choice); i { case 0: return &v.state @@ -160144,7 +167187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1131].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1193].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsClassExplicitRouteCType_Choice); i { case 0: return &v.state @@ -160156,7 +167199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1132].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1194].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPType1ExplicitRouteSubobjectsType_Choice); i { case 0: return &v.state @@ -160168,7 +167211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1133].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1195].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPExplicitRouteLength_Choice); i { case 0: return &v.state @@ -160180,7 +167223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1134].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1196].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPExplicitRouteASNumberLength_Choice); i { case 0: return &v.state @@ -160192,7 +167235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1135].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1197].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsLabelRequestCType_Choice); i { case 0: return &v.state @@ -160204,7 +167247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1136].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1198].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSessionAttributeCType_Choice); i { case 0: return &v.state @@ -160216,7 +167259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1137].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1199].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPLspTunnelFlag_Choice); i { case 0: return &v.state @@ -160228,7 +167271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1138].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1200].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPSessionAttributeNameLength_Choice); i { case 0: return &v.state @@ -160240,7 +167283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1139].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1201].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSenderTemplateCType_Choice); i { case 0: return &v.state @@ -160252,7 +167295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1140].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1202].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsSenderTspecCType_Choice); i { case 0: return &v.state @@ -160264,7 +167307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1141].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1203].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRecordRouteCType_Choice); i { case 0: return &v.state @@ -160276,7 +167319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1142].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1204].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathObjectsRecordRouteSubObjectType_Choice); i { case 0: return &v.state @@ -160288,7 +167331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1143].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1205].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPRecordRouteIPv4Flag_Choice); i { case 0: return &v.state @@ -160300,7 +167343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1144].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1206].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPPathRecordRouteLabel_Choice); i { case 0: return &v.state @@ -160312,7 +167355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1145].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1207].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRSVPRouteRecordLength_Choice); i { case 0: return &v.state @@ -160324,7 +167367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1146].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1208].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSize_Choice); i { case 0: return &v.state @@ -160336,7 +167379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1147].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1209].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Choice); i { case 0: return &v.state @@ -160348,7 +167391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1148].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1210].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowSizeWeightPairs_Predefined); i { case 0: return &v.state @@ -160360,7 +167403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1149].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1211].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRate_Choice); i { case 0: return &v.state @@ -160372,7 +167415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1150].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1212].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDuration_Choice); i { case 0: return &v.state @@ -160384,7 +167427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1151].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1213].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDelay_Choice); i { case 0: return &v.state @@ -160396,7 +167439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1152].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1214].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowDurationInterBurstGap_Choice); i { case 0: return &v.state @@ -160408,7 +167451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1153].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1215].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowLatencyMetrics_Mode); i { case 0: return &v.state @@ -160420,7 +167463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1154].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1216].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowRxTxRatio_Choice); i { case 0: return &v.state @@ -160432,7 +167475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1155].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1217].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventRequest_Type); i { case 0: return &v.state @@ -160444,7 +167487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1156].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1218].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpConnection_Choice); i { case 0: return &v.state @@ -160456,7 +167499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1157].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1219].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisId_Choice); i { case 0: return &v.state @@ -160468,7 +167511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1158].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1220].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortId_Choice); i { case 0: return &v.state @@ -160480,7 +167523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1159].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1221].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpChassisMacSubType_Choice); i { case 0: return &v.state @@ -160492,7 +167535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1160].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1222].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpPortInterfaceNameSubType_Choice); i { case 0: return &v.state @@ -160504,7 +167547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1161].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1223].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpSystemName_Choice); i { case 0: return &v.state @@ -160516,7 +167559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1162].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1224].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error_Kind); i { case 0: return &v.state @@ -160528,7 +167571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1163].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1225].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigUpdate_Choice); i { case 0: return &v.state @@ -160540,7 +167583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1164].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1226].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowsUpdate_PropertyNames); i { case 0: return &v.state @@ -160552,7 +167595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1165].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1227].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlState_Choice); i { case 0: return &v.state @@ -160564,7 +167607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1166].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1228].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePort_Choice); i { case 0: return &v.state @@ -160576,7 +167619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1167].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1229].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTraffic_Choice); i { case 0: return &v.state @@ -160588,7 +167631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1168].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1230].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocol_Choice); i { case 0: return &v.state @@ -160600,7 +167643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1169].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1231].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortLink_State); i { case 0: return &v.state @@ -160612,7 +167655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1170].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1232].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatePortCapture_State); i { case 0: return &v.state @@ -160624,7 +167667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1171].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1233].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateTrafficFlowTransmit_State); i { case 0: return &v.state @@ -160636,7 +167679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1172].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1234].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolAll_State); i { case 0: return &v.state @@ -160648,7 +167691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1173].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1235].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolRoute_State); i { case 0: return &v.state @@ -160660,7 +167703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1174].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1236].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacp_Choice); i { case 0: return &v.state @@ -160672,7 +167715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1175].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1237].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpAdmin_State); i { case 0: return &v.state @@ -160684,7 +167727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1176].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1238].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolLacpMemberPorts_State); i { case 0: return &v.state @@ -160696,7 +167739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1177].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1239].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgp_Choice); i { case 0: return &v.state @@ -160708,7 +167751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1178].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1240].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolBgpPeers_State); i { case 0: return &v.state @@ -160720,7 +167763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1179].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1241].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsis_Choice); i { case 0: return &v.state @@ -160732,7 +167775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1180].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1242].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StateProtocolIsisRouters_State); i { case 0: return &v.state @@ -160744,7 +167787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1181].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1243].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControlAction_Choice); i { case 0: return &v.state @@ -160756,7 +167799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1182].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1244].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse_Choice); i { case 0: return &v.state @@ -160768,7 +167811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1183].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1245].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocol_Choice); i { case 0: return &v.state @@ -160780,7 +167823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1184].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1246].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocol_Choice); i { case 0: return &v.state @@ -160792,7 +167835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1185].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1247].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv4_Choice); i { case 0: return &v.state @@ -160804,7 +167847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1186].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1248].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4_Choice); i { case 0: return &v.state @@ -160816,7 +167859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1187].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1249].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv4PingResponse_Result); i { case 0: return &v.state @@ -160828,7 +167871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1188].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1250].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolIpv6_Choice); i { case 0: return &v.state @@ -160840,7 +167883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1189].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1251].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6_Choice); i { case 0: return &v.state @@ -160852,7 +167895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1190].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1252].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponseProtocolIpv6PingResponse_Result); i { case 0: return &v.state @@ -160864,7 +167907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1191].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1253].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgp_Choice); i { case 0: return &v.state @@ -160876,7 +167919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1192].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1254].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionProtocolBgpNotification_Choice); i { case 0: return &v.state @@ -160888,7 +167931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1193].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1255].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsRequest_Choice); i { case 0: return &v.state @@ -160900,7 +167943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1194].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1256].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsResponse_Choice); i { case 0: return &v.state @@ -160912,7 +167955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1195].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1257].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -160924,7 +167967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1196].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1258].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Link); i { case 0: return &v.state @@ -160936,7 +167979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1197].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1259].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Capture); i { case 0: return &v.state @@ -160948,7 +167991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1198].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1260].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PortMetric_Transmit); i { case 0: return &v.state @@ -160960,7 +168003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1199].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1261].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricsRequest_MetricNames); i { case 0: return &v.state @@ -160972,7 +168015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1200].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1262].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowTaggedMetricsFilter_MetricNames); i { case 0: return &v.state @@ -160984,7 +168027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1201].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1263].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetric_Transmit); i { case 0: return &v.state @@ -160996,7 +168039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1202].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1264].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FlowMetricTagValue_Choice); i { case 0: return &v.state @@ -161008,7 +168051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1203].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1265].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161020,7 +168063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1204].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1266].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_SessionState); i { case 0: return &v.state @@ -161032,7 +168075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1205].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1267].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv4Metric_FsmState); i { case 0: return &v.state @@ -161044,7 +168087,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1206].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1268].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6MetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161056,7 +168099,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1207].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1269].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_SessionState); i { case 0: return &v.state @@ -161068,7 +168111,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1208].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1270].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bgpv6Metric_FsmState); i { case 0: return &v.state @@ -161080,7 +168123,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1209].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1271].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161092,7 +168135,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1210].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1272].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161104,7 +168147,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1211].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1273].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LagMetric_OperStatus); i { case 0: return &v.state @@ -161116,7 +168159,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1212].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1274].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161128,7 +168171,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1213].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1275].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Activity); i { case 0: return &v.state @@ -161140,7 +168183,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1214].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1276].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Timeout); i { case 0: return &v.state @@ -161152,7 +168195,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1215].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1277].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LacpMetric_Synchronization); i { case 0: return &v.state @@ -161164,7 +168207,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1216].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1278].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161176,7 +168219,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1217].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1279].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161188,7 +168231,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1218].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1280].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ClientMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161200,7 +168243,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1219].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1281].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Dhcpv4ServerMetricsRequest_ColumnNames); i { case 0: return &v.state @@ -161212,7 +168255,31 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1220].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1282].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ClientMetricsRequest_ColumnNames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1283].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dhcpv6ServerMetricsRequest_ColumnNames); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_otg_proto_msgTypes[1284].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesRequest_Choice); i { case 0: return &v.state @@ -161224,7 +168291,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1221].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1285].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatesResponse_Choice); i { case 0: return &v.state @@ -161236,7 +168303,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1222].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1286].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixStateRequest_PrefixFilters); i { case 0: return &v.state @@ -161248,7 +168315,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1223].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1287].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastFilter_Origin); i { case 0: return &v.state @@ -161260,7 +168327,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1224].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1288].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastFilter_Origin); i { case 0: return &v.state @@ -161272,7 +168339,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1225].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1289].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv4UnicastState_Origin); i { case 0: return &v.state @@ -161284,7 +168351,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1226].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1290].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BgpPrefixIpv6UnicastState_Origin); i { case 0: return &v.state @@ -161296,7 +168363,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1227].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1291].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityStructured_Choice); i { case 0: return &v.state @@ -161308,7 +168375,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1228].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1292].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -161320,7 +168387,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1229].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1293].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveIpv4AddressType_Choice); i { case 0: return &v.state @@ -161332,7 +168399,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1230].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1294].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitive4OctetAsType_Choice); i { case 0: return &v.state @@ -161344,7 +168411,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1231].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1295].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityTransitiveOpaqueType_Choice); i { case 0: return &v.state @@ -161356,7 +168423,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1232].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1296].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultExtendedCommunityNonTransitive2OctetAsType_Choice); i { case 0: return &v.state @@ -161368,7 +168435,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1233].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1297].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpCommunity_Type); i { case 0: return &v.state @@ -161380,7 +168447,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1234].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1298].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResultBgpAsPathSegment_Type); i { case 0: return &v.state @@ -161392,7 +168459,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1235].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1299].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspState_PduType); i { case 0: return &v.state @@ -161404,7 +168471,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1236].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1300].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_RedistributionType); i { case 0: return &v.state @@ -161416,7 +168483,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1237].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1301].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV4Prefix_OriginType); i { case 0: return &v.state @@ -161428,7 +168495,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1238].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1302].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspExtendedV4Prefix_RedistributionType); i { case 0: return &v.state @@ -161440,7 +168507,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1239].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1303].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_RedistributionType); i { case 0: return &v.state @@ -161452,7 +168519,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1240].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1304].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IsisLspV6Prefix_OriginType); i { case 0: return &v.state @@ -161464,7 +168531,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1241].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1305].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_ChassisIdType); i { case 0: return &v.state @@ -161476,7 +168543,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1242].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1306].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpNeighborsState_PortIdType); i { case 0: return &v.state @@ -161488,7 +168555,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1243].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1307].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LldpCapabilityState_CapabilityName); i { case 0: return &v.state @@ -161500,7 +168567,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1244].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1308].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_SessionStatus); i { case 0: return &v.state @@ -161512,7 +168579,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1245].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1309].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspState_LastFlapReason); i { case 0: return &v.state @@ -161524,7 +168591,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1246].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1310].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RsvpLspIpv4Ero_Type); i { case 0: return &v.state @@ -161536,7 +168603,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1247].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1311].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetDst_Choice); i { case 0: return &v.state @@ -161548,7 +168615,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1248].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1312].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetSrc_Choice); i { case 0: return &v.state @@ -161560,7 +168627,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1249].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1313].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetEtherType_Choice); i { case 0: return &v.state @@ -161572,7 +168639,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1250].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1314].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPfcQueue_Choice); i { case 0: return &v.state @@ -161584,7 +168651,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1251].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1315].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanPriority_Choice); i { case 0: return &v.state @@ -161596,7 +168663,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1252].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1316].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanCfi_Choice); i { case 0: return &v.state @@ -161608,7 +168675,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1253].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1317].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanId_Choice); i { case 0: return &v.state @@ -161620,7 +168687,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1254].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1318].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVlanTpid_Choice); i { case 0: return &v.state @@ -161632,7 +168699,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1255].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1319].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanFlags_Choice); i { case 0: return &v.state @@ -161644,7 +168711,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1256].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1320].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved0_Choice); i { case 0: return &v.state @@ -161656,7 +168723,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1257].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1321].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanVni_Choice); i { case 0: return &v.state @@ -161668,7 +168735,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1258].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1322].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowVxlanReserved1_Choice); i { case 0: return &v.state @@ -161680,7 +168747,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1259].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1323].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Version_Choice); i { case 0: return &v.state @@ -161692,7 +168759,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1260].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1324].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderLength_Choice); i { case 0: return &v.state @@ -161704,7 +168771,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1261].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1325].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TotalLength_Choice); i { case 0: return &v.state @@ -161716,7 +168783,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1262].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1326].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Identification_Choice); i { case 0: return &v.state @@ -161728,7 +168795,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1263].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1327].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Reserved_Choice); i { case 0: return &v.state @@ -161740,7 +168807,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1264].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1328].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DontFragment_Choice); i { case 0: return &v.state @@ -161752,7 +168819,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1265].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1329].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4MoreFragments_Choice); i { case 0: return &v.state @@ -161764,7 +168831,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1266].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1330].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4FragmentOffset_Choice); i { case 0: return &v.state @@ -161776,7 +168843,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1267].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1331].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TimeToLive_Choice); i { case 0: return &v.state @@ -161788,7 +168855,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1268].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1332].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Protocol_Choice); i { case 0: return &v.state @@ -161800,7 +168867,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1269].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1333].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Choice); i { case 0: return &v.state @@ -161812,7 +168879,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1270].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1334].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4HeaderChecksum_Generated); i { case 0: return &v.state @@ -161824,7 +168891,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1271].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1335].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Src_Choice); i { case 0: return &v.state @@ -161836,7 +168903,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1272].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1336].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4Dst_Choice); i { case 0: return &v.state @@ -161848,7 +168915,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1273].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1337].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeCopiedFlag_Choice); i { case 0: return &v.state @@ -161860,7 +168927,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1274].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1338].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionClass_Choice); i { case 0: return &v.state @@ -161872,7 +168939,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1275].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1339].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4OptionsCustomTypeOptionNumber_Choice); i { case 0: return &v.state @@ -161884,7 +168951,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1276].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1340].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4PriorityRaw_Choice); i { case 0: return &v.state @@ -161896,7 +168963,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1277].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1341].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpPhb_Choice); i { case 0: return &v.state @@ -161908,7 +168975,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1278].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1342].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4DscpEcn_Choice); i { case 0: return &v.state @@ -161920,7 +168987,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1279].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1343].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosPrecedence_Choice); i { case 0: return &v.state @@ -161932,7 +168999,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1280].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1344].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosDelay_Choice); i { case 0: return &v.state @@ -161944,7 +169011,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1281].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1345].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosThroughput_Choice); i { case 0: return &v.state @@ -161956,7 +169023,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1282].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1346].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosReliability_Choice); i { case 0: return &v.state @@ -161968,7 +169035,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1283].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1347].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosMonetary_Choice); i { case 0: return &v.state @@ -161980,7 +169047,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1284].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1348].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv4TosUnused_Choice); i { case 0: return &v.state @@ -161992,7 +169059,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1285].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1349].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Version_Choice); i { case 0: return &v.state @@ -162004,7 +169071,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1286].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1350].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6TrafficClass_Choice); i { case 0: return &v.state @@ -162016,7 +169083,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1287].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1351].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6FlowLabel_Choice); i { case 0: return &v.state @@ -162028,7 +169095,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1288].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1352].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6PayloadLength_Choice); i { case 0: return &v.state @@ -162040,7 +169107,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1289].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1353].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6NextHeader_Choice); i { case 0: return &v.state @@ -162052,7 +169119,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1290].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1354].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6HopLimit_Choice); i { case 0: return &v.state @@ -162064,7 +169131,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1291].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1355].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Src_Choice); i { case 0: return &v.state @@ -162076,7 +169143,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1292].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1356].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIpv6Dst_Choice); i { case 0: return &v.state @@ -162088,7 +169155,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1293].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1357].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseDst_Choice); i { case 0: return &v.state @@ -162100,7 +169167,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1294].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1358].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseSrc_Choice); i { case 0: return &v.state @@ -162112,7 +169179,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1295].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1359].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseEtherType_Choice); i { case 0: return &v.state @@ -162124,7 +169191,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1296].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1360].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseControlOpCode_Choice); i { case 0: return &v.state @@ -162136,7 +169203,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1297].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1361].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPauseClassEnableVector_Choice); i { case 0: return &v.state @@ -162148,7 +169215,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1298].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1362].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass0_Choice); i { case 0: return &v.state @@ -162160,7 +169227,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1299].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1363].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass1_Choice); i { case 0: return &v.state @@ -162172,7 +169239,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1300].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1364].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass2_Choice); i { case 0: return &v.state @@ -162184,7 +169251,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1301].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1365].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass3_Choice); i { case 0: return &v.state @@ -162196,7 +169263,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1302].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1366].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass4_Choice); i { case 0: return &v.state @@ -162208,7 +169275,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1303].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1367].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass5_Choice); i { case 0: return &v.state @@ -162220,7 +169287,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1304].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1368].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass6_Choice); i { case 0: return &v.state @@ -162232,7 +169299,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1305].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1369].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPfcPausePauseClass7_Choice); i { case 0: return &v.state @@ -162244,7 +169311,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1306].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1370].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseDst_Choice); i { case 0: return &v.state @@ -162256,7 +169323,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1307].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1371].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseSrc_Choice); i { case 0: return &v.state @@ -162268,7 +169335,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1308].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1372].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseEtherType_Choice); i { case 0: return &v.state @@ -162280,7 +169347,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1309].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1373].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseControlOpCode_Choice); i { case 0: return &v.state @@ -162292,7 +169359,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1310].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1374].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowEthernetPauseTime_Choice); i { case 0: return &v.state @@ -162304,7 +169371,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1311].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1375].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSrcPort_Choice); i { case 0: return &v.state @@ -162316,7 +169383,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1312].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1376].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDstPort_Choice); i { case 0: return &v.state @@ -162328,7 +169395,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1313].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1377].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpSeqNum_Choice); i { case 0: return &v.state @@ -162340,7 +169407,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1314].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1378].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpAckNum_Choice); i { case 0: return &v.state @@ -162352,7 +169419,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1315].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1379].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpDataOffset_Choice); i { case 0: return &v.state @@ -162364,7 +169431,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1316].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1380].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnNs_Choice); i { case 0: return &v.state @@ -162376,7 +169443,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1317].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1381].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnCwr_Choice); i { case 0: return &v.state @@ -162388,7 +169455,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1318].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1382].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpEcnEcho_Choice); i { case 0: return &v.state @@ -162400,7 +169467,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1319].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1383].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlUrg_Choice); i { case 0: return &v.state @@ -162412,7 +169479,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1320].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1384].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlAck_Choice); i { case 0: return &v.state @@ -162424,7 +169491,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1321].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1385].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlPsh_Choice); i { case 0: return &v.state @@ -162436,7 +169503,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1322].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1386].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlRst_Choice); i { case 0: return &v.state @@ -162448,7 +169515,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1323].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1387].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlSyn_Choice); i { case 0: return &v.state @@ -162460,7 +169527,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1324].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1388].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpCtlFin_Choice); i { case 0: return &v.state @@ -162472,7 +169539,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1325].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1389].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpWindow_Choice); i { case 0: return &v.state @@ -162484,7 +169551,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1326].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1390].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpChecksum_Choice); i { case 0: return &v.state @@ -162496,7 +169563,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1327].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1391].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowTcpChecksum_Generated); i { case 0: return &v.state @@ -162508,7 +169575,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1328].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1392].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpSrcPort_Choice); i { case 0: return &v.state @@ -162520,7 +169587,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1329].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1393].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpDstPort_Choice); i { case 0: return &v.state @@ -162532,7 +169599,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1330].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1394].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpLength_Choice); i { case 0: return &v.state @@ -162544,7 +169611,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1331].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1395].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Choice); i { case 0: return &v.state @@ -162556,7 +169623,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1332].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1396].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowUdpChecksum_Generated); i { case 0: return &v.state @@ -162568,7 +169635,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1333].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1397].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksumPresent_Choice); i { case 0: return &v.state @@ -162580,7 +169647,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1334].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1398].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved0_Choice); i { case 0: return &v.state @@ -162592,7 +169659,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1335].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1399].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreVersion_Choice); i { case 0: return &v.state @@ -162604,7 +169671,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1336].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1400].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreProtocol_Choice); i { case 0: return &v.state @@ -162616,7 +169683,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1337].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1401].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Choice); i { case 0: return &v.state @@ -162628,7 +169695,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1338].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1402].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreChecksum_Generated); i { case 0: return &v.state @@ -162640,7 +169707,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1339].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1403].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGreReserved1_Choice); i { case 0: return &v.state @@ -162652,7 +169719,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1340].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1404].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Version_Choice); i { case 0: return &v.state @@ -162664,7 +169731,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1341].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1405].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1ProtocolType_Choice); i { case 0: return &v.state @@ -162676,7 +169743,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1342].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1406].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Reserved_Choice); i { case 0: return &v.state @@ -162688,7 +169755,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1343].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1407].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1EFlag_Choice); i { case 0: return &v.state @@ -162700,7 +169767,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1344].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1408].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SFlag_Choice); i { case 0: return &v.state @@ -162712,7 +169779,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1345].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1409].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1PnFlag_Choice); i { case 0: return &v.state @@ -162724,7 +169791,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1346].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1410].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageType_Choice); i { case 0: return &v.state @@ -162736,7 +169803,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1347].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1411].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1MessageLength_Choice); i { case 0: return &v.state @@ -162748,7 +169815,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1348].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1412].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1Teid_Choice); i { case 0: return &v.state @@ -162760,7 +169827,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1349].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1413].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1SquenceNumber_Choice); i { case 0: return &v.state @@ -162772,7 +169839,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1350].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1414].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NPduNumber_Choice); i { case 0: return &v.state @@ -162784,7 +169851,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1351].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1415].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv1NextExtensionHeaderType_Choice); i { case 0: return &v.state @@ -162796,7 +169863,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1352].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1416].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionExtensionLength_Choice); i { case 0: return &v.state @@ -162808,7 +169875,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1353].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1417].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionContents_Choice); i { case 0: return &v.state @@ -162820,7 +169887,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1354].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1418].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpExtensionNextExtensionHeader_Choice); i { case 0: return &v.state @@ -162832,7 +169899,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1355].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1419].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Version_Choice); i { case 0: return &v.state @@ -162844,7 +169911,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1356].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1420].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2PiggybackingFlag_Choice); i { case 0: return &v.state @@ -162856,7 +169923,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1357].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1421].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2TeidFlag_Choice); i { case 0: return &v.state @@ -162868,7 +169935,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1358].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1422].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare1_Choice); i { case 0: return &v.state @@ -162880,7 +169947,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1359].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1423].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageType_Choice); i { case 0: return &v.state @@ -162892,7 +169959,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1360].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1424].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2MessageLength_Choice); i { case 0: return &v.state @@ -162904,7 +169971,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1361].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1425].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Teid_Choice); i { case 0: return &v.state @@ -162916,7 +169983,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1362].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1426].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2SequenceNumber_Choice); i { case 0: return &v.state @@ -162928,7 +169995,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1363].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1427].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowGtpv2Spare2_Choice); i { case 0: return &v.state @@ -162940,7 +170007,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1364].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1428].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareType_Choice); i { case 0: return &v.state @@ -162952,7 +170019,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1365].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1429].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolType_Choice); i { case 0: return &v.state @@ -162964,7 +170031,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1366].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1430].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpHardwareLength_Choice); i { case 0: return &v.state @@ -162976,7 +170043,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1367].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1431].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpProtocolLength_Choice); i { case 0: return &v.state @@ -162988,7 +170055,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1368].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1432].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpOperation_Choice); i { case 0: return &v.state @@ -163000,7 +170067,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1369].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1433].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderHardwareAddr_Choice); i { case 0: return &v.state @@ -163012,7 +170079,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1370].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1434].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpSenderProtocolAddr_Choice); i { case 0: return &v.state @@ -163024,7 +170091,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1371].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1435].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetHardwareAddr_Choice); i { case 0: return &v.state @@ -163036,7 +170103,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1372].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1436].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowArpTargetProtocolAddr_Choice); i { case 0: return &v.state @@ -163048,7 +170115,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1373].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1437].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoType_Choice); i { case 0: return &v.state @@ -163060,7 +170127,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1374].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1438].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoCode_Choice); i { case 0: return &v.state @@ -163072,7 +170139,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1375].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1439].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Choice); i { case 0: return &v.state @@ -163084,7 +170151,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1376].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1440].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoChecksum_Generated); i { case 0: return &v.state @@ -163096,7 +170163,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1377].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1441].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoIdentifier_Choice); i { case 0: return &v.state @@ -163108,7 +170175,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1378].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1442].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpEchoSequenceNumber_Choice); i { case 0: return &v.state @@ -163120,7 +170187,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1379].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1443].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Choice); i { case 0: return &v.state @@ -163132,7 +170199,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1380].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1444].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpCommonChecksum_Generated); i { case 0: return &v.state @@ -163144,7 +170211,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1381].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1445].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsIdentifier_Choice); i { case 0: return &v.state @@ -163156,7 +170223,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1382].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1446].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpNextFieldsSequenceNumber_Choice); i { case 0: return &v.state @@ -163168,7 +170235,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1383].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1447].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoType_Choice); i { case 0: return &v.state @@ -163180,7 +170247,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1384].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1448].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoCode_Choice); i { case 0: return &v.state @@ -163192,7 +170259,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1385].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1449].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoIdentifier_Choice); i { case 0: return &v.state @@ -163204,7 +170271,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1386].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1450].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoSequenceNumber_Choice); i { case 0: return &v.state @@ -163216,7 +170283,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1387].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1451].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Choice); i { case 0: return &v.state @@ -163228,7 +170295,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1388].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1452].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6EchoChecksum_Generated); i { case 0: return &v.state @@ -163240,7 +170307,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1389].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1453].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Choice); i { case 0: return &v.state @@ -163252,7 +170319,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1390].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1454].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIcmpv6CommonChecksum_Generated); i { case 0: return &v.state @@ -163264,7 +170331,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1391].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1455].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppAddress_Choice); i { case 0: return &v.state @@ -163276,7 +170343,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1392].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1456].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppControl_Choice); i { case 0: return &v.state @@ -163288,7 +170355,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1393].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1457].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowPppProtocolType_Choice); i { case 0: return &v.state @@ -163300,7 +170367,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1394].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1458].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Version_Choice); i { case 0: return &v.state @@ -163312,7 +170379,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1395].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1459].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Type_Choice); i { case 0: return &v.state @@ -163324,7 +170391,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1396].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1460].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Unused_Choice); i { case 0: return &v.state @@ -163336,7 +170403,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1397].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1461].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Choice); i { case 0: return &v.state @@ -163348,7 +170415,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1398].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1462].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1Checksum_Generated); i { case 0: return &v.state @@ -163360,7 +170427,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1399].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1463].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowIgmpv1GroupAddress_Choice); i { case 0: return &v.state @@ -163372,7 +170439,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1400].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1464].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsLabel_Choice); i { case 0: return &v.state @@ -163384,7 +170451,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1401].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1465].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTrafficClass_Choice); i { case 0: return &v.state @@ -163396,7 +170463,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1402].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1466].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsBottomOfStack_Choice); i { case 0: return &v.state @@ -163408,7 +170475,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1403].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1467].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowMplsTimeToLive_Choice); i { case 0: return &v.state @@ -163420,7 +170487,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1404].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1468].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVersion_Choice); i { case 0: return &v.state @@ -163432,7 +170499,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1405].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1469].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDURequestId_Choice); i { case 0: return &v.state @@ -163444,7 +170511,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1406].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1470].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CPDUErrorIndex_Choice); i { case 0: return &v.state @@ -163456,7 +170523,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1407].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1471].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDURequestId_Choice); i { case 0: return &v.state @@ -163468,7 +170535,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1408].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1472].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDUNonRepeaters_Choice); i { case 0: return &v.state @@ -163480,7 +170547,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1409].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1473].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CBulkPDUMaxRepetitions_Choice); i { case 0: return &v.state @@ -163492,7 +170559,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1410].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1474].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIntegerValue_Choice); i { case 0: return &v.state @@ -163504,7 +170571,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1411].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1475].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueIpAddressValue_Choice); i { case 0: return &v.state @@ -163516,7 +170583,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1412].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1476].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueCounterValue_Choice); i { case 0: return &v.state @@ -163528,7 +170595,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1413].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1477].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueTimeticksValue_Choice); i { case 0: return &v.state @@ -163540,7 +170607,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1414].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1478].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueBigCounterValue_Choice); i { case 0: return &v.state @@ -163552,7 +170619,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1415].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1479].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CVariableBindingValueUnsignedIntegerValue_Choice); i { case 0: return &v.state @@ -163564,7 +170631,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1416].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1480].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowSnmpv2CCommonRequestId_Choice); i { case 0: return &v.state @@ -163576,7 +170643,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1417].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1481].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpRsvpChecksum_Choice); i { case 0: return &v.state @@ -163588,7 +170655,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1418].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1482].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpRsvpChecksum_Generated); i { case 0: return &v.state @@ -163600,7 +170667,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1419].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1483].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpTimeToLive_Choice); i { case 0: return &v.state @@ -163612,7 +170679,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1420].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1484].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRsvpReserved_Choice); i { case 0: return &v.state @@ -163624,7 +170691,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1421].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1485].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress_Choice); i { case 0: return &v.state @@ -163636,7 +170703,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1422].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1486].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4Reserved_Choice); i { case 0: return &v.state @@ -163648,7 +170715,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1423].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1487].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId_Choice); i { case 0: return &v.state @@ -163660,7 +170727,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1424].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1488].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsInteger_Choice); i { case 0: return &v.state @@ -163672,7 +170739,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1425].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1489].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSessionExtTunnelIdAsIpv4_Choice); i { case 0: return &v.state @@ -163684,7 +170751,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1426].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1490].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4Ipv4Address_Choice); i { case 0: return &v.state @@ -163696,7 +170763,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1427].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1491].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle_Choice); i { case 0: return &v.state @@ -163708,7 +170775,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1428].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1492].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathTimeValuesType1RefreshPeriodR_Choice); i { case 0: return &v.state @@ -163720,7 +170787,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1429].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1493].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit_Choice); i { case 0: return &v.state @@ -163732,7 +170799,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1430].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1494].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address_Choice); i { case 0: return &v.state @@ -163744,7 +170811,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1431].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1495].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathExplicitRouteType1ASNumberLBit_Choice); i { case 0: return &v.state @@ -163756,7 +170823,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1432].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1496].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved_Choice); i { case 0: return &v.state @@ -163768,7 +170835,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1433].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1497].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3Pid_Choice); i { case 0: return &v.state @@ -163780,7 +170847,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1434].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1498].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress_Choice); i { case 0: return &v.state @@ -163792,7 +170859,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1435].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1499].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved_Choice); i { case 0: return &v.state @@ -163804,7 +170871,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1436].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1500].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId_Choice); i { case 0: return &v.state @@ -163816,7 +170883,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1437].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1501].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServVersion_Choice); i { case 0: return &v.state @@ -163828,7 +170895,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1438].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1502].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved1_Choice); i { case 0: return &v.state @@ -163840,7 +170907,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1439].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1503].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServOverallLength_Choice); i { case 0: return &v.state @@ -163852,7 +170919,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1440].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1504].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServServiceHeader_Choice); i { case 0: return &v.state @@ -163864,7 +170931,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1441].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1505].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServZeroBit_Choice); i { case 0: return &v.state @@ -163876,7 +170943,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1442].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1506].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServReserved2_Choice); i { case 0: return &v.state @@ -163888,7 +170955,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1443].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1507].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData_Choice); i { case 0: return &v.state @@ -163900,7 +170967,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1444].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1508].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec_Choice); i { case 0: return &v.state @@ -163912,7 +170979,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1445].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1509].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Flag_Choice); i { case 0: return &v.state @@ -163924,7 +170991,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1446].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1510].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServParameter127Length_Choice); i { case 0: return &v.state @@ -163936,7 +171003,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1447].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1511].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit_Choice); i { case 0: return &v.state @@ -163948,7 +171015,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1448].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1512].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize_Choice); i { case 0: return &v.state @@ -163960,7 +171027,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1449].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1513].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address_Choice); i { case 0: return &v.state @@ -163972,7 +171039,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1450].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1514].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength_Choice); i { case 0: return &v.state @@ -163984,7 +171051,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1451].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1515].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelFlags_Choice); i { case 0: return &v.state @@ -163996,7 +171063,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1452].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1516].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathRecordRouteType1LabelCType_Choice); i { case 0: return &v.state @@ -164008,7 +171075,7 @@ func file_otg_proto_init() { return nil } } - file_otg_proto_msgTypes[1453].Exporter = func(v interface{}, i int) interface{} { + file_otg_proto_msgTypes[1517].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PatternFlowRSVPPathObjectsCustomType_Choice); i { case 0: return &v.state @@ -164042,13 +171109,14 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[20].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[21].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[22].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[23].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[25].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[26].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[27].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[28].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[29].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[30].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[32].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[34].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[35].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[36].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[37].OneofWrappers = []interface{}{} @@ -164069,14 +171137,11 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[52].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[53].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[54].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[55].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[56].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[57].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[58].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[59].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[62].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[63].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[64].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[60].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[65].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[66].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[67].OneofWrappers = []interface{}{} @@ -164102,8 +171167,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[87].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[88].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[89].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[90].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[91].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[92].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[93].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[94].OneofWrappers = []interface{}{} @@ -164143,7 +171206,9 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[128].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[129].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[130].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[131].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[132].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[133].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[134].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[135].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[136].OneofWrappers = []interface{}{} @@ -164154,8 +171219,11 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[141].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[142].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[143].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[144].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[145].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[146].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[147].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[148].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[149].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[150].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[151].OneofWrappers = []interface{}{} @@ -164169,7 +171237,6 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[159].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[160].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[162].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[163].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[164].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[165].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[166].OneofWrappers = []interface{}{} @@ -164179,10 +171246,9 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[170].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[171].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[172].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[174].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[173].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[175].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[177].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[178].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[179].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[180].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[181].OneofWrappers = []interface{}{} @@ -164195,19 +171261,19 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[188].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[189].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[190].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[191].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[192].OneofWrappers = []interface{}{} 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{}{} file_otg_proto_msgTypes[200].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[201].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[202].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[204].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[205].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[206].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[207].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[208].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[209].OneofWrappers = []interface{}{} @@ -164221,92 +171287,91 @@ func file_otg_proto_init() { 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[234].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[235].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[236].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[237].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[238].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[239].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[240].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[241].OneofWrappers = []interface{}{} 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[251].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[252].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[253].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[255].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[260].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[254].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[256].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[257].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[258].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[259].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[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[277].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[279].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[282].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[285].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[288].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[289].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[297].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[298].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[299].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[278].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[281].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[283].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[293].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[295].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[300].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[301].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[303].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[302].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[309].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[312].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[314].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[316].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[313].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[315].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[317].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[318].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[319].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[320].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[321].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[322].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[323].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[324].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[337].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[338].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[339].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[340].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[342].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[341].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[343].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[344].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[345].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[346].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[347].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[348].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[349].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[350].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[352].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[354].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[355].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[356].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[357].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[358].OneofWrappers = []interface{}{} @@ -164322,23 +171387,26 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[368].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[369].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[370].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[371].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[372].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[373].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[374].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[375].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[376].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[377].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[378].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[379].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[380].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[381].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[382].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[383].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[384].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[385].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[386].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[387].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[388].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[389].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[390].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[391].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[393].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[392].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[394].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[395].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[396].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[397].OneofWrappers = []interface{}{} @@ -164347,12 +171415,18 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[400].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[401].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[402].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[403].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[404].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[405].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[406].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[407].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[408].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[409].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[410].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[412].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[413].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[414].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[415].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[416].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[418].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[420].OneofWrappers = []interface{}{} @@ -164360,13 +171434,12 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[422].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[424].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[426].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[427].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[428].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[429].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[430].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[431].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[432].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[433].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[434].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[435].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[436].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[437].OneofWrappers = []interface{}{} @@ -164375,32 +171448,31 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[440].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[441].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[442].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[443].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[444].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[445].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[446].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[447].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[448].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[449].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[451].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[453].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[450].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[452].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[454].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[456].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[457].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[458].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[460].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[463].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[462].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[464].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[465].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[467].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[466].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[468].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[470].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[471].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[472].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[473].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[474].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[475].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[476].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[477].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[478].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[479].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[480].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[481].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[482].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[483].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[484].OneofWrappers = []interface{}{} @@ -164413,43 +171485,28 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[491].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[492].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[493].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[494].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[495].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[496].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[497].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[498].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[499].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[500].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[501].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[502].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[503].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[504].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[505].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[506].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[507].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[508].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[509].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[510].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[511].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[512].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[513].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[514].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[515].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[516].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[517].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[518].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[519].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[520].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[521].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[522].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[523].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[524].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[525].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[526].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[527].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[528].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[529].OneofWrappers = []interface{}{} - file_otg_proto_msgTypes[530].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[531].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[532].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[533].OneofWrappers = []interface{}{} @@ -164929,13 +171986,62 @@ func file_otg_proto_init() { file_otg_proto_msgTypes[1007].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[1008].OneofWrappers = []interface{}{} file_otg_proto_msgTypes[1009].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1010].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1011].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1012].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1013].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1014].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1015].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1016].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1017].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1018].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1019].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1020].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1021].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1022].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1023].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1024].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1025].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1026].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1027].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1028].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1029].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1030].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1031].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1032].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1033].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1034].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1035].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1036].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1037].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1038].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1039].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1040].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1041].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1042].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1043].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1044].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1045].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1046].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1047].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1048].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1049].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1050].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1051].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1052].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1053].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1054].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1055].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1056].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1057].OneofWrappers = []interface{}{} + file_otg_proto_msgTypes[1058].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_otg_proto_rawDesc, - NumEnums: 426, - NumMessages: 1454, + NumEnums: 441, + NumMessages: 1518, NumExtensions: 0, NumServices: 1, }, diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index edffd780..1bbfd920 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 1.7.1 +/* Open Traffic Generator API 1.8.0 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -271,6 +271,9 @@ message DeviceEthernet { // List of DHCPv4 Clients Configuration. repeated DeviceDhcpv4client dhcpv4_interfaces = 9; + + // List of DHCPv6 Clients Configuration. + repeated DeviceDhcpv6client dhcpv6_interfaces = 10; } // Ethernet interface connection to a port, LAG or VXLAN tunnel. @@ -573,6 +576,623 @@ message Dhcpv4ClientParams { optional bool rebinding_timer = 4; } +// Configuration for emulated DHCPv6 Client on a single Interface. If the DHCPv6 Client +// receives one or more DHCPv6 ADVERTISE messages from one or more servers then the +// client chooses one server from which to request configuration parameters, based +// on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. +// If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html +message DeviceDhcpv6client { + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + optional string name = 1; + + // If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including + // Rapid Commit option in Solicit message. + // default = False + optional bool rapid_commit = 2; + + // Each IA has an associated IAID. Differnet IA options represent different types of + // IPv6 addresses and parameters + // accepted by DHCPv6 clients each used in different context by an IPv6 node. + DeviceDhcpv6clientIaType ia_type = 3; + + // Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify + // each other. + DeviceDhcpv6clientDuidType duid_type = 4; + + // The options requested by a client from a server in the options request option. + DeviceDhcpv6ClientOptionsRequest options_request = 5; + + // Optional DHCPv4 Client options that are sent in Dhcp client messages. + DeviceDhcpv6ClientOptions options = 6; +} + +// DHCP client options, these configured options are sent in Dhcp client messages. +message DeviceDhcpv6ClientOptionsRequest { + + // List of options requested by a client from a server. + repeated Dhcpv6ClientOptionsOptionsRequest request = 1; + + // The list of dhcpv6 client messages where this option is included. + // required = true + Dhcpv6ClientOptionsOptionsRequestIncludedMessages associated_dhcp_messages = 2; +} + +// DHCP client options, these configured options are sent in Dhcp client messages. +message DeviceDhcpv6ClientOptions { + + // A client uses multicast to reach all servers or an individual server. An individual + // server is indicated by + // specifying that server's DUID in a Server Identifier option in the client's message + // (all servers will receive + // this message but only the indicated server will respond). All servers are indicated + // by not supplying this option. + Dhcpv6ClientOptionsServerIdentifier server_identifier = 1; + + // The vendor class option is used by a client to identify the vendor that manufactured + // the hardware on which + // the client is running. The information contained in the data area of this option + // is contained in one or more + // opaque fields that identify details of the hardware configuration. + Dhcpv6ClientOptionsVendorClass vendor_class = 2; + + // This option is used by clients to exchange vendor-specific information with servers. + Dhcpv6ClientOptionsVendorInfo vendor_info = 3; + + // DHCPv6 server needs to know the FQDN of the client for the addresses for the client's + // IA_NA bindings in order to + // update the IPv6-address-to-FQDN mapping. This option allows the client to convey + // its FQDN to the server. The Client + // FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate + // who does which update. + Dhcpv6ClientOptionsFqdn fqdn = 4; +} + +// Description missing in models +message DeviceDhcpv6clientIaType { + + message Choice { + enum Enum { + unspecified = 0; + iana = 1; + iata = 2; + iapd = 3; + ianapd = 4; + } + } + // Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent + // different types of IPv6 addresses and parameters accepted by DHCPv6 clients each + // used in different context by an IPv6 node. IA_NA is the Identity Association for + // Non-temporary Addresses option. IA_TA is the Identity Association for Temporary + // Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and + // parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD + // s the Identity Association for Temporary Prefix Delegation. + // default = Choice.Enum.iana + optional Choice.Enum choice = 1; + + // Description missing in models + DeviceDhcpv6clientIaTimeValue iana = 2; + + // Description missing in models + DeviceDhcpv6clientIaTimeValue iapd = 3; + + // Description missing in models + DeviceDhcpv6clientIaTimeValue ianapd = 4; +} + +// The container for the suggested times at which the client contacts the server or +// any available server. +message DeviceDhcpv6clientIaTimeValue { + + // The suggested time at which the client contacts the server from which the addresses + // were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration + // relative to the current time expressed in units of seconds. If set to 0 server will + // ignore it. If the maximum value is specified it means infinite time. + // default = 302400 + optional uint32 t1 = 1; + + // The suggested time at which the client contacts any available server to extend the + // lifetimes of the addresses assigned. T2 is a time duration relative to the current + // time expressed in units of seconds. If set to 0 server will ignore it. If the maximum + // value is specified it means infinite time + // default = 483840 + optional uint32 t2 = 2; +} + +// Description missing in models +message DeviceDhcpv6clientDuidType { + + message Choice { + enum Enum { + unspecified = 0; + llt = 1; + en = 2; + ll = 3; + } + } + // Each DHCP client and server has a DUID. DHCP clients use DUIDs to identify a server + // in messages where a server needs to be identified. + // default = Choice.Enum.llt + optional Choice.Enum choice = 1; + + // Description missing in models + DeviceDhcpv6clientNoDuid llt = 2; + + // Description missing in models + DeviceDhcpv6clientDuidValue en = 3; + + // Description missing in models + DeviceDhcpv6clientNoDuid ll = 4; +} + +// The container for the DUID-EN. This consists of the 4-octet vendor's registered Private +// Enterprise Number as maintained by IANA [IANA-PEN] followed by a unique identifier +// assigned by the vendor. +message DeviceDhcpv6clientDuidValue { + + // 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. + // default = 10 + optional uint32 enterprise_id = 1; + + // Unique identifier assigned by the vendor. + // default = 10 + optional uint32 vendor_id = 2; +} + +// The container for DUID-LL and DUID-LLT. +message DeviceDhcpv6clientNoDuid { +} + +// Description missing in models +message Dhcpv6ClientOptionsServerIdentifier { + + message Choice { + enum Enum { + unspecified = 0; + duid_llt = 1; + duid_en = 2; + duid_ll = 3; + duid_uuid = 4; + } + } + // The Identifier option is used to carry a DUID. The option code is 2. The server identifier + // identifies a server. This option is used when client wants to contact a particular + // server. + // default = Choice.Enum.duid_ll + optional Choice.Enum choice = 1; + + // Description missing in models + Dhcpv6ClientOptionsDuidLlt duid_llt = 2; + + // Description missing in models + Dhcpv6ClientOptionsDuidEn duid_en = 3; + + // Description missing in models + Dhcpv6ClientOptionsDuidLl duid_ll = 4; + + // Description missing in models + Dhcpv6ClientOptionsDuidUuid duid_uuid = 5; +} + +// DUID based on Link Layer address plus time. Hardware Type will be auto assigned to +// ethernet type. +message Dhcpv6ClientOptionsDuidLlt { + + // The time value is the time that the DUID is generated represented in seconds since + // midnight (UTC), January 1, + // 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client + // contacts the server. + // required = true + optional uint32 time = 1; + + // The link-layer address is stored in canonical form, as described in RFC 2464. + // + // required = true + Dhcpv6ClientOptionsLinkLayerAddress link_layer_address = 2; +} + +// DUID assigned by vendor based on enterprise number. +message Dhcpv6ClientOptionsDuidEn { + + // Vendor's registered private enterprise number as maintained by IANA. + // required = true + optional uint32 enterprise_number = 1; + + // The unique identifier assigned by the vendor. + // required = true + optional string identifier = 2; +} + +// DUID based on Link Layer address. Hardware Type will be auto assigned to ethernet +// type. +message Dhcpv6ClientOptionsDuidLl { + + // The link-layer address is stored in canonical form, as described in RFC 2464. + // + // required = true + Dhcpv6ClientOptionsLinkLayerAddress link_layer_address = 1; +} + +// DUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that +// is unique across both space and time, with respect to the space of all UUIDs. +message Dhcpv6ClientOptionsDuidUuid { + + // The version number is in the most significant 4 bits of the timestamp (bits 4 through + // 7 of the time_hi_and_version field). + Dhcpv6ClientOptionsDuidUuidVersion version = 1; + + // The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. + // + Dhcpv6ClientOptionsDuidUuidVariant variant = 2; + + // The low field of the timestamp. + // default = 0 + optional uint32 time_low = 3; + + // The middle field of the timestamp. + // default = 0 + optional uint32 time_mid = 4; + + // The high field of the timestamp multiplexed with the version number. + // default = 0 + optional uint32 time_hi_and_version = 5; + + // The high field of the clock sequence multiplexed with the variant. + // default = 0 + optional uint32 clock_seq_hi_and_reserved = 6; + + // The low field of the clock sequence. + // default = 0 + optional uint32 clock_seq_low = 7; + + // The spatially unique node identifier. + // default = 00:00:00:00:00:00 + optional string node = 8; +} + +// The version number is in the most significant 4 bits of the timestamp (bits 4 through +// 7 of the time_hi_and_version field). +message Dhcpv6ClientOptionsDuidUuidVersion { + + message Choice { + enum Enum { + unspecified = 0; + v_1 = 1; + v_2 = 2; + v_3 = 3; + v_4 = 4; + v_5 = 5; + } + } + // The version values are from 1 to 5 in the most significant 4 bits of the timestamp + // (bits 4 through 7 of the time_hi_and_version field). + // default = Choice.Enum.v_1 + optional Choice.Enum choice = 1; +} + +// The variant field determines the layout of the UUID. That is, the interpretation +// of all other bits in the UUID depends on the setting of the bits in the variant +// field). +message Dhcpv6ClientOptionsDuidUuidVariant { + + message Choice { + enum Enum { + unspecified = 0; + ncs = 1; + dce = 2; + guid = 3; + var_reserved = 4; + } + } + // The current variants are ncs, dce,microsoft guid and reserved. + // default = Choice.Enum.ncs + optional Choice.Enum choice = 1; +} + +// The link-layer address configured in DUID llt or DUID ll. +message Dhcpv6ClientOptionsLinkLayerAddress { + + // The MAC address that becomes part of DUID llt or DUID ll. + // required = true + optional string value = 3; +} + +// Description missing in models +message Dhcpv6ClientOptionsOptionsRequest { + + message Choice { + enum Enum { + unspecified = 0; + vendor_information = 1; + name_servers = 2; + fqdn = 3; + bootfile_url = 4; + sztp = 5; + custom = 6; + } + } + // The Option Request option is used to identify a list of options in a message between + // a client and a server. The option code is 6. - Vendor_specific information option, + // requested by clients for vendor-specific informations from servers. - DNS Recursive + // Name Server Option, requested by clients to get the list ofIPv6 addresses of DNS + // recursive name + // servers to which DNS queries may be sent by the client resolver in order of preference. + // - Client FQDN option - indicates whether the client or the DHCP server should update + // DNS with the AAAA record + // corresponding to the assigned IPv6 address and the FQDN provided in this option. + // The DHCP server always updates + // the PTR record. + // - bootfile_url, if client is configured for network booting then the client must + // use this option to obtain the boot + // file url from the server. + // - sztp. Securely provision a networking device when it is booting in a factory-default + // state. + // default = Choice.Enum.vendor_information + optional Choice.Enum choice = 1; + + // Description missing in models + Dhcpv6ClientOptionsCustom custom = 2; +} + +// The Custom option is used to provide a not so well known option in the message between +// a client and a server. +message Dhcpv6ClientOptionsCustom { + + // The type of the Custom option TLV. + // required = true + optional uint32 type = 1; +} + +// This option is used by a client to identify the vendor that manufactured the hardware +// on which the client is running. The option code is 16. +message Dhcpv6ClientOptionsVendorClass { + + // The vendor's registered Enterprise Number as registered with IANA. + // required = true + optional uint32 enterprise_number = 1; + + // The opaque data representing the hardware configuration of the host on which the + // client is running. Examples of class data instances might include the version of + // the operating system the client is running or the amount of memory installed on + // the client. + repeated string class_data = 2; + + // The dhcpv6 client messages where this option is included. + // required = true + Dhcpv6ClientOptionsIncludedMessages associated_dhcp_messages = 3; +} + +// The dhcpv6 client messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 client messages, else based +// on the selection in particular Dhcpv6 client messages the option will be included. +message Dhcpv6ClientOptionsOptionsRequestIncludedMessages { + + message Choice { + enum Enum { + unspecified = 0; + all = 1; + msg_types = 2; + } + } + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.all + optional Choice.Enum choice = 1; + + // User must specify the Dhcpv6 message type. + Dhcpv6ClientOptionsMessageType msg_types = 2; +} + +// The dhcpv6 client messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 client messages, else based +// on the selection in particular Dhcpv6 client messages the option will be included. +message Dhcpv6ClientOptionsIncludedMessages { + + message Choice { + enum Enum { + unspecified = 0; + all = 1; + msg_types = 2; + } + } + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.all + optional Choice.Enum choice = 1; + + // User must specify the Dhcpv6 message type. + repeated Dhcpv6ClientOptionsMessageType msg_types = 2; +} + +// The dhcpv6 client messages where the option will be included. +message Dhcpv6ClientOptionsMessageType { + + message Choice { + enum Enum { + unspecified = 0; + solicit = 1; + request = 2; + inform_request = 3; + release = 4; + renew = 5; + rebind = 6; + } + } + // The client message name where the option is included, by default it is all. + // default = Choice.Enum.solicit + optional Choice.Enum choice = 1; +} + +// This option is used by clients to exchange vendor-specific information. The option +// code is 17. +message Dhcpv6ClientOptionsVendorInfo { + + // The vendor's registered Enterprise Number as registered with IANA. + // required = true + optional uint32 enterprise_number = 1; + + // An opaque object of octets,interpreted by vendor-specific code on the clients and + // servers. + repeated Dhcpv6OptionsVendorSpecificOptions option_data = 2; + + // The list of dhcpv6 client messages where this option is included. + // required = true + Dhcpv6ClientOptionsIncludedMessages associated_dhcp_messages = 3; +} + +// This option is used by servers to exchange vendor-specific information. The option +// code is 17. +message Dhcpv6ServerOptionsVendorInfo { + + // The vendor's registered Enterprise Number as registered with IANA. + // required = true + optional uint32 enterprise_number = 1; + + // An opaque object of octets,interpreted by vendor-specific code on the clients and + // servers. + repeated Dhcpv6OptionsVendorSpecificOptions option_data = 2; + + // The list of dhcpv6 client messages where this option is included. + // required = true + Dhcpv6ServerOptionsIncludedMessages associated_dhcp_messages = 3; +} + +// The dhcpv6 server messages where the option will be included. If all is selected +// the selected option will be added in the all the Dhcpv6 server messages, else based +// on the selection in particular Dhcpv6 server messages the option will be included. +message Dhcpv6ServerOptionsIncludedMessages { + + message Choice { + enum Enum { + unspecified = 0; + all = 1; + msg_types = 2; + } + } + // The server message name where the option is included, by default it is all. + // default = Choice.Enum.all + optional Choice.Enum choice = 1; + + // User must specify the Dhcpv6 message type. + repeated Dhcpv6ServerOptionsMessageType msg_types = 2; +} + +// The dhcpv6 server messages where the option will be included. +message Dhcpv6ServerOptionsMessageType { + + message Choice { + enum Enum { + unspecified = 0; + advertise = 1; + reply = 2; + re_configure = 3; + } + } + // The server message name where the option is included, by default it is all. + // default = Choice.Enum.advertise + optional Choice.Enum choice = 1; +} + +// The encapsulated vendor-specific options field is encoded as a sequence of code/length/value +// fields of identical format to the DHCP options field. The option codes are defined +// by the vendor identified in the enterprise-number field and are not managed by IANA. +message Dhcpv6OptionsVendorSpecificOptions { + + // The code for the encapsulated option. + // required = true + optional uint32 code = 1; + + // The data for the encapsulated option. + // required = true + optional string data = 2; +} + +// DHCPv6 server needs to know the FQDN of the client for the addresses for the client's +// IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows +// the client to convey its FQDN to the server. The Client FQDN option also contains +// Flags that DHCPv6 clients and servers use to negotiate who does which updates. The +// option code is 39. +message Dhcpv6ClientOptionsFqdn { + + // The S bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) + // DNS updates. A client sets the bit to 0 to indicate that the server should not perform + // the updates and 1 to indicate that the server should perform the updates. The state + // of the bit in the reply from the server indicates the action to be taken by the + // server. If it is 1, the server has taken responsibility for AAAA RR updates for the + // FQDN. + // default = True + optional bool flag_s = 1; + + // The O bit indicates whether the server has overridden the client's preference for + // the S bit. A client must set this bit to 0. A server must set this bit to 1 if the + // S bit in its reply to the client does not match the S bit received from the client. + // default = False + optional bool flag_o = 2; + + // The N bit indicates whether the server should not perform any DNS updates. A client + // sets this bit to 0 to request that the server should perform updates (the PTR RR + // and possibly the AAAA RR based on the S bit) or to 1 to request that the server + // should not perform any DNS updates. A server sets the N bit to indicate whether the + // server shall (0) or shall not (1) perform DNS updates. If the N bit is 1, the S + // bit MUST be 0. + // default = False + optional bool flag_n = 3; + + // The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. + // A client MAY also leave the Domain Name field empty if it desires the server to + // provide a name. A fully qualified domain name (FQDN) is the complete address of + // an internet host or computer. It provides its exact location within the domain name + // system (DNS) by specifying the hostname, domain name and top-level domain (TLD). + // An FQDN isn't the same as a URL but rather is a part of it that fully identifies + // the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol + // information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol + // Secure (HTTPS), which is always used at the beginning of a URL. Therefore, adding + // the prefix http:// or https:// to the FQDN turns it into a full URL. One example + // can be microsoft.com. + // required = true + optional string domain_name = 4; + + // The list of dhcpv6 client messages where this option is included. + Dhcpv6ClientOptionsIncludedMessages associated_dhcp_messages = 5; +} + +// The server sends this option to inform the client about a URL to a boot file. This +// information is required for booting over the network includes the details about +// the server on which the boot files can be found, the protocol to be used for the +// download (for example,HTTP or TFTP, and the path and name of the boot file on the +// server. The option code is 59. The URL will contain the network communication protocol, +// a subdomain, a domain name, and its extension. If the host in the URL is expressed +// using an IPv6 address rather than a domain name, the address in the URL then must +// be enclosed in [ and ] characters, conforming to [RFC3986]. Eg of a boot file url +// can be tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi. +message Dhcpv6ServerOptionsBootfileUrl { + + // The URL for the boot file. It must comply with STD 66 format. + // required = true + optional string url = 1; + + // They are used to specify parameters for the boot file (similar to the command line + // arguments in most modern operating systems). For example, these parameters could + // be used to specify the root file system of the OS kernel, or the location from which + // a second-stage boot-loader program can download its configuration file. + repeated Dhcpv6ServerOptionsBootFileParams bootfile_params = 2; + + // The list of dhcpv6 client messages where this option is included. + Dhcpv6ServerOptionsIncludedMessages associated_dhcp_messages = 3; +} + +// The option code is 60. They are used to specify parameters for the boot file (similar +// to the command line arguments in most modern operating systems). For example, these +// parameters could be used to specify the root file system of the OS kernel, or the +// location from which a second-stage boot-loader program can download its configuration +// file. +message Dhcpv6ServerOptionsBootFileParams { + + // UTF-8 strings are parameters needed for booting, e.g., kernel parameters. + // required = true + optional string parameter = 1; +} + // A container for layer1 settings. message Layer1 { @@ -1940,13 +2560,13 @@ message BgpV4Interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name - // - /components/schemas/DhcpClient.V4/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name // // // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name - // - /components/schemas/DhcpClient.V4/properties/name + // - /components/schemas/Device.Dhcpv4client/properties/name // // required = true optional string ipv4_name = 1; @@ -5523,13 +6143,13 @@ message BgpV6Interface { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name - // - /components/schemas/DhcpClient.V6/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // // // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name - // - /components/schemas/DhcpClient.V6/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // // required = true optional string ipv6_name = 1; @@ -6468,86 +7088,270 @@ message DeviceDhcpServer { // This contains an array of references to IPv4 interfaces, each of which will contain // one DHCPv4 server. repeated DhcpServerV4 ipv4_interfaces = 2; + + // This contains an array of references to IPv6 interfaces, each of which will contain + // one DHCPv6 server. + repeated DhcpServerV6 ipv6_interfaces = 3; +} + +// Configuration for emulated DHCPv4 Server. +message DhcpServerV4 { + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + optional string name = 1; + + // The unique name of the IPv4 on which DHCPv4 server will run. + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // + // required = true + optional string ipv4_name = 2; + + // List of DHCPv4 Server Lease parameters + repeated DhcpServerV4Pool address_pools = 3; } -// Configuration for emulated DHCPv4 Server. -message DhcpServerV4 { +// Configuration for DHCPv4 address pool for a lease. +message DhcpServerV4Pool { + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + optional string name = 1; + + // The duration of time in seconds that is assigned to a lease. + // default = 86400 + optional uint32 lease_time = 2; + + // The IPv4 address of the first lease pool. + // required = true + optional string start_address = 3; + + // The IPv4 network prefix length to be applied to the address. + // default = 24 + optional uint32 prefix_length = 4; + + // The total number of addresses in the pool. + // default = 1 + optional uint32 count = 5; + + // The increment value for the lease address within the lease pool. The value is incremented + // according to the prefix_length and step. + // default = 1 + optional uint32 step = 6; + + // Optional configuration for DHCPv4 address pool for the lease. + DhcpServerV4PoolOption options = 7; +} + +// Optional configuration for DHCPv4 address pool for the lease. +message DhcpServerV4PoolOption { + + // The Router address advertised by the DHCPv4 server in Offer and Ack messages. + // default = 0.0.0.0 + optional string router_address = 1; + + // The primary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + // default = 0.0.0.0 + optional string primary_dns_server = 2; + + // The primary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + // default = 0.0.0.0 + optional string secondary_dns_server = 3; + + // If selected, the DHCP server includes in its replies the TLV information for the + // DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from + // a DHCP relay agent, otherwise it replies without including this TLV. + // default = True + optional bool echo_relay_with_tlv_82 = 4; +} + +// Configuration for emulated DHCPv6 Server. +message DhcpServerV6 { + + // Globally unique name of an object. It also serves as the primary key for arrays of + // objects. + // required = true + optional string name = 1; + + // The unique name of the IPv6 on which DHCPv6 server will run. + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // + // required = true + optional string ipv6_name = 2; + + // If Rapid Commit is set, server responds to client initiated Rapid Commit two-message + // exchanges. + // default = False + optional bool rapid_commit = 3; + + // If the server does not have an address to which it can send the Reconfigure message + // directly to the client, the server uses a Relay-reply message to send the Reconfigure + // message to a relay agent that will relay the message to the client. + // default = False + optional bool reconfigure_via_relay_agent = 4; + + // Array of DHCP pools configured on a server. + repeated DhcpV6ServerLease leases = 5; + + // Optional DHCPv4 Server options that are sent in Dhcp server messages. + Dhcpv6ServerOptions options = 6; +} + +// DHCP server options, these configured options are sent in Dhcp server messages. +message Dhcpv6ServerOptions { + + // Additional DHCP server primary dns and other configuration options. + DhcpV6ServerDns dns = 1; + + // This option is used by servers to exchange vendor-specific information with clients. + Dhcpv6ServerOptionsVendorInfo vendor_info = 2; + + // The server sends this option to inform the client about a URL to a boot file which + // client will use for + // network boots. + Dhcpv6ServerOptionsBootfileUrl bootfile_url = 3; +} + +// One DHCP pool configuration on a server. +message DhcpV6ServerLease { + + // The Life Time length in seconds that is assigned to a lease if the requesting DHCP + // client does not specify a specific expiration time. + // default = 86400 + optional uint32 lease_time = 1; + + // Description missing in models + // required = true + Dhcpv6ServerIaType ia_type = 5; +} + +// Description missing in models +message Dhcpv6ServerIaType { + + message Choice { + enum Enum { + unspecified = 0; + iana = 1; + iata = 2; + iapd = 3; + ianapd = 4; + } + } + // Identity Association: a collection of leases assigned to a client. Each IA has an + // associated IAID. Each IA holds one type of lease, like an identity association for + // temporary addresses (IA_TA) holds temporary addresses, and an identity association + // for prefix delegation (IA_PD). + // default = Choice.Enum.iana + optional Choice.Enum choice = 1; + + // Description missing in models + Dhcpv6ServerPoolInfo iana = 2; - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - // required = true - optional string name = 1; + // Description missing in models + Dhcpv6ServerPoolInfo iata = 3; - // The unique name of the IPv4 on which DHCPv4 server will run. - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // - // x-constraint: - // - /components/schemas/Device.Ipv4/properties/name - // - // required = true - optional string ipv4_name = 2; + // Description missing in models + Dhcpv6ServerIapdPoolInfo iapd = 4; - // List of DHCPv4 Server Lease parameters - repeated DhcpServerV4Pool address_pools = 3; + // Description missing in models + Dhcpv6ServerIanapdPoolInfo ianapd = 5; } -// Configuration for DHCPv4 address pool for a lease. -message DhcpServerV4Pool { +// The container for pool configurations for IA types iana and iata. +message Dhcpv6ServerPoolInfo { - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. - optional string name = 1; + // The first IP address of the lease pool. + optional string start_address = 1; - // The duration of time in seconds that is assigned to a lease. - // default = 86400 - optional uint32 lease_time = 2; + // The IPv6 network prefix length is used for incrementing the lease address within + // the lease pool where multiple addresses are configured by using the size field. The + // address is incremented using the configured Prefix Length and Step. + // default = 64 + optional uint32 prefix_len = 2; - // The IPv4 address of the first lease pool. - // required = true - optional string start_address = 3; + // The total number of addresses in the pool. + // default = 1 + optional uint32 size = 3; - // The IPv4 network prefix length to be applied to the address. - // default = 24 - optional uint32 prefix_length = 4; + // The increment value for the lease address within the lease pool where multiple addresses + // are present. The value is incremented according to the configured Prefix Length and + // Step. + // default = 1 + optional uint32 step = 4; +} + +// The container for prefix pool configurations for IA type iapd. +message Dhcpv6ServerIapdPoolInfo { + + // The first IP address of the prefix pool. + optional string start_prefix_address = 1; + + // The IPv6 network prefix length is used for incrementing the lease address within + // the lease pool where multiple addresses are configured by using the size field. The + // address is incremented using the configured Prefix Length and Step. + // default = 64 + optional uint32 configured_prefix_len = 2; // The total number of addresses in the pool. - // default = 1 - optional uint32 count = 5; + // default = 10 + optional uint32 prefix_size = 3; - // The increment value for the lease address within the lease pool. The value is incremented - // according to the prefix_length and step. + // The increment value for the lease address within the lease pool where multiple addresses + // are present. The value is incremented according to the Prefix Length and Step. // default = 1 - optional uint32 step = 6; + optional uint32 prefix_step = 4; - // Optional configuration for DHCPv4 address pool for the lease. - DhcpServerV4PoolOption options = 7; + // The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 + // client. + // default = 64 + optional uint32 advertised_prefix_len = 5; } -// Optional configuration for DHCPv4 address pool for the lease. -message DhcpServerV4PoolOption { +// The container for pool configurations for IA type ianapd. +message Dhcpv6ServerIanapdPoolInfo { - // The Router address advertised by the DHCPv4 server in Offer and Ack messages. - // default = 0.0.0.0 - optional string router_address = 1; + // The pool configurations for IA types iana in ianapd. + Dhcpv6ServerPoolInfo iana = 1; - // The primary DNS server address that is offered to DHCP clients that request this - // information through a TLV option. - // default = 0.0.0.0 - optional string primary_dns_server = 2; + // The pool configurations for IA types iapd in ianapd. + Dhcpv6ServerIapdPoolInfo iapd = 2; +} + +// Optional Dns configuration for DHCPv6 server. +message DhcpV6ServerDns { // The primary DNS server address that is offered to DHCP clients that request this // information through a TLV option. - // default = 0.0.0.0 - optional string secondary_dns_server = 3; + // required = true + optional string primary = 1; - // If selected, the DHCP server includes in its replies the TLV information for the - // DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from - // a DHCP relay agent, otherwise it replies without including this TLV. - // default = True - optional bool echo_relay_with_tlv_82 = 4; + // DHCP server secondary dns configuration options. If included secondary DNS server + // address will be offered to + // DHCP clients that request this information through a TLV option. + repeated DhcpV6ServerSecondaryDns secondary_dns = 2; +} + +// Advanced Dns configuration for DHCPv6 server. +message DhcpV6ServerSecondaryDns { + + // The secondary DNS server address that is offered to DHCP clients that request this + // information through a TLV option. + optional string ip = 1; } // A high level data plane traffic flow. @@ -6750,6 +7554,7 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // // // x-constraint: @@ -6763,6 +7568,7 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // repeated string tx_names = 2; @@ -6779,6 +7585,7 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // // // x-constraint: @@ -6792,6 +7599,7 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // - /components/schemas/Device.Dhcpv4client/properties/name + // - /components/schemas/Device.Dhcpv6client/properties/name // repeated string rx_names = 3; } @@ -7210,6 +8018,23 @@ message FlowIpv6 { PatternFlowIpv6Dst dst = 8; } +// The OTG implementation can provide a system generated, value for this property. +message FlowIpv6Auto { + + message Choice { + enum Enum { + unspecified = 0; + dhcp = 1; + } + } + // The method to be used to provide the system generated value. + // The dhcp option populates the field based on the dynamic IPv6 address that has been + // assigned to the DHCPv6 client + // by a DHCPv6 server. + // required = true + optional Choice.Enum choice = 1; +} + // IEEE 802.1Qbb PFC Pause packet header. message FlowPfcPause { @@ -10460,6 +11285,8 @@ message MetricsRequest { rsvp = 9; dhcpv4_client = 10; dhcpv4_server = 11; + dhcpv6_client = 12; + dhcpv6_server = 13; } } // Description missing in models @@ -10498,6 +11325,12 @@ message MetricsRequest { // Description missing in models Dhcpv4ServerMetricsRequest dhcpv4_server = 12; + + // Description missing in models + Dhcpv6ClientMetricsRequest dhcpv6_client = 13; + + // Description missing in models + Dhcpv6ServerMetricsRequest dhcpv6_server = 14; } // Response containing chosen traffic generator metrics. @@ -10517,6 +11350,8 @@ message MetricsResponse { rsvp_metrics = 9; dhcpv4_client = 10; dhcpv4_server = 11; + dhcpv6_client = 12; + dhcpv6_server = 13; } } // Description missing in models @@ -10555,6 +11390,12 @@ message MetricsResponse { // Description missing in models repeated Dhcpv4ServerMetric dhcpv4server_metrics = 12; + + // Description missing in models + repeated Dhcpv6ClientMetric dhcpv6client_metrics = 13; + + // Description missing in models + repeated Dhcpv6ServerMetric dhcpv6server_metrics = 14; } // The port result request to the traffic generator @@ -11867,6 +12708,184 @@ message Dhcpv4ServerMetric { optional uint64 declines_received = 8; } +// The request to retrieve DHCPv6 per client metrics/statistics. +message Dhcpv6ClientMetricsRequest { + + // The names of DHCPv6 clients to return results for. An empty list will return results + // for all DHCPv6 client. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + // + repeated string client_names = 1; + + message ColumnNames { + enum Enum { + unspecified = 0; + solicits_sent = 1; + advertisements_received = 2; + advertisements_ignored = 3; + requests_sent = 4; + nacks_received = 5; + replies_received = 6; + information_requests_sent = 7; + renews_sent = 8; + rebinds_sent = 9; + releases_sent = 10; + reconfigures_received = 11; + rapid_commit_solicits_sent = 12; + rapid_commit_replies_received = 13; + } + } + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the DHCPv6 client cannot be excluded. + repeated ColumnNames.Enum column_names = 2; +} + +// DHCPv6 per peer statistics information. +message Dhcpv6ClientMetric { + + // The name of a configured DHCPv6 client. + optional string name = 1; + + // Number of DHCPSOLICIT messages sent. + optional uint64 solicits_sent = 2; + + // Number of DHCPADVERTISE messages received. + optional uint64 advertisements_received = 3; + + // Number of DHCPADVERTISE messages ignored. + optional uint64 advertisements_ignored = 4; + + // Number of DHCPREQUEST messages sent. + optional uint64 requests_sent = 5; + + // Number of negative lease DHCPNACK messages received. + optional uint64 nacks_received = 6; + + // Number of DHCPOFFER messages received. + optional uint64 replies_received = 7; + + // Number of DHCP Inform requests sent. + optional uint64 information_requests_sent = 8; + + // Number of DHCP renew messages sent. + optional uint64 renews_sent = 9; + + // Number of DHCP rebind messages sent. + optional uint64 rebinds_sent = 10; + + // Number of DHCP Release messages sent. + optional uint64 releases_sent = 11; + + // Number of DHCP Reconfigure messages received. + optional uint64 reconfigures_received = 12; + + // Number of rapid commit DHCPSOLICIT messages sent. + optional uint64 rapid_commit_solicits_sent = 13; + + // Number of rapid commit DHCP Reply messages received. + optional uint64 rapid_commit_replies_received = 14; +} + +// The request to retrieve DHCPv6 per Server metrics/statistics. +message Dhcpv6ServerMetricsRequest { + + // The names of DHCPv6 Servers to return results for. An empty list will return results + // for all DHCPv6 Server. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6Server/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6Server/properties/name + // + repeated string server_names = 1; + + message ColumnNames { + enum Enum { + unspecified = 0; + solicits_received = 1; + solicits_ignored = 2; + advertisements_sent = 3; + requests_received = 4; + nacks_sent = 5; + confirms_received = 6; + renewals_received = 7; + rebinds_received = 8; + replies_sent = 9; + releases_received = 10; + declines_received = 11; + information_requests_received = 12; + relay_forwards_received = 13; + relay_replies_sent = 14; + reconfigures_sent = 15; + } + } + // The list of column names that the returned result set will contain. If the list is + // empty then all columns will be returned except for any result_groups. The name of + // the DHCPv6 server cannot be excluded. + repeated ColumnNames.Enum column_names = 2; +} + +// DHCPv6 per server statistics information. +message Dhcpv6ServerMetric { + + // The name of a configured DHCPv6 Server. + optional string name = 1; + + // Number of DHCPSOLICIT messages received. + optional uint64 solicits_received = 2; + + // Number of DHCPSOLICIT messages ignored. + optional uint64 solicits_ignored = 3; + + // Number of DHCP Advertise messages sent. + optional uint64 advertisements_sent = 4; + + // Number of DHCPREQUEST messages received. + optional uint64 requests_received = 5; + + // Number of naks sent for DHCPREQUEST messages. + optional uint64 nacks_sent = 6; + + // Number of DHCP Confirm messages received. + optional uint64 confirms_received = 7; + + // Number of DHCP Renewal messages received. + optional uint64 renewals_received = 8; + + // Number of DHCP Rebind messages received. + optional uint64 rebinds_received = 9; + + // Number of DHCP Reply messages sent. + optional uint64 replies_sent = 10; + + // Number of DHCP Release messages received. + optional uint64 releases_received = 11; + + // Number of DHCP Decline messages received. + optional uint64 declines_received = 12; + + // Number of DHCP Information Request messages received. + optional uint64 information_requests_received = 13; + + // Number of DHCP Relay agent forward messages received. + optional uint64 relay_forwards_received = 14; + + // Number of DHCP reply messages sent to Relay agent. + optional uint64 relay_replies_sent = 15; + + // Number of DHCP Reconfigure messages sent. + optional uint64 reconfigures_sent = 16; +} + // Request to traffic generator for states of choice message StatesRequest { @@ -11881,6 +12900,8 @@ message StatesRequest { rsvp_lsps = 6; dhcpv4_interfaces = 7; dhcpv4_leases = 8; + dhcpv6_interfaces = 9; + dhcpv6_leases = 10; } } // Description missing in models @@ -11910,6 +12931,12 @@ message StatesRequest { // Description missing in models Dhcpv4LeaseStateRequest dhcpv4_leases = 9; + + // Description missing in models + Dhcpv6InterfaceStateRequest dhcpv6_interfaces = 10; + + // Description missing in models + Dhcpv6LeaseStateRequest dhcpv6_leases = 11; } // Response containing chosen traffic generator states @@ -11926,6 +12953,8 @@ message StatesResponse { rsvp_lsps = 6; dhcpv4_interfaces = 7; dhcpv4_leases = 8; + dhcpv6_interfaces = 9; + dhcpv6_leases = 10; } } // Description missing in models @@ -11955,6 +12984,12 @@ message StatesResponse { // Description missing in models repeated Dhcpv4LeasesState dhcpv4_leases = 9; + + // Description missing in models + repeated Dhcpv6InterfaceState dhcpv6_interfaces = 10; + + // Description missing in models + repeated Dhcpv6LeasesState dhcpv6_leases = 11; } // The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). @@ -13290,6 +14325,104 @@ message Dhcpv4LeaseState { optional string remote_id = 8; } +// The request for assigned IPv6 address information associated with DHCP Client sessions. +message Dhcpv6InterfaceStateRequest { + + // The names of DHCPv6 client to return results for. An empty list will return results + // for all DHCPv6 Client address information. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6client/properties/name + // + repeated string dhcp_client_names = 1; +} + +// The IPv6 address associated with this DHCP Client session. +message Dhcpv6InterfaceState { + + // The name of a DHCPv6 Client. + optional string dhcp_client_name = 1; + + // The IPv6 IAPD address associated with this DHCP Client session. + optional string ipv6_iapd_address = 2; + + // The prefix length of the IPv6 IAPD address associated with this DHCP Client session. + optional uint32 iapd_prefix_length = 3; + + // The IPv6 address associated with this DHCP Client session. + optional string ipv6_address = 4; + + // The Gateway IPV6 address associated with this DHCP Client session. + optional string gateway_address = 5; + + // The duration of the IPv6 address lease, in seconds. + optional uint32 lease_time = 6; + + // Time in seconds until the DHCPv6 client starts renewing the lease. + optional uint32 renew_time = 7; + + // Time in seconds until the DHCPv6 client starts rebinding. + optional uint32 rebind_time = 8; +} + +// The request to retrieve DHCP Server host allocated status. +message Dhcpv6LeaseStateRequest { + + // The names of DHCPv6 server to return results for. An empty list will return results + // for all DHCPv6 servers. + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6server/properties/name + // + // + // x-constraint: + // - /components/schemas/Device.Dhcpv6server/properties/name + // + repeated string dhcp_server_names = 1; +} + +// Lease information of DHCP Server. +message Dhcpv6LeasesState { + + // The name of a DHCP Server. + optional string dhcp_server_name = 1; + + // Description missing in models + repeated Dhcpv6ServerLeaseState leases = 2; +} + +// IPv6 unicast prefix. +message Dhcpv6ServerLeaseState { + + // The IPv6 address associated with this lease. + optional string address = 1; + + // The time in seconds, IP address lease will expire. + optional uint32 valid_time = 2; + + // The time in seconds, elapsed time since address has been renewed. + optional uint32 preferred_time = 3; + + // Time in seconds until the DHCPv6 client starts renewing the lease. + optional uint32 renew_time = 4; + + // Time in seconds until the DHCPv6 client starts rebinding. + optional uint32 rebind_time = 5; + + // The ID of the DHCPv6 client holding this lease. + optional string client_id = 6; + + // The Remote ID option found in the last request message. + optional string remote_id = 7; + + // The Interface ID option found in the last request message. + optional string interface_id = 8; +} + // The capture result request to the traffic generator. Stops the port capture on the // port_name and returns the capture. message CaptureRequest { @@ -16479,6 +17612,7 @@ message PatternFlowIpv6Src { values = 3; increment = 4; decrement = 5; + auto = 1; } } // Description missing in models @@ -16503,6 +17637,9 @@ message PatternFlowIpv6Src { // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6SrcMetricTag metric_tags = 7; + + // Description missing in models + FlowIpv6Auto auto = 8; } // ipv6 counter pattern @@ -16551,6 +17688,7 @@ message PatternFlowIpv6Dst { values = 3; increment = 4; decrement = 5; + auto = 1; } } // Description missing in models @@ -16575,6 +17713,9 @@ message PatternFlowIpv6Dst { // a corresponding header field for metrics per each applicable value. These would appear // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6DstMetricTag metric_tags = 7; + + // Description missing in models + FlowIpv6Auto auto = 8; } // mac counter pattern diff --git a/gosnappi/pattern_flow_ipv6_dst.go b/gosnappi/pattern_flow_ipv6_dst.go index 9402e680..d6346fe9 100644 --- a/gosnappi/pattern_flow_ipv6_dst.go +++ b/gosnappi/pattern_flow_ipv6_dst.go @@ -19,6 +19,7 @@ type patternFlowIpv6Dst struct { incrementHolder PatternFlowIpv6DstCounter decrementHolder PatternFlowIpv6DstCounter metricTagsHolder PatternFlowIpv6DstPatternFlowIpv6DstMetricTagIter + autoHolder FlowIpv6Auto } func NewPatternFlowIpv6Dst() PatternFlowIpv6Dst { @@ -249,6 +250,7 @@ func (obj *patternFlowIpv6Dst) setNil() { obj.incrementHolder = nil obj.decrementHolder = nil obj.metricTagsHolder = nil + obj.autoHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -310,6 +312,11 @@ type PatternFlowIpv6Dst interface { HasDecrement() bool // MetricTags returns PatternFlowIpv6DstPatternFlowIpv6DstMetricTagIterIter, set in PatternFlowIpv6Dst MetricTags() PatternFlowIpv6DstPatternFlowIpv6DstMetricTagIter + // Auto returns FlowIpv6Auto, set in PatternFlowIpv6Dst. + // FlowIpv6Auto is the OTG implementation can provide a system generated, value for this property. + Auto() FlowIpv6Auto + // HasAuto checks if Auto has been set in PatternFlowIpv6Dst + HasAuto() bool setNil() } @@ -321,11 +328,13 @@ var PatternFlowIpv6DstChoice = struct { VALUES PatternFlowIpv6DstChoiceEnum INCREMENT PatternFlowIpv6DstChoiceEnum DECREMENT PatternFlowIpv6DstChoiceEnum + AUTO PatternFlowIpv6DstChoiceEnum }{ VALUE: PatternFlowIpv6DstChoiceEnum("value"), VALUES: PatternFlowIpv6DstChoiceEnum("values"), INCREMENT: PatternFlowIpv6DstChoiceEnum("increment"), DECREMENT: PatternFlowIpv6DstChoiceEnum("decrement"), + AUTO: PatternFlowIpv6DstChoiceEnum("auto"), } func (obj *patternFlowIpv6Dst) Choice() PatternFlowIpv6DstChoiceEnum { @@ -347,6 +356,8 @@ func (obj *patternFlowIpv6Dst) setChoice(value PatternFlowIpv6DstChoiceEnum) Pat } enumValue := otg.PatternFlowIpv6Dst_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Auto = nil + obj.autoHolder = nil obj.obj.Decrement = nil obj.decrementHolder = nil obj.obj.Increment = nil @@ -372,6 +383,10 @@ func (obj *patternFlowIpv6Dst) setChoice(value PatternFlowIpv6DstChoiceEnum) Pat obj.obj.Decrement = NewPatternFlowIpv6DstCounter().msg() } + if value == PatternFlowIpv6DstChoice.AUTO { + obj.obj.Auto = NewFlowIpv6Auto().msg() + } + return obj } @@ -565,6 +580,24 @@ func (obj *patternFlowIpv6DstPatternFlowIpv6DstMetricTagIter) appendHolderSlice( return obj } +// description is TBD +// Auto returns a FlowIpv6Auto +func (obj *patternFlowIpv6Dst) Auto() FlowIpv6Auto { + if obj.obj.Auto == nil { + obj.setChoice(PatternFlowIpv6DstChoice.AUTO) + } + if obj.autoHolder == nil { + obj.autoHolder = &flowIpv6Auto{obj: obj.obj.Auto} + } + return obj.autoHolder +} + +// description is TBD +// Auto returns a FlowIpv6Auto +func (obj *patternFlowIpv6Dst) HasAuto() bool { + return obj.obj.Auto != nil +} + func (obj *patternFlowIpv6Dst) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -612,6 +645,11 @@ func (obj *patternFlowIpv6Dst) validateObj(vObj *validation, set_default bool) { } + if obj.obj.Auto != nil { + + obj.Auto().validateObj(vObj, set_default) + } + } func (obj *patternFlowIpv6Dst) setDefault() { @@ -637,6 +675,11 @@ func (obj *patternFlowIpv6Dst) setDefault() { choices_set += 1 choice = PatternFlowIpv6DstChoice.DECREMENT } + + if obj.obj.Auto != nil { + choices_set += 1 + choice = PatternFlowIpv6DstChoice.AUTO + } if choices_set == 0 { if obj.obj.Choice == nil { obj.setChoice(PatternFlowIpv6DstChoice.VALUE) diff --git a/gosnappi/pattern_flow_ipv6_src.go b/gosnappi/pattern_flow_ipv6_src.go index 871f32cf..0ba31e3f 100644 --- a/gosnappi/pattern_flow_ipv6_src.go +++ b/gosnappi/pattern_flow_ipv6_src.go @@ -19,6 +19,7 @@ type patternFlowIpv6Src struct { incrementHolder PatternFlowIpv6SrcCounter decrementHolder PatternFlowIpv6SrcCounter metricTagsHolder PatternFlowIpv6SrcPatternFlowIpv6SrcMetricTagIter + autoHolder FlowIpv6Auto } func NewPatternFlowIpv6Src() PatternFlowIpv6Src { @@ -249,6 +250,7 @@ func (obj *patternFlowIpv6Src) setNil() { obj.incrementHolder = nil obj.decrementHolder = nil obj.metricTagsHolder = nil + obj.autoHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -310,6 +312,11 @@ type PatternFlowIpv6Src interface { HasDecrement() bool // MetricTags returns PatternFlowIpv6SrcPatternFlowIpv6SrcMetricTagIterIter, set in PatternFlowIpv6Src MetricTags() PatternFlowIpv6SrcPatternFlowIpv6SrcMetricTagIter + // Auto returns FlowIpv6Auto, set in PatternFlowIpv6Src. + // FlowIpv6Auto is the OTG implementation can provide a system generated, value for this property. + Auto() FlowIpv6Auto + // HasAuto checks if Auto has been set in PatternFlowIpv6Src + HasAuto() bool setNil() } @@ -321,11 +328,13 @@ var PatternFlowIpv6SrcChoice = struct { VALUES PatternFlowIpv6SrcChoiceEnum INCREMENT PatternFlowIpv6SrcChoiceEnum DECREMENT PatternFlowIpv6SrcChoiceEnum + AUTO PatternFlowIpv6SrcChoiceEnum }{ VALUE: PatternFlowIpv6SrcChoiceEnum("value"), VALUES: PatternFlowIpv6SrcChoiceEnum("values"), INCREMENT: PatternFlowIpv6SrcChoiceEnum("increment"), DECREMENT: PatternFlowIpv6SrcChoiceEnum("decrement"), + AUTO: PatternFlowIpv6SrcChoiceEnum("auto"), } func (obj *patternFlowIpv6Src) Choice() PatternFlowIpv6SrcChoiceEnum { @@ -347,6 +356,8 @@ func (obj *patternFlowIpv6Src) setChoice(value PatternFlowIpv6SrcChoiceEnum) Pat } enumValue := otg.PatternFlowIpv6Src_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Auto = nil + obj.autoHolder = nil obj.obj.Decrement = nil obj.decrementHolder = nil obj.obj.Increment = nil @@ -372,6 +383,10 @@ func (obj *patternFlowIpv6Src) setChoice(value PatternFlowIpv6SrcChoiceEnum) Pat obj.obj.Decrement = NewPatternFlowIpv6SrcCounter().msg() } + if value == PatternFlowIpv6SrcChoice.AUTO { + obj.obj.Auto = NewFlowIpv6Auto().msg() + } + return obj } @@ -565,6 +580,24 @@ func (obj *patternFlowIpv6SrcPatternFlowIpv6SrcMetricTagIter) appendHolderSlice( return obj } +// description is TBD +// Auto returns a FlowIpv6Auto +func (obj *patternFlowIpv6Src) Auto() FlowIpv6Auto { + if obj.obj.Auto == nil { + obj.setChoice(PatternFlowIpv6SrcChoice.AUTO) + } + if obj.autoHolder == nil { + obj.autoHolder = &flowIpv6Auto{obj: obj.obj.Auto} + } + return obj.autoHolder +} + +// description is TBD +// Auto returns a FlowIpv6Auto +func (obj *patternFlowIpv6Src) HasAuto() bool { + return obj.obj.Auto != nil +} + func (obj *patternFlowIpv6Src) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -612,6 +645,11 @@ func (obj *patternFlowIpv6Src) validateObj(vObj *validation, set_default bool) { } + if obj.obj.Auto != nil { + + obj.Auto().validateObj(vObj, set_default) + } + } func (obj *patternFlowIpv6Src) setDefault() { @@ -637,6 +675,11 @@ func (obj *patternFlowIpv6Src) setDefault() { choices_set += 1 choice = PatternFlowIpv6SrcChoice.DECREMENT } + + if obj.obj.Auto != nil { + choices_set += 1 + choice = PatternFlowIpv6SrcChoice.AUTO + } if choices_set == 0 { if obj.obj.Choice == nil { obj.setChoice(PatternFlowIpv6SrcChoice.VALUE) diff --git a/gosnappi/states_request.go b/gosnappi/states_request.go index df7a342e..a83fa96b 100644 --- a/gosnappi/states_request.go +++ b/gosnappi/states_request.go @@ -24,6 +24,8 @@ type statesRequest struct { rsvpLspsHolder RsvpLspsStateRequest dhcpv4InterfacesHolder Dhcpv4InterfaceStateRequest dhcpv4LeasesHolder Dhcpv4LeaseStateRequest + dhcpv6InterfacesHolder Dhcpv6InterfaceStateRequest + dhcpv6LeasesHolder Dhcpv6LeaseStateRequest } func NewStatesRequest() StatesRequest { @@ -259,6 +261,8 @@ func (obj *statesRequest) setNil() { obj.rsvpLspsHolder = nil obj.dhcpv4InterfacesHolder = nil obj.dhcpv4LeasesHolder = nil + obj.dhcpv6InterfacesHolder = nil + obj.dhcpv6LeasesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -356,6 +360,22 @@ type StatesRequest interface { SetDhcpv4Leases(value Dhcpv4LeaseStateRequest) StatesRequest // HasDhcpv4Leases checks if Dhcpv4Leases has been set in StatesRequest HasDhcpv4Leases() bool + // Dhcpv6Interfaces returns Dhcpv6InterfaceStateRequest, set in StatesRequest. + // Dhcpv6InterfaceStateRequest is the request for assigned IPv6 address information associated with DHCP Client sessions. + Dhcpv6Interfaces() Dhcpv6InterfaceStateRequest + // SetDhcpv6Interfaces assigns Dhcpv6InterfaceStateRequest provided by user to StatesRequest. + // Dhcpv6InterfaceStateRequest is the request for assigned IPv6 address information associated with DHCP Client sessions. + SetDhcpv6Interfaces(value Dhcpv6InterfaceStateRequest) StatesRequest + // HasDhcpv6Interfaces checks if Dhcpv6Interfaces has been set in StatesRequest + HasDhcpv6Interfaces() bool + // Dhcpv6Leases returns Dhcpv6LeaseStateRequest, set in StatesRequest. + // Dhcpv6LeaseStateRequest is the request to retrieve DHCP Server host allocated status. + Dhcpv6Leases() Dhcpv6LeaseStateRequest + // SetDhcpv6Leases assigns Dhcpv6LeaseStateRequest provided by user to StatesRequest. + // Dhcpv6LeaseStateRequest is the request to retrieve DHCP Server host allocated status. + SetDhcpv6Leases(value Dhcpv6LeaseStateRequest) StatesRequest + // HasDhcpv6Leases checks if Dhcpv6Leases has been set in StatesRequest + HasDhcpv6Leases() bool setNil() } @@ -371,6 +391,8 @@ var StatesRequestChoice = struct { RSVP_LSPS StatesRequestChoiceEnum DHCPV4_INTERFACES StatesRequestChoiceEnum DHCPV4_LEASES StatesRequestChoiceEnum + DHCPV6_INTERFACES StatesRequestChoiceEnum + DHCPV6_LEASES StatesRequestChoiceEnum }{ IPV4_NEIGHBORS: StatesRequestChoiceEnum("ipv4_neighbors"), IPV6_NEIGHBORS: StatesRequestChoiceEnum("ipv6_neighbors"), @@ -380,6 +402,8 @@ var StatesRequestChoice = struct { RSVP_LSPS: StatesRequestChoiceEnum("rsvp_lsps"), DHCPV4_INTERFACES: StatesRequestChoiceEnum("dhcpv4_interfaces"), DHCPV4_LEASES: StatesRequestChoiceEnum("dhcpv4_leases"), + DHCPV6_INTERFACES: StatesRequestChoiceEnum("dhcpv6_interfaces"), + DHCPV6_LEASES: StatesRequestChoiceEnum("dhcpv6_leases"), } func (obj *statesRequest) Choice() StatesRequestChoiceEnum { @@ -401,6 +425,10 @@ func (obj *statesRequest) setChoice(value StatesRequestChoiceEnum) StatesRequest } enumValue := otg.StatesRequest_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Dhcpv6Leases = nil + obj.dhcpv6LeasesHolder = nil + obj.obj.Dhcpv6Interfaces = nil + obj.dhcpv6InterfacesHolder = nil obj.obj.Dhcpv4Leases = nil obj.dhcpv4LeasesHolder = nil obj.obj.Dhcpv4Interfaces = nil @@ -450,6 +478,14 @@ func (obj *statesRequest) setChoice(value StatesRequestChoiceEnum) StatesRequest obj.obj.Dhcpv4Leases = NewDhcpv4LeaseStateRequest().msg() } + if value == StatesRequestChoice.DHCPV6_INTERFACES { + obj.obj.Dhcpv6Interfaces = NewDhcpv6InterfaceStateRequest().msg() + } + + if value == StatesRequestChoice.DHCPV6_LEASES { + obj.obj.Dhcpv6Leases = NewDhcpv6LeaseStateRequest().msg() + } + return obj } @@ -677,6 +713,62 @@ func (obj *statesRequest) SetDhcpv4Leases(value Dhcpv4LeaseStateRequest) StatesR return obj } +// description is TBD +// Dhcpv6Interfaces returns a Dhcpv6InterfaceStateRequest +func (obj *statesRequest) Dhcpv6Interfaces() Dhcpv6InterfaceStateRequest { + if obj.obj.Dhcpv6Interfaces == nil { + obj.setChoice(StatesRequestChoice.DHCPV6_INTERFACES) + } + if obj.dhcpv6InterfacesHolder == nil { + obj.dhcpv6InterfacesHolder = &dhcpv6InterfaceStateRequest{obj: obj.obj.Dhcpv6Interfaces} + } + return obj.dhcpv6InterfacesHolder +} + +// description is TBD +// Dhcpv6Interfaces returns a Dhcpv6InterfaceStateRequest +func (obj *statesRequest) HasDhcpv6Interfaces() bool { + return obj.obj.Dhcpv6Interfaces != nil +} + +// description is TBD +// SetDhcpv6Interfaces sets the Dhcpv6InterfaceStateRequest value in the StatesRequest object +func (obj *statesRequest) SetDhcpv6Interfaces(value Dhcpv6InterfaceStateRequest) StatesRequest { + obj.setChoice(StatesRequestChoice.DHCPV6_INTERFACES) + obj.dhcpv6InterfacesHolder = nil + obj.obj.Dhcpv6Interfaces = value.msg() + + return obj +} + +// description is TBD +// Dhcpv6Leases returns a Dhcpv6LeaseStateRequest +func (obj *statesRequest) Dhcpv6Leases() Dhcpv6LeaseStateRequest { + if obj.obj.Dhcpv6Leases == nil { + obj.setChoice(StatesRequestChoice.DHCPV6_LEASES) + } + if obj.dhcpv6LeasesHolder == nil { + obj.dhcpv6LeasesHolder = &dhcpv6LeaseStateRequest{obj: obj.obj.Dhcpv6Leases} + } + return obj.dhcpv6LeasesHolder +} + +// description is TBD +// Dhcpv6Leases returns a Dhcpv6LeaseStateRequest +func (obj *statesRequest) HasDhcpv6Leases() bool { + return obj.obj.Dhcpv6Leases != nil +} + +// description is TBD +// SetDhcpv6Leases sets the Dhcpv6LeaseStateRequest value in the StatesRequest object +func (obj *statesRequest) SetDhcpv6Leases(value Dhcpv6LeaseStateRequest) StatesRequest { + obj.setChoice(StatesRequestChoice.DHCPV6_LEASES) + obj.dhcpv6LeasesHolder = nil + obj.obj.Dhcpv6Leases = value.msg() + + return obj +} + func (obj *statesRequest) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -722,6 +814,16 @@ func (obj *statesRequest) validateObj(vObj *validation, set_default bool) { obj.Dhcpv4Leases().validateObj(vObj, set_default) } + if obj.obj.Dhcpv6Interfaces != nil { + + obj.Dhcpv6Interfaces().validateObj(vObj, set_default) + } + + if obj.obj.Dhcpv6Leases != nil { + + obj.Dhcpv6Leases().validateObj(vObj, set_default) + } + } func (obj *statesRequest) setDefault() { @@ -767,6 +869,16 @@ func (obj *statesRequest) setDefault() { choices_set += 1 choice = StatesRequestChoice.DHCPV4_LEASES } + + if obj.obj.Dhcpv6Interfaces != nil { + choices_set += 1 + choice = StatesRequestChoice.DHCPV6_INTERFACES + } + + if obj.obj.Dhcpv6Leases != nil { + choices_set += 1 + choice = StatesRequestChoice.DHCPV6_LEASES + } if choices_set == 0 { if obj.obj.Choice == nil { obj.setChoice(StatesRequestChoice.IPV4_NEIGHBORS) diff --git a/gosnappi/states_response.go b/gosnappi/states_response.go index e14c346d..ad2f6107 100644 --- a/gosnappi/states_response.go +++ b/gosnappi/states_response.go @@ -24,6 +24,8 @@ type statesResponse struct { rsvpLspsHolder StatesResponseRsvpLspsStateIter dhcpv4InterfacesHolder StatesResponseDhcpv4InterfaceStateIter dhcpv4LeasesHolder StatesResponseDhcpv4LeasesStateIter + dhcpv6InterfacesHolder StatesResponseDhcpv6InterfaceStateIter + dhcpv6LeasesHolder StatesResponseDhcpv6LeasesStateIter } func NewStatesResponse() StatesResponse { @@ -259,6 +261,8 @@ func (obj *statesResponse) setNil() { obj.rsvpLspsHolder = nil obj.dhcpv4InterfacesHolder = nil obj.dhcpv4LeasesHolder = nil + obj.dhcpv6InterfacesHolder = nil + obj.dhcpv6LeasesHolder = nil obj.validationErrors = nil obj.warnings = nil obj.constraints = make(map[string]map[string]Constraints) @@ -308,6 +312,10 @@ type StatesResponse interface { Dhcpv4Interfaces() StatesResponseDhcpv4InterfaceStateIter // Dhcpv4Leases returns StatesResponseDhcpv4LeasesStateIterIter, set in StatesResponse Dhcpv4Leases() StatesResponseDhcpv4LeasesStateIter + // Dhcpv6Interfaces returns StatesResponseDhcpv6InterfaceStateIterIter, set in StatesResponse + Dhcpv6Interfaces() StatesResponseDhcpv6InterfaceStateIter + // Dhcpv6Leases returns StatesResponseDhcpv6LeasesStateIterIter, set in StatesResponse + Dhcpv6Leases() StatesResponseDhcpv6LeasesStateIter setNil() } @@ -323,6 +331,8 @@ var StatesResponseChoice = struct { RSVP_LSPS StatesResponseChoiceEnum DHCPV4_INTERFACES StatesResponseChoiceEnum DHCPV4_LEASES StatesResponseChoiceEnum + DHCPV6_INTERFACES StatesResponseChoiceEnum + DHCPV6_LEASES StatesResponseChoiceEnum }{ IPV4_NEIGHBORS: StatesResponseChoiceEnum("ipv4_neighbors"), IPV6_NEIGHBORS: StatesResponseChoiceEnum("ipv6_neighbors"), @@ -332,6 +342,8 @@ var StatesResponseChoice = struct { RSVP_LSPS: StatesResponseChoiceEnum("rsvp_lsps"), DHCPV4_INTERFACES: StatesResponseChoiceEnum("dhcpv4_interfaces"), DHCPV4_LEASES: StatesResponseChoiceEnum("dhcpv4_leases"), + DHCPV6_INTERFACES: StatesResponseChoiceEnum("dhcpv6_interfaces"), + DHCPV6_LEASES: StatesResponseChoiceEnum("dhcpv6_leases"), } func (obj *statesResponse) Choice() StatesResponseChoiceEnum { @@ -353,6 +365,10 @@ func (obj *statesResponse) setChoice(value StatesResponseChoiceEnum) StatesRespo } enumValue := otg.StatesResponse_Choice_Enum(intValue) obj.obj.Choice = &enumValue + obj.obj.Dhcpv6Leases = nil + obj.dhcpv6LeasesHolder = nil + obj.obj.Dhcpv6Interfaces = nil + obj.dhcpv6InterfacesHolder = nil obj.obj.Dhcpv4Leases = nil obj.dhcpv4LeasesHolder = nil obj.obj.Dhcpv4Interfaces = nil @@ -402,6 +418,14 @@ func (obj *statesResponse) setChoice(value StatesResponseChoiceEnum) StatesRespo obj.obj.Dhcpv4Leases = []*otg.Dhcpv4LeasesState{} } + if value == StatesResponseChoice.DHCPV6_INTERFACES { + obj.obj.Dhcpv6Interfaces = []*otg.Dhcpv6InterfaceState{} + } + + if value == StatesResponseChoice.DHCPV6_LEASES { + obj.obj.Dhcpv6Leases = []*otg.Dhcpv6LeasesState{} + } + return obj } @@ -1101,6 +1125,180 @@ func (obj *statesResponseDhcpv4LeasesStateIter) appendHolderSlice(item Dhcpv4Lea return obj } +// description is TBD +// Dhcpv6Interfaces returns a []Dhcpv6InterfaceState +func (obj *statesResponse) Dhcpv6Interfaces() StatesResponseDhcpv6InterfaceStateIter { + if len(obj.obj.Dhcpv6Interfaces) == 0 { + obj.setChoice(StatesResponseChoice.DHCPV6_INTERFACES) + } + if obj.dhcpv6InterfacesHolder == nil { + obj.dhcpv6InterfacesHolder = newStatesResponseDhcpv6InterfaceStateIter(&obj.obj.Dhcpv6Interfaces).setMsg(obj) + } + return obj.dhcpv6InterfacesHolder +} + +type statesResponseDhcpv6InterfaceStateIter struct { + obj *statesResponse + dhcpv6InterfaceStateSlice []Dhcpv6InterfaceState + fieldPtr *[]*otg.Dhcpv6InterfaceState +} + +func newStatesResponseDhcpv6InterfaceStateIter(ptr *[]*otg.Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter { + return &statesResponseDhcpv6InterfaceStateIter{fieldPtr: ptr} +} + +type StatesResponseDhcpv6InterfaceStateIter interface { + setMsg(*statesResponse) StatesResponseDhcpv6InterfaceStateIter + Items() []Dhcpv6InterfaceState + Add() Dhcpv6InterfaceState + Append(items ...Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter + Set(index int, newObj Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter + Clear() StatesResponseDhcpv6InterfaceStateIter + clearHolderSlice() StatesResponseDhcpv6InterfaceStateIter + appendHolderSlice(item Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter +} + +func (obj *statesResponseDhcpv6InterfaceStateIter) setMsg(msg *statesResponse) StatesResponseDhcpv6InterfaceStateIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6InterfaceState{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *statesResponseDhcpv6InterfaceStateIter) Items() []Dhcpv6InterfaceState { + return obj.dhcpv6InterfaceStateSlice +} + +func (obj *statesResponseDhcpv6InterfaceStateIter) Add() Dhcpv6InterfaceState { + newObj := &otg.Dhcpv6InterfaceState{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6InterfaceState{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6InterfaceStateSlice = append(obj.dhcpv6InterfaceStateSlice, newLibObj) + return newLibObj +} + +func (obj *statesResponseDhcpv6InterfaceStateIter) Append(items ...Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6InterfaceStateSlice = append(obj.dhcpv6InterfaceStateSlice, item) + } + return obj +} + +func (obj *statesResponseDhcpv6InterfaceStateIter) Set(index int, newObj Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6InterfaceStateSlice[index] = newObj + return obj +} +func (obj *statesResponseDhcpv6InterfaceStateIter) Clear() StatesResponseDhcpv6InterfaceStateIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6InterfaceState{} + obj.dhcpv6InterfaceStateSlice = []Dhcpv6InterfaceState{} + } + return obj +} +func (obj *statesResponseDhcpv6InterfaceStateIter) clearHolderSlice() StatesResponseDhcpv6InterfaceStateIter { + if len(obj.dhcpv6InterfaceStateSlice) > 0 { + obj.dhcpv6InterfaceStateSlice = []Dhcpv6InterfaceState{} + } + return obj +} +func (obj *statesResponseDhcpv6InterfaceStateIter) appendHolderSlice(item Dhcpv6InterfaceState) StatesResponseDhcpv6InterfaceStateIter { + obj.dhcpv6InterfaceStateSlice = append(obj.dhcpv6InterfaceStateSlice, item) + return obj +} + +// description is TBD +// Dhcpv6Leases returns a []Dhcpv6LeasesState +func (obj *statesResponse) Dhcpv6Leases() StatesResponseDhcpv6LeasesStateIter { + if len(obj.obj.Dhcpv6Leases) == 0 { + obj.setChoice(StatesResponseChoice.DHCPV6_LEASES) + } + if obj.dhcpv6LeasesHolder == nil { + obj.dhcpv6LeasesHolder = newStatesResponseDhcpv6LeasesStateIter(&obj.obj.Dhcpv6Leases).setMsg(obj) + } + return obj.dhcpv6LeasesHolder +} + +type statesResponseDhcpv6LeasesStateIter struct { + obj *statesResponse + dhcpv6LeasesStateSlice []Dhcpv6LeasesState + fieldPtr *[]*otg.Dhcpv6LeasesState +} + +func newStatesResponseDhcpv6LeasesStateIter(ptr *[]*otg.Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter { + return &statesResponseDhcpv6LeasesStateIter{fieldPtr: ptr} +} + +type StatesResponseDhcpv6LeasesStateIter interface { + setMsg(*statesResponse) StatesResponseDhcpv6LeasesStateIter + Items() []Dhcpv6LeasesState + Add() Dhcpv6LeasesState + Append(items ...Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter + Set(index int, newObj Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter + Clear() StatesResponseDhcpv6LeasesStateIter + clearHolderSlice() StatesResponseDhcpv6LeasesStateIter + appendHolderSlice(item Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter +} + +func (obj *statesResponseDhcpv6LeasesStateIter) setMsg(msg *statesResponse) StatesResponseDhcpv6LeasesStateIter { + obj.clearHolderSlice() + for _, val := range *obj.fieldPtr { + obj.appendHolderSlice(&dhcpv6LeasesState{obj: val}) + } + obj.obj = msg + return obj +} + +func (obj *statesResponseDhcpv6LeasesStateIter) Items() []Dhcpv6LeasesState { + return obj.dhcpv6LeasesStateSlice +} + +func (obj *statesResponseDhcpv6LeasesStateIter) Add() Dhcpv6LeasesState { + newObj := &otg.Dhcpv6LeasesState{} + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + newLibObj := &dhcpv6LeasesState{obj: newObj} + newLibObj.setDefault() + obj.dhcpv6LeasesStateSlice = append(obj.dhcpv6LeasesStateSlice, newLibObj) + return newLibObj +} + +func (obj *statesResponseDhcpv6LeasesStateIter) Append(items ...Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter { + for _, item := range items { + newObj := item.msg() + *obj.fieldPtr = append(*obj.fieldPtr, newObj) + obj.dhcpv6LeasesStateSlice = append(obj.dhcpv6LeasesStateSlice, item) + } + return obj +} + +func (obj *statesResponseDhcpv6LeasesStateIter) Set(index int, newObj Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter { + (*obj.fieldPtr)[index] = newObj.msg() + obj.dhcpv6LeasesStateSlice[index] = newObj + return obj +} +func (obj *statesResponseDhcpv6LeasesStateIter) Clear() StatesResponseDhcpv6LeasesStateIter { + if len(*obj.fieldPtr) > 0 { + *obj.fieldPtr = []*otg.Dhcpv6LeasesState{} + obj.dhcpv6LeasesStateSlice = []Dhcpv6LeasesState{} + } + return obj +} +func (obj *statesResponseDhcpv6LeasesStateIter) clearHolderSlice() StatesResponseDhcpv6LeasesStateIter { + if len(obj.dhcpv6LeasesStateSlice) > 0 { + obj.dhcpv6LeasesStateSlice = []Dhcpv6LeasesState{} + } + return obj +} +func (obj *statesResponseDhcpv6LeasesStateIter) appendHolderSlice(item Dhcpv6LeasesState) StatesResponseDhcpv6LeasesStateIter { + obj.dhcpv6LeasesStateSlice = append(obj.dhcpv6LeasesStateSlice, item) + return obj +} + func (obj *statesResponse) validateObj(vObj *validation, set_default bool) { if set_default { obj.setDefault() @@ -1218,6 +1416,34 @@ func (obj *statesResponse) validateObj(vObj *validation, set_default bool) { } + if len(obj.obj.Dhcpv6Interfaces) != 0 { + + if set_default { + obj.Dhcpv6Interfaces().clearHolderSlice() + for _, item := range obj.obj.Dhcpv6Interfaces { + obj.Dhcpv6Interfaces().appendHolderSlice(&dhcpv6InterfaceState{obj: item}) + } + } + for _, item := range obj.Dhcpv6Interfaces().Items() { + item.validateObj(vObj, set_default) + } + + } + + if len(obj.obj.Dhcpv6Leases) != 0 { + + if set_default { + obj.Dhcpv6Leases().clearHolderSlice() + for _, item := range obj.obj.Dhcpv6Leases { + obj.Dhcpv6Leases().appendHolderSlice(&dhcpv6LeasesState{obj: item}) + } + } + for _, item := range obj.Dhcpv6Leases().Items() { + item.validateObj(vObj, set_default) + } + + } + } func (obj *statesResponse) setDefault() { @@ -1263,6 +1489,16 @@ func (obj *statesResponse) setDefault() { choices_set += 1 choice = StatesResponseChoice.DHCPV4_LEASES } + + if len(obj.obj.Dhcpv6Interfaces) > 0 { + choices_set += 1 + choice = StatesResponseChoice.DHCPV6_INTERFACES + } + + if len(obj.obj.Dhcpv6Leases) > 0 { + choices_set += 1 + choice = StatesResponseChoice.DHCPV6_LEASES + } if choices_set == 0 { if obj.obj.Choice == nil { obj.setChoice(StatesResponseChoice.IPV4_NEIGHBORS) diff --git a/requirements.txt b/requirements.txt index 9074c28c..691ccd52 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ --prefer-binary -grpcio~=1.59.0 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' +protobuf~=4.24.4 ; python_version > '3.6' grpcio-tools~=1.59.0 ; python_version > '3.6' grpcio~=1.35.0 ; python_version <= '3.6' grpcio-tools~=1.35.0 ; python_version <= '3.6' -requests -protobuf~=3.15.0 ; python_version <= '3.6' -protobuf~=4.24.4 ; python_version > '3.6' +grpcio~=1.59.0 ; python_version > '3.6' PyYAML +requests urllib3 semantic_version diff --git a/snappi/__init__.py b/snappi/__init__.py index d74fad4a..4ab9bb11 100644 --- a/snappi/__init__.py +++ b/snappi/__init__.py @@ -40,6 +40,35 @@ from .snappi import DeviceDhcpv4client from .snappi import Dhcpv4ClientParams from .snappi import DeviceDhcpv4clientIter +from .snappi import DeviceDhcpv6client +from .snappi import DeviceDhcpv6clientIaType +from .snappi import DeviceDhcpv6clientIaTimeValue +from .snappi import DeviceDhcpv6clientDuidType +from .snappi import DeviceDhcpv6clientNoDuid +from .snappi import DeviceDhcpv6clientDuidValue +from .snappi import DeviceDhcpv6ClientOptionsRequest +from .snappi import Dhcpv6ClientOptionsOptionsRequest +from .snappi import Dhcpv6ClientOptionsCustom +from .snappi import Dhcpv6ClientOptionsOptionsRequestIter +from .snappi import Dhcpv6ClientOptionsOptionsRequestIncludedMessages +from .snappi import Dhcpv6ClientOptionsMessageType +from .snappi import DeviceDhcpv6ClientOptions +from .snappi import Dhcpv6ClientOptionsServerIdentifier +from .snappi import Dhcpv6ClientOptionsDuidLlt +from .snappi import Dhcpv6ClientOptionsLinkLayerAddress +from .snappi import Dhcpv6ClientOptionsDuidEn +from .snappi import Dhcpv6ClientOptionsDuidLl +from .snappi import Dhcpv6ClientOptionsDuidUuid +from .snappi import Dhcpv6ClientOptionsDuidUuidVersion +from .snappi import Dhcpv6ClientOptionsDuidUuidVariant +from .snappi import Dhcpv6ClientOptionsVendorClass +from .snappi import Dhcpv6ClientOptionsIncludedMessages +from .snappi import Dhcpv6ClientOptionsMessageTypeIter +from .snappi import Dhcpv6ClientOptionsVendorInfo +from .snappi import Dhcpv6OptionsVendorSpecificOptions +from .snappi import Dhcpv6OptionsVendorSpecificOptionsIter +from .snappi import Dhcpv6ClientOptionsFqdn +from .snappi import DeviceDhcpv6clientIter from .snappi import DeviceEthernetIter from .snappi import DeviceIpv4Loopback from .snappi import DeviceIpv4LoopbackIter @@ -278,6 +307,25 @@ from .snappi import DhcpServerV4PoolOption from .snappi import DhcpServerV4PoolIter from .snappi import DhcpServerV4Iter +from .snappi import DhcpServerV6 +from .snappi import DhcpV6ServerLease +from .snappi import Dhcpv6ServerIaType +from .snappi import Dhcpv6ServerPoolInfo +from .snappi import Dhcpv6ServerIapdPoolInfo +from .snappi import Dhcpv6ServerIanapdPoolInfo +from .snappi import DhcpV6ServerLeaseIter +from .snappi import Dhcpv6ServerOptions +from .snappi import DhcpV6ServerDns +from .snappi import DhcpV6ServerSecondaryDns +from .snappi import DhcpV6ServerSecondaryDnsIter +from .snappi import Dhcpv6ServerOptionsVendorInfo +from .snappi import Dhcpv6ServerOptionsIncludedMessages +from .snappi import Dhcpv6ServerOptionsMessageType +from .snappi import Dhcpv6ServerOptionsMessageTypeIter +from .snappi import Dhcpv6ServerOptionsBootfileUrl +from .snappi import Dhcpv6ServerOptionsBootFileParams +from .snappi import Dhcpv6ServerOptionsBootFileParamsIter +from .snappi import DhcpServerV6Iter from .snappi import DeviceIter from .snappi import Flow from .snappi import FlowTxRx @@ -471,6 +519,7 @@ from .snappi import PatternFlowIpv6SrcCounter from .snappi import PatternFlowIpv6SrcMetricTag from .snappi import PatternFlowIpv6SrcMetricTagIter +from .snappi import FlowIpv6Auto from .snappi import PatternFlowIpv6Dst from .snappi import PatternFlowIpv6DstCounter from .snappi import PatternFlowIpv6DstMetricTag @@ -1131,6 +1180,8 @@ from .snappi import RsvpMetricsRequest from .snappi import Dhcpv4ClientMetricsRequest from .snappi import Dhcpv4ServerMetricsRequest +from .snappi import Dhcpv6ClientMetricsRequest +from .snappi import Dhcpv6ServerMetricsRequest from .snappi import MetricsResponse from .snappi import PortMetric from .snappi import PortMetricIter @@ -1161,6 +1212,10 @@ from .snappi import Dhcpv4ClientMetricIter from .snappi import Dhcpv4ServerMetric from .snappi import Dhcpv4ServerMetricIter +from .snappi import Dhcpv6ClientMetric +from .snappi import Dhcpv6ClientMetricIter +from .snappi import Dhcpv6ServerMetric +from .snappi import Dhcpv6ServerMetricIter from .snappi import StatesRequest from .snappi import Neighborsv4StatesRequest from .snappi import Neighborsv6StatesRequest @@ -1174,6 +1229,8 @@ from .snappi import RsvpLspsStateRequest from .snappi import Dhcpv4InterfaceStateRequest from .snappi import Dhcpv4LeaseStateRequest +from .snappi import Dhcpv6InterfaceStateRequest +from .snappi import Dhcpv6LeaseStateRequest from .snappi import StatesResponse from .snappi import Neighborsv4State from .snappi import Neighborsv4StateIter @@ -1257,6 +1314,12 @@ from .snappi import Dhcpv4LeaseState from .snappi import Dhcpv4LeaseStateIter from .snappi import Dhcpv4LeasesStateIter +from .snappi import Dhcpv6InterfaceState +from .snappi import Dhcpv6InterfaceStateIter +from .snappi import Dhcpv6LeasesState +from .snappi import Dhcpv6ServerLeaseState +from .snappi import Dhcpv6ServerLeaseStateIter +from .snappi import Dhcpv6LeasesStateIter from .snappi import CaptureRequest from .snappi import Version from .snappi import Api diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index 5b90382e..73c86c40 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: 1.7.1 + version: 1.8.0 contact: url: https://github.com/open-traffic-generator/models license: @@ -619,6 +619,13 @@ components: items: $ref: '#/components/schemas/Device.Dhcpv4client' x-field-uid: 9 + dhcpv6_interfaces: + description: |- + List of DHCPv6 Clients Configuration. + type: array + items: + $ref: '#/components/schemas/Device.Dhcpv6client' + x-field-uid: 10 required: - mac - name @@ -975,62 +982,841 @@ components: - first_server: if selected, the subnet accepts the IP addresses offered by the first server to respond with an offer of IP addresses. - server_address: The address of the DHCP server from which the subnet will accept IP addresses. type: string - default: first_server - x-field-uid: 2 + default: first_server + x-field-uid: 2 + x-enum: + first_server: + x-field-uid: 1 + server_address: + x-field-uid: 2 + enum: + - first_server + - server_address + server_address: + description: |- + The address of the DHCP server. + type: string + format: ipv4 + x-field-uid: 4 + broadcast: + description: |- + If the broadcast bit is set, then the server and relay agent broadcast DHCPOFFER and DHCPACK messages. + type: boolean + default: false + x-field-uid: 5 + parameters_request_list: + description: |- + Optional parameters field request list of DHCPv4 Client. + $ref: '#/components/schemas/Dhcpv4Client.Params' + x-field-uid: 6 + Dhcpv4Client.Params: + description: |- + Configuration Parameter request list by emulated DHCPv4 Client. + type: object + properties: + subnet_mask: + description: "Request for the subnet mask option specifies the client's\ + \ subnet mask as per RFC950. " + type: boolean + default: true + x-field-uid: 1 + router: + description: |- + Request for the router option that specifies a list of IP addresses for routers on the client's subnet. + type: boolean + default: true + x-field-uid: 2 + renewal_timer: + description: |- + Request for the renewal timer, T1. When the timer expires, the client transitions from the BOUND state to the RENEWING state. + type: boolean + default: false + x-field-uid: 3 + rebinding_timer: + description: |- + Request for the rebinding timer (T2). When expires, the client transitions to the REBINDING state. + type: boolean + default: false + x-field-uid: 4 + Device.Dhcpv6client: + description: |- + Configuration for emulated DHCPv6 Client on a single Interface. If the DHCPv6 Client receives one or more DHCPv6 ADVERTISE messages from one or more servers then the client chooses one server from which to request configuration parameters, based on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html + type: object + required: + - name + properties: + name: + x-field-uid: 1 + description: |- + Globally unique name of an object. It also serves as the primary key for arrays of objects. + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-unique: global + rapid_commit: + description: |- + If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. + type: boolean + default: false + x-field-uid: 2 + ia_type: + description: "Each IA has an associated IAID. Differnet IA options represent\ + \ different types of IPv6 addresses and parameters \naccepted by DHCPv6\ + \ clients each used in different context by an IPv6 node." + $ref: '#/components/schemas/Device.Dhcpv6client.IaType' + x-field-uid: 3 + duid_type: + description: |- + Each DHCP client and server has a DUID. DHCP clients and servers use DUIDs to identify each other. + $ref: '#/components/schemas/Device.Dhcpv6client.DuidType' + x-field-uid: 4 + options_request: + description: |- + The options requested by a client from a server in the options request option. + $ref: '#/components/schemas/Device.Dhcpv6Client.OptionsRequest' + x-field-uid: 5 + options: + description: |- + Optional DHCPv4 Client options that are sent in Dhcp client messages. + $ref: '#/components/schemas/Device.Dhcpv6Client.Options' + x-field-uid: 6 + Device.Dhcpv6Client.OptionsRequest: + description: |- + DHCP client options, these configured options are sent in Dhcp client messages. + type: object + required: + - request + - associated_dhcp_messages + properties: + request: + description: |- + List of options requested by a client from a server. + type: array + items: + $ref: '#/components/schemas/Dhcpv6ClientOptions.OptionsRequest' + x-field-uid: 1 + associated_dhcp_messages: + description: |- + The list of dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ClientOptions.OptionsRequestIncludedMessages' + x-field-uid: 2 + Device.Dhcpv6Client.Options: + description: |- + DHCP client options, these configured options are sent in Dhcp client messages. + type: object + properties: + server_identifier: + description: "A client uses multicast to reach all servers or an individual\ + \ server. An individual server is indicated by \nspecifying that server's\ + \ DUID in a Server Identifier option in the client's message (all servers\ + \ will receive \nthis message but only the indicated server will respond).\ + \ All servers are indicated by not supplying this option. " + $ref: '#/components/schemas/Dhcpv6ClientOptions.ServerIdentifier' + x-field-uid: 1 + vendor_class: + description: "The vendor class option is used by a client to identify the\ + \ vendor that manufactured the hardware on which \nthe client is running.\ + \ The information contained in the data area of this option is contained\ + \ in one or more \nopaque fields that identify details of the hardware\ + \ configuration." + $ref: '#/components/schemas/Dhcpv6ClientOptions.VendorClass' + x-field-uid: 2 + vendor_info: + description: |- + This option is used by clients to exchange vendor-specific information with servers. + $ref: '#/components/schemas/Dhcpv6ClientOptions.VendorInfo' + x-field-uid: 3 + fqdn: + description: "DHCPv6 server needs to know the FQDN of the client for the\ + \ addresses for the client's IA_NA bindings in order to \nupdate the IPv6-address-to-FQDN\ + \ mapping. This option allows the client to convey its FQDN to the server.\ + \ The Client \nFQDN option also contains Flags that DHCPv6 clients and\ + \ servers use to negotiate who does which update." + $ref: '#/components/schemas/Dhcpv6ClientOptions.Fqdn' + x-field-uid: 4 + Device.Dhcpv6client.IaType: + type: object + properties: + choice: + description: |- + Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent different types of IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. IA_NA is the Identity Association for Non-temporary Addresses option. IA_TA is the Identity Association for Temporary Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD s the Identity Association for Temporary Prefix Delegation. + type: string + default: iana + x-field-uid: 1 + x-enum: + iana: + x-field-uid: 1 + iata: + x-field-uid: 2 + iapd: + x-field-uid: 3 + ianapd: + x-field-uid: 4 + enum: + - iana + - iata + - iapd + - ianapd + iana: + $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue' + x-field-uid: 2 + iapd: + $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue' + x-field-uid: 3 + ianapd: + $ref: '#/components/schemas/Device.Dhcpv6client.IaTimeValue' + x-field-uid: 4 + Device.Dhcpv6client.IaTimeValue: + description: |- + The container for the suggested times at which the client contacts the server or any available server. + type: object + properties: + t1: + description: |- + The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time. + type: integer + format: uint32 + maximum: 4294967295 + default: 302400 + x-field-uid: 1 + t2: + description: |- + The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is a time duration relative to the current time expressed in units of seconds. If set to 0 server will ignore it. If the maximum value is specified it means infinite time + type: integer + format: uint32 + maximum: 4294967295 + default: 483840 + x-field-uid: 2 + Device.Dhcpv6client.DuidType: + type: object + properties: + choice: + description: |- + Each DHCP client and server has a DUID. DHCP clients use DUIDs to identify a server in messages where a server needs to be identified. + type: string + default: llt + x-field-uid: 1 + x-enum: + llt: + x-field-uid: 1 + en: + x-field-uid: 2 + ll: + x-field-uid: 3 + enum: + - llt + - en + - ll + llt: + $ref: '#/components/schemas/Device.Dhcpv6client.NoDuid' + x-field-uid: 2 + en: + $ref: '#/components/schemas/Device.Dhcpv6client.DuidValue' + x-field-uid: 3 + ll: + $ref: '#/components/schemas/Device.Dhcpv6client.NoDuid' + x-field-uid: 4 + Device.Dhcpv6client.DuidValue: + description: |- + The container for the DUID-EN. This consists of the 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN] followed by a unique identifier assigned by the vendor. + type: object + properties: + enterprise_id: + description: |- + 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. + type: integer + format: uint32 + minimum: 1 + maximum: 2147483647 + default: 10 + x-field-uid: 1 + vendor_id: + description: |- + Unique identifier assigned by the vendor. + type: integer + format: uint32 + minimum: 1 + maximum: 2147483647 + default: 10 + x-field-uid: 2 + Device.Dhcpv6client.NoDuid: + description: |- + The container for DUID-LL and DUID-LLT. + type: object + Dhcpv6ClientOptions.ServerIdentifier: + type: object + properties: + choice: + description: |- + The Identifier option is used to carry a DUID. The option code is 2. The server identifier identifies a server. This option is used when client wants to contact a particular server. + type: string + default: duid_ll + x-field-uid: 1 + x-enum: + duid_llt: + x-field-uid: 1 + duid_en: + x-field-uid: 2 + duid_ll: + x-field-uid: 3 + duid_uuid: + x-field-uid: 4 + enum: + - duid_llt + - duid_en + - duid_ll + - duid_uuid + duid_llt: + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidLlt' + x-field-uid: 2 + duid_en: + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidEn' + x-field-uid: 3 + duid_ll: + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidLl' + x-field-uid: 4 + duid_uuid: + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuid' + x-field-uid: 5 + Dhcpv6ClientOptions.DuidLlt: + description: |- + DUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type. + type: object + required: + - time + - link_layer_address + properties: + time: + description: "The time value is the time that the DUID is generated represented\ + \ in seconds since midnight (UTC), January 1, \n2000, modulo 2^32. The\ + \ DUID generatation time will the current time when dhcpv6 client contacts\ + \ the server. " + type: integer + format: uint32 + x-field-uid: 1 + link_layer_address: + description: "The link-layer address is stored in canonical form, as described\ + \ in RFC 2464. " + $ref: '#/components/schemas/Dhcpv6ClientOptions.LinkLayerAddress' + x-field-uid: 2 + Dhcpv6ClientOptions.DuidEn: + description: |- + DUID assigned by vendor based on enterprise number. + type: object + required: + - enterprise_number + - identifier + properties: + enterprise_number: + description: "Vendor's registered private enterprise number as maintained\ + \ by IANA. " + type: integer + format: uint32 + maximum: 4294967295 + x-field-uid: 1 + identifier: + description: "The unique identifier assigned by the vendor. " + type: string + format: hex + minLength: 1 + maxLength: 8 + x-field-uid: 2 + Dhcpv6ClientOptions.DuidLl: + description: |- + DUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type. + type: object + required: + - link_layer_address + properties: + link_layer_address: + description: "The link-layer address is stored in canonical form, as described\ + \ in RFC 2464. " + $ref: '#/components/schemas/Dhcpv6ClientOptions.LinkLayerAddress' + x-field-uid: 1 + Dhcpv6ClientOptions.DuidUuid: + description: |- + DUID embedded a Universally Unique IDentifier (UUID). A UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. + type: object + properties: + version: + description: "The version number is in the most significant 4 bits of the\ + \ timestamp (bits 4 through 7 of the time_hi_and_version field). \ + \ " + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuidVersion' + x-field-uid: 1 + variant: + description: "The variant field determines the layout of the UUID. It is\ + \ multiplexed with clock_seq_hi_and_reserved. " + $ref: '#/components/schemas/Dhcpv6ClientOptions.DuidUuidVariant' + x-field-uid: 2 + time_low: + description: "The low field of the timestamp. " + type: integer + format: uint32 + default: 0 + x-field-uid: 3 + time_mid: + description: "The middle field of the timestamp. " + type: integer + format: uint32 + default: 0 + maximum: 65535 + x-field-uid: 4 + time_hi_and_version: + description: "The high field of the timestamp multiplexed with the version\ + \ number. " + type: integer + format: uint32 + default: 0 + maximum: 4095 + x-field-uid: 5 + clock_seq_hi_and_reserved: + description: "The high field of the clock sequence multiplexed with the\ + \ variant. " + type: integer + format: uint32 + default: 0 + maximum: 31 + x-field-uid: 6 + clock_seq_low: + description: "The low field of the clock sequence. " + type: integer + format: uint32 + default: 0 + maximum: 127 + x-field-uid: 7 + node: + description: "The spatially unique node identifier. " + type: string + format: mac + default: 00:00:00:00:00:00 + x-field-uid: 8 + Dhcpv6ClientOptions.DuidUuidVersion: + description: |- + The version number is in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). + type: object + properties: + choice: + description: |- + The version values are from 1 to 5 in the most significant 4 bits of the timestamp (bits 4 through 7 of the time_hi_and_version field). + type: string + default: v_1 + x-field-uid: 1 + x-enum: + v_1: + x-field-uid: 1 + v_2: + x-field-uid: 2 + v_3: + x-field-uid: 3 + v_4: + x-field-uid: 4 + v_5: + x-field-uid: 5 + enum: + - v_1 + - v_2 + - v_3 + - v_4 + - v_5 + Dhcpv6ClientOptions.DuidUuidVariant: + description: |- + The variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field). + type: object + properties: + choice: + description: |- + The current variants are ncs, dce,microsoft guid and reserved. + type: string + default: ncs + x-field-uid: 1 + x-enum: + ncs: + x-field-uid: 1 + dce: + x-field-uid: 2 + guid: + x-field-uid: 3 + var_reserved: + x-field-uid: 4 + enum: + - ncs + - dce + - guid + - var_reserved + Dhcpv6ClientOptions.LinkLayerAddress: + description: |- + The link-layer address configured in DUID llt or DUID ll. + type: object + required: + - value + properties: + value: + description: |- + The MAC address that becomes part of DUID llt or DUID ll. + type: string + format: mac + x-field-uid: 3 + Dhcpv6ClientOptions.OptionsRequest: + type: object + properties: + choice: + description: "The Option Request option is used to identify a list of options\ + \ in a message between a client and a server. The option code is 6. -\ + \ Vendor_specific information option, requested by clients for vendor-specific\ + \ informations from servers. - DNS Recursive Name Server Option, requested\ + \ by clients to get the list ofIPv6 addresses of DNS recursive name \n\ + \ servers to which DNS queries may be sent by the client resolver in\ + \ order of preference.\n- Client FQDN option - indicates whether the client\ + \ or the DHCP server should update DNS with the AAAA record \n corresponding\ + \ to the assigned IPv6 address and the FQDN provided in this option. The\ + \ DHCP server always updates \n the PTR record.\n- bootfile_url, if client\ + \ is configured for network booting then the client must use this option\ + \ to obtain the boot \n file url from the server.\n- sztp. Securely provision\ + \ a networking device when it is booting in a factory-default state." + type: string + default: vendor_information + x-field-uid: 1 + x-enum: + vendor_information: + x-field-uid: 1 + name_servers: + x-field-uid: 2 + fqdn: + x-field-uid: 3 + bootfile_url: + x-field-uid: 4 + sztp: + x-field-uid: 5 + custom: + x-field-uid: 6 + enum: + - vendor_information + - name_servers + - fqdn + - bootfile_url + - sztp + - custom + custom: + $ref: '#/components/schemas/Dhcpv6ClientOptions.Custom' + x-field-uid: 2 + Dhcpv6ClientOptions.Custom: + description: |- + The Custom option is used to provide a not so well known option in the message between a client and a server. + type: object + required: + - type + properties: + type: + description: |- + The type of the Custom option TLV. + type: integer + format: uint32 + maximum: 65535 + x-field-uid: 1 + Dhcpv6ClientOptions.VendorClass: + description: |- + This option is used by a client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16. + type: object + required: + - enterprise_number + - class_data + - associated_dhcp_messages + properties: + enterprise_number: + description: |- + The vendor's registered Enterprise Number as registered with IANA. + type: integer + format: uint32 + maximum: 4294967295 + x-field-uid: 1 + class_data: + description: |- + The opaque data representing the hardware configuration of the host on which the client is running. Examples of class data instances might include the version of the operating system the client is running or the amount of memory installed on the client. + type: array + items: + type: string + x-field-uid: 2 + associated_dhcp_messages: + description: |- + The dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages' + x-field-uid: 3 + Dhcpv6ClientOptions.OptionsRequestIncludedMessages: + description: |- + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + type: object + properties: + choice: + description: |- + The client message name where the option is included, by default it is all. + type: string + default: all + x-field-uid: 1 + x-enum: + all: + x-field-uid: 1 + msg_types: + x-field-uid: 2 + enum: + - all + - msg_types + msg_types: + description: |- + User must specify the Dhcpv6 message type. + $ref: '#/components/schemas/Dhcpv6ClientOptions.MessageType' + x-field-uid: 2 + Dhcpv6ClientOptions.IncludedMessages: + description: |- + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included. + type: object + properties: + choice: + description: |- + The client message name where the option is included, by default it is all. + type: string + default: all + x-field-uid: 1 + x-enum: + all: + x-field-uid: 1 + msg_types: + x-field-uid: 2 + enum: + - all + - msg_types + msg_types: + description: |- + User must specify the Dhcpv6 message type. + type: array + items: + $ref: '#/components/schemas/Dhcpv6ClientOptions.MessageType' + x-field-uid: 2 + Dhcpv6ClientOptions.MessageType: + description: |- + The dhcpv6 client messages where the option will be included. + type: object + properties: + choice: + description: |- + The client message name where the option is included, by default it is all. + type: string + default: solicit + x-field-uid: 1 + x-enum: + solicit: + x-field-uid: 1 + request: + x-field-uid: 2 + inform_request: + x-field-uid: 3 + release: + x-field-uid: 4 + renew: + x-field-uid: 5 + rebind: + x-field-uid: 6 + enum: + - solicit + - request + - inform_request + - release + - renew + - rebind + Dhcpv6ClientOptions.VendorInfo: + description: |- + This option is used by clients to exchange vendor-specific information. The option code is 17. + type: object + required: + - enterprise_number + - option_data + - associated_dhcp_messages + properties: + enterprise_number: + description: |- + The vendor's registered Enterprise Number as registered with IANA. + type: integer + format: uint32 + maximum: 4294967295 + x-field-uid: 1 + option_data: + description: |- + An opaque object of octets,interpreted by vendor-specific code on the clients and servers. + type: array + items: + $ref: '#/components/schemas/Dhcpv6Options.VendorSpecificOptions' + x-field-uid: 2 + associated_dhcp_messages: + description: |- + The list of dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages' + x-field-uid: 3 + Dhcpv6ServerOptions.VendorInfo: + description: |- + This option is used by servers to exchange vendor-specific information. The option code is 17. + type: object + required: + - enterprise_number + - option_data + - associated_dhcp_messages + properties: + enterprise_number: + description: |- + The vendor's registered Enterprise Number as registered with IANA. + type: integer + format: uint32 + maximum: 4294967295 + x-field-uid: 1 + option_data: + description: |- + An opaque object of octets,interpreted by vendor-specific code on the clients and servers. + type: array + items: + $ref: '#/components/schemas/Dhcpv6Options.VendorSpecificOptions' + x-field-uid: 2 + associated_dhcp_messages: + description: |- + The list of dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ServerOptions.IncludedMessages' + x-field-uid: 3 + Dhcpv6ServerOptions.IncludedMessages: + description: |- + The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included. + type: object + properties: + choice: + description: |- + The server message name where the option is included, by default it is all. + type: string + default: all + x-field-uid: 1 + x-enum: + all: + x-field-uid: 1 + msg_types: + x-field-uid: 2 + enum: + - all + - msg_types + msg_types: + description: |- + User must specify the Dhcpv6 message type. + type: array + items: + $ref: '#/components/schemas/Dhcpv6ServerOptions.MessageType' + x-field-uid: 2 + Dhcpv6ServerOptions.MessageType: + description: |- + The dhcpv6 server messages where the option will be included. + type: object + properties: + choice: + description: |- + The server message name where the option is included, by default it is all. + type: string + default: advertise + x-field-uid: 1 x-enum: - first_server: + advertise: x-field-uid: 1 - server_address: + reply: x-field-uid: 2 + re_configure: + x-field-uid: 3 enum: - - first_server - - server_address - server_address: - description: |- - The address of the DHCP server. - type: string - format: ipv4 - x-field-uid: 4 - broadcast: + - advertise + - reply + - re_configure + Dhcpv6Options.VendorSpecificOptions: + description: |- + The encapsulated vendor-specific options field is encoded as a sequence of code/length/value fields of identical format to the DHCP options field. The option codes are defined by the vendor identified in the enterprise-number field and are not managed by IANA. + type: object + required: + - code + - data + properties: + code: description: |- - If the broadcast bit is set, then the server and relay agent broadcast DHCPOFFER and DHCPACK messages. - type: boolean - default: false - x-field-uid: 5 - parameters_request_list: + The code for the encapsulated option. + type: integer + format: uint32 + maximum: 65535 + x-field-uid: 1 + data: description: |- - Optional parameters field request list of DHCPv4 Client. - $ref: '#/components/schemas/Dhcpv4Client.Params' - x-field-uid: 6 - Dhcpv4Client.Params: + The data for the encapsulated option. + type: string + x-field-uid: 2 + Dhcpv6ClientOptions.Fqdn: description: |- - Configuration Parameter request list by emulated DHCPv4 Client. + DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39. type: object + required: + - domain_name properties: - subnet_mask: - description: "Request for the subnet mask option specifies the client's\ - \ subnet mask as per RFC950. " + flag_s: + description: |- + The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. A client sets the bit to 0 to indicate that the server should not perform the updates and 1 to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. type: boolean default: true x-field-uid: 1 - router: + flag_o: description: |- - Request for the router option that specifies a list of IP addresses for routers on the client's subnet. + The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. A client must set this bit to 0. A server must set this bit to 1 if the "S" bit in its reply to the client does not match the "S" bit received from the client. type: boolean - default: true + default: false x-field-uid: 2 - renewal_timer: + flag_n: description: |- - Request for the renewal timer, T1. When the timer expires, the client transitions from the BOUND state to the RENEWING state. + The "N" bit indicates whether the server should not perform any DNS updates. A client sets this bit to 0 to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to 1 to request that the server should not perform any DNS updates. A server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. type: boolean default: false x-field-uid: 3 - rebinding_timer: + domain_name: description: |- - Request for the rebinding timer (T2). When expires, the client transitions to the REBINDING state. - type: boolean - default: false + The Domain Name part of the option carries all or part of the FQDN of a DHCPv6 client. A client MAY also leave the Domain Name field empty if it desires the server to provide a name. A fully qualified domain name (FQDN) is the complete address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as a URL but rather is a part of it that fully identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of a URL. Therefore, adding the prefix http:// or https:// to the FQDN turns it into a full URL. One example can be microsoft.com. + type: string x-field-uid: 4 + associated_dhcp_messages: + description: |- + The list of dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ClientOptions.IncludedMessages' + x-field-uid: 5 + Dhcpv6ServerOptions.BootfileUrl: + description: |- + The server sends this option to inform the client about a URL to a boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, a subdomain, a domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than a domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of a boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi". + type: object + required: + - url + properties: + url: + description: |- + The URL for the boot file. It must comply with STD 66 format. + type: string + x-field-uid: 1 + bootfile_params: + description: |- + They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which a second-stage boot-loader program can download its configuration file. + type: array + items: + $ref: '#/components/schemas/Dhcpv6ServerOptions.BootFileParams' + x-field-uid: 2 + associated_dhcp_messages: + description: |- + The list of dhcpv6 client messages where this option is included. + $ref: '#/components/schemas/Dhcpv6ServerOptions.IncludedMessages' + x-field-uid: 3 + Dhcpv6ServerOptions.BootFileParams: + description: |- + The option code is 60. They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which a second-stage boot-loader program can download its configuration file. + type: object + required: + - parameter + properties: + parameter: + description: |- + UTF-8 strings are parameters needed for booting, e.g., kernel parameters. + type: string + x-field-uid: 1 Layer1: description: |- A container for layer1 settings. @@ -2948,18 +3734,18 @@ components: x-constraint: - /components/schemas/Device.Ipv4/properties/name - /components/schemas/Device.Ipv4Loopback/properties/name - - /components/schemas/DhcpClient.V4/properties/name + - /components/schemas/Device.Dhcpv4client/properties/name x-constraint: - /components/schemas/Device.Ipv4/properties/name - /components/schemas/Device.Ipv4Loopback/properties/name - - /components/schemas/DhcpClient.V4/properties/name + - /components/schemas/Device.Dhcpv4client/properties/name type: string x-constraint: - /components/schemas/Device.Ipv4/properties/name - /components/schemas/Device.Ipv4Loopback/properties/name - - /components/schemas/DhcpClient.V4/properties/name + - /components/schemas/Device.Dhcpv4client/properties/name x-field-uid: 1 peers: description: |- @@ -7451,18 +8237,18 @@ components: x-constraint: - /components/schemas/Device.Ipv6/properties/name - /components/schemas/Device.Ipv6Loopback/properties/name - - /components/schemas/DhcpClient.V6/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name x-constraint: - /components/schemas/Device.Ipv6/properties/name - /components/schemas/Device.Ipv6Loopback/properties/name - - /components/schemas/DhcpClient.V6/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name type: string x-constraint: - /components/schemas/Device.Ipv6/properties/name - /components/schemas/Device.Ipv6Loopback/properties/name - - /components/schemas/DhcpClient.V6/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name x-field-uid: 1 peers: description: |- @@ -8667,13 +9453,19 @@ components: type: object properties: ipv4_interfaces: - description: |- - This contains an array of references to IPv4 interfaces, each of which will contain one DHCPv4 server. + description: "This contains an array of references to IPv4 interfaces, each\ + \ of which will contain one DHCPv4 server. " type: array - maxItems: 10 items: $ref: '#/components/schemas/DhcpServer.V4' x-field-uid: 2 + ipv6_interfaces: + description: |- + This contains an array of references to IPv6 interfaces, each of which will contain one DHCPv6 server. + type: array + items: + $ref: '#/components/schemas/DhcpServer.V6' + x-field-uid: 3 DhcpServer.V4: description: |- Configuration for emulated DHCPv4 Server. @@ -8753,6 +9545,7 @@ components: format: uint32 default: 1 minimum: 1 + maximum: 1000000 x-field-uid: 5 step: description: |- @@ -8786,19 +9579,275 @@ components: format: ipv4 default: 0.0.0.0 x-field-uid: 2 - secondary_dns_server: + secondary_dns_server: + description: |- + The primary DNS server address that is offered to DHCP clients that request this information through a TLV option. + type: string + format: ipv4 + default: 0.0.0.0 + x-field-uid: 3 + echo_relay_with_tlv_82: + description: |- + If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from a DHCP relay agent, otherwise it replies without including this TLV. + type: boolean + default: true + x-field-uid: 4 + DhcpServer.V6: + description: |- + Configuration for emulated DHCPv6 Server. + type: object + required: + - name + - ipv6_name + - leases + properties: + name: + x-field-uid: 1 + description: |- + Globally unique name of an object. It also serves as the primary key for arrays of objects. + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-unique: global + ipv6_name: + description: | + The unique name of the IPv6 on which DHCPv6 server will run. + + x-constraint: + - /components/schemas/Device.Ipv6/properties/name + + + x-constraint: + - /components/schemas/Device.Ipv6/properties/name + type: string + x-constraint: + - /components/schemas/Device.Ipv6/properties/name + x-field-uid: 2 + rapid_commit: + description: |- + If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. + type: boolean + default: false + x-field-uid: 3 + reconfigure_via_relay_agent: + description: |- + If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses a Relay-reply message to send the Reconfigure message to a relay agent that will relay the message to the client. + type: boolean + default: false + x-field-uid: 4 + leases: + description: "Array of DHCP pools configured on a server. " + type: array + items: + $ref: '#/components/schemas/DhcpV6Server.Lease' + x-field-uid: 5 + options: + description: |- + Optional DHCPv4 Server options that are sent in Dhcp server messages. + $ref: '#/components/schemas/Dhcpv6Server.Options' + x-field-uid: 6 + Dhcpv6Server.Options: + description: |- + DHCP server options, these configured options are sent in Dhcp server messages. + type: object + properties: + dns: + description: "Additional DHCP server primary dns and other configuration\ + \ options. " + $ref: '#/components/schemas/DhcpV6Server.Dns' + x-field-uid: 1 + vendor_info: + description: |- + This option is used by servers to exchange vendor-specific information with clients. + $ref: '#/components/schemas/Dhcpv6ServerOptions.VendorInfo' + x-field-uid: 2 + bootfile_url: + description: |- + The server sends this option to inform the client about a URL to a boot file which client will use for + network boots. + $ref: '#/components/schemas/Dhcpv6ServerOptions.BootfileUrl' + x-field-uid: 3 + DhcpV6Server.Lease: + description: "One DHCP pool configuration on a server. " + type: object + required: + - ia_type + properties: + lease_time: + description: |- + The Life Time length in seconds that is assigned to a lease if the requesting DHCP client does not specify a specific expiration time. + type: integer + format: uint32 + minimum: 300 + maximum: 30000000 + default: 86400 + x-field-uid: 1 + ia_type: + $ref: '#/components/schemas/Dhcpv6Server.IaType' + x-field-uid: 5 + Dhcpv6Server.IaType: + type: object + properties: + choice: + description: |- + Identity Association: a collection of leases assigned to a client. Each IA has an associated IAID. Each IA holds one type of lease, like an identity association for temporary addresses (IA_TA) holds temporary addresses, and an identity association for prefix delegation (IA_PD). + type: string + default: iana + x-field-uid: 1 + x-enum: + iana: + x-field-uid: 1 + iata: + x-field-uid: 2 + iapd: + x-field-uid: 3 + ianapd: + x-field-uid: 4 + enum: + - iana + - iata + - iapd + - ianapd + iana: + $ref: '#/components/schemas/Dhcpv6Server.PoolInfo' + x-field-uid: 2 + iata: + $ref: '#/components/schemas/Dhcpv6Server.PoolInfo' + x-field-uid: 3 + iapd: + $ref: '#/components/schemas/Dhcpv6Server.IapdPoolInfo' + x-field-uid: 4 + ianapd: + $ref: '#/components/schemas/Dhcpv6Server.IanapdPoolInfo' + x-field-uid: 5 + Dhcpv6Server.PoolInfo: + description: |- + The container for pool configurations for IA types iana and iata. + type: object + properties: + start_address: + description: |- + The first IP address of the lease pool. + type: string + format: ipv6 + x-field-uid: 1 + prefix_len: + description: |- + The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. + type: integer + format: uint32 + default: 64 + maximum: 128 + x-field-uid: 2 + size: + description: |- + The total number of addresses in the pool. + type: integer + format: uint32 + default: 1 + minimum: 1 + maximum: 1000000 + x-field-uid: 3 + step: + description: |- + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. + type: integer + format: uint32 + default: 1 + minimum: 1 + x-field-uid: 4 + Dhcpv6Server.IapdPoolInfo: + description: |- + The container for prefix pool configurations for IA type iapd. + type: object + properties: + start_prefix_address: + description: |- + The first IP address of the prefix pool. + type: string + format: ipv6 + x-field-uid: 1 + configured_prefix_len: + description: "The IPv6 network prefix length is used for incrementing the\ + \ lease address within the lease pool where multiple addresses are configured\ + \ by using the size field. The address is incremented using the configured\ + \ Prefix Length and Step. " + type: integer + format: uint32 + default: 64 + maximum: 128 + x-field-uid: 2 + prefix_size: + description: |- + The total number of addresses in the pool. + type: integer + format: uint32 + default: 10 + minimum: 1 + maximum: 1000000 + x-field-uid: 3 + prefix_step: + description: |- + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. + type: integer + format: uint32 + default: 1 + minimum: 1 + x-field-uid: 4 + advertised_prefix_len: + description: "The prefix length of the IPv6 prefix that the Dhcpv6 server\ + \ offers to the Dhcpv6 client. " + type: integer + format: uint32 + default: 64 + maximum: 128 + x-field-uid: 5 + Dhcpv6Server.IanapdPoolInfo: + description: |- + The container for pool configurations for IA type ianapd. + type: object + properties: + iana: + description: |- + The pool configurations for IA types iana in ianapd. + $ref: '#/components/schemas/Dhcpv6Server.PoolInfo' + x-field-uid: 1 + iapd: + description: |- + The pool configurations for IA types iapd in ianapd. + $ref: '#/components/schemas/Dhcpv6Server.IapdPoolInfo' + x-field-uid: 2 + DhcpV6Server.Dns: + description: |- + Optional Dns configuration for DHCPv6 server. + type: object + required: + - primary + properties: + primary: + description: |- + The primary DNS server address that is offered to DHCP clients that request this information through a TLV option. + type: string + format: ipv6 + x-field-uid: 1 + secondary_dns: + description: "DHCP server secondary dns configuration options. If included\ + \ secondary DNS server address will be offered to \nDHCP clients that\ + \ request this information through a TLV option." + type: array + items: + $ref: '#/components/schemas/DhcpV6Server.SecondaryDns' + x-field-uid: 2 + DhcpV6Server.SecondaryDns: + description: |- + Advanced Dns configuration for DHCPv6 server. + type: object + properties: + ip: description: |- - The primary DNS server address that is offered to DHCP clients that request this information through a TLV option. + The secondary DNS server address that is offered to DHCP clients that request this information through a TLV option. type: string - format: ipv4 - default: 0.0.0.0 - x-field-uid: 3 - echo_relay_with_tlv_82: - description: |- - If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from a DHCP relay agent, otherwise it replies without including this TLV. - type: boolean - default: true - x-field-uid: 4 + format: ipv6 + x-field-uid: 1 Flow: description: |- A high level data plane traffic flow. @@ -9039,6 +10088,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name example: - Eth 1 - Eth 2 @@ -9062,6 +10112,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name x-constraint: @@ -9075,6 +10126,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name rx_names: type: array items: @@ -9092,6 +10144,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name example: - Eth 1 - Eth 2 @@ -9115,6 +10168,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name x-constraint: @@ -9128,6 +10182,7 @@ components: - /components/schemas/Isis.V4RouteRange/properties/name - /components/schemas/Isis.V6RouteRange/properties/name - /components/schemas/Device.Dhcpv4client/properties/name + - /components/schemas/Device.Dhcpv6client/properties/name Flow.Header: description: |- Configuration for all traffic packet headers @@ -9632,6 +10687,24 @@ components: dst: x-field-uid: 8 $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst' + Flow.Ipv6.Auto: + description: |- + The OTG implementation can provide a system generated, value for this property. + type: object + required: + - choice + properties: + choice: + description: "The method to be used to provide the system generated value.\n\ + The dhcp option populates the field based on the dynamic IPv6 address\ + \ that has been assigned to the DHCPv6 client \nby a DHCPv6 server." + type: string + x-enum: + dhcp: + x-field-uid: 1 + x-field-uid: 1 + enum: + - dhcp Flow.PfcPause: description: |- IEEE 802.1Qbb PFC Pause packet header. @@ -13600,6 +14673,10 @@ components: x-field-uid: 10 dhcpv4_server: x-field-uid: 11 + dhcpv6_client: + x-field-uid: 12 + dhcpv6_server: + x-field-uid: 13 enum: - port - flow @@ -13612,6 +14689,8 @@ components: - rsvp - dhcpv4_client - dhcpv4_server + - dhcpv6_client + - dhcpv6_server port: $ref: '#/components/schemas/Port.Metrics.Request' x-field-uid: 2 @@ -13645,6 +14724,12 @@ components: dhcpv4_server: $ref: '#/components/schemas/Dhcpv4Server.Metrics.Request' x-field-uid: 12 + dhcpv6_client: + $ref: '#/components/schemas/Dhcpv6Client.Metrics.Request' + x-field-uid: 13 + dhcpv6_server: + $ref: '#/components/schemas/Dhcpv6Server.Metrics.Request' + x-field-uid: 14 Metrics.Response: description: |- Response containing chosen traffic generator metrics. @@ -13677,6 +14762,10 @@ components: x-field-uid: 10 dhcpv4_server: x-field-uid: 11 + dhcpv6_client: + x-field-uid: 12 + dhcpv6_server: + x-field-uid: 13 enum: - flow_metrics - port_metrics @@ -13689,6 +14778,8 @@ components: - rsvp_metrics - dhcpv4_client - dhcpv4_server + - dhcpv6_client + - dhcpv6_server port_metrics: type: array items: @@ -13744,6 +14835,16 @@ components: items: $ref: '#/components/schemas/Dhcpv4Server.Metric' x-field-uid: 12 + dhcpv6client_metrics: + type: array + items: + $ref: '#/components/schemas/Dhcpv6Client.Metric' + x-field-uid: 13 + dhcpv6server_metrics: + type: array + items: + $ref: '#/components/schemas/Dhcpv6Server.Metric' + x-field-uid: 14 Port.Metrics.Request: description: |- The port result request to the traffic generator @@ -15784,149 +16885,481 @@ components: x-field-uid: 1 discovers_sent: description: |- - Number of DHCPDISCOVER messages sent. + Number of DHCPDISCOVER messages sent. + type: integer + format: uint64 + x-field-uid: 2 + offers_received: + description: |- + Number of DHCPOFFER messages received. + type: integer + format: uint64 + x-field-uid: 3 + requests_sent: + description: |- + Number of DHCPREQUEST messages sent. + type: integer + format: uint64 + x-field-uid: 4 + acks_received: + description: |- + Number of lease DHCPACK messages received. + type: integer + format: uint64 + x-field-uid: 5 + nacks_received: + description: |- + Number of negative lease DHCPNACK messages received. + type: integer + format: uint64 + x-field-uid: 6 + releases_sent: + description: |- + Number of DHCPRELEASE messages sent. + type: integer + format: uint64 + x-field-uid: 7 + declines_sent: + description: |- + Number of DHCPDECLINE messages sent. + type: integer + format: uint64 + x-field-uid: 8 + Dhcpv4Server.Metrics.Request: + description: |- + The request to retrieve DHCPv4 per Server metrics/statistics. + type: object + properties: + server_names: + description: | + The names of DHCPv4 Servers to return results for. An empty list will return results for all DHCPv4 Server. + + x-constraint: + - /components/schemas/Device.Dhcpv4Server/properties/name + + + x-constraint: + - /components/schemas/Device.Dhcpv4Server/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Device.Dhcpv4Server/properties/name + x-field-uid: 1 + column_names: + description: |- + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned. The name of the DHCPv4 server cannot be excluded. + type: array + items: + type: string + x-enum: + discovers_received: + x-field-uid: 1 + offers_sent: + x-field-uid: 2 + requests_received: + x-field-uid: 3 + acks_sent: + x-field-uid: 4 + nacks_sent: + x-field-uid: 5 + releases_received: + x-field-uid: 6 + declines_received: + x-field-uid: 7 + enum: + - discovers_received + - offers_sent + - requests_received + - acks_sent + - nacks_sent + - releases_received + - declines_received + x-field-uid: 2 + Dhcpv4Server.Metric: + description: |- + DHCPv4 per peer statistics information. + type: object + properties: + name: + description: |- + The name of a configured DHCPv4 Server. + type: string + x-field-uid: 1 + discovers_received: + description: |- + Number of DHCPDISCOVER messages received. + type: integer + format: uint64 + x-field-uid: 2 + offers_sent: + description: |- + Number of DHCPOFFER messages sent. + type: integer + format: uint64 + x-field-uid: 3 + requests_received: + description: |- + Number of DHCPOFFER messages received. + type: integer + format: uint64 + x-field-uid: 4 + acks_sent: + description: |- + Number of lease DHCPACK messages sent. + type: integer + format: uint64 + x-field-uid: 5 + nacks_sent: + description: |- + Number of negative lease DHCPNACK messages sent. + type: integer + format: uint64 + x-field-uid: 6 + releases_received: + description: |- + Number of DHCPRELEASE messages received. + type: integer + format: uint64 + x-field-uid: 7 + declines_received: + description: |- + Number of DHCPDECLINE messages received. + type: integer + format: uint64 + x-field-uid: 8 + Dhcpv6Client.Metrics.Request: + description: |- + The request to retrieve DHCPv6 per client metrics/statistics. + type: object + properties: + client_names: + description: | + The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client. + + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + + + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + x-field-uid: 1 + column_names: + description: |- + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 client cannot be excluded. + type: array + items: + type: string + x-enum: + solicits_sent: + x-field-uid: 1 + advertisements_received: + x-field-uid: 2 + advertisements_ignored: + x-field-uid: 3 + requests_sent: + x-field-uid: 4 + nacks_received: + x-field-uid: 5 + replies_received: + x-field-uid: 6 + information_requests_sent: + x-field-uid: 7 + renews_sent: + x-field-uid: 8 + rebinds_sent: + x-field-uid: 9 + releases_sent: + x-field-uid: 10 + reconfigures_received: + x-field-uid: 11 + rapid_commit_solicits_sent: + x-field-uid: 12 + rapid_commit_replies_received: + x-field-uid: 13 + enum: + - solicits_sent + - advertisements_received + - advertisements_ignored + - requests_sent + - nacks_received + - replies_received + - information_requests_sent + - renews_sent + - rebinds_sent + - releases_sent + - reconfigures_received + - rapid_commit_solicits_sent + - rapid_commit_replies_received + x-field-uid: 2 + Dhcpv6Client.Metric: + description: |- + DHCPv6 per peer statistics information. + type: object + properties: + name: + description: |- + The name of a configured DHCPv6 client. + type: string + x-field-uid: 1 + solicits_sent: + description: |- + Number of DHCPSOLICIT messages sent. + type: integer + format: uint64 + x-field-uid: 2 + advertisements_received: + description: |- + Number of DHCPADVERTISE messages received. + type: integer + format: uint64 + x-field-uid: 3 + advertisements_ignored: + description: |- + Number of DHCPADVERTISE messages ignored. + type: integer + format: uint64 + x-field-uid: 4 + requests_sent: + description: |- + Number of DHCPREQUEST messages sent. + type: integer + format: uint64 + x-field-uid: 5 + nacks_received: + description: |- + Number of negative lease DHCPNACK messages received. type: integer format: uint64 - x-field-uid: 2 - offers_received: + x-field-uid: 6 + replies_received: description: |- Number of DHCPOFFER messages received. type: integer format: uint64 - x-field-uid: 3 - requests_sent: + x-field-uid: 7 + information_requests_sent: description: |- - Number of DHCPREQUEST messages sent. + Number of DHCP Inform requests sent. type: integer format: uint64 - x-field-uid: 4 - acks_received: + x-field-uid: 8 + renews_sent: description: |- - Number of lease DHCPACK messages received. + Number of DHCP renew messages sent. type: integer format: uint64 - x-field-uid: 5 - nacks_received: + x-field-uid: 9 + rebinds_sent: description: |- - Number of negative lease DHCPNACK messages received. + Number of DHCP rebind messages sent. type: integer format: uint64 - x-field-uid: 6 + x-field-uid: 10 releases_sent: description: |- - Number of DHCPRELEASE messages sent. + Number of DHCP Release messages sent. type: integer format: uint64 - x-field-uid: 7 - declines_sent: + x-field-uid: 11 + reconfigures_received: description: |- - Number of DHCPDECLINE messages sent. + Number of DHCP Reconfigure messages received. type: integer format: uint64 - x-field-uid: 8 - Dhcpv4Server.Metrics.Request: + x-field-uid: 12 + rapid_commit_solicits_sent: + description: |- + Number of rapid commit DHCPSOLICIT messages sent. + type: integer + format: uint64 + x-field-uid: 13 + rapid_commit_replies_received: + description: |- + Number of rapid commit DHCP Reply messages received. + type: integer + format: uint64 + x-field-uid: 14 + Dhcpv6Server.Metrics.Request: description: |- - The request to retrieve DHCPv4 per Server metrics/statistics. + The request to retrieve DHCPv6 per Server metrics/statistics. type: object properties: server_names: description: | - The names of DHCPv4 Servers to return results for. An empty list will return results for all DHCPv4 Server. + The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server. x-constraint: - - /components/schemas/Device.Dhcpv4Server/properties/name + - /components/schemas/Device.Dhcpv6Server/properties/name x-constraint: - - /components/schemas/Device.Dhcpv4Server/properties/name + - /components/schemas/Device.Dhcpv6Server/properties/name type: array items: type: string x-constraint: - - /components/schemas/Device.Dhcpv4Server/properties/name + - /components/schemas/Device.Dhcpv6Server/properties/name x-field-uid: 1 column_names: description: |- - The list of column names that the returned result set will contain. If the list is empty then all columns will be returned. The name of the DHCPv4 server cannot be excluded. + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 server cannot be excluded. type: array items: type: string x-enum: - discovers_received: + solicits_received: x-field-uid: 1 - offers_sent: + solicits_ignored: x-field-uid: 2 - requests_received: + advertisements_sent: x-field-uid: 3 - acks_sent: + requests_received: x-field-uid: 4 nacks_sent: x-field-uid: 5 - releases_received: + confirms_received: x-field-uid: 6 - declines_received: + renewals_received: x-field-uid: 7 + rebinds_received: + x-field-uid: 8 + replies_sent: + x-field-uid: 9 + releases_received: + x-field-uid: 10 + declines_received: + x-field-uid: 11 + information_requests_received: + x-field-uid: 12 + relay_forwards_received: + x-field-uid: 13 + relay_replies_sent: + x-field-uid: 14 + reconfigures_sent: + x-field-uid: 15 enum: - - discovers_received - - offers_sent + - solicits_received + - solicits_ignored + - advertisements_sent - requests_received - - acks_sent - nacks_sent + - confirms_received + - renewals_received + - rebinds_received + - replies_sent - releases_received - declines_received + - information_requests_received + - relay_forwards_received + - relay_replies_sent + - reconfigures_sent x-field-uid: 2 - Dhcpv4Server.Metric: + Dhcpv6Server.Metric: description: |- - DHCPv4 per peer statistics information. + DHCPv6 per server statistics information. type: object properties: name: description: |- - The name of a configured DHCPv4 Server. + The name of a configured DHCPv6 Server. type: string x-field-uid: 1 - discovers_received: + solicits_received: description: |- - Number of DHCPDISCOVER messages received. + Number of DHCPSOLICIT messages received. type: integer format: uint64 x-field-uid: 2 - offers_sent: + solicits_ignored: description: |- - Number of DHCPOFFER messages sent. + Number of DHCPSOLICIT messages ignored. type: integer format: uint64 x-field-uid: 3 - requests_received: + advertisements_sent: description: |- - Number of DHCPOFFER messages received. + Number of DHCP Advertise messages sent. type: integer format: uint64 x-field-uid: 4 - acks_sent: + requests_received: description: |- - Number of lease DHCPACK messages sent. + Number of DHCPREQUEST messages received. type: integer format: uint64 x-field-uid: 5 nacks_sent: description: |- - Number of negative lease DHCPNACK messages sent. + Number of naks sent for DHCPREQUEST messages. type: integer format: uint64 x-field-uid: 6 - releases_received: + confirms_received: description: |- - Number of DHCPRELEASE messages received. + Number of DHCP Confirm messages received. type: integer format: uint64 x-field-uid: 7 - declines_received: + renewals_received: description: |- - Number of DHCPDECLINE messages received. + Number of DHCP Renewal messages received. type: integer format: uint64 x-field-uid: 8 + rebinds_received: + description: |- + Number of DHCP Rebind messages received. + type: integer + format: uint64 + x-field-uid: 9 + replies_sent: + description: |- + Number of DHCP Reply messages sent. + type: integer + format: uint64 + x-field-uid: 10 + releases_received: + description: |- + Number of DHCP Release messages received. + type: integer + format: uint64 + x-field-uid: 11 + declines_received: + description: |- + Number of DHCP Decline messages received. + type: integer + format: uint64 + x-field-uid: 12 + information_requests_received: + description: |- + Number of DHCP Information Request messages received. + type: integer + format: uint64 + x-field-uid: 13 + relay_forwards_received: + description: |- + Number of DHCP Relay agent forward messages received. + type: integer + format: uint64 + x-field-uid: 14 + relay_replies_sent: + description: |- + Number of DHCP reply messages sent to Relay agent. + type: integer + format: uint64 + x-field-uid: 15 + reconfigures_sent: + description: |- + Number of DHCP Reconfigure messages sent. + type: integer + format: uint64 + x-field-uid: 16 States.Request: description: |- Request to traffic generator for states of choice @@ -15953,6 +17386,10 @@ components: x-field-uid: 7 dhcpv4_leases: x-field-uid: 8 + dhcpv6_interfaces: + x-field-uid: 9 + dhcpv6_leases: + x-field-uid: 10 enum: - ipv4_neighbors - ipv6_neighbors @@ -15962,6 +17399,8 @@ components: - rsvp_lsps - dhcpv4_interfaces - dhcpv4_leases + - dhcpv6_interfaces + - dhcpv6_leases ipv4_neighbors: $ref: '#/components/schemas/Neighborsv4.States.Request' x-field-uid: 2 @@ -15986,6 +17425,12 @@ components: dhcpv4_leases: $ref: '#/components/schemas/Dhcpv4Lease.State.Request' x-field-uid: 9 + dhcpv6_interfaces: + $ref: '#/components/schemas/Dhcpv6Interface.State.Request' + x-field-uid: 10 + dhcpv6_leases: + $ref: '#/components/schemas/Dhcpv6Lease.State.Request' + x-field-uid: 11 States.Response: description: |- Response containing chosen traffic generator states @@ -16012,6 +17457,10 @@ components: x-field-uid: 7 dhcpv4_leases: x-field-uid: 8 + dhcpv6_interfaces: + x-field-uid: 9 + dhcpv6_leases: + x-field-uid: 10 enum: - ipv4_neighbors - ipv6_neighbors @@ -16021,6 +17470,8 @@ components: - rsvp_lsps - dhcpv4_interfaces - dhcpv4_leases + - dhcpv6_interfaces + - dhcpv6_leases ipv4_neighbors: type: array items: @@ -16061,6 +17512,16 @@ components: items: $ref: '#/components/schemas/Dhcpv4Leases.State' x-field-uid: 9 + dhcpv6_interfaces: + type: array + items: + $ref: '#/components/schemas/Dhcpv6Interface.State' + x-field-uid: 10 + dhcpv6_leases: + type: array + items: + $ref: '#/components/schemas/Dhcpv6Leases.State' + x-field-uid: 11 Neighborsv4.States.Request: description: |- The request to retrieve IPv4 Neighbor state (ARP cache entries) of a network interface(s). @@ -17947,6 +19408,162 @@ components: The Remote ID option found in the last request message. type: string x-field-uid: 8 + Dhcpv6Interface.State.Request: + description: |- + The request for assigned IPv6 address information associated with DHCP Client sessions. + type: object + properties: + dhcp_client_names: + description: | + The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information. + + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + + + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Device.Dhcpv6client/properties/name + x-field-uid: 1 + Dhcpv6Interface.State: + description: |- + The IPv6 address associated with this DHCP Client session. + type: object + properties: + dhcp_client_name: + description: |- + The name of a DHCPv6 Client. + type: string + x-field-uid: 1 + ipv6_iapd_address: + description: |- + The IPv6 IAPD address associated with this DHCP Client session. + type: string + x-field-uid: 2 + iapd_prefix_length: + description: |- + The prefix length of the IPv6 IAPD address associated with this DHCP Client session. + type: integer + format: uint32 + maximum: 128 + x-field-uid: 3 + ipv6_address: + description: |- + The IPv6 address associated with this DHCP Client session. + type: string + x-field-uid: 4 + gateway_address: + description: |- + The Gateway IPV6 address associated with this DHCP Client session. + type: string + x-field-uid: 5 + lease_time: + description: |- + The duration of the IPv6 address lease, in seconds. + type: integer + format: uint32 + x-field-uid: 6 + renew_time: + description: |- + Time in seconds until the DHCPv6 client starts renewing the lease. + type: integer + format: uint32 + x-field-uid: 7 + rebind_time: + description: |- + Time in seconds until the DHCPv6 client starts rebinding. + type: integer + format: uint32 + x-field-uid: 8 + Dhcpv6Lease.State.Request: + description: |- + The request to retrieve DHCP Server host allocated status. + type: object + properties: + dhcp_server_names: + description: | + The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers. + + x-constraint: + - /components/schemas/Device.Dhcpv6server/properties/name + + + x-constraint: + - /components/schemas/Device.Dhcpv6server/properties/name + type: array + items: + type: string + x-constraint: + - /components/schemas/Device.Dhcpv6server/properties/name + x-field-uid: 1 + Dhcpv6Leases.State: + description: |- + Lease information of DHCP Server. + type: object + properties: + dhcp_server_name: + description: |- + The name of a DHCP Server. + type: string + x-field-uid: 1 + leases: + type: array + items: + $ref: '#/components/schemas/Dhcpv6ServerLease.State' + x-field-uid: 2 + Dhcpv6ServerLease.State: + description: |- + IPv6 unicast prefix. + type: object + properties: + address: + description: |- + The IPv6 address associated with this lease. + type: string + x-field-uid: 1 + valid_time: + description: |- + The time in seconds, IP address lease will expire. + type: integer + format: uint32 + x-field-uid: 2 + preferred_time: + description: |- + The time in seconds, elapsed time since address has been renewed. + type: integer + format: uint32 + x-field-uid: 3 + renew_time: + description: |- + Time in seconds until the DHCPv6 client starts renewing the lease. + type: integer + format: uint32 + x-field-uid: 4 + rebind_time: + description: |- + Time in seconds until the DHCPv6 client starts rebinding. + type: integer + format: uint32 + x-field-uid: 5 + client_id: + description: |- + The ID of the DHCPv6 client holding this lease. + type: string + x-field-uid: 6 + remote_id: + description: |- + The Remote ID option found in the last request message. + type: string + x-field-uid: 7 + interface_id: + description: |- + The Interface ID option found in the last request message. + type: string + x-field-uid: 8 Capture.Request: description: |- The capture result request to the traffic generator. Stops the port capture on the port_name and returns the capture. @@ -22703,6 +24320,8 @@ components: x-field-uid: 4 decrement: x-field-uid: 5 + auto: + x-field-uid: 1 default: value x-field-uid: 1 enum: @@ -22710,6 +24329,7 @@ components: - values - increment - decrement + - auto value: type: string x-field-uid: 2 @@ -22736,6 +24356,9 @@ components: items: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.MetricTag' x-field-uid: 7 + auto: + $ref: '#/components/schemas/Flow.Ipv6.Auto' + x-field-uid: 8 Pattern.Flow.Ipv6.Dst.Counter: description: |- ipv6 counter pattern @@ -22802,6 +24425,8 @@ components: x-field-uid: 4 decrement: x-field-uid: 5 + auto: + x-field-uid: 1 default: value x-field-uid: 1 enum: @@ -22809,6 +24434,7 @@ components: - values - increment - decrement + - auto value: type: string x-field-uid: 2 @@ -22835,6 +24461,9 @@ components: items: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.MetricTag' x-field-uid: 7 + auto: + $ref: '#/components/schemas/Flow.Ipv6.Auto' + x-field-uid: 8 Pattern.Flow.PfcPause.Dst.Counter: description: |- mac counter pattern diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index 3ffda9d5..bd72dac4 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\"\xb3\x02\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\x12\x32\n\x11\x64hcpv4_interfaces\x18\t \x03(\x0b\x32\x17.otg.DeviceDhcpv4clientB\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\"\xce\x02\n\x12\x44\x65viceDhcpv4client\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x06\x63hoice\x18\x02 \x01(\x0e\x32#.otg.DeviceDhcpv4client.Choice.EnumH\x01\x88\x01\x01\x12\x1b\n\x0eserver_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tbroadcast\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x38\n\x17parameters_request_list\x18\x06 \x01(\x0b\x32\x17.otg.Dhcpv4ClientParams\x1aG\n\x06\x43hoice\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66irst_server\x10\x01\x12\x12\n\x0eserver_address\x10\x02\x42\x07\n\x05_nameB\t\n\x07_choiceB\x11\n\x0f_server_addressB\x0c\n\n_broadcast\"\xbe\x01\n\x12\x44hcpv4ClientParams\x12\x18\n\x0bsubnet_mask\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06router\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\rrenewal_timer\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1c\n\x0frebinding_timer\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x0e\n\x0c_subnet_maskB\t\n\x07_routerB\x10\n\x0e_renewal_timerB\x12\n\x10_rebinding_timer\"\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\"\xe2\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.DeviceRsvp\x12*\n\x0b\x64hcp_server\x18\t \x01(\x0b\x32\x15.otg.DeviceDhcpServerB\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\"\xe0\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\x12,\n\x0ereplay_updates\x18\x0f \x01(\x0b\x32\x14.otg.BgpUpdateReplay\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\"\xf0\x01\n\x0f\x42gpUpdateReplay\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.BgpUpdateReplay.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0fstructured_pdus\x18\x02 \x01(\x0b\x32\x16.otg.BgpStructuredPdus\x12#\n\traw_bytes\x18\x03 \x01(\x0b\x32\x10.otg.BgpRawBytes\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fstructured_pdus\x10\x01\x12\r\n\traw_bytes\x10\x02\x42\t\n\x07_choice\"7\n\x0b\x42gpRawBytes\x12(\n\x07updates\x18\x01 \x03(\x0b\x32\x17.otg.BgpOneUpdateReplay\"d\n\x12\x42gpOneUpdateReplay\x12\x15\n\x08time_gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cupdate_bytes\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_time_gapB\x0f\n\r_update_bytes\"G\n\x11\x42gpStructuredPdus\x12\x32\n\x07updates\x18\x01 \x03(\x0b\x32!.otg.BgpOneStructuredUpdateReplay\"\xf7\x01\n\x1c\x42gpOneStructuredUpdateReplay\x12\x15\n\x08time_gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12+\n\x0fpath_attributes\x18\x02 \x01(\x0b\x32\x12.otg.BgpAttributes\x12\x43\n\x19traditional_unreach_nlris\x18\x03 \x03(\x0b\x32 .otg.BgpOneTraditionalNlriPrefix\x12\x41\n\x17traditional_reach_nlris\x18\x04 \x03(\x0b\x32 .otg.BgpOneTraditionalNlriPrefixB\x0b\n\t_time_gap\"\x8a\x01\n\x1b\x42gpOneTraditionalNlriPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"\x83\x01\n\x14\x42gpOneIpv4NLRIPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"\x83\x01\n\x14\x42gpOneIpv6NLRIPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"3\n\x13\x42gpNLRIPrefixPathId\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\x8b\x01\n\x19\x42gpIpv4SrPolicyNLRIPrefix\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\x15\n\x08\x65ndpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x0b\n\t_endpoint\"\x8b\x01\n\x19\x42gpIpv6SrPolicyNLRIPrefix\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\x15\n\x08\x65ndpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x0b\n\t_endpoint\"\xef\x07\n\rBgpAttributes\x12:\n\x10other_attributes\x18\x01 \x03(\x0b\x32 .otg.BgpAttributesOtherAttribute\x12\x33\n\x06origin\x18\x02 \x01(\x0e\x32\x1e.otg.BgpAttributes.Origin.EnumH\x00\x88\x01\x01\x12)\n\x07\x61s_path\x18\x03 \x01(\x0b\x32\x18.otg.BgpAttributesAsPath\x12+\n\x08\x61s4_path\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesAs4Path\x12+\n\x08next_hop\x18\x05 \x01(\x0b\x32\x19.otg.BgpAttributesNextHop\x12J\n\x18multi_exit_discriminator\x18\x06 \x01(\x0b\x32(.otg.BgpAttributesMultiExitDiscriminator\x12;\n\x10local_preference\x18\x07 \x01(\x0b\x32!.otg.BgpAttributesLocalPreference\x12&\n\x19include_atomic_aggregator\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x30\n\naggregator\x18\t \x01(\x0b\x32\x1c.otg.BgpAttributesAggregator\x12\x37\n\x0e\x61s4_aggregator\x18\n \x01(\x0b\x32\x1f.otg.BgpAttributesAs4Aggregator\x12.\n\tcommunity\x18\x0b \x03(\x0b\x32\x1b.otg.BgpAttributesCommunity\x12\x35\n\roriginator_id\x18\x0c \x01(\x0b\x32\x1e.otg.BgpAttributesOriginatorId\x12\x13\n\x0b\x63luster_ids\x18\r \x03(\t\x12\x37\n\x14\x65xtended_communities\x18\x0e \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x12\x43\n\x14tunnel_encapsulation\x18\x0f \x01(\x0b\x32%.otg.BgpAttributesTunnelEncapsulation\x12/\n\x08mp_reach\x18\x10 \x01(\x0b\x32\x1d.otg.BgpAttributesMpReachNlri\x12\x33\n\nmp_unreach\x18\x11 \x01(\x0b\x32\x1f.otg.BgpAttributesMpUnreachNlri\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\t\n\x07_originB\x1c\n\x1a_include_atomic_aggregator\"\xa7\x02\n\x1b\x42gpAttributesOtherAttribute\x12\x1a\n\rflag_optional\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0f\x66lag_transitive\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0c\x66lag_partial\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x66lag_extended_length\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04type\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x16\n\traw_value\x18\x06 \x01(\tH\x05\x88\x01\x01\x42\x10\n\x0e_flag_optionalB\x12\n\x10_flag_transitiveB\x0f\n\r_flag_partialB\x17\n\x15_flag_extended_lengthB\x07\n\x05_typeB\x0c\n\n_raw_value\"\xaf\x02\n\x13\x42gpAttributesAsPath\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.BgpAttributesAsPath.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\x11\x66our_byte_as_path\x18\x02 \x01(\x0b\x32&.otg.BgpAttributesAsPathFourByteAsPath\x12?\n\x10two_byte_as_path\x18\x03 \x01(\x0b\x32%.otg.BgpAttributesAsPathTwoByteAsPath\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x15\n\x11\x66our_byte_as_path\x10\x01\x12\x14\n\x10two_byte_as_path\x10\x02\x42\t\n\x07_choice\"^\n!BgpAttributesAsPathFourByteAsPath\x12\x39\n\x08segments\x18\x01 \x03(\x0b\x32\'.otg.BgpAttributesFourByteAsPathSegment\"\xe6\x01\n\"BgpAttributesFourByteAsPathSegment\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x31.otg.BgpAttributesFourByteAsPathSegment.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\"\\\n BgpAttributesAsPathTwoByteAsPath\x12\x38\n\x08segments\x18\x01 \x03(\x0b\x32&.otg.BgpAttributesTwoByteAsPathSegment\"\xe4\x01\n!BgpAttributesTwoByteAsPathSegment\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x30.otg.BgpAttributesTwoByteAsPathSegment.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\"Q\n\x14\x42gpAttributesAs4Path\x12\x39\n\x08segments\x18\x01 \x03(\x0b\x32\'.otg.BgpAttributesFourByteAsPathSegment\"\xab\x02\n\x17\x42gpAttributesAggregator\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.BgpAttributesAggregator.Choice.EnumH\x00\x88\x01\x01\x12\x19\n\x0c\x66our_byte_as\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0btwo_byte_as\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a\x44\n\x06\x43hoice\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66our_byte_as\x10\x01\x12\x0f\n\x0btwo_byte_as\x10\x02\x42\t\n\x07_choiceB\x0f\n\r_four_byte_asB\x0e\n\x0c_two_byte_asB\x0f\n\r_ipv4_address\"h\n\x1a\x42gpAttributesAs4Aggregator\x12\x13\n\x06\x61s_num\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_as_numB\x0f\n\r_ipv4_address\"\xb1\x02\n\x16\x42gpAttributesCommunity\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.BgpAttributesCommunity.Choice.EnumH\x00\x88\x01\x01\x12;\n\x10\x63ustom_community\x18\x02 \x01(\x0b\x32!.otg.BgpAttributesCustomCommunity\x1a\x90\x01\n\x06\x43hoice\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10\x63ustom_community\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\t\n\x07_choice\"d\n\x1c\x42gpAttributesCustomCommunity\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_as_numberB\t\n\x07_custom\"\xab\x02\n\x14\x42gpAttributesNextHop\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpAttributesNextHop.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04ipv6\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x45\n\x12ipv6_two_addresses\x18\x04 \x01(\x0b\x32).otg.BgpAttributesNextHopIpv6TwoAddresses\x1aM\n\x06\x43hoice\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x16\n\x12ipv6_two_addresses\x10\x03\x42\t\n\x07_choiceB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"d\n$BgpAttributesNextHopIpv6TwoAddresses\x12\x12\n\x05\x66irst\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06second\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_firstB\t\n\x07_second\"\xcf\x03\n\x18\x42gpAttributesMpReachNlri\x12+\n\x08next_hop\x18\x01 \x01(\x0b\x32\x19.otg.BgpAttributesNextHop\x12>\n\x06\x63hoice\x18\x02 \x01(\x0e\x32).otg.BgpAttributesMpReachNlri.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0cipv4_unicast\x18\x03 \x03(\x0b\x32\x19.otg.BgpOneIpv4NLRIPrefix\x12/\n\x0cipv6_unicast\x18\x04 \x03(\x0b\x32\x19.otg.BgpOneIpv6NLRIPrefix\x12\x35\n\ripv4_srpolicy\x18\x05 \x01(\x0b\x32\x1e.otg.BgpIpv4SrPolicyNLRIPrefix\x12\x35\n\ripv6_srpolicy\x18\x06 \x01(\x0b\x32\x1e.otg.BgpIpv6SrPolicyNLRIPrefix\x1ak\n\x06\x43hoice\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\x12\x11\n\ripv4_srpolicy\x10\x03\x12\x11\n\ripv6_srpolicy\x10\x04\x42\t\n\x07_choice\"\xa6\x03\n\x1a\x42gpAttributesMpUnreachNlri\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.BgpAttributesMpUnreachNlri.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0cipv4_unicast\x18\x02 \x03(\x0b\x32\x19.otg.BgpOneIpv4NLRIPrefix\x12/\n\x0cipv6_unicast\x18\x03 \x03(\x0b\x32\x19.otg.BgpOneIpv6NLRIPrefix\x12\x35\n\ripv4_srpolicy\x18\x04 \x01(\x0b\x32\x1e.otg.BgpIpv4SrPolicyNLRIPrefix\x12\x35\n\ripv6_srpolicy\x18\x05 \x01(\x0b\x32\x1e.otg.BgpIpv6SrPolicyNLRIPrefix\x1ak\n\x06\x43hoice\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\x12\x11\n\ripv4_srpolicy\x10\x03\x12\x11\n\ripv6_srpolicy\x10\x04\x42\t\n\x07_choice\"C\n#BgpAttributesMultiExitDiscriminator\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"<\n\x1c\x42gpAttributesLocalPreference\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"9\n\x19\x42gpAttributesOriginatorId\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe2\x01\n BgpAttributesTunnelEncapsulation\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.BgpAttributesTunnelEncapsulation.Choice.EnumH\x00\x88\x01\x01\x12\x39\n\tsr_policy\x18\x02 \x01(\x0b\x32&.otg.BgpAttributesSegmentRoutingPolicy\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsr_policy\x10\x01\x42\t\n\x07_choice\"\xac\x04\n!BgpAttributesSegmentRoutingPolicy\x12:\n\x1a\x62inding_segment_identifier\x18\x01 \x01(\x0b\x32\x16.otg.BgpAttributesBsid\x12\x43\n\x1fsrv6_binding_segment_identifier\x18\x02 \x03(\x0b\x32\x1a.otg.BgpAttributesSrv6Bsid\x12\x38\n\npreference\x18\x03 \x01(\x0b\x32$.otg.BgpAttributesSrPolicyPreference\x12\x34\n\x08priority\x18\x04 \x01(\x0b\x32\".otg.BgpAttributesSrPolicyPriority\x12\x39\n\x0bpolicy_name\x18\x05 \x01(\x0b\x32$.otg.BgpAttributesSrPolicyPolicyName\x12L\n\x15policy_candidate_name\x18\x06 \x01(\x0b\x32-.otg.BgpAttributesSrPolicyPolicyCandidateName\x12P\n\x1a\x65xplicit_null_label_policy\x18\x07 \x01(\x0b\x32,.otg.BgpAttributesSrPolicyExplicitNullPolicy\x12;\n\x0csegment_list\x18\x08 \x03(\x0b\x32%.otg.BgpAttributesSrPolicySegmentList\"\xe2\x01\n\x11\x42gpAttributesBsid\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.BgpAttributesBsid.Choice.EnumH\x00\x88\x01\x01\x12(\n\x04mpls\x18\x02 \x01(\x0b\x32\x1a.otg.BgpAttributesBsidMpls\x12(\n\x04srv6\x18\x03 \x01(\x0b\x32\x1a.otg.BgpAttributesBsidSrv6\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mpls\x10\x01\x12\x08\n\x04srv6\x10\x02\x42\t\n\x07_choice\"\xc8\x01\n\x15\x42gpAttributesBsidMpls\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12+\n\x08mpls_sid\x18\x03 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalid\"\xc1\x01\n\x15\x42gpAttributesBsidSrv6\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tipv6_addr\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalidB\x0c\n\n_ipv6_addr\"\xf6\x02\n\x15\x42gpAttributesSrv6Bsid\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12(\n\x1b\x66lag_srv6_endpoint_behavior\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x16\n\tipv6_addr\x18\x04 \x01(\tH\x03\x88\x01\x01\x12i\n\x16srv6_endpoint_behavior\x18\x05 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalidB\x1e\n\x1c_flag_srv6_endpoint_behaviorB\x0c\n\n_ipv6_addr\"\xa0\x01\n\x14\x42gpAttributesSidMpls\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rtraffic_class\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x66lag_bos\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\x10\n\x0e_traffic_classB\x0b\n\t_flag_bosB\x06\n\x04_ttl\".\n\x14\x42gpAttributesSidSrv6\x12\x0f\n\x02ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_ip\"?\n\x1f\x42gpAttributesSrPolicyPreference\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"=\n\x1d\x42gpAttributesSrPolicyPriority\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"H\n(BgpAttributesSrPolicyPolicyCandidateName\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"?\n\x1f\x42gpAttributesSrPolicyPolicyName\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xf9\x01\n\'BgpAttributesSrPolicyExplicitNullPolicy\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.EnumH\x00\x88\x01\x01\x1at\n\x06\x43hoice\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unknown\x10\x01\x12\r\n\tpush_ipv4\x10\x02\x12\r\n\tpush_ipv6\x10\x03\x12\x16\n\x12push_ipv4_and_ipv6\x10\x04\x12\x0e\n\ndonot_push\x10\x05\x42\t\n\x07_choice\"\xb7\x01\n BgpAttributesSrPolicySegmentList\x12G\n\x06weight\x18\x01 \x01(\x0b\x32\x37.otg.BgpAttributesSegmentRoutingPolicySegmentListWeight\x12J\n\x08segments\x18\x02 \x03(\x0b\x32\x38.otg.BgpAttributesSegmentRoutingPolicySegmentListSegment\"R\n2BgpAttributesSegmentRoutingPolicySegmentListWeight\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe3\x07\n3BgpAttributesSegmentRoutingPolicySegmentListSegment\x12Y\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x44.otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.EnumH\x00\x88\x01\x01\x12;\n\x06type_a\x18\x02 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeA\x12;\n\x06type_b\x18\x03 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeB\x12;\n\x06type_c\x18\x04 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeC\x12;\n\x06type_d\x18\x05 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeD\x12;\n\x06type_e\x18\x06 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeE\x12;\n\x06type_f\x18\x07 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeF\x12;\n\x06type_g\x18\x08 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeG\x12;\n\x06type_h\x18\t \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeH\x12;\n\x06type_i\x18\n \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeI\x12;\n\x06type_j\x18\x0b \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeJ\x12;\n\x06type_k\x18\x0c \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeK\x1a\xa6\x01\n\x06\x43hoice\"\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\t\n\x07_choice\"\x95\x01\n&BgpAttributesSegmentRoutingPolicyTypeA\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12+\n\x08mpls_sid\x18\x02 \x01(\x0b\x32\x19.otg.BgpAttributesSidMpls\"\xf7\x01\n&BgpAttributesSegmentRoutingPolicyTypeB\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x15\n\x08srv6_sid\x18\x02 \x01(\tH\x00\x88\x01\x01\x12i\n\x16srv6_endpoint_behavior\x18\x03 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0b\n\t_srv6_sid\"\xfa\x01\n&BgpAttributesSegmentRoutingPolicyTypeC\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv4_node_address\"\xfa\x01\n&BgpAttributesSegmentRoutingPolicyTypeD\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\x86\x02\n&BgpAttributesSegmentRoutingPolicyTypeE\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_interface_idB\x14\n\x12_ipv4_node_address\"\x8a\x02\n&BgpAttributesSegmentRoutingPolicyTypeF\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_ipv4_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x12 \n\x13remote_ipv4_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_ipv4_addressB\x16\n\x14_remote_ipv4_address\"\x90\x03\n&BgpAttributesSegmentRoutingPolicyTypeG\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\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\"\x8a\x02\n&BgpAttributesSegmentRoutingPolicyTypeH\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_ipv6_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xe2\x02\n&BgpAttributesSegmentRoutingPolicyTypeI\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x08srv6_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x05 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\xa4\x04\n&BgpAttributesSegmentRoutingPolicyTypeJ\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x01\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12+\n\x08srv6_sid\x18\x07 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x08 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\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_address\"\x9e\x03\n&BgpAttributesSegmentRoutingPolicyTypeK\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12+\n\x08srv6_sid\x18\x05 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x06 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0f\n\r_sr_algorithmB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xac\x01\n*BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x13\n\x06v_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06\x61_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06s_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x13\n\x06\x62_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_v_flagB\t\n\x07_a_flagB\t\n\x07_s_flagB\t\n\x07_b_flag\"\x9c\x02\nDBgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure\x12\x1f\n\x12\x65ndpoint_behaviour\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tlb_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tln_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x17\n\narg_length\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x15\n\x13_endpoint_behaviourB\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"H\n(BgpNLRIPrefixSegmentRoutingDistinguisher\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\x93\x07\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\x12,\n\x0ereplay_updates\x18\x10 \x01(\x0b\x32\x14.otg.BgpUpdateReplay\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\">\n\x10\x44\x65viceDhcpServer\x12*\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x11.otg.DhcpServerV4\"~\n\x0c\x44hcpServerV4\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tipv4_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\raddress_pools\x18\x03 \x03(\x0b\x32\x15.otg.DhcpServerV4PoolB\x07\n\x05_nameB\x0c\n\n_ipv4_name\"\x9a\x02\n\x10\x44hcpServerV4Pool\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nlease_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rstart_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x11\n\x04step\x18\x06 \x01(\rH\x05\x88\x01\x01\x12,\n\x07options\x18\x07 \x01(\x0b\x32\x1b.otg.DhcpServerV4PoolOptionB\x07\n\x05_nameB\r\n\x0b_lease_timeB\x10\n\x0e_start_addressB\x10\n\x0e_prefix_lengthB\x08\n\x06_countB\x07\n\x05_step\"\xfc\x01\n\x16\x44hcpServerV4PoolOption\x12\x1b\n\x0erouter_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12primary_dns_server\x18\x02 \x01(\tH\x01\x88\x01\x01\x12!\n\x14secondary_dns_server\x18\x03 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x65\x63ho_relay_with_tlv_82\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x11\n\x0f_router_addressB\x15\n\x13_primary_dns_serverB\x17\n\x15_secondary_dns_serverB\x19\n\x17_echo_relay_with_tlv_82\"\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\"\xe9\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\x12\x1b\n\x04rsvp\x18\x16 \x01(\x0b\x32\r.otg.FlowRsvp\x1a\x8c\x02\n\x06\x43hoice\"\x81\x02\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\x12\x08\n\x04rsvp\x10\x15\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\"z\n\x0c\x46lowIpv4Auto\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowIpv4Auto.Choice.EnumH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x64hcp\x10\x01\x42\t\n\x07_choice\"\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\"\xd7\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\x12-\n\x08\x63hecksum\x18\x10 \x01(\x0b\x32\x1b.otg.PatternFlowTcpChecksum\"\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\"\xa5\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@\n\x0cstring_value\x18\x03 \x01(\x0b\x32*.otg.FlowSnmpv2cVariableBindingStringValue\x12$\n\x17object_identifier_value\x18\x04 \x01(\tH\x01\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\x02\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\x1a\n\x18_object_identifier_valueB\x12\n\x10_arbitrary_value\"\xee\x01\n%FlowSnmpv2cVariableBindingStringValue\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.FlowSnmpv2cVariableBindingStringValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x61scii\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03raw\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61scii\x10\x01\x12\x07\n\x03raw\x10\x02\x42\t\n\x07_choiceB\x08\n\x06_asciiB\x06\n\x04_raw\"\xb9\x03\n\x08\x46lowRsvp\x12\x14\n\x07version\x18\x01 \x01(\rH\x00\x88\x01\x01\x12*\n\x04\x66lag\x18\x02 \x01(\x0e\x32\x17.otg.FlowRsvp.Flag.EnumH\x01\x88\x01\x01\x12\x37\n\rrsvp_checksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowRsvpRsvpChecksum\x12\x34\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowRsvpTimeToLive\x12.\n\x08reserved\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowRsvpReserved\x12(\n\x0brsvp_length\x18\x06 \x01(\x0b\x32\x13.otg.FlowRSVPLength\x12*\n\x0cmessage_type\x18\x07 \x01(\x0b\x32\x14.otg.FlowRSVPMessage\x1a\x61\n\x04\x46lag\"Y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12!\n\x1dnot_refresh_reduction_capable\x10\x01\x12\x1d\n\x19refresh_reduction_capable\x10\x02\x42\n\n\x08_versionB\x07\n\x05_flag\"\xc3\x01\n\x0e\x46lowRSVPLength\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.FlowRSVPLength.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\"\xa8\x01\n\x0f\x46lowRSVPMessage\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.FlowRSVPMessage.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04path\x18\x02 \x01(\x0b\x32\x18.otg.FlowRSVPPathMessage\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04path\x10\x01\x42\t\n\x07_choice\"@\n\x13\x46lowRSVPPathMessage\x12)\n\x07objects\x18\x01 \x03(\x0b\x32\x18.otg.FlowRSVPPathObjects\"G\n\x13\x46lowRSVPPathObjects\x12\x30\n\tclass_num\x18\x01 \x01(\x0b\x32\x1d.otg.FlowRSVPPathObjectsClass\"\xcf\x01\n\x14\x46lowRSVPObjectLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.FlowRSVPObjectLength.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\"\xac\x07\n\x18\x46lowRSVPPathObjectsClass\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.FlowRSVPPathObjectsClass.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x07session\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsClassSession\x12\x36\n\x08rsvp_hop\x18\x03 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsClassRsvpHop\x12<\n\x0btime_values\x18\x04 \x01(\x0b\x32\'.otg.FlowRSVPPathObjectsClassTimeValues\x12\x42\n\x0e\x65xplicit_route\x18\x05 \x01(\x0b\x32*.otg.FlowRSVPPathObjectsClassExplicitRoute\x12@\n\rlabel_request\x18\x06 \x01(\x0b\x32).otg.FlowRSVPPathObjectsClassLabelRequest\x12H\n\x11session_attribute\x18\x07 \x01(\x0b\x32-.otg.FlowRSVPPathObjectsClassSessionAttribute\x12\x44\n\x0fsender_template\x18\x08 \x01(\x0b\x32+.otg.FlowRSVPPathObjectsClassSenderTemplate\x12>\n\x0csender_tspec\x18\t \x01(\x0b\x32(.otg.FlowRSVPPathObjectsClassSenderTspec\x12>\n\x0crecord_route\x18\n \x01(\x0b\x32(.otg.FlowRSVPPathObjectsClassRecordRoute\x12.\n\x06\x63ustom\x18\x0b \x01(\x0b\x32\x1e.otg.FlowRSVPPathObjectsCustom\x1a\xd1\x01\n\x06\x43hoice\"\xc6\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07session\x10\x01\x12\x0c\n\x08rsvp_hop\x10\x02\x12\x0f\n\x0btime_values\x10\x03\x12\x12\n\x0e\x65xplicit_route\x10\x04\x12\x11\n\rlabel_request\x10\x05\x12\x15\n\x11session_attribute\x10\x06\x12\x13\n\x0fsender_template\x10\x07\x12\x10\n\x0csender_tspec\x10\x08\x12\x10\n\x0crecord_route\x10\t\x12\n\n\x06\x63ustom\x10\nB\t\n\x07_choice\"\x82\x01\n\x1f\x46lowRSVPPathObjectsClassSession\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x34\n\x06\x63_type\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsSessionCType\"\xeb\x01\n\x1f\x46lowRSVPPathObjectsSessionCType\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.FlowRSVPPathObjectsSessionCType.Choice.EnumH\x00\x88\x01\x01\x12>\n\x0flsp_tunnel_ipv4\x18\x02 \x01(\x0b\x32%.otg.FlowRSVPPathSessionLspTunnelIpv4\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flsp_tunnel_ipv4\x10\x01\x42\t\n\x07_choice\"\xe2\x02\n FlowRSVPPathSessionLspTunnelIpv4\x12l\n\x1dipv4_tunnel_end_point_address\x18\x01 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress\x12\x46\n\x08reserved\x18\x02 \x01(\x0b\x32\x34.otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved\x12G\n\ttunnel_id\x18\x03 \x01(\x0b\x32\x34.otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId\x12?\n\x12\x65xtended_tunnel_id\x18\x04 \x01(\x0b\x32#.otg.FlowRSVPPathSessionExtTunnelId\"\xbd\x02\n\x1e\x46lowRSVPPathSessionExtTunnelId\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.FlowRSVPPathSessionExtTunnelId.Choice.EnumH\x00\x88\x01\x01\x12G\n\nas_integer\x18\x02 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger\x12\x41\n\x07\x61s_ipv4\x18\x03 \x01(\x0b\x32\x30.otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nas_integer\x10\x01\x12\x0b\n\x07\x61s_ipv4\x10\x02\x42\t\n\x07_choice\"\x82\x01\n\x1f\x46lowRSVPPathObjectsClassRsvpHop\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x34\n\x06\x63_type\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsRsvpHopCType\"\xcc\x01\n\x1f\x46lowRSVPPathObjectsRsvpHopCType\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.FlowRSVPPathObjectsRsvpHopCType.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1c.otg.FlowRSVPPathRsvpHopIpv4\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x42\t\n\x07_choice\"\xbc\x01\n\x17\x46lowRSVPPathRsvpHopIpv4\x12\x44\n\x0cipv4_address\x18\x01 \x01(\x0b\x32..otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address\x12[\n\x18logical_interface_handle\x18\x02 \x01(\x0b\x32\x39.otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle\"\x88\x01\n\"FlowRSVPPathObjectsClassTimeValues\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x37\n\x06\x63_type\x18\x02 \x01(\x0b\x32\'.otg.FlowRSVPPathObjectsTimeValuesCType\"\xda\x01\n\"FlowRSVPPathObjectsTimeValuesCType\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.FlowRSVPPathObjectsTimeValuesCType.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x06type_1\x18\x02 \x01(\x0b\x32 .otg.FlowRSVPPathTimeValuesType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"n\n\x1b\x46lowRSVPPathTimeValuesType1\x12O\n\x10refresh_period_r\x18\x01 \x01(\x0b\x32\x35.otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR\"\x93\x01\n%FlowRSVPPathObjectsClassExplicitRoute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12?\n\x06\x63_type\x18\x02 \x01(\x0b\x32/.otg.FlowRSVPPathObjectsClassExplicitRouteCType\"\xed\x01\n*FlowRSVPPathObjectsClassExplicitRouteCType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.EnumH\x00\x88\x01\x01\x12\x33\n\x06type_1\x18\x02 \x01(\x0b\x32#.otg.FlowRSVPPathExplicitRouteType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"_\n\x1e\x46lowRSVPPathExplicitRouteType1\x12=\n\nsubobjects\x18\x01 \x03(\x0b\x32).otg.FlowRSVPType1ExplicitRouteSubobjects\"c\n$FlowRSVPType1ExplicitRouteSubobjects\x12;\n\x04type\x18\x01 \x01(\x0b\x32-.otg.FlowRSVPType1ExplicitRouteSubobjectsType\"\xcc\x02\n(FlowRSVPType1ExplicitRouteSubobjectsType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\x0bipv4_prefix\x18\x02 \x01(\x0b\x32-.otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix\x12>\n\tas_number\x18\x03 \x01(\x0b\x32+.otg.FlowRSVPPathExplicitRouteType1ASNumber\x1a\x41\n\x06\x43hoice\"7\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0bipv4_prefix\x10\x01\x12\r\n\tas_number\x10\x02\x42\t\n\x07_choice\"\x9c\x02\n(FlowRSVPPathExplicitRouteType1Ipv4Prefix\x12G\n\x05l_bit\x18\x01 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit\x12\x30\n\x06length\x18\x02 \x01(\x0b\x32 .otg.FlowRSVPExplicitRouteLength\x12U\n\x0cipv4_address\x18\x03 \x01(\x0b\x32?.otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_prefix\"\xcf\x01\n&FlowRSVPPathExplicitRouteType1ASNumber\x12\x45\n\x05l_bit\x18\x01 \x01(\x0b\x32\x36.otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit\x12\x38\n\x06length\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPExplicitRouteASNumberLength\x12\x16\n\tas_number\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_as_number\"\xdd\x01\n\x1b\x46lowRSVPExplicitRouteLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowRSVPExplicitRouteLength.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\"\xed\x01\n#FlowRSVPExplicitRouteASNumberLength\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPExplicitRouteASNumberLength.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\"\x8c\x01\n$FlowRSVPPathObjectsClassLabelRequest\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x39\n\x06\x63_type\x18\x02 \x01(\x0b\x32).otg.FlowRSVPPathObjectsLabelRequestCType\"\x86\x02\n$FlowRSVPPathObjectsLabelRequestCType\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.FlowRSVPPathObjectsLabelRequestCType.Choice.EnumH\x00\x88\x01\x01\x12K\n\x13without_label_range\x18\x02 \x01(\x0b\x32..otg.FlowRSVPPathLabelRequestWithoutLabelRange\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13without_label_range\x10\x01\x42\t\n\x07_choice\"\xc7\x01\n)FlowRSVPPathLabelRequestWithoutLabelRange\x12O\n\x08reserved\x18\x01 \x01(\x0b\x32=.otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved\x12I\n\x05l3pid\x18\x02 \x01(\x0b\x32:.otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid\"\x94\x01\n(FlowRSVPPathObjectsClassSessionAttribute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12=\n\x06\x63_type\x18\x02 \x01(\x0b\x32-.otg.FlowRSVPPathObjectsSessionAttributeCType\"\xd0\x02\n(FlowRSVPPathObjectsSessionAttributeCType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.EnumH\x00\x88\x01\x01\x12>\n\nlsp_tunnel\x18\x02 \x01(\x0b\x32*.otg.FlowRSVPPathSessionAttributeLspTunnel\x12\x43\n\rlsp_tunnel_ra\x18\x03 \x01(\x0b\x32,.otg.FlowRSVPPathSessionAttributeLspTunnelRa\x1a\x44\n\x06\x43hoice\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nlsp_tunnel\x10\x01\x12\x11\n\rlsp_tunnel_ra\x10\x02\x42\t\n\x07_choice\"\xa0\x02\n%FlowRSVPPathSessionAttributeLspTunnel\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)\n\x05\x66lags\x18\x03 \x01(\x0b\x32\x1a.otg.FlowRSVPLspTunnelFlag\x12<\n\x0bname_length\x18\x04 \x01(\x0b\x32\'.otg.FlowRSVPSessionAttributeNameLength\x12\x19\n\x0csession_name\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0f\n\r_session_name\"\xa0\x03\n\'FlowRSVPPathSessionAttributeLspTunnelRa\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\x12\x1b\n\x0esetup_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x05 \x01(\rH\x04\x88\x01\x01\x12)\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x1a.otg.FlowRSVPLspTunnelFlag\x12<\n\x0bname_length\x18\x07 \x01(\x0b\x32\'.otg.FlowRSVPSessionAttributeNameLength\x12\x19\n\x0csession_name\x18\x08 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0f\n\r_session_name\"\xd3\x01\n\x15\x46lowRSVPLspTunnelFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.FlowRSVPLspTunnelFlag.Choice.EnumH\x00\x88\x01\x01\x1ar\n\x06\x43hoice\"h\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1c\n\x18local_protection_desired\x10\x01\x12\x1b\n\x17label_recording_desired\x10\x02\x12\x14\n\x10se_style_desired\x10\x03\x42\t\n\x07_choice\"\xeb\x01\n\"FlowRSVPSessionAttributeNameLength\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.FlowRSVPSessionAttributeNameLength.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\"\x90\x01\n&FlowRSVPPathObjectsClassSenderTemplate\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12;\n\x06\x63_type\x18\x02 \x01(\x0b\x32+.otg.FlowRSVPPathObjectsSenderTemplateCType\"\x80\x02\n&FlowRSVPPathObjectsSenderTemplateCType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\x0flsp_tunnel_ipv4\x18\x02 \x01(\x0b\x32,.otg.FlowRSVPPathSenderTemplateLspTunnelIpv4\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flsp_tunnel_ipv4\x10\x01\x42\t\n\x07_choice\"\xb2\x02\n\'FlowRSVPPathSenderTemplateLspTunnelIpv4\x12n\n\x1aipv4_tunnel_sender_address\x18\x01 \x01(\x0b\x32J.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress\x12M\n\x08reserved\x18\x02 \x01(\x0b\x32;.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved\x12H\n\x06lsp_id\x18\x03 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId\"\x8a\x01\n#FlowRSVPPathObjectsClassSenderTspec\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x38\n\x06\x63_type\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPPathObjectsSenderTspecCType\"\xe3\x01\n#FlowRSVPPathObjectsSenderTspecCType\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPPathObjectsSenderTspecCType.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x08int_serv\x18\x02 \x01(\x0b\x32#.otg.FlowRSVPPathSenderTspecIntServ\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08int_serv\x10\x01\x42\t\n\x07_choice\"\xb0\t\n\x1e\x46lowRSVPPathSenderTspecIntServ\x12\x42\n\x07version\x18\x01 \x01(\x0b\x32\x31.otg.PatternFlowRSVPPathSenderTspecIntServVersion\x12\x46\n\treserved1\x18\x02 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSenderTspecIntServReserved1\x12O\n\x0eoverall_length\x18\x03 \x01(\x0b\x32\x37.otg.PatternFlowRSVPPathSenderTspecIntServOverallLength\x12O\n\x0eservice_header\x18\x04 \x01(\x0b\x32\x37.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader\x12\x43\n\x08zero_bit\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowRSVPPathSenderTspecIntServZeroBit\x12\x46\n\treserved2\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSenderTspecIntServReserved2\x12]\n\x16length_of_service_data\x18\x07 \x01(\x0b\x32=.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData\x12n\n\x1fparameter_id_token_bucket_tspec\x18\x08 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec\x12V\n\x12parameter_127_flag\x18\t \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag\x12Z\n\x14parameter_127_length\x18\n \x01(\x0b\x32<.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length\x12\x1e\n\x11token_bucket_rate\x18\x0b \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x0c \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\r \x01(\x02H\x02\x88\x01\x01\x12Z\n\x14minimum_policed_unit\x18\x0e \x01(\x0b\x32<.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit\x12X\n\x13maximum_packet_size\x18\x0f \x01(\x0b\x32;.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeB\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rate\"\x8a\x01\n#FlowRSVPPathObjectsClassRecordRoute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x38\n\x06\x63_type\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPPathObjectsRecordRouteCType\"\xdd\x01\n#FlowRSVPPathObjectsRecordRouteCType\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPPathObjectsRecordRouteCType.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x06type_1\x18\x02 \x01(\x0b\x32!.otg.FlowRSVPPathRecordRouteType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"[\n\x1c\x46lowRSVPPathRecordRouteType1\x12;\n\nsubobjects\x18\x01 \x03(\x0b\x32\'.otg.FlowRSVPType1RecordRouteSubobjects\"d\n\"FlowRSVPType1RecordRouteSubobjects\x12>\n\x04type\x18\x01 \x01(\x0b\x32\x30.otg.FlowRSVPPathObjectsRecordRouteSubObjectType\"\xc6\x02\n+FlowRSVPPathObjectsRecordRouteSubObjectType\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\x0cipv4_address\x18\x02 \x01(\x0b\x32,.otg.FlowRSVPPathRecordRouteType1Ipv4Address\x12\x35\n\x05label\x18\x03 \x01(\x0b\x32&.otg.FlowRSVPPathRecordRouteType1Label\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_address\x10\x01\x12\t\n\x05label\x10\x02\x42\t\n\x07_choice\"\xb8\x02\n\'FlowRSVPPathRecordRouteType1Ipv4Address\x12.\n\x06length\x18\x01 \x01(\x0b\x32\x1e.otg.FlowRSVPRouteRecordLength\x12T\n\x0cipv4_address\x18\x02 \x01(\x0b\x32>.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address\x12V\n\rprefix_length\x18\x03 \x01(\x0b\x32?.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength\x12/\n\x05\x66lags\x18\x04 \x01(\x0b\x32 .otg.FlowRSVPRecordRouteIPv4Flag\"\xcb\x01\n\x1b\x46lowRSVPRecordRouteIPv4Flag\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowRSVPRecordRouteIPv4Flag.Choice.EnumH\x00\x88\x01\x01\x1a^\n\x06\x43hoice\"T\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1e\n\x1alocal_protection_available\x10\x01\x12\x1b\n\x17local_protection_in_use\x10\x02\x42\t\n\x07_choice\"\x8c\x02\n!FlowRSVPPathRecordRouteType1Label\x12.\n\x06length\x18\x01 \x01(\x0b\x32\x1e.otg.FlowRSVPRouteRecordLength\x12\x41\n\x05\x66lags\x18\x02 \x01(\x0b\x32\x32.otg.PatternFlowRSVPPathRecordRouteType1LabelFlags\x12\x42\n\x06\x63_type\x18\x03 \x01(\x0b\x32\x32.otg.PatternFlowRSVPPathRecordRouteType1LabelCType\x12\x30\n\x05label\x18\x04 \x01(\x0b\x32!.otg.FlowRSVPPathRecordRouteLabel\"\xf4\x01\n\x1c\x46lowRSVPPathRecordRouteLabel\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.FlowRSVPPathRecordRouteLabel.Choice.EnumH\x00\x88\x01\x01\x12\x17\n\nas_integer\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x61s_hex\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nas_integer\x10\x01\x12\n\n\x06\x61s_hex\x10\x02\x42\t\n\x07_choiceB\r\n\x0b_as_integerB\t\n\x07_as_hex\"\xd9\x01\n\x19\x46lowRSVPRouteRecordLength\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowRSVPRouteRecordLength.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\"\x9d\x01\n\x19\x46lowRSVPPathObjectsCustom\x12\x37\n\x04type\x18\x01 \x01(\x0b\x32).otg.PatternFlowRSVPPathObjectsCustomType\x12)\n\x06length\x18\x02 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x12\n\x05\x62ytes\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_bytes\"\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\"\xc8\x05\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\x12\x36\n\rdhcpv4_client\x18\x0b \x01(\x0b\x32\x1f.otg.Dhcpv4ClientMetricsRequest\x12\x36\n\rdhcpv4_server\x18\x0c \x01(\x0b\x32\x1f.otg.Dhcpv4ServerMetricsRequest\x1a\xa3\x01\n\x06\x43hoice\"\x98\x01\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\t\x12\x11\n\rdhcpv4_client\x10\n\x12\x11\n\rdhcpv4_server\x10\x0b\x42\t\n\x07_choice\"\x90\x06\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\x12\x35\n\x14\x64hcpv4client_metrics\x18\x0b \x03(\x0b\x32\x17.otg.Dhcpv4ClientMetric\x12\x35\n\x14\x64hcpv4server_metrics\x18\x0c \x03(\x0b\x32\x17.otg.Dhcpv4ServerMetric\x1a\xeb\x01\n\x06\x43hoice\"\xe0\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\t\x12\x11\n\rdhcpv4_client\x10\n\x12\x11\n\rdhcpv4_server\x10\x0b\x42\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\"\xad\x02\n\x1a\x44hcpv4ClientMetricsRequest\x12\x14\n\x0c\x63lient_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum\x1a\xb0\x01\n\x0b\x43olumnNames\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0e\x64iscovers_sent\x10\x01\x12\x13\n\x0foffers_received\x10\x02\x12\x11\n\rrequests_sent\x10\x03\x12\x11\n\racks_received\x10\x04\x12\x12\n\x0enacks_received\x10\x05\x12\x11\n\rreleases_sent\x10\x06\x12\x11\n\rdeclines_sent\x10\x07\"\xfa\x02\n\x12\x44hcpv4ClientMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0e\x64iscovers_sent\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x0foffers_received\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1a\n\rrequests_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\racks_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\x0enacks_received\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1a\n\rreleases_sent\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rdeclines_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_discovers_sentB\x12\n\x10_offers_receivedB\x10\n\x0e_requests_sentB\x10\n\x0e_acks_receivedB\x11\n\x0f_nacks_receivedB\x10\n\x0e_releases_sentB\x10\n\x0e_declines_sent\"\xb1\x02\n\x1a\x44hcpv4ServerMetricsRequest\x12\x14\n\x0cserver_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum\x1a\xb4\x01\n\x0b\x43olumnNames\"\xa4\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12\x64iscovers_received\x10\x01\x12\x0f\n\x0boffers_sent\x10\x02\x12\x15\n\x11requests_received\x10\x03\x12\r\n\tacks_sent\x10\x04\x12\x0e\n\nnacks_sent\x10\x05\x12\x15\n\x11releases_received\x10\x06\x12\x15\n\x11\x64\x65\x63lines_received\x10\x07\"\x82\x03\n\x12\x44hcpv4ServerMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12\x64iscovers_received\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0boffers_sent\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11requests_received\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tacks_sent\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x17\n\nnacks_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1e\n\x11releases_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1e\n\x11\x64\x65\x63lines_received\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x07\n\x05_nameB\x15\n\x13_discovers_receivedB\x0e\n\x0c_offers_sentB\x14\n\x12_requests_receivedB\x0c\n\n_acks_sentB\r\n\x0b_nacks_sentB\x14\n\x12_releases_receivedB\x14\n\x12_declines_received\"\xb0\x05\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\x12;\n\x11\x64hcpv4_interfaces\x18\x08 \x01(\x0b\x32 .otg.Dhcpv4InterfaceStateRequest\x12\x33\n\rdhcpv4_leases\x18\t \x01(\x0b\x32\x1c.otg.Dhcpv4LeaseStateRequest\x1a\xb8\x01\n\x06\x43hoice\"\xad\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\x12\x15\n\x11\x64hcpv4_interfaces\x10\x07\x12\x11\n\rdhcpv4_leases\x10\x08\x42\t\n\x07_choice\"\xfb\x04\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\x12\x34\n\x11\x64hcpv4_interfaces\x18\x08 \x03(\x0b\x32\x19.otg.Dhcpv4InterfaceState\x12-\n\rdhcpv4_leases\x18\t \x03(\x0b\x32\x16.otg.Dhcpv4LeasesState\x1a\xb8\x01\n\x06\x43hoice\"\xad\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\x12\x15\n\x11\x64hcpv4_interfaces\x10\x07\x12\x11\n\rdhcpv4_leases\x10\x08\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\"\x8d\x05\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\x14\x65xtended_communities\x18\x0b \x03(\x0b\x32\x1c.otg.ResultExtendedCommunity\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\"\x8d\x05\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\x14\x65xtended_communities\x18\x0b \x03(\x0b\x32\x1c.otg.ResultExtendedCommunity\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\"o\n\x17ResultExtendedCommunity\x12\x10\n\x03raw\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\nstructured\x18\x02 \x01(\x0b\x32&.otg.ResultExtendedCommunityStructuredB\x06\n\x04_raw\"\xf6\x05\n!ResultExtendedCommunityStructured\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.ResultExtendedCommunityStructured.Choice.EnumH\x00\x88\x01\x01\x12U\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32\x32.otg.ResultExtendedCommunityTransitive2OctetAsType\x12[\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityTransitiveIpv4AddressType\x12U\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32\x32.otg.ResultExtendedCommunityTransitive4OctetAsType\x12P\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32\x30.otg.ResultExtendedCommunityTransitiveOpaqueType\x12\\\n\x1dnon_transitive_2octet_as_type\x18\x06 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityNonTransitive2OctetAsType\x1a\xc1\x01\n\x06\x43hoice\"\xb6\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!\n\x1dnon_transitive_2octet_as_type\x10\x05\x42\t\n\x07_choice\"\xa2\x01\n8ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget\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\"\xa2\x01\n8ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin\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\"\xa0\x03\n-ResultExtendedCommunityTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin\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\"\xa9\x01\n;ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\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\"\xa9\x01\n;ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\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\"\xac\x03\n0ResultExtendedCommunityTransitiveIpv4AddressType\x12V\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x41.otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12^\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32@.otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12^\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32@.otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\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\"\xa2\x01\n8ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget\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\"\xa2\x01\n8ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin\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\"\xa0\x03\n-ResultExtendedCommunityTransitive4OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin\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\"n\n0ResultExtendedCommunityTransitiveOpaqueTypeColor\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\"\x88\x01\n8ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation\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\"\x88\x03\n+ResultExtendedCommunityTransitiveOpaqueType\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12L\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityTransitiveOpaqueTypeColor\x12\\\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation\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\"\x97\x01\n=ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\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\"\xb8\x02\n0ResultExtendedCommunityNonTransitive2OctetAsType\x12V\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x41.otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x62\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32\x42.otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\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\"\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\"8\n\x1b\x44hcpv4InterfaceStateRequest\x12\x19\n\x11\x64hcp_client_names\x18\x01 \x03(\t\"\xd0\x02\n\x14\x44hcpv4InterfaceState\x12\x1d\n\x10\x64hcp_client_name\x18\x01 \x01(\tH\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\x1c\n\x0fgateway_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nlease_time\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x17\n\nrenew_time\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x07 \x01(\rH\x06\x88\x01\x01\x42\x13\n\x11_dhcp_client_nameB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x12\n\x10_gateway_addressB\r\n\x0b_lease_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_time\"4\n\x17\x44hcpv4LeaseStateRequest\x12\x19\n\x11\x64hcp_server_names\x18\x01 \x03(\t\"n\n\x11\x44hcpv4LeasesState\x12\x1d\n\x10\x64hcp_server_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12%\n\x06leases\x18\x02 \x03(\x0b\x32\x15.otg.Dhcpv4LeaseStateB\x13\n\x11_dhcp_server_name\"\xd2\x02\n\x10\x44hcpv4LeaseState\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nvalid_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0epreferred_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nrenew_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x16\n\tclient_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ncircuit_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x16\n\tremote_id\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\n\n\x08_addressB\r\n\x0b_valid_timeB\x11\n\x0f_preferred_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_timeB\x0c\n\n_client_idB\r\n\x0b_circuit_idB\x0c\n\n_remote_id\"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\"\x88\x01\n\x18PatternFlowIpv4SrcRandom\x12\x10\n\x03min\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xe2\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv4Auto\x12-\n\x06random\x18\t \x01(\x0b\x32\x1d.otg.PatternFlowIpv4SrcRandom\x1al\n\x06\x43hoice\"b\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\x12\n\n\x06random\x10\x06\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\"\x88\x01\n\x18PatternFlowIpv4DstRandom\x12\x10\n\x03min\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xe2\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv4Auto\x12-\n\x06random\x18\t \x01(\x0b\x32\x1d.otg.PatternFlowIpv4DstRandom\x1al\n\x06\x43hoice\"b\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\x12\n\n\x06random\x10\x06\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\"\x8e\x01\n\x1ePatternFlowIpv6FlowLabelRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xdb\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\x12\x33\n\x06random\x18\x08 \x01(\x0b\x32#.otg.PatternFlowIpv6FlowLabelRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\x01\n\x1bPatternFlowTcpSrcPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowTcpSrcPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\x01\n\x1bPatternFlowTcpDstPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowTcpDstPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\"\xca\x02\n\x16PatternFlowTcpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowTcpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowTcpChecksum.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\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\x01\n\x1bPatternFlowUdpSrcPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowUdpSrcPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\x01\n\x1bPatternFlowUdpDstPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowUdpDstPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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.otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\n9PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\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\n2PatternFlowRSVPPathSenderTspecIntServServiceHeader\x12X\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.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.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\n3PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\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,PatternFlowRSVPPathSenderTspecIntServZeroBit\x12R\n\x06\x63hoice\x18\x01 \x01(\x0e\x32=.otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.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.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8f\x01\n5PatternFlowRSVPPathSenderTspecIntServReserved2Counter\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\"\xb5\x03\n.PatternFlowRSVPPathSenderTspecIntServReserved2\x12T\n\x06\x63hoice\x18\x01 \x01(\x0e\x32?.otg.PatternFlowRSVPPathSenderTspecIntServReserved2.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\x12M\n\tincrement\x18\x05 \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter\x12M\n\tdecrement\x18\x06 \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x99\x01\n?PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\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\"\xdd\x03\n8PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData\x12^\n\x06\x63hoice\x18\x01 \x01(\x0e\x32I.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.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\x12W\n\tincrement\x18\x05 \x01(\x0b\x32\x44.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\x12W\n\tdecrement\x18\x06 \x01(\x0b\x32\x44.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xa1\x01\nGPatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\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\"\xfd\x03\n@PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec\x12\x66\n\x06\x63hoice\x18\x01 \x01(\x0e\x32Q.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.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\x32L.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\x12_\n\tdecrement\x18\x06 \x01(\x0b\x32L.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\nPatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\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\"\xd9\x03\n7PatternFlowRSVPPathSenderTspecIntServParameter127Length\x12]\n\x06\x63hoice\x18\x01 \x01(\x0e\x32H.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.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\x12V\n\tincrement\x18\x05 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\x12V\n\tdecrement\x18\x06 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x98\x01\n>PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\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\"\xd9\x03\n7PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit\x12]\n\x06\x63hoice\x18\x01 \x01(\x0e\x32H.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.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\x12V\n\tincrement\x18\x05 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\x12V\n\tdecrement\x18\x06 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x97\x01\n=PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\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\"\xd5\x03\n6PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize\x12\\\n\x06\x63hoice\x18\x01 \x01(\x0e\x32G.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.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\x12U\n\tincrement\x18\x05 \x01(\x0b\x32\x42.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\x12U\n\tdecrement\x18\x06 \x01(\x0b\x32\x42.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x9a\x01\n@PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\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\"\xe1\x03\n9PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address\x12_\n\x06\x63hoice\x18\x01 \x01(\x0e\x32J.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.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\x12X\n\tincrement\x18\x05 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\x12X\n\tdecrement\x18\x06 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x9b\x01\nAPatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\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\"\xe5\x03\n:PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength\x12`\n\x06\x63hoice\x18\x01 \x01(\x0e\x32K.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.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\x12Y\n\tincrement\x18\x05 \x01(\x0b\x32\x46.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\x12Y\n\tdecrement\x18\x06 \x01(\x0b\x32\x46.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xf7\x01\n-PatternFlowRSVPPathRecordRouteType1LabelFlags\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.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\"\xf7\x01\n-PatternFlowRSVPPathRecordRouteType1LabelCType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.PatternFlowRSVPPathRecordRouteType1LabelCType.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\"\x85\x01\n+PatternFlowRSVPPathObjectsCustomTypeCounter\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\x03\n$PatternFlowRSVPPathObjectsCustomType\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowRSVPPathObjectsCustomType.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.PatternFlowRSVPPathObjectsCustomTypeCounter\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowRSVPPathObjectsCustomTypeCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\"\xe7\x02\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\x12\x32\n\x11\x64hcpv4_interfaces\x18\t \x03(\x0b\x32\x17.otg.DeviceDhcpv4client\x12\x32\n\x11\x64hcpv6_interfaces\x18\n \x03(\x0b\x32\x17.otg.DeviceDhcpv6clientB\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\"\xce\x02\n\x12\x44\x65viceDhcpv4client\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x06\x63hoice\x18\x02 \x01(\x0e\x32#.otg.DeviceDhcpv4client.Choice.EnumH\x01\x88\x01\x01\x12\x1b\n\x0eserver_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x16\n\tbroadcast\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x38\n\x17parameters_request_list\x18\x06 \x01(\x0b\x32\x17.otg.Dhcpv4ClientParams\x1aG\n\x06\x43hoice\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66irst_server\x10\x01\x12\x12\n\x0eserver_address\x10\x02\x42\x07\n\x05_nameB\t\n\x07_choiceB\x11\n\x0f_server_addressB\x0c\n\n_broadcast\"\xbe\x01\n\x12\x44hcpv4ClientParams\x12\x18\n\x0bsubnet_mask\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06router\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1a\n\rrenewal_timer\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1c\n\x0frebinding_timer\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x0e\n\x0c_subnet_maskB\t\n\x07_routerB\x10\n\x0e_renewal_timerB\x12\n\x10_rebinding_timer\"\xb1\x02\n\x12\x44\x65viceDhcpv6client\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0crapid_commit\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12.\n\x07ia_type\x18\x03 \x01(\x0b\x32\x1d.otg.DeviceDhcpv6clientIaType\x12\x32\n\tduid_type\x18\x04 \x01(\x0b\x32\x1f.otg.DeviceDhcpv6clientDuidType\x12>\n\x0foptions_request\x18\x05 \x01(\x0b\x32%.otg.DeviceDhcpv6ClientOptionsRequest\x12/\n\x07options\x18\x06 \x01(\x0b\x32\x1e.otg.DeviceDhcpv6ClientOptionsB\x07\n\x05_nameB\x0f\n\r_rapid_commit\"\xb5\x01\n DeviceDhcpv6ClientOptionsRequest\x12\x37\n\x07request\x18\x01 \x03(\x0b\x32&.otg.Dhcpv6ClientOptionsOptionsRequest\x12X\n\x18\x61ssociated_dhcp_messages\x18\x02 \x01(\x0b\x32\x36.otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages\"\x80\x02\n\x19\x44\x65viceDhcpv6ClientOptions\x12\x43\n\x11server_identifier\x18\x01 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsServerIdentifier\x12\x39\n\x0cvendor_class\x18\x02 \x01(\x0b\x32#.otg.Dhcpv6ClientOptionsVendorClass\x12\x37\n\x0bvendor_info\x18\x03 \x01(\x0b\x32\".otg.Dhcpv6ClientOptionsVendorInfo\x12*\n\x04\x66qdn\x18\x04 \x01(\x0b\x32\x1c.otg.Dhcpv6ClientOptionsFqdn\"\xca\x02\n\x18\x44\x65viceDhcpv6clientIaType\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.DeviceDhcpv6clientIaType.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x04iana\x18\x02 \x01(\x0b\x32\".otg.DeviceDhcpv6clientIaTimeValue\x12\x30\n\x04iapd\x18\x03 \x01(\x0b\x32\".otg.DeviceDhcpv6clientIaTimeValue\x12\x32\n\x06ianapd\x18\x04 \x01(\x0b\x32\".otg.DeviceDhcpv6clientIaTimeValue\x1aK\n\x06\x43hoice\"A\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04iana\x10\x01\x12\x08\n\x04iata\x10\x02\x12\x08\n\x04iapd\x10\x03\x12\n\n\x06ianapd\x10\x04\x42\t\n\x07_choice\"O\n\x1d\x44\x65viceDhcpv6clientIaTimeValue\x12\x0f\n\x02t1\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x0f\n\x02t2\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x05\n\x03_t1B\x05\n\x03_t2\"\xaa\x02\n\x1a\x44\x65viceDhcpv6clientDuidType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.DeviceDhcpv6clientDuidType.Choice.EnumH\x00\x88\x01\x01\x12*\n\x03llt\x18\x02 \x01(\x0b\x32\x1d.otg.DeviceDhcpv6clientNoDuid\x12,\n\x02\x65n\x18\x03 \x01(\x0b\x32 .otg.DeviceDhcpv6clientDuidValue\x12)\n\x02ll\x18\x04 \x01(\x0b\x32\x1d.otg.DeviceDhcpv6clientNoDuid\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03llt\x10\x01\x12\x06\n\x02\x65n\x10\x02\x12\x06\n\x02ll\x10\x03\x42\t\n\x07_choice\"q\n\x1b\x44\x65viceDhcpv6clientDuidValue\x12\x1a\n\renterprise_id\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x16\n\tvendor_id\x18\x02 \x01(\rH\x01\x88\x01\x01\x42\x10\n\x0e_enterprise_idB\x0c\n\n_vendor_id\"\x1a\n\x18\x44\x65viceDhcpv6clientNoDuid\"\x9f\x03\n#Dhcpv6ClientOptionsServerIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.Dhcpv6ClientOptionsServerIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x08\x64uid_llt\x18\x02 \x01(\x0b\x32\x1f.otg.Dhcpv6ClientOptionsDuidLlt\x12/\n\x07\x64uid_en\x18\x03 \x01(\x0b\x32\x1e.otg.Dhcpv6ClientOptionsDuidEn\x12/\n\x07\x64uid_ll\x18\x04 \x01(\x0b\x32\x1e.otg.Dhcpv6ClientOptionsDuidLl\x12\x33\n\tduid_uuid\x18\x05 \x01(\x0b\x32 .otg.Dhcpv6ClientOptionsDuidUuid\x1aX\n\x06\x43hoice\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08\x64uid_llt\x10\x01\x12\x0b\n\x07\x64uid_en\x10\x02\x12\x0b\n\x07\x64uid_ll\x10\x03\x12\r\n\tduid_uuid\x10\x04\x42\t\n\x07_choice\"~\n\x1a\x44hcpv6ClientOptionsDuidLlt\x12\x11\n\x04time\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x44\n\x12link_layer_address\x18\x02 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsLinkLayerAddressB\x07\n\x05_time\"y\n\x19\x44hcpv6ClientOptionsDuidEn\x12\x1e\n\x11\x65nterprise_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x17\n\nidentifier\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x14\n\x12_enterprise_numberB\r\n\x0b_identifier\"a\n\x19\x44hcpv6ClientOptionsDuidLl\x12\x44\n\x12link_layer_address\x18\x01 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsLinkLayerAddress\"\xa3\x03\n\x1b\x44hcpv6ClientOptionsDuidUuid\x12\x38\n\x07version\x18\x01 \x01(\x0b\x32\'.otg.Dhcpv6ClientOptionsDuidUuidVersion\x12\x38\n\x07variant\x18\x02 \x01(\x0b\x32\'.otg.Dhcpv6ClientOptionsDuidUuidVariant\x12\x15\n\x08time_low\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x15\n\x08time_mid\x18\x04 \x01(\rH\x01\x88\x01\x01\x12 \n\x13time_hi_and_version\x18\x05 \x01(\rH\x02\x88\x01\x01\x12&\n\x19\x63lock_seq_hi_and_reserved\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x1a\n\rclock_seq_low\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x11\n\x04node\x18\x08 \x01(\tH\x05\x88\x01\x01\x42\x0b\n\t_time_lowB\x0b\n\t_time_midB\x16\n\x14_time_hi_and_versionB\x1c\n\x1a_clock_seq_hi_and_reservedB\x10\n\x0e_clock_seq_lowB\x07\n\x05_node\"\xc9\x01\n\"Dhcpv6ClientOptionsDuidUuidVersion\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.Dhcpv6ClientOptionsDuidUuidVersion.Choice.EnumH\x00\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03v_1\x10\x01\x12\x07\n\x03v_2\x10\x02\x12\x07\n\x03v_3\x10\x03\x12\x07\n\x03v_4\x10\x04\x12\x07\n\x03v_5\x10\x05\x42\t\n\x07_choice\"\xca\x01\n\"Dhcpv6ClientOptionsDuidUuidVariant\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.Dhcpv6ClientOptionsDuidUuidVariant.Choice.EnumH\x00\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03ncs\x10\x01\x12\x07\n\x03\x64\x63\x65\x10\x02\x12\x08\n\x04guid\x10\x03\x12\x10\n\x0cvar_reserved\x10\x04\x42\t\n\x07_choice\"C\n#Dhcpv6ClientOptionsLinkLayerAddress\x12\x12\n\x05value\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xa6\x02\n!Dhcpv6ClientOptionsOptionsRequest\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.Dhcpv6ClientOptionsOptionsRequest.Choice.EnumH\x00\x88\x01\x01\x12.\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x1e.otg.Dhcpv6ClientOptionsCustom\x1a}\n\x06\x43hoice\"s\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12vendor_information\x10\x01\x12\x10\n\x0cname_servers\x10\x02\x12\x08\n\x04\x66qdn\x10\x03\x12\x10\n\x0c\x62ootfile_url\x10\x04\x12\x08\n\x04sztp\x10\x05\x12\n\n\x06\x63ustom\x10\x06\x42\t\n\x07_choice\"7\n\x19\x44hcpv6ClientOptionsCustom\x12\x11\n\x04type\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x07\n\x05_type\"\xb6\x01\n\x1e\x44hcpv6ClientOptionsVendorClass\x12\x1e\n\x11\x65nterprise_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x12\n\nclass_data\x18\x02 \x03(\t\x12J\n\x18\x61ssociated_dhcp_messages\x18\x03 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsIncludedMessagesB\x14\n\x12_enterprise_number\"\x8a\x02\n1Dhcpv6ClientOptionsOptionsRequestIncludedMessages\x12W\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x42.otg.Dhcpv6ClientOptionsOptionsRequestIncludedMessages.Choice.EnumH\x00\x88\x01\x01\x12\x36\n\tmsg_types\x18\x02 \x01(\x0b\x32#.otg.Dhcpv6ClientOptionsMessageType\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\r\n\tmsg_types\x10\x02\x42\t\n\x07_choice\"\xee\x01\n#Dhcpv6ClientOptionsIncludedMessages\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.Dhcpv6ClientOptionsIncludedMessages.Choice.EnumH\x00\x88\x01\x01\x12\x36\n\tmsg_types\x18\x02 \x03(\x0b\x32#.otg.Dhcpv6ClientOptionsMessageType\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\r\n\tmsg_types\x10\x02\x42\t\n\x07_choice\"\xe6\x01\n\x1e\x44hcpv6ClientOptionsMessageType\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.Dhcpv6ClientOptionsMessageType.Choice.EnumH\x00\x88\x01\x01\x1as\n\x06\x43hoice\"i\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07solicit\x10\x01\x12\x0b\n\x07request\x10\x02\x12\x12\n\x0einform_request\x10\x03\x12\x0b\n\x07release\x10\x04\x12\t\n\x05renew\x10\x05\x12\n\n\x06rebind\x10\x06\x42\t\n\x07_choice\"\xdf\x01\n\x1d\x44hcpv6ClientOptionsVendorInfo\x12\x1e\n\x11\x65nterprise_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12<\n\x0boption_data\x18\x02 \x03(\x0b\x32\'.otg.Dhcpv6OptionsVendorSpecificOptions\x12J\n\x18\x61ssociated_dhcp_messages\x18\x03 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsIncludedMessagesB\x14\n\x12_enterprise_number\"\xdf\x01\n\x1d\x44hcpv6ServerOptionsVendorInfo\x12\x1e\n\x11\x65nterprise_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12<\n\x0boption_data\x18\x02 \x03(\x0b\x32\'.otg.Dhcpv6OptionsVendorSpecificOptions\x12J\n\x18\x61ssociated_dhcp_messages\x18\x03 \x01(\x0b\x32(.otg.Dhcpv6ServerOptionsIncludedMessagesB\x14\n\x12_enterprise_number\"\xee\x01\n#Dhcpv6ServerOptionsIncludedMessages\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.Dhcpv6ServerOptionsIncludedMessages.Choice.EnumH\x00\x88\x01\x01\x12\x36\n\tmsg_types\x18\x02 \x03(\x0b\x32#.otg.Dhcpv6ServerOptionsMessageType\x1a\x39\n\x06\x43hoice\"/\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\r\n\tmsg_types\x10\x02\x42\t\n\x07_choice\"\xc0\x01\n\x1e\x44hcpv6ServerOptionsMessageType\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.Dhcpv6ServerOptionsMessageType.Choice.EnumH\x00\x88\x01\x01\x1aM\n\x06\x43hoice\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tadvertise\x10\x01\x12\t\n\x05reply\x10\x02\x12\x10\n\x0cre_configure\x10\x03\x42\t\n\x07_choice\"\\\n\"Dhcpv6OptionsVendorSpecificOptions\x12\x11\n\x04\x63ode\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x11\n\x04\x64\x61ta\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\x07\n\x05_data\"\xef\x01\n\x17\x44hcpv6ClientOptionsFqdn\x12\x13\n\x06\x66lag_s\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06\x66lag_o\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06\x66lag_n\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x18\n\x0b\x64omain_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12J\n\x18\x61ssociated_dhcp_messages\x18\x05 \x01(\x0b\x32(.otg.Dhcpv6ClientOptionsIncludedMessagesB\t\n\x07_flag_sB\t\n\x07_flag_oB\t\n\x07_flag_nB\x0e\n\x0c_domain_name\"\xc7\x01\n\x1e\x44hcpv6ServerOptionsBootfileUrl\x12\x10\n\x03url\x18\x01 \x01(\tH\x00\x88\x01\x01\x12?\n\x0f\x62ootfile_params\x18\x02 \x03(\x0b\x32&.otg.Dhcpv6ServerOptionsBootFileParams\x12J\n\x18\x61ssociated_dhcp_messages\x18\x03 \x01(\x0b\x32(.otg.Dhcpv6ServerOptionsIncludedMessagesB\x06\n\x04_url\"I\n!Dhcpv6ServerOptionsBootFileParams\x12\x16\n\tparameter\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_parameter\"\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\"\xe2\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.DeviceRsvp\x12*\n\x0b\x64hcp_server\x18\t \x01(\x0b\x32\x15.otg.DeviceDhcpServerB\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\"\xe0\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\x12,\n\x0ereplay_updates\x18\x0f \x01(\x0b\x32\x14.otg.BgpUpdateReplay\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\"\xf0\x01\n\x0f\x42gpUpdateReplay\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.BgpUpdateReplay.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0fstructured_pdus\x18\x02 \x01(\x0b\x32\x16.otg.BgpStructuredPdus\x12#\n\traw_bytes\x18\x03 \x01(\x0b\x32\x10.otg.BgpRawBytes\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fstructured_pdus\x10\x01\x12\r\n\traw_bytes\x10\x02\x42\t\n\x07_choice\"7\n\x0b\x42gpRawBytes\x12(\n\x07updates\x18\x01 \x03(\x0b\x32\x17.otg.BgpOneUpdateReplay\"d\n\x12\x42gpOneUpdateReplay\x12\x15\n\x08time_gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cupdate_bytes\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_time_gapB\x0f\n\r_update_bytes\"G\n\x11\x42gpStructuredPdus\x12\x32\n\x07updates\x18\x01 \x03(\x0b\x32!.otg.BgpOneStructuredUpdateReplay\"\xf7\x01\n\x1c\x42gpOneStructuredUpdateReplay\x12\x15\n\x08time_gap\x18\x01 \x01(\rH\x00\x88\x01\x01\x12+\n\x0fpath_attributes\x18\x02 \x01(\x0b\x32\x12.otg.BgpAttributes\x12\x43\n\x19traditional_unreach_nlris\x18\x03 \x03(\x0b\x32 .otg.BgpOneTraditionalNlriPrefix\x12\x41\n\x17traditional_reach_nlris\x18\x04 \x03(\x0b\x32 .otg.BgpOneTraditionalNlriPrefixB\x0b\n\t_time_gap\"\x8a\x01\n\x1b\x42gpOneTraditionalNlriPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"\x83\x01\n\x14\x42gpOneIpv4NLRIPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"\x83\x01\n\x14\x42gpOneIpv6NLRIPrefix\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)\n\x07path_id\x18\x03 \x01(\x0b\x32\x18.otg.BgpNLRIPrefixPathIdB\n\n\x08_addressB\t\n\x07_prefix\"3\n\x13\x42gpNLRIPrefixPathId\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\x8b\x01\n\x19\x42gpIpv4SrPolicyNLRIPrefix\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\x15\n\x08\x65ndpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x0b\n\t_endpoint\"\x8b\x01\n\x19\x42gpIpv6SrPolicyNLRIPrefix\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\x15\n\x08\x65ndpoint\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x0b\n\t_endpoint\"\xef\x07\n\rBgpAttributes\x12:\n\x10other_attributes\x18\x01 \x03(\x0b\x32 .otg.BgpAttributesOtherAttribute\x12\x33\n\x06origin\x18\x02 \x01(\x0e\x32\x1e.otg.BgpAttributes.Origin.EnumH\x00\x88\x01\x01\x12)\n\x07\x61s_path\x18\x03 \x01(\x0b\x32\x18.otg.BgpAttributesAsPath\x12+\n\x08\x61s4_path\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesAs4Path\x12+\n\x08next_hop\x18\x05 \x01(\x0b\x32\x19.otg.BgpAttributesNextHop\x12J\n\x18multi_exit_discriminator\x18\x06 \x01(\x0b\x32(.otg.BgpAttributesMultiExitDiscriminator\x12;\n\x10local_preference\x18\x07 \x01(\x0b\x32!.otg.BgpAttributesLocalPreference\x12&\n\x19include_atomic_aggregator\x18\x08 \x01(\x08H\x01\x88\x01\x01\x12\x30\n\naggregator\x18\t \x01(\x0b\x32\x1c.otg.BgpAttributesAggregator\x12\x37\n\x0e\x61s4_aggregator\x18\n \x01(\x0b\x32\x1f.otg.BgpAttributesAs4Aggregator\x12.\n\tcommunity\x18\x0b \x03(\x0b\x32\x1b.otg.BgpAttributesCommunity\x12\x35\n\roriginator_id\x18\x0c \x01(\x0b\x32\x1e.otg.BgpAttributesOriginatorId\x12\x13\n\x0b\x63luster_ids\x18\r \x03(\t\x12\x37\n\x14\x65xtended_communities\x18\x0e \x03(\x0b\x32\x19.otg.BgpExtendedCommunity\x12\x43\n\x14tunnel_encapsulation\x18\x0f \x01(\x0b\x32%.otg.BgpAttributesTunnelEncapsulation\x12/\n\x08mp_reach\x18\x10 \x01(\x0b\x32\x1d.otg.BgpAttributesMpReachNlri\x12\x33\n\nmp_unreach\x18\x11 \x01(\x0b\x32\x1f.otg.BgpAttributesMpUnreachNlri\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\t\n\x07_originB\x1c\n\x1a_include_atomic_aggregator\"\xa7\x02\n\x1b\x42gpAttributesOtherAttribute\x12\x1a\n\rflag_optional\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1c\n\x0f\x66lag_transitive\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0c\x66lag_partial\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x66lag_extended_length\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04type\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x16\n\traw_value\x18\x06 \x01(\tH\x05\x88\x01\x01\x42\x10\n\x0e_flag_optionalB\x12\n\x10_flag_transitiveB\x0f\n\r_flag_partialB\x17\n\x15_flag_extended_lengthB\x07\n\x05_typeB\x0c\n\n_raw_value\"\xaf\x02\n\x13\x42gpAttributesAsPath\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.BgpAttributesAsPath.Choice.EnumH\x00\x88\x01\x01\x12\x41\n\x11\x66our_byte_as_path\x18\x02 \x01(\x0b\x32&.otg.BgpAttributesAsPathFourByteAsPath\x12?\n\x10two_byte_as_path\x18\x03 \x01(\x0b\x32%.otg.BgpAttributesAsPathTwoByteAsPath\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x15\n\x11\x66our_byte_as_path\x10\x01\x12\x14\n\x10two_byte_as_path\x10\x02\x42\t\n\x07_choice\"^\n!BgpAttributesAsPathFourByteAsPath\x12\x39\n\x08segments\x18\x01 \x03(\x0b\x32\'.otg.BgpAttributesFourByteAsPathSegment\"\xe6\x01\n\"BgpAttributesFourByteAsPathSegment\x12\x44\n\x04type\x18\x01 \x01(\x0e\x32\x31.otg.BgpAttributesFourByteAsPathSegment.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\"\\\n BgpAttributesAsPathTwoByteAsPath\x12\x38\n\x08segments\x18\x01 \x03(\x0b\x32&.otg.BgpAttributesTwoByteAsPathSegment\"\xe4\x01\n!BgpAttributesTwoByteAsPathSegment\x12\x43\n\x04type\x18\x01 \x01(\x0e\x32\x30.otg.BgpAttributesTwoByteAsPathSegment.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\"Q\n\x14\x42gpAttributesAs4Path\x12\x39\n\x08segments\x18\x01 \x03(\x0b\x32\'.otg.BgpAttributesFourByteAsPathSegment\"\xab\x02\n\x17\x42gpAttributesAggregator\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.BgpAttributesAggregator.Choice.EnumH\x00\x88\x01\x01\x12\x19\n\x0c\x66our_byte_as\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0btwo_byte_as\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a\x44\n\x06\x43hoice\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66our_byte_as\x10\x01\x12\x0f\n\x0btwo_byte_as\x10\x02\x42\t\n\x07_choiceB\x0f\n\r_four_byte_asB\x0e\n\x0c_two_byte_asB\x0f\n\r_ipv4_address\"h\n\x1a\x42gpAttributesAs4Aggregator\x12\x13\n\x06\x61s_num\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_as_numB\x0f\n\r_ipv4_address\"\xb1\x02\n\x16\x42gpAttributesCommunity\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.BgpAttributesCommunity.Choice.EnumH\x00\x88\x01\x01\x12;\n\x10\x63ustom_community\x18\x02 \x01(\x0b\x32!.otg.BgpAttributesCustomCommunity\x1a\x90\x01\n\x06\x43hoice\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10\x63ustom_community\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\t\n\x07_choice\"d\n\x1c\x42gpAttributesCustomCommunity\x12\x16\n\tas_number\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0c\n\n_as_numberB\t\n\x07_custom\"\xab\x02\n\x14\x42gpAttributesNextHop\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.BgpAttributesNextHop.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04ipv6\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x45\n\x12ipv6_two_addresses\x18\x04 \x01(\x0b\x32).otg.BgpAttributesNextHopIpv6TwoAddresses\x1aM\n\x06\x43hoice\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x16\n\x12ipv6_two_addresses\x10\x03\x42\t\n\x07_choiceB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"d\n$BgpAttributesNextHopIpv6TwoAddresses\x12\x12\n\x05\x66irst\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06second\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_firstB\t\n\x07_second\"\xcf\x03\n\x18\x42gpAttributesMpReachNlri\x12+\n\x08next_hop\x18\x01 \x01(\x0b\x32\x19.otg.BgpAttributesNextHop\x12>\n\x06\x63hoice\x18\x02 \x01(\x0e\x32).otg.BgpAttributesMpReachNlri.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0cipv4_unicast\x18\x03 \x03(\x0b\x32\x19.otg.BgpOneIpv4NLRIPrefix\x12/\n\x0cipv6_unicast\x18\x04 \x03(\x0b\x32\x19.otg.BgpOneIpv6NLRIPrefix\x12\x35\n\ripv4_srpolicy\x18\x05 \x01(\x0b\x32\x1e.otg.BgpIpv4SrPolicyNLRIPrefix\x12\x35\n\ripv6_srpolicy\x18\x06 \x01(\x0b\x32\x1e.otg.BgpIpv6SrPolicyNLRIPrefix\x1ak\n\x06\x43hoice\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\x12\x11\n\ripv4_srpolicy\x10\x03\x12\x11\n\ripv6_srpolicy\x10\x04\x42\t\n\x07_choice\"\xa6\x03\n\x1a\x42gpAttributesMpUnreachNlri\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.BgpAttributesMpUnreachNlri.Choice.EnumH\x00\x88\x01\x01\x12/\n\x0cipv4_unicast\x18\x02 \x03(\x0b\x32\x19.otg.BgpOneIpv4NLRIPrefix\x12/\n\x0cipv6_unicast\x18\x03 \x03(\x0b\x32\x19.otg.BgpOneIpv6NLRIPrefix\x12\x35\n\ripv4_srpolicy\x18\x04 \x01(\x0b\x32\x1e.otg.BgpIpv4SrPolicyNLRIPrefix\x12\x35\n\ripv6_srpolicy\x18\x05 \x01(\x0b\x32\x1e.otg.BgpIpv6SrPolicyNLRIPrefix\x1ak\n\x06\x43hoice\"a\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\x12\x11\n\ripv4_srpolicy\x10\x03\x12\x11\n\ripv6_srpolicy\x10\x04\x42\t\n\x07_choice\"C\n#BgpAttributesMultiExitDiscriminator\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"<\n\x1c\x42gpAttributesLocalPreference\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"9\n\x19\x42gpAttributesOriginatorId\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe2\x01\n BgpAttributesTunnelEncapsulation\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.BgpAttributesTunnelEncapsulation.Choice.EnumH\x00\x88\x01\x01\x12\x39\n\tsr_policy\x18\x02 \x01(\x0b\x32&.otg.BgpAttributesSegmentRoutingPolicy\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsr_policy\x10\x01\x42\t\n\x07_choice\"\xac\x04\n!BgpAttributesSegmentRoutingPolicy\x12:\n\x1a\x62inding_segment_identifier\x18\x01 \x01(\x0b\x32\x16.otg.BgpAttributesBsid\x12\x43\n\x1fsrv6_binding_segment_identifier\x18\x02 \x03(\x0b\x32\x1a.otg.BgpAttributesSrv6Bsid\x12\x38\n\npreference\x18\x03 \x01(\x0b\x32$.otg.BgpAttributesSrPolicyPreference\x12\x34\n\x08priority\x18\x04 \x01(\x0b\x32\".otg.BgpAttributesSrPolicyPriority\x12\x39\n\x0bpolicy_name\x18\x05 \x01(\x0b\x32$.otg.BgpAttributesSrPolicyPolicyName\x12L\n\x15policy_candidate_name\x18\x06 \x01(\x0b\x32-.otg.BgpAttributesSrPolicyPolicyCandidateName\x12P\n\x1a\x65xplicit_null_label_policy\x18\x07 \x01(\x0b\x32,.otg.BgpAttributesSrPolicyExplicitNullPolicy\x12;\n\x0csegment_list\x18\x08 \x03(\x0b\x32%.otg.BgpAttributesSrPolicySegmentList\"\xe2\x01\n\x11\x42gpAttributesBsid\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.BgpAttributesBsid.Choice.EnumH\x00\x88\x01\x01\x12(\n\x04mpls\x18\x02 \x01(\x0b\x32\x1a.otg.BgpAttributesBsidMpls\x12(\n\x04srv6\x18\x03 \x01(\x0b\x32\x1a.otg.BgpAttributesBsidSrv6\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mpls\x10\x01\x12\x08\n\x04srv6\x10\x02\x42\t\n\x07_choice\"\xc8\x01\n\x15\x42gpAttributesBsidMpls\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12+\n\x08mpls_sid\x18\x03 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalid\"\xc1\x01\n\x15\x42gpAttributesBsidSrv6\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x16\n\tipv6_addr\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalidB\x0c\n\n_ipv6_addr\"\xf6\x02\n\x15\x42gpAttributesSrv6Bsid\x12%\n\x18\x66lag_specified_bsid_only\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12#\n\x16\x66lag_drop_upon_invalid\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12(\n\x1b\x66lag_srv6_endpoint_behavior\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x16\n\tipv6_addr\x18\x04 \x01(\tH\x03\x88\x01\x01\x12i\n\x16srv6_endpoint_behavior\x18\x05 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x1b\n\x19_flag_specified_bsid_onlyB\x19\n\x17_flag_drop_upon_invalidB\x1e\n\x1c_flag_srv6_endpoint_behaviorB\x0c\n\n_ipv6_addr\"\xa0\x01\n\x14\x42gpAttributesSidMpls\x12\x12\n\x05label\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x1a\n\rtraffic_class\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x15\n\x08\x66lag_bos\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\x10\n\x0e_traffic_classB\x0b\n\t_flag_bosB\x06\n\x04_ttl\".\n\x14\x42gpAttributesSidSrv6\x12\x0f\n\x02ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_ip\"?\n\x1f\x42gpAttributesSrPolicyPreference\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"=\n\x1d\x42gpAttributesSrPolicyPriority\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"H\n(BgpAttributesSrPolicyPolicyCandidateName\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"?\n\x1f\x42gpAttributesSrPolicyPolicyName\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xf9\x01\n\'BgpAttributesSrPolicyExplicitNullPolicy\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.BgpAttributesSrPolicyExplicitNullPolicy.Choice.EnumH\x00\x88\x01\x01\x1at\n\x06\x43hoice\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unknown\x10\x01\x12\r\n\tpush_ipv4\x10\x02\x12\r\n\tpush_ipv6\x10\x03\x12\x16\n\x12push_ipv4_and_ipv6\x10\x04\x12\x0e\n\ndonot_push\x10\x05\x42\t\n\x07_choice\"\xb7\x01\n BgpAttributesSrPolicySegmentList\x12G\n\x06weight\x18\x01 \x01(\x0b\x32\x37.otg.BgpAttributesSegmentRoutingPolicySegmentListWeight\x12J\n\x08segments\x18\x02 \x03(\x0b\x32\x38.otg.BgpAttributesSegmentRoutingPolicySegmentListSegment\"R\n2BgpAttributesSegmentRoutingPolicySegmentListWeight\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\xe3\x07\n3BgpAttributesSegmentRoutingPolicySegmentListSegment\x12Y\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x44.otg.BgpAttributesSegmentRoutingPolicySegmentListSegment.Choice.EnumH\x00\x88\x01\x01\x12;\n\x06type_a\x18\x02 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeA\x12;\n\x06type_b\x18\x03 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeB\x12;\n\x06type_c\x18\x04 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeC\x12;\n\x06type_d\x18\x05 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeD\x12;\n\x06type_e\x18\x06 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeE\x12;\n\x06type_f\x18\x07 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeF\x12;\n\x06type_g\x18\x08 \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeG\x12;\n\x06type_h\x18\t \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeH\x12;\n\x06type_i\x18\n \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeI\x12;\n\x06type_j\x18\x0b \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeJ\x12;\n\x06type_k\x18\x0c \x01(\x0b\x32+.otg.BgpAttributesSegmentRoutingPolicyTypeK\x1a\xa6\x01\n\x06\x43hoice\"\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\t\n\x07_choice\"\x95\x01\n&BgpAttributesSegmentRoutingPolicyTypeA\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12+\n\x08mpls_sid\x18\x02 \x01(\x0b\x32\x19.otg.BgpAttributesSidMpls\"\xf7\x01\n&BgpAttributesSegmentRoutingPolicyTypeB\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x15\n\x08srv6_sid\x18\x02 \x01(\tH\x00\x88\x01\x01\x12i\n\x16srv6_endpoint_behavior\x18\x03 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0b\n\t_srv6_sid\"\xfa\x01\n&BgpAttributesSegmentRoutingPolicyTypeC\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv4_node_address\"\xfa\x01\n&BgpAttributesSegmentRoutingPolicyTypeD\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\x86\x02\n&BgpAttributesSegmentRoutingPolicyTypeE\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv4_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_interface_idB\x14\n\x12_ipv4_node_address\"\x8a\x02\n&BgpAttributesSegmentRoutingPolicyTypeF\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_ipv4_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x12 \n\x13remote_ipv4_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_ipv4_addressB\x16\n\x14_remote_ipv4_address\"\x90\x03\n&BgpAttributesSegmentRoutingPolicyTypeG\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\rH\x00\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x04 \x01(\rH\x02\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\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\"\x8a\x02\n&BgpAttributesSegmentRoutingPolicyTypeH\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x1f\n\x12local_ipv6_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12.\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x19.otg.BgpAttributesSidMplsB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xe2\x02\n&BgpAttributesSegmentRoutingPolicyTypeI\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_node_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12+\n\x08srv6_sid\x18\x04 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x05 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0f\n\r_sr_algorithmB\x14\n\x12_ipv6_node_address\"\xa4\x04\n&BgpAttributesSegmentRoutingPolicyTypeJ\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\rH\x01\x88\x01\x01\x12$\n\x17local_ipv6_node_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12 \n\x13remote_interface_id\x18\x05 \x01(\rH\x03\x88\x01\x01\x12%\n\x18remote_ipv6_node_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12+\n\x08srv6_sid\x18\x07 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x08 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\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_address\"\x9e\x03\n&BgpAttributesSegmentRoutingPolicyTypeK\x12>\n\x05\x66lags\x18\x01 \x01(\x0b\x32/.otg.BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x1f\n\x12local_ipv6_address\x18\x03 \x01(\tH\x01\x88\x01\x01\x12 \n\x13remote_ipv6_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12+\n\x08srv6_sid\x18\x05 \x01(\x0b\x32\x19.otg.BgpAttributesSidSrv6\x12i\n\x16srv6_endpoint_behavior\x18\x06 \x01(\x0b\x32I.otg.BgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructureB\x0f\n\r_sr_algorithmB\x15\n\x13_local_ipv6_addressB\x16\n\x14_remote_ipv6_address\"\xac\x01\n*BgpAttributesSegmentRoutingPolicyTypeFlags\x12\x13\n\x06v_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06\x61_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06s_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x13\n\x06\x62_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\t\n\x07_v_flagB\t\n\x07_a_flagB\t\n\x07_s_flagB\t\n\x07_b_flag\"\x9c\x02\nDBgpAttributesSegmentRoutingPolicySRv6SIDEndpointBehaviorAndStructure\x12\x1f\n\x12\x65ndpoint_behaviour\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tlb_length\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x16\n\tln_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x17\n\narg_length\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x15\n\x13_endpoint_behaviourB\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"H\n(BgpNLRIPrefixSegmentRoutingDistinguisher\x12\x12\n\x05value\x18\x01 \x01(\rH\x00\x88\x01\x01\x42\x08\n\x06_value\"\x93\x07\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\x12,\n\x0ereplay_updates\x18\x10 \x01(\x0b\x32\x14.otg.BgpUpdateReplay\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\"j\n\x10\x44\x65viceDhcpServer\x12*\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x11.otg.DhcpServerV4\x12*\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x11.otg.DhcpServerV6\"~\n\x0c\x44hcpServerV4\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tipv4_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\raddress_pools\x18\x03 \x03(\x0b\x32\x15.otg.DhcpServerV4PoolB\x07\n\x05_nameB\x0c\n\n_ipv4_name\"\x9a\x02\n\x10\x44hcpServerV4Pool\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nlease_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1a\n\rstart_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x11\n\x04step\x18\x06 \x01(\rH\x05\x88\x01\x01\x12,\n\x07options\x18\x07 \x01(\x0b\x32\x1b.otg.DhcpServerV4PoolOptionB\x07\n\x05_nameB\r\n\x0b_lease_timeB\x10\n\x0e_start_addressB\x10\n\x0e_prefix_lengthB\x08\n\x06_countB\x07\n\x05_step\"\xfc\x01\n\x16\x44hcpServerV4PoolOption\x12\x1b\n\x0erouter_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12primary_dns_server\x18\x02 \x01(\tH\x01\x88\x01\x01\x12!\n\x14secondary_dns_server\x18\x03 \x01(\tH\x02\x88\x01\x01\x12#\n\x16\x65\x63ho_relay_with_tlv_82\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x11\n\x0f_router_addressB\x15\n\x13_primary_dns_serverB\x17\n\x15_secondary_dns_serverB\x19\n\x17_echo_relay_with_tlv_82\"\x99\x02\n\x0c\x44hcpServerV6\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tipv6_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x19\n\x0crapid_commit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12(\n\x1breconfigure_via_relay_agent\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x06leases\x18\x05 \x03(\x0b\x32\x16.otg.DhcpV6ServerLease\x12)\n\x07options\x18\x06 \x01(\x0b\x32\x18.otg.Dhcpv6ServerOptionsB\x07\n\x05_nameB\x0c\n\n_ipv6_nameB\x0f\n\r_rapid_commitB\x1e\n\x1c_reconfigure_via_relay_agent\"\xac\x01\n\x13\x44hcpv6ServerOptions\x12!\n\x03\x64ns\x18\x01 \x01(\x0b\x32\x14.otg.DhcpV6ServerDns\x12\x37\n\x0bvendor_info\x18\x02 \x01(\x0b\x32\".otg.Dhcpv6ServerOptionsVendorInfo\x12\x39\n\x0c\x62ootfile_url\x18\x03 \x01(\x0b\x32#.otg.Dhcpv6ServerOptionsBootfileUrl\"e\n\x11\x44hcpV6ServerLease\x12\x17\n\nlease_time\x18\x01 \x01(\rH\x00\x88\x01\x01\x12(\n\x07ia_type\x18\x05 \x01(\x0b\x32\x17.otg.Dhcpv6ServerIaTypeB\r\n\x0b_lease_time\"\xd6\x02\n\x12\x44hcpv6ServerIaType\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.Dhcpv6ServerIaType.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04iana\x18\x02 \x01(\x0b\x32\x19.otg.Dhcpv6ServerPoolInfo\x12\'\n\x04iata\x18\x03 \x01(\x0b\x32\x19.otg.Dhcpv6ServerPoolInfo\x12+\n\x04iapd\x18\x04 \x01(\x0b\x32\x1d.otg.Dhcpv6ServerIapdPoolInfo\x12/\n\x06ianapd\x18\x05 \x01(\x0b\x32\x1f.otg.Dhcpv6ServerIanapdPoolInfo\x1aK\n\x06\x43hoice\"A\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04iana\x10\x01\x12\x08\n\x04iata\x10\x02\x12\x08\n\x04iapd\x10\x03\x12\n\n\x06ianapd\x10\x04\x42\t\n\x07_choice\"\xa4\x01\n\x14\x44hcpv6ServerPoolInfo\x12\x1a\n\rstart_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nprefix_len\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04size\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x10\n\x0e_start_addressB\r\n\x0b_prefix_lenB\x07\n\x05_sizeB\x07\n\x05_step\"\xa6\x02\n\x18\x44hcpv6ServerIapdPoolInfo\x12!\n\x14start_prefix_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x63onfigured_prefix_len\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bprefix_size\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bprefix_step\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\"\n\x15\x61\x64vertised_prefix_len\x18\x05 \x01(\rH\x04\x88\x01\x01\x42\x17\n\x15_start_prefix_addressB\x18\n\x16_configured_prefix_lenB\x0e\n\x0c_prefix_sizeB\x0e\n\x0c_prefix_stepB\x18\n\x16_advertised_prefix_len\"r\n\x1a\x44hcpv6ServerIanapdPoolInfo\x12\'\n\x04iana\x18\x01 \x01(\x0b\x32\x19.otg.Dhcpv6ServerPoolInfo\x12+\n\x04iapd\x18\x02 \x01(\x0b\x32\x1d.otg.Dhcpv6ServerIapdPoolInfo\"i\n\x0f\x44hcpV6ServerDns\x12\x14\n\x07primary\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x34\n\rsecondary_dns\x18\x02 \x03(\x0b\x32\x1d.otg.DhcpV6ServerSecondaryDnsB\n\n\x08_primary\"2\n\x18\x44hcpV6ServerSecondaryDns\x12\x0f\n\x02ip\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x05\n\x03_ip\"\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\"\xe9\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\x12\x1b\n\x04rsvp\x18\x16 \x01(\x0b\x32\r.otg.FlowRsvp\x1a\x8c\x02\n\x06\x43hoice\"\x81\x02\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\x12\x08\n\x04rsvp\x10\x15\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\"z\n\x0c\x46lowIpv4Auto\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowIpv4Auto.Choice.EnumH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x64hcp\x10\x01\x42\t\n\x07_choice\"\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\"z\n\x0c\x46lowIpv6Auto\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowIpv6Auto.Choice.EnumH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x64hcp\x10\x01\x42\t\n\x07_choice\"\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\"\xd7\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\x12-\n\x08\x63hecksum\x18\x10 \x01(\x0b\x32\x1b.otg.PatternFlowTcpChecksum\"\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\"\xa5\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@\n\x0cstring_value\x18\x03 \x01(\x0b\x32*.otg.FlowSnmpv2cVariableBindingStringValue\x12$\n\x17object_identifier_value\x18\x04 \x01(\tH\x01\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\x02\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\x1a\n\x18_object_identifier_valueB\x12\n\x10_arbitrary_value\"\xee\x01\n%FlowSnmpv2cVariableBindingStringValue\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.FlowSnmpv2cVariableBindingStringValue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x61scii\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x10\n\x03raw\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61scii\x10\x01\x12\x07\n\x03raw\x10\x02\x42\t\n\x07_choiceB\x08\n\x06_asciiB\x06\n\x04_raw\"\xb9\x03\n\x08\x46lowRsvp\x12\x14\n\x07version\x18\x01 \x01(\rH\x00\x88\x01\x01\x12*\n\x04\x66lag\x18\x02 \x01(\x0e\x32\x17.otg.FlowRsvp.Flag.EnumH\x01\x88\x01\x01\x12\x37\n\rrsvp_checksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowRsvpRsvpChecksum\x12\x34\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowRsvpTimeToLive\x12.\n\x08reserved\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowRsvpReserved\x12(\n\x0brsvp_length\x18\x06 \x01(\x0b\x32\x13.otg.FlowRSVPLength\x12*\n\x0cmessage_type\x18\x07 \x01(\x0b\x32\x14.otg.FlowRSVPMessage\x1a\x61\n\x04\x46lag\"Y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12!\n\x1dnot_refresh_reduction_capable\x10\x01\x12\x1d\n\x19refresh_reduction_capable\x10\x02\x42\n\n\x08_versionB\x07\n\x05_flag\"\xc3\x01\n\x0e\x46lowRSVPLength\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.FlowRSVPLength.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\"\xa8\x01\n\x0f\x46lowRSVPMessage\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.FlowRSVPMessage.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04path\x18\x02 \x01(\x0b\x32\x18.otg.FlowRSVPPathMessage\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04path\x10\x01\x42\t\n\x07_choice\"@\n\x13\x46lowRSVPPathMessage\x12)\n\x07objects\x18\x01 \x03(\x0b\x32\x18.otg.FlowRSVPPathObjects\"G\n\x13\x46lowRSVPPathObjects\x12\x30\n\tclass_num\x18\x01 \x01(\x0b\x32\x1d.otg.FlowRSVPPathObjectsClass\"\xcf\x01\n\x14\x46lowRSVPObjectLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.FlowRSVPObjectLength.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\"\xac\x07\n\x18\x46lowRSVPPathObjectsClass\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.FlowRSVPPathObjectsClass.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x07session\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsClassSession\x12\x36\n\x08rsvp_hop\x18\x03 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsClassRsvpHop\x12<\n\x0btime_values\x18\x04 \x01(\x0b\x32\'.otg.FlowRSVPPathObjectsClassTimeValues\x12\x42\n\x0e\x65xplicit_route\x18\x05 \x01(\x0b\x32*.otg.FlowRSVPPathObjectsClassExplicitRoute\x12@\n\rlabel_request\x18\x06 \x01(\x0b\x32).otg.FlowRSVPPathObjectsClassLabelRequest\x12H\n\x11session_attribute\x18\x07 \x01(\x0b\x32-.otg.FlowRSVPPathObjectsClassSessionAttribute\x12\x44\n\x0fsender_template\x18\x08 \x01(\x0b\x32+.otg.FlowRSVPPathObjectsClassSenderTemplate\x12>\n\x0csender_tspec\x18\t \x01(\x0b\x32(.otg.FlowRSVPPathObjectsClassSenderTspec\x12>\n\x0crecord_route\x18\n \x01(\x0b\x32(.otg.FlowRSVPPathObjectsClassRecordRoute\x12.\n\x06\x63ustom\x18\x0b \x01(\x0b\x32\x1e.otg.FlowRSVPPathObjectsCustom\x1a\xd1\x01\n\x06\x43hoice\"\xc6\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07session\x10\x01\x12\x0c\n\x08rsvp_hop\x10\x02\x12\x0f\n\x0btime_values\x10\x03\x12\x12\n\x0e\x65xplicit_route\x10\x04\x12\x11\n\rlabel_request\x10\x05\x12\x15\n\x11session_attribute\x10\x06\x12\x13\n\x0fsender_template\x10\x07\x12\x10\n\x0csender_tspec\x10\x08\x12\x10\n\x0crecord_route\x10\t\x12\n\n\x06\x63ustom\x10\nB\t\n\x07_choice\"\x82\x01\n\x1f\x46lowRSVPPathObjectsClassSession\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x34\n\x06\x63_type\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsSessionCType\"\xeb\x01\n\x1f\x46lowRSVPPathObjectsSessionCType\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.FlowRSVPPathObjectsSessionCType.Choice.EnumH\x00\x88\x01\x01\x12>\n\x0flsp_tunnel_ipv4\x18\x02 \x01(\x0b\x32%.otg.FlowRSVPPathSessionLspTunnelIpv4\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flsp_tunnel_ipv4\x10\x01\x42\t\n\x07_choice\"\xe2\x02\n FlowRSVPPathSessionLspTunnelIpv4\x12l\n\x1dipv4_tunnel_end_point_address\x18\x01 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathSessionLspTunnelIpv4Ipv4TunnelEndPointAddress\x12\x46\n\x08reserved\x18\x02 \x01(\x0b\x32\x34.otg.PatternFlowRSVPPathSessionLspTunnelIpv4Reserved\x12G\n\ttunnel_id\x18\x03 \x01(\x0b\x32\x34.otg.PatternFlowRSVPPathSessionLspTunnelIpv4TunnelId\x12?\n\x12\x65xtended_tunnel_id\x18\x04 \x01(\x0b\x32#.otg.FlowRSVPPathSessionExtTunnelId\"\xbd\x02\n\x1e\x46lowRSVPPathSessionExtTunnelId\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.FlowRSVPPathSessionExtTunnelId.Choice.EnumH\x00\x88\x01\x01\x12G\n\nas_integer\x18\x02 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSessionExtTunnelIdAsInteger\x12\x41\n\x07\x61s_ipv4\x18\x03 \x01(\x0b\x32\x30.otg.PatternFlowRSVPPathSessionExtTunnelIdAsIpv4\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nas_integer\x10\x01\x12\x0b\n\x07\x61s_ipv4\x10\x02\x42\t\n\x07_choice\"\x82\x01\n\x1f\x46lowRSVPPathObjectsClassRsvpHop\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x34\n\x06\x63_type\x18\x02 \x01(\x0b\x32$.otg.FlowRSVPPathObjectsRsvpHopCType\"\xcc\x01\n\x1f\x46lowRSVPPathObjectsRsvpHopCType\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.FlowRSVPPathObjectsRsvpHopCType.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1c.otg.FlowRSVPPathRsvpHopIpv4\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x42\t\n\x07_choice\"\xbc\x01\n\x17\x46lowRSVPPathRsvpHopIpv4\x12\x44\n\x0cipv4_address\x18\x01 \x01(\x0b\x32..otg.PatternFlowRSVPPathRsvpHopIpv4Ipv4Address\x12[\n\x18logical_interface_handle\x18\x02 \x01(\x0b\x32\x39.otg.PatternFlowRSVPPathRsvpHopIpv4LogicalInterfaceHandle\"\x88\x01\n\"FlowRSVPPathObjectsClassTimeValues\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x37\n\x06\x63_type\x18\x02 \x01(\x0b\x32\'.otg.FlowRSVPPathObjectsTimeValuesCType\"\xda\x01\n\"FlowRSVPPathObjectsTimeValuesCType\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.FlowRSVPPathObjectsTimeValuesCType.Choice.EnumH\x00\x88\x01\x01\x12\x30\n\x06type_1\x18\x02 \x01(\x0b\x32 .otg.FlowRSVPPathTimeValuesType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"n\n\x1b\x46lowRSVPPathTimeValuesType1\x12O\n\x10refresh_period_r\x18\x01 \x01(\x0b\x32\x35.otg.PatternFlowRSVPPathTimeValuesType1RefreshPeriodR\"\x93\x01\n%FlowRSVPPathObjectsClassExplicitRoute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12?\n\x06\x63_type\x18\x02 \x01(\x0b\x32/.otg.FlowRSVPPathObjectsClassExplicitRouteCType\"\xed\x01\n*FlowRSVPPathObjectsClassExplicitRouteCType\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.FlowRSVPPathObjectsClassExplicitRouteCType.Choice.EnumH\x00\x88\x01\x01\x12\x33\n\x06type_1\x18\x02 \x01(\x0b\x32#.otg.FlowRSVPPathExplicitRouteType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"_\n\x1e\x46lowRSVPPathExplicitRouteType1\x12=\n\nsubobjects\x18\x01 \x03(\x0b\x32).otg.FlowRSVPType1ExplicitRouteSubobjects\"c\n$FlowRSVPType1ExplicitRouteSubobjects\x12;\n\x04type\x18\x01 \x01(\x0b\x32-.otg.FlowRSVPType1ExplicitRouteSubobjectsType\"\xcc\x02\n(FlowRSVPType1ExplicitRouteSubobjectsType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.FlowRSVPType1ExplicitRouteSubobjectsType.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\x0bipv4_prefix\x18\x02 \x01(\x0b\x32-.otg.FlowRSVPPathExplicitRouteType1Ipv4Prefix\x12>\n\tas_number\x18\x03 \x01(\x0b\x32+.otg.FlowRSVPPathExplicitRouteType1ASNumber\x1a\x41\n\x06\x43hoice\"7\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0bipv4_prefix\x10\x01\x12\r\n\tas_number\x10\x02\x42\t\n\x07_choice\"\x9c\x02\n(FlowRSVPPathExplicitRouteType1Ipv4Prefix\x12G\n\x05l_bit\x18\x01 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixLBit\x12\x30\n\x06length\x18\x02 \x01(\x0b\x32 .otg.FlowRSVPExplicitRouteLength\x12U\n\x0cipv4_address\x18\x03 \x01(\x0b\x32?.otg.PatternFlowRSVPPathExplicitRouteType1Ipv4PrefixIpv4Address\x12\x13\n\x06prefix\x18\x04 \x01(\rH\x00\x88\x01\x01\x42\t\n\x07_prefix\"\xcf\x01\n&FlowRSVPPathExplicitRouteType1ASNumber\x12\x45\n\x05l_bit\x18\x01 \x01(\x0b\x32\x36.otg.PatternFlowRSVPPathExplicitRouteType1ASNumberLBit\x12\x38\n\x06length\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPExplicitRouteASNumberLength\x12\x16\n\tas_number\x18\x03 \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_as_number\"\xdd\x01\n\x1b\x46lowRSVPExplicitRouteLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowRSVPExplicitRouteLength.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\"\xed\x01\n#FlowRSVPExplicitRouteASNumberLength\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPExplicitRouteASNumberLength.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\"\x8c\x01\n$FlowRSVPPathObjectsClassLabelRequest\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x39\n\x06\x63_type\x18\x02 \x01(\x0b\x32).otg.FlowRSVPPathObjectsLabelRequestCType\"\x86\x02\n$FlowRSVPPathObjectsLabelRequestCType\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.FlowRSVPPathObjectsLabelRequestCType.Choice.EnumH\x00\x88\x01\x01\x12K\n\x13without_label_range\x18\x02 \x01(\x0b\x32..otg.FlowRSVPPathLabelRequestWithoutLabelRange\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13without_label_range\x10\x01\x42\t\n\x07_choice\"\xc7\x01\n)FlowRSVPPathLabelRequestWithoutLabelRange\x12O\n\x08reserved\x18\x01 \x01(\x0b\x32=.otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeReserved\x12I\n\x05l3pid\x18\x02 \x01(\x0b\x32:.otg.PatternFlowRSVPPathLabelRequestWithoutLabelRangeL3pid\"\x94\x01\n(FlowRSVPPathObjectsClassSessionAttribute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12=\n\x06\x63_type\x18\x02 \x01(\x0b\x32-.otg.FlowRSVPPathObjectsSessionAttributeCType\"\xd0\x02\n(FlowRSVPPathObjectsSessionAttributeCType\x12N\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x39.otg.FlowRSVPPathObjectsSessionAttributeCType.Choice.EnumH\x00\x88\x01\x01\x12>\n\nlsp_tunnel\x18\x02 \x01(\x0b\x32*.otg.FlowRSVPPathSessionAttributeLspTunnel\x12\x43\n\rlsp_tunnel_ra\x18\x03 \x01(\x0b\x32,.otg.FlowRSVPPathSessionAttributeLspTunnelRa\x1a\x44\n\x06\x43hoice\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nlsp_tunnel\x10\x01\x12\x11\n\rlsp_tunnel_ra\x10\x02\x42\t\n\x07_choice\"\xa0\x02\n%FlowRSVPPathSessionAttributeLspTunnel\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)\n\x05\x66lags\x18\x03 \x01(\x0b\x32\x1a.otg.FlowRSVPLspTunnelFlag\x12<\n\x0bname_length\x18\x04 \x01(\x0b\x32\'.otg.FlowRSVPSessionAttributeNameLength\x12\x19\n\x0csession_name\x18\x05 \x01(\tH\x02\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0f\n\r_session_name\"\xa0\x03\n\'FlowRSVPPathSessionAttributeLspTunnelRa\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\x12\x1b\n\x0esetup_priority\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x05 \x01(\rH\x04\x88\x01\x01\x12)\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x1a.otg.FlowRSVPLspTunnelFlag\x12<\n\x0bname_length\x18\x07 \x01(\x0b\x32\'.otg.FlowRSVPSessionAttributeNameLength\x12\x19\n\x0csession_name\x18\x08 \x01(\tH\x05\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0f\n\r_session_name\"\xd3\x01\n\x15\x46lowRSVPLspTunnelFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.FlowRSVPLspTunnelFlag.Choice.EnumH\x00\x88\x01\x01\x1ar\n\x06\x43hoice\"h\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1c\n\x18local_protection_desired\x10\x01\x12\x1b\n\x17label_recording_desired\x10\x02\x12\x14\n\x10se_style_desired\x10\x03\x42\t\n\x07_choice\"\xeb\x01\n\"FlowRSVPSessionAttributeNameLength\x12H\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x33.otg.FlowRSVPSessionAttributeNameLength.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\"\x90\x01\n&FlowRSVPPathObjectsClassSenderTemplate\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12;\n\x06\x63_type\x18\x02 \x01(\x0b\x32+.otg.FlowRSVPPathObjectsSenderTemplateCType\"\x80\x02\n&FlowRSVPPathObjectsSenderTemplateCType\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.FlowRSVPPathObjectsSenderTemplateCType.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\x0flsp_tunnel_ipv4\x18\x02 \x01(\x0b\x32,.otg.FlowRSVPPathSenderTemplateLspTunnelIpv4\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flsp_tunnel_ipv4\x10\x01\x42\t\n\x07_choice\"\xb2\x02\n\'FlowRSVPPathSenderTemplateLspTunnelIpv4\x12n\n\x1aipv4_tunnel_sender_address\x18\x01 \x01(\x0b\x32J.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Ipv4TunnelSenderAddress\x12M\n\x08reserved\x18\x02 \x01(\x0b\x32;.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4Reserved\x12H\n\x06lsp_id\x18\x03 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathSenderTemplateLspTunnelIpv4LspId\"\x8a\x01\n#FlowRSVPPathObjectsClassSenderTspec\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x38\n\x06\x63_type\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPPathObjectsSenderTspecCType\"\xe3\x01\n#FlowRSVPPathObjectsSenderTspecCType\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPPathObjectsSenderTspecCType.Choice.EnumH\x00\x88\x01\x01\x12\x35\n\x08int_serv\x18\x02 \x01(\x0b\x32#.otg.FlowRSVPPathSenderTspecIntServ\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08int_serv\x10\x01\x42\t\n\x07_choice\"\xb0\t\n\x1e\x46lowRSVPPathSenderTspecIntServ\x12\x42\n\x07version\x18\x01 \x01(\x0b\x32\x31.otg.PatternFlowRSVPPathSenderTspecIntServVersion\x12\x46\n\treserved1\x18\x02 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSenderTspecIntServReserved1\x12O\n\x0eoverall_length\x18\x03 \x01(\x0b\x32\x37.otg.PatternFlowRSVPPathSenderTspecIntServOverallLength\x12O\n\x0eservice_header\x18\x04 \x01(\x0b\x32\x37.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader\x12\x43\n\x08zero_bit\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowRSVPPathSenderTspecIntServZeroBit\x12\x46\n\treserved2\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowRSVPPathSenderTspecIntServReserved2\x12]\n\x16length_of_service_data\x18\x07 \x01(\x0b\x32=.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData\x12n\n\x1fparameter_id_token_bucket_tspec\x18\x08 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec\x12V\n\x12parameter_127_flag\x18\t \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Flag\x12Z\n\x14parameter_127_length\x18\n \x01(\x0b\x32<.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length\x12\x1e\n\x11token_bucket_rate\x18\x0b \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x0c \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\r \x01(\x02H\x02\x88\x01\x01\x12Z\n\x14minimum_policed_unit\x18\x0e \x01(\x0b\x32<.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit\x12X\n\x13maximum_packet_size\x18\x0f \x01(\x0b\x32;.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeB\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rate\"\x8a\x01\n#FlowRSVPPathObjectsClassRecordRoute\x12)\n\x06length\x18\x01 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x38\n\x06\x63_type\x18\x02 \x01(\x0b\x32(.otg.FlowRSVPPathObjectsRecordRouteCType\"\xdd\x01\n#FlowRSVPPathObjectsRecordRouteCType\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.FlowRSVPPathObjectsRecordRouteCType.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x06type_1\x18\x02 \x01(\x0b\x32!.otg.FlowRSVPPathRecordRouteType1\x1a-\n\x06\x43hoice\"#\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_1\x10\x01\x42\t\n\x07_choice\"[\n\x1c\x46lowRSVPPathRecordRouteType1\x12;\n\nsubobjects\x18\x01 \x03(\x0b\x32\'.otg.FlowRSVPType1RecordRouteSubobjects\"d\n\"FlowRSVPType1RecordRouteSubobjects\x12>\n\x04type\x18\x01 \x01(\x0b\x32\x30.otg.FlowRSVPPathObjectsRecordRouteSubObjectType\"\xc6\x02\n+FlowRSVPPathObjectsRecordRouteSubObjectType\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.FlowRSVPPathObjectsRecordRouteSubObjectType.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\x0cipv4_address\x18\x02 \x01(\x0b\x32,.otg.FlowRSVPPathRecordRouteType1Ipv4Address\x12\x35\n\x05label\x18\x03 \x01(\x0b\x32&.otg.FlowRSVPPathRecordRouteType1Label\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_address\x10\x01\x12\t\n\x05label\x10\x02\x42\t\n\x07_choice\"\xb8\x02\n\'FlowRSVPPathRecordRouteType1Ipv4Address\x12.\n\x06length\x18\x01 \x01(\x0b\x32\x1e.otg.FlowRSVPRouteRecordLength\x12T\n\x0cipv4_address\x18\x02 \x01(\x0b\x32>.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address\x12V\n\rprefix_length\x18\x03 \x01(\x0b\x32?.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength\x12/\n\x05\x66lags\x18\x04 \x01(\x0b\x32 .otg.FlowRSVPRecordRouteIPv4Flag\"\xcb\x01\n\x1b\x46lowRSVPRecordRouteIPv4Flag\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.FlowRSVPRecordRouteIPv4Flag.Choice.EnumH\x00\x88\x01\x01\x1a^\n\x06\x43hoice\"T\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1e\n\x1alocal_protection_available\x10\x01\x12\x1b\n\x17local_protection_in_use\x10\x02\x42\t\n\x07_choice\"\x8c\x02\n!FlowRSVPPathRecordRouteType1Label\x12.\n\x06length\x18\x01 \x01(\x0b\x32\x1e.otg.FlowRSVPRouteRecordLength\x12\x41\n\x05\x66lags\x18\x02 \x01(\x0b\x32\x32.otg.PatternFlowRSVPPathRecordRouteType1LabelFlags\x12\x42\n\x06\x63_type\x18\x03 \x01(\x0b\x32\x32.otg.PatternFlowRSVPPathRecordRouteType1LabelCType\x12\x30\n\x05label\x18\x04 \x01(\x0b\x32!.otg.FlowRSVPPathRecordRouteLabel\"\xf4\x01\n\x1c\x46lowRSVPPathRecordRouteLabel\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.FlowRSVPPathRecordRouteLabel.Choice.EnumH\x00\x88\x01\x01\x12\x17\n\nas_integer\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x13\n\x06\x61s_hex\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nas_integer\x10\x01\x12\n\n\x06\x61s_hex\x10\x02\x42\t\n\x07_choiceB\r\n\x0b_as_integerB\t\n\x07_as_hex\"\xd9\x01\n\x19\x46lowRSVPRouteRecordLength\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowRSVPRouteRecordLength.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\"\x9d\x01\n\x19\x46lowRSVPPathObjectsCustom\x12\x37\n\x04type\x18\x01 \x01(\x0b\x32).otg.PatternFlowRSVPPathObjectsCustomType\x12)\n\x06length\x18\x02 \x01(\x0b\x32\x19.otg.FlowRSVPObjectLength\x12\x12\n\x05\x62ytes\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_bytes\"\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\"\xde\x06\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\x12\x36\n\rdhcpv4_client\x18\x0b \x01(\x0b\x32\x1f.otg.Dhcpv4ClientMetricsRequest\x12\x36\n\rdhcpv4_server\x18\x0c \x01(\x0b\x32\x1f.otg.Dhcpv4ServerMetricsRequest\x12\x36\n\rdhcpv6_client\x18\r \x01(\x0b\x32\x1f.otg.Dhcpv6ClientMetricsRequest\x12\x36\n\rdhcpv6_server\x18\x0e \x01(\x0b\x32\x1f.otg.Dhcpv6ServerMetricsRequest\x1a\xc9\x01\n\x06\x43hoice\"\xbe\x01\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\t\x12\x11\n\rdhcpv4_client\x10\n\x12\x11\n\rdhcpv4_server\x10\x0b\x12\x11\n\rdhcpv6_client\x10\x0c\x12\x11\n\rdhcpv6_server\x10\rB\t\n\x07_choice\"\xa4\x07\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\x12\x35\n\x14\x64hcpv4client_metrics\x18\x0b \x03(\x0b\x32\x17.otg.Dhcpv4ClientMetric\x12\x35\n\x14\x64hcpv4server_metrics\x18\x0c \x03(\x0b\x32\x17.otg.Dhcpv4ServerMetric\x12\x35\n\x14\x64hcpv6client_metrics\x18\r \x03(\x0b\x32\x17.otg.Dhcpv6ClientMetric\x12\x35\n\x14\x64hcpv6server_metrics\x18\x0e \x03(\x0b\x32\x17.otg.Dhcpv6ServerMetric\x1a\x91\x02\n\x06\x43hoice\"\x86\x02\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\t\x12\x11\n\rdhcpv4_client\x10\n\x12\x11\n\rdhcpv4_server\x10\x0b\x12\x11\n\rdhcpv6_client\x10\x0c\x12\x11\n\rdhcpv6_server\x10\rB\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\"\xad\x02\n\x1a\x44hcpv4ClientMetricsRequest\x12\x14\n\x0c\x63lient_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv4ClientMetricsRequest.ColumnNames.Enum\x1a\xb0\x01\n\x0b\x43olumnNames\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0e\x64iscovers_sent\x10\x01\x12\x13\n\x0foffers_received\x10\x02\x12\x11\n\rrequests_sent\x10\x03\x12\x11\n\racks_received\x10\x04\x12\x12\n\x0enacks_received\x10\x05\x12\x11\n\rreleases_sent\x10\x06\x12\x11\n\rdeclines_sent\x10\x07\"\xfa\x02\n\x12\x44hcpv4ClientMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0e\x64iscovers_sent\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x1c\n\x0foffers_received\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1a\n\rrequests_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\racks_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\x0enacks_received\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1a\n\rreleases_sent\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1a\n\rdeclines_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_discovers_sentB\x12\n\x10_offers_receivedB\x10\n\x0e_requests_sentB\x10\n\x0e_acks_receivedB\x11\n\x0f_nacks_receivedB\x10\n\x0e_releases_sentB\x10\n\x0e_declines_sent\"\xb1\x02\n\x1a\x44hcpv4ServerMetricsRequest\x12\x14\n\x0cserver_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv4ServerMetricsRequest.ColumnNames.Enum\x1a\xb4\x01\n\x0b\x43olumnNames\"\xa4\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x16\n\x12\x64iscovers_received\x10\x01\x12\x0f\n\x0boffers_sent\x10\x02\x12\x15\n\x11requests_received\x10\x03\x12\r\n\tacks_sent\x10\x04\x12\x0e\n\nnacks_sent\x10\x05\x12\x15\n\x11releases_received\x10\x06\x12\x15\n\x11\x64\x65\x63lines_received\x10\x07\"\x82\x03\n\x12\x44hcpv4ServerMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12\x64iscovers_received\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x18\n\x0boffers_sent\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12\x1e\n\x11requests_received\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x16\n\tacks_sent\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x17\n\nnacks_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1e\n\x11releases_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1e\n\x11\x64\x65\x63lines_received\x18\x08 \x01(\x04H\x07\x88\x01\x01\x42\x07\n\x05_nameB\x15\n\x13_discovers_receivedB\x0e\n\x0c_offers_sentB\x14\n\x12_requests_receivedB\x0c\n\n_acks_sentB\r\n\x0b_nacks_sentB\x14\n\x12_releases_receivedB\x14\n\x12_declines_received\"\xe0\x03\n\x1a\x44hcpv6ClientMetricsRequest\x12\x14\n\x0c\x63lient_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv6ClientMetricsRequest.ColumnNames.Enum\x1a\xe3\x02\n\x0b\x43olumnNames\"\xd3\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsolicits_sent\x10\x01\x12\x1b\n\x17\x61\x64vertisements_received\x10\x02\x12\x1a\n\x16\x61\x64vertisements_ignored\x10\x03\x12\x11\n\rrequests_sent\x10\x04\x12\x12\n\x0enacks_received\x10\x05\x12\x14\n\x10replies_received\x10\x06\x12\x1d\n\x19information_requests_sent\x10\x07\x12\x0f\n\x0brenews_sent\x10\x08\x12\x10\n\x0crebinds_sent\x10\t\x12\x11\n\rreleases_sent\x10\n\x12\x19\n\x15reconfigures_received\x10\x0b\x12\x1e\n\x1arapid_commit_solicits_sent\x10\x0c\x12!\n\x1drapid_commit_replies_received\x10\r\"\x90\x06\n\x12\x44hcpv6ClientMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rsolicits_sent\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12$\n\x17\x61\x64vertisements_received\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12#\n\x16\x61\x64vertisements_ignored\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1a\n\rrequests_sent\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x1b\n\x0enacks_received\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1d\n\x10replies_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12&\n\x19information_requests_sent\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x18\n\x0brenews_sent\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x19\n\x0crebinds_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1a\n\rreleases_sent\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\"\n\x15reconfigures_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12\'\n\x1arapid_commit_solicits_sent\x18\r \x01(\x04H\x0c\x88\x01\x01\x12*\n\x1drapid_commit_replies_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x42\x07\n\x05_nameB\x10\n\x0e_solicits_sentB\x1a\n\x18_advertisements_receivedB\x19\n\x17_advertisements_ignoredB\x10\n\x0e_requests_sentB\x11\n\x0f_nacks_receivedB\x13\n\x11_replies_receivedB\x1c\n\x1a_information_requests_sentB\x0e\n\x0c_renews_sentB\x0f\n\r_rebinds_sentB\x10\n\x0e_releases_sentB\x18\n\x16_reconfigures_receivedB\x1d\n\x1b_rapid_commit_solicits_sentB \n\x1e_rapid_commit_replies_received\"\x84\x04\n\x1a\x44hcpv6ServerMetricsRequest\x12\x14\n\x0cserver_names\x18\x01 \x03(\t\x12\x46\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\x30.otg.Dhcpv6ServerMetricsRequest.ColumnNames.Enum\x1a\x87\x03\n\x0b\x43olumnNames\"\xf7\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x15\n\x11solicits_received\x10\x01\x12\x14\n\x10solicits_ignored\x10\x02\x12\x17\n\x13\x61\x64vertisements_sent\x10\x03\x12\x15\n\x11requests_received\x10\x04\x12\x0e\n\nnacks_sent\x10\x05\x12\x15\n\x11\x63onfirms_received\x10\x06\x12\x15\n\x11renewals_received\x10\x07\x12\x14\n\x10rebinds_received\x10\x08\x12\x10\n\x0creplies_sent\x10\t\x12\x15\n\x11releases_received\x10\n\x12\x15\n\x11\x64\x65\x63lines_received\x10\x0b\x12!\n\x1dinformation_requests_received\x10\x0c\x12\x1b\n\x17relay_forwards_received\x10\r\x12\x16\n\x12relay_replies_sent\x10\x0e\x12\x15\n\x11reconfigures_sent\x10\x0f\"\xe8\x06\n\x12\x44hcpv6ServerMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11solicits_received\x18\x02 \x01(\x04H\x01\x88\x01\x01\x12\x1d\n\x10solicits_ignored\x18\x03 \x01(\x04H\x02\x88\x01\x01\x12 \n\x13\x61\x64vertisements_sent\x18\x04 \x01(\x04H\x03\x88\x01\x01\x12\x1e\n\x11requests_received\x18\x05 \x01(\x04H\x04\x88\x01\x01\x12\x17\n\nnacks_sent\x18\x06 \x01(\x04H\x05\x88\x01\x01\x12\x1e\n\x11\x63onfirms_received\x18\x07 \x01(\x04H\x06\x88\x01\x01\x12\x1e\n\x11renewals_received\x18\x08 \x01(\x04H\x07\x88\x01\x01\x12\x1d\n\x10rebinds_received\x18\t \x01(\x04H\x08\x88\x01\x01\x12\x19\n\x0creplies_sent\x18\n \x01(\x04H\t\x88\x01\x01\x12\x1e\n\x11releases_received\x18\x0b \x01(\x04H\n\x88\x01\x01\x12\x1e\n\x11\x64\x65\x63lines_received\x18\x0c \x01(\x04H\x0b\x88\x01\x01\x12*\n\x1dinformation_requests_received\x18\r \x01(\x04H\x0c\x88\x01\x01\x12$\n\x17relay_forwards_received\x18\x0e \x01(\x04H\r\x88\x01\x01\x12\x1f\n\x12relay_replies_sent\x18\x0f \x01(\x04H\x0e\x88\x01\x01\x12\x1e\n\x11reconfigures_sent\x18\x10 \x01(\x04H\x0f\x88\x01\x01\x42\x07\n\x05_nameB\x14\n\x12_solicits_receivedB\x13\n\x11_solicits_ignoredB\x16\n\x14_advertisements_sentB\x14\n\x12_requests_receivedB\r\n\x0b_nacks_sentB\x14\n\x12_confirms_receivedB\x14\n\x12_renewals_receivedB\x13\n\x11_rebinds_receivedB\x0f\n\r_replies_sentB\x14\n\x12_releases_receivedB\x14\n\x12_declines_receivedB \n\x1e_information_requests_receivedB\x1a\n\x18_relay_forwards_receivedB\x15\n\x13_relay_replies_sentB\x14\n\x12_reconfigures_sent\"\xcc\x06\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\x12;\n\x11\x64hcpv4_interfaces\x18\x08 \x01(\x0b\x32 .otg.Dhcpv4InterfaceStateRequest\x12\x33\n\rdhcpv4_leases\x18\t \x01(\x0b\x32\x1c.otg.Dhcpv4LeaseStateRequest\x12;\n\x11\x64hcpv6_interfaces\x18\n \x01(\x0b\x32 .otg.Dhcpv6InterfaceStateRequest\x12\x33\n\rdhcpv6_leases\x18\x0b \x01(\x0b\x32\x1c.otg.Dhcpv6LeaseStateRequest\x1a\xe2\x01\n\x06\x43hoice\"\xd7\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\x12\x15\n\x11\x64hcpv4_interfaces\x10\x07\x12\x11\n\rdhcpv4_leases\x10\x08\x12\x15\n\x11\x64hcpv6_interfaces\x10\t\x12\x11\n\rdhcpv6_leases\x10\nB\t\n\x07_choice\"\x8a\x06\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\x12\x34\n\x11\x64hcpv4_interfaces\x18\x08 \x03(\x0b\x32\x19.otg.Dhcpv4InterfaceState\x12-\n\rdhcpv4_leases\x18\t \x03(\x0b\x32\x16.otg.Dhcpv4LeasesState\x12\x34\n\x11\x64hcpv6_interfaces\x18\n \x03(\x0b\x32\x19.otg.Dhcpv6InterfaceState\x12-\n\rdhcpv6_leases\x18\x0b \x03(\x0b\x32\x16.otg.Dhcpv6LeasesState\x1a\xe2\x01\n\x06\x43hoice\"\xd7\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\x12\x15\n\x11\x64hcpv4_interfaces\x10\x07\x12\x11\n\rdhcpv4_leases\x10\x08\x12\x15\n\x11\x64hcpv6_interfaces\x10\t\x12\x11\n\rdhcpv6_leases\x10\nB\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\"\x8d\x05\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\x14\x65xtended_communities\x18\x0b \x03(\x0b\x32\x1c.otg.ResultExtendedCommunity\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\"\x8d\x05\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\x14\x65xtended_communities\x18\x0b \x03(\x0b\x32\x1c.otg.ResultExtendedCommunity\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\"o\n\x17ResultExtendedCommunity\x12\x10\n\x03raw\x18\x01 \x01(\tH\x00\x88\x01\x01\x12:\n\nstructured\x18\x02 \x01(\x0b\x32&.otg.ResultExtendedCommunityStructuredB\x06\n\x04_raw\"\xf6\x05\n!ResultExtendedCommunityStructured\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.ResultExtendedCommunityStructured.Choice.EnumH\x00\x88\x01\x01\x12U\n\x19transitive_2octet_as_type\x18\x02 \x01(\x0b\x32\x32.otg.ResultExtendedCommunityTransitive2OctetAsType\x12[\n\x1ctransitive_ipv4_address_type\x18\x03 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityTransitiveIpv4AddressType\x12U\n\x19transitive_4octet_as_type\x18\x04 \x01(\x0b\x32\x32.otg.ResultExtendedCommunityTransitive4OctetAsType\x12P\n\x16transitive_opaque_type\x18\x05 \x01(\x0b\x32\x30.otg.ResultExtendedCommunityTransitiveOpaqueType\x12\\\n\x1dnon_transitive_2octet_as_type\x18\x06 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityNonTransitive2OctetAsType\x1a\xc1\x01\n\x06\x43hoice\"\xb6\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!\n\x1dnon_transitive_2octet_as_type\x10\x05\x42\t\n\x07_choice\"\xa2\x01\n8ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget\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\"\xa2\x01\n8ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin\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\"\xa0\x03\n-ResultExtendedCommunityTransitive2OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.ResultExtendedCommunityTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive2OctetAsTypeRouteOrigin\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\"\xa9\x01\n;ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\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\"\xa9\x01\n;ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\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\"\xac\x03\n0ResultExtendedCommunityTransitiveIpv4AddressType\x12V\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x41.otg.ResultExtendedCommunityTransitiveIpv4AddressType.Choice.EnumH\x00\x88\x01\x01\x12^\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32@.otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteTarget\x12^\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32@.otg.ResultExtendedCommunityTransitiveIpv4AddressTypeRouteOrigin\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\"\xa2\x01\n8ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget\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\"\xa2\x01\n8ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin\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\"\xa0\x03\n-ResultExtendedCommunityTransitive4OctetAsType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.ResultExtendedCommunityTransitive4OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12[\n\x14route_target_subtype\x18\x02 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteTarget\x12[\n\x14route_origin_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitive4OctetAsTypeRouteOrigin\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\"n\n0ResultExtendedCommunityTransitiveOpaqueTypeColor\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\"\x88\x01\n8ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation\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\"\x88\x03\n+ResultExtendedCommunityTransitiveOpaqueType\x12Q\n\x06\x63hoice\x18\x01 \x01(\x0e\x32<.otg.ResultExtendedCommunityTransitiveOpaqueType.Choice.EnumH\x00\x88\x01\x01\x12L\n\rcolor_subtype\x18\x02 \x01(\x0b\x32\x35.otg.ResultExtendedCommunityTransitiveOpaqueTypeColor\x12\\\n\x15\x65ncapsulation_subtype\x18\x03 \x01(\x0b\x32=.otg.ResultExtendedCommunityTransitiveOpaqueTypeEncapsulation\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\"\x97\x01\n=ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\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\"\xb8\x02\n0ResultExtendedCommunityNonTransitive2OctetAsType\x12V\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x41.otg.ResultExtendedCommunityNonTransitive2OctetAsType.Choice.EnumH\x00\x88\x01\x01\x12\x62\n\x16link_bandwidth_subtype\x18\x02 \x01(\x0b\x32\x42.otg.ResultExtendedCommunityNonTransitive2OctetAsTypeLinkBandwidth\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\"\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\"8\n\x1b\x44hcpv4InterfaceStateRequest\x12\x19\n\x11\x64hcp_client_names\x18\x01 \x03(\t\"\xd0\x02\n\x14\x44hcpv4InterfaceState\x12\x1d\n\x10\x64hcp_client_name\x18\x01 \x01(\tH\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\x1c\n\x0fgateway_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nlease_time\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x17\n\nrenew_time\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x07 \x01(\rH\x06\x88\x01\x01\x42\x13\n\x11_dhcp_client_nameB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x12\n\x10_gateway_addressB\r\n\x0b_lease_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_time\"4\n\x17\x44hcpv4LeaseStateRequest\x12\x19\n\x11\x64hcp_server_names\x18\x01 \x03(\t\"n\n\x11\x44hcpv4LeasesState\x12\x1d\n\x10\x64hcp_server_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12%\n\x06leases\x18\x02 \x03(\x0b\x32\x15.otg.Dhcpv4LeaseStateB\x13\n\x11_dhcp_server_name\"\xd2\x02\n\x10\x44hcpv4LeaseState\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nvalid_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0epreferred_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nrenew_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x16\n\tclient_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\ncircuit_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x16\n\tremote_id\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\n\n\x08_addressB\r\n\x0b_valid_timeB\x11\n\x0f_preferred_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_timeB\x0c\n\n_client_idB\r\n\x0b_circuit_idB\x0c\n\n_remote_id\"8\n\x1b\x44hcpv6InterfaceStateRequest\x12\x19\n\x11\x64hcp_client_names\x18\x01 \x03(\t\"\x90\x03\n\x14\x44hcpv6InterfaceState\x12\x1d\n\x10\x64hcp_client_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1e\n\x11ipv6_iapd_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12iapd_prefix_length\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x1c\n\x0fgateway_address\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x17\n\nlease_time\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x17\n\nrenew_time\x18\x07 \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x13\n\x11_dhcp_client_nameB\x14\n\x12_ipv6_iapd_addressB\x15\n\x13_iapd_prefix_lengthB\x0f\n\r_ipv6_addressB\x12\n\x10_gateway_addressB\r\n\x0b_lease_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_time\"4\n\x17\x44hcpv6LeaseStateRequest\x12\x19\n\x11\x64hcp_server_names\x18\x01 \x03(\t\"t\n\x11\x44hcpv6LeasesState\x12\x1d\n\x10\x64hcp_server_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x06leases\x18\x02 \x03(\x0b\x32\x1b.otg.Dhcpv6ServerLeaseStateB\x13\n\x11_dhcp_server_name\"\xdc\x02\n\x16\x44hcpv6ServerLeaseState\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x17\n\nvalid_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1b\n\x0epreferred_time\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x17\n\nrenew_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0brebind_time\x18\x05 \x01(\rH\x04\x88\x01\x01\x12\x16\n\tclient_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x16\n\tremote_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x19\n\x0cinterface_id\x18\x08 \x01(\tH\x07\x88\x01\x01\x42\n\n\x08_addressB\r\n\x0b_valid_timeB\x11\n\x0f_preferred_timeB\r\n\x0b_renew_timeB\x0e\n\x0c_rebind_timeB\x0c\n\n_client_idB\x0c\n\n_remote_idB\x0f\n\r_interface_id\"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\"\x88\x01\n\x18PatternFlowIpv4SrcRandom\x12\x10\n\x03min\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xe2\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv4Auto\x12-\n\x06random\x18\t \x01(\x0b\x32\x1d.otg.PatternFlowIpv4SrcRandom\x1al\n\x06\x43hoice\"b\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\x12\n\n\x06random\x10\x06\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\"\x88\x01\n\x18PatternFlowIpv4DstRandom\x12\x10\n\x03min\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xe2\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv4Auto\x12-\n\x06random\x18\t \x01(\x0b\x32\x1d.otg.PatternFlowIpv4DstRandom\x1al\n\x06\x43hoice\"b\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\x12\n\n\x06random\x10\x06\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\"\x8e\x01\n\x1ePatternFlowIpv6FlowLabelRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xdb\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\x12\x33\n\x06random\x18\x08 \x01(\x0b\x32#.otg.PatternFlowIpv6FlowLabelRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\"\xa7\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv6Auto\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\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\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\"\xa7\x03\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\x12\x1f\n\x04\x61uto\x18\x08 \x01(\x0b\x32\x11.otg.FlowIpv6Auto\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\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\x08\n\x04\x61uto\x10\x01\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\x01\n\x1bPatternFlowTcpSrcPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowTcpSrcPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\x01\n\x1bPatternFlowTcpDstPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowTcpDstPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\"\xca\x02\n\x16PatternFlowTcpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowTcpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowTcpChecksum.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\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\x01\n\x1bPatternFlowUdpSrcPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowUdpSrcPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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\x01\n\x1bPatternFlowUdpDstPortRandom\x12\x10\n\x03min\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x11\n\x04seed\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_maxB\x07\n\x05_seedB\x08\n\x06_count\"\xc9\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\x12\x30\n\x06random\x18\x08 \x01(\x0b\x32 .otg.PatternFlowUdpDstPortRandom\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x12\n\n\x06random\x10\x06\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.otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowRSVPPathSenderTspecIntServOverallLengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\n9PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\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\n2PatternFlowRSVPPathSenderTspecIntServServiceHeader\x12X\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeader.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.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\x12Q\n\tdecrement\x18\x06 \x01(\x0b\x32>.otg.PatternFlowRSVPPathSenderTspecIntServServiceHeaderCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\n3PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\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,PatternFlowRSVPPathSenderTspecIntServZeroBit\x12R\n\x06\x63hoice\x18\x01 \x01(\x0e\x32=.otg.PatternFlowRSVPPathSenderTspecIntServZeroBit.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.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x38.otg.PatternFlowRSVPPathSenderTspecIntServZeroBitCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x8f\x01\n5PatternFlowRSVPPathSenderTspecIntServReserved2Counter\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\"\xb5\x03\n.PatternFlowRSVPPathSenderTspecIntServReserved2\x12T\n\x06\x63hoice\x18\x01 \x01(\x0e\x32?.otg.PatternFlowRSVPPathSenderTspecIntServReserved2.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\x12M\n\tincrement\x18\x05 \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter\x12M\n\tdecrement\x18\x06 \x01(\x0b\x32:.otg.PatternFlowRSVPPathSenderTspecIntServReserved2Counter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x99\x01\n?PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\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\"\xdd\x03\n8PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData\x12^\n\x06\x63hoice\x18\x01 \x01(\x0e\x32I.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceData.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\x12W\n\tincrement\x18\x05 \x01(\x0b\x32\x44.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\x12W\n\tdecrement\x18\x06 \x01(\x0b\x32\x44.otg.PatternFlowRSVPPathSenderTspecIntServLengthOfServiceDataCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xa1\x01\nGPatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\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\"\xfd\x03\n@PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec\x12\x66\n\x06\x63hoice\x18\x01 \x01(\x0e\x32Q.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspec.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\x32L.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\x12_\n\tdecrement\x18\x06 \x01(\x0b\x32L.otg.PatternFlowRSVPPathSenderTspecIntServParameterIdTokenBucketTspecCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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\nPatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\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\"\xd9\x03\n7PatternFlowRSVPPathSenderTspecIntServParameter127Length\x12]\n\x06\x63hoice\x18\x01 \x01(\x0e\x32H.otg.PatternFlowRSVPPathSenderTspecIntServParameter127Length.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\x12V\n\tincrement\x18\x05 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\x12V\n\tdecrement\x18\x06 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServParameter127LengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x98\x01\n>PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\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\"\xd9\x03\n7PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit\x12]\n\x06\x63hoice\x18\x01 \x01(\x0e\x32H.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnit.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\x12V\n\tincrement\x18\x05 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\x12V\n\tdecrement\x18\x06 \x01(\x0b\x32\x43.otg.PatternFlowRSVPPathSenderTspecIntServMinimumPolicedUnitCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x97\x01\n=PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\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\"\xd5\x03\n6PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize\x12\\\n\x06\x63hoice\x18\x01 \x01(\x0e\x32G.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSize.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\x12U\n\tincrement\x18\x05 \x01(\x0b\x32\x42.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\x12U\n\tdecrement\x18\x06 \x01(\x0b\x32\x42.otg.PatternFlowRSVPPathSenderTspecIntServMaximumPacketSizeCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x9a\x01\n@PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\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\"\xe1\x03\n9PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address\x12_\n\x06\x63hoice\x18\x01 \x01(\x0e\x32J.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4Address.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\x12X\n\tincrement\x18\x05 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\x12X\n\tdecrement\x18\x06 \x01(\x0b\x32\x45.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressIpv4AddressCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\x9b\x01\nAPatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\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\"\xe5\x03\n:PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength\x12`\n\x06\x63hoice\x18\x01 \x01(\x0e\x32K.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLength.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\x12Y\n\tincrement\x18\x05 \x01(\x0b\x32\x46.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\x12Y\n\tdecrement\x18\x06 \x01(\x0b\x32\x46.otg.PatternFlowRSVPPathRecordRouteType1Ipv4AddressPrefixLengthCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_value\"\xf7\x01\n-PatternFlowRSVPPathRecordRouteType1LabelFlags\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.PatternFlowRSVPPathRecordRouteType1LabelFlags.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\"\xf7\x01\n-PatternFlowRSVPPathRecordRouteType1LabelCType\x12S\n\x06\x63hoice\x18\x01 \x01(\x0e\x32>.otg.PatternFlowRSVPPathRecordRouteType1LabelCType.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\"\x85\x01\n+PatternFlowRSVPPathObjectsCustomTypeCounter\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\x03\n$PatternFlowRSVPPathObjectsCustomType\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowRSVPPathObjectsCustomType.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.PatternFlowRSVPPathObjectsCustomTypeCounter\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowRSVPPathObjectsCustomTypeCounter\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\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') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -54,3735 +54,3893 @@ _globals['_DEVICEETHERNETBASE']._serialized_start=1703 _globals['_DEVICEETHERNETBASE']._serialized_end=1835 _globals['_DEVICEETHERNET']._serialized_start=1838 - _globals['_DEVICEETHERNET']._serialized_end=2145 - _globals['_ETHERNETCONNECTION']._serialized_start=2148 - _globals['_ETHERNETCONNECTION']._serialized_end=2431 - _globals['_ETHERNETCONNECTION_CHOICE']._serialized_start=2300 - _globals['_ETHERNETCONNECTION_CHOICE']._serialized_end=2378 - _globals['_ETHERNETCONNECTION_CHOICE_ENUM']._serialized_start=2310 - _globals['_ETHERNETCONNECTION_CHOICE_ENUM']._serialized_end=2378 - _globals['_DEVICEVLAN']._serialized_start=2434 - _globals['_DEVICEVLAN']._serialized_end=2677 - _globals['_DEVICEVLAN_TPID']._serialized_start=2553 - _globals['_DEVICEVLAN_TPID']._serialized_end=2639 - _globals['_DEVICEVLAN_TPID_ENUM']._serialized_start=2561 - _globals['_DEVICEVLAN_TPID_ENUM']._serialized_end=2639 - _globals['_DEVICEIPV4']._serialized_start=2680 - _globals['_DEVICEIPV4']._serialized_end=2868 - _globals['_DEVICEIPV4LOOPBACK']._serialized_start=2870 - _globals['_DEVICEIPV4LOOPBACK']._serialized_end=2988 - _globals['_DEVICEIPV4GATEWAYMAC']._serialized_start=2991 - _globals['_DEVICEIPV4GATEWAYMAC']._serialized_end=3198 - _globals['_DEVICEIPV4GATEWAYMAC_CHOICE']._serialized_start=3114 - _globals['_DEVICEIPV4GATEWAYMAC_CHOICE']._serialized_end=3168 - _globals['_DEVICEIPV4GATEWAYMAC_CHOICE_ENUM']._serialized_start=3124 - _globals['_DEVICEIPV4GATEWAYMAC_CHOICE_ENUM']._serialized_end=3168 - _globals['_DEVICEIPV6']._serialized_start=3201 - _globals['_DEVICEIPV6']._serialized_end=3389 - _globals['_DEVICEIPV6LOOPBACK']._serialized_start=3391 - _globals['_DEVICEIPV6LOOPBACK']._serialized_end=3509 - _globals['_DEVICEIPV6GATEWAYMAC']._serialized_start=3512 - _globals['_DEVICEIPV6GATEWAYMAC']._serialized_end=3719 - _globals['_DEVICEIPV6GATEWAYMAC_CHOICE']._serialized_start=3114 - _globals['_DEVICEIPV6GATEWAYMAC_CHOICE']._serialized_end=3168 - _globals['_DEVICEIPV6GATEWAYMAC_CHOICE_ENUM']._serialized_start=3124 - _globals['_DEVICEIPV6GATEWAYMAC_CHOICE_ENUM']._serialized_end=3168 - _globals['_DEVICEDHCPV4CLIENT']._serialized_start=3722 - _globals['_DEVICEDHCPV4CLIENT']._serialized_end=4056 - _globals['_DEVICEDHCPV4CLIENT_CHOICE']._serialized_start=3932 - _globals['_DEVICEDHCPV4CLIENT_CHOICE']._serialized_end=4003 - _globals['_DEVICEDHCPV4CLIENT_CHOICE_ENUM']._serialized_start=3942 - _globals['_DEVICEDHCPV4CLIENT_CHOICE_ENUM']._serialized_end=4003 - _globals['_DHCPV4CLIENTPARAMS']._serialized_start=4059 - _globals['_DHCPV4CLIENTPARAMS']._serialized_end=4249 - _globals['_LAYER1']._serialized_start=4252 - _globals['_LAYER1']._serialized_end=5058 - _globals['_LAYER1_SPEED']._serialized_start=4597 - _globals['_LAYER1_SPEED']._serialized_end=4894 - _globals['_LAYER1_SPEED_ENUM']._serialized_start=4607 - _globals['_LAYER1_SPEED_ENUM']._serialized_end=4894 - _globals['_LAYER1_MEDIA']._serialized_start=4896 - _globals['_LAYER1_MEDIA']._serialized_end=4962 - _globals['_LAYER1_MEDIA_ENUM']._serialized_start=4905 - _globals['_LAYER1_MEDIA_ENUM']._serialized_end=4962 - _globals['_LAYER1AUTONEGOTIATION']._serialized_start=5061 - _globals['_LAYER1AUTONEGOTIATION']._serialized_end=5464 - _globals['_LAYER1FLOWCONTROL']._serialized_start=5467 - _globals['_LAYER1FLOWCONTROL']._serialized_end=5767 - _globals['_LAYER1FLOWCONTROL_CHOICE']._serialized_start=5666 - _globals['_LAYER1FLOWCONTROL_CHOICE']._serialized_end=5735 - _globals['_LAYER1FLOWCONTROL_CHOICE_ENUM']._serialized_start=5676 - _globals['_LAYER1FLOWCONTROL_CHOICE_ENUM']._serialized_end=5735 - _globals['_LAYER1IEEE8023X']._serialized_start=5769 - _globals['_LAYER1IEEE8023X']._serialized_end=5786 - _globals['_LAYER1IEEE8021QBB']._serialized_start=5789 - _globals['_LAYER1IEEE8021QBB']._serialized_end=6182 - _globals['_CAPTURE']._serialized_start=6185 - _globals['_CAPTURE']._serialized_end=6474 - _globals['_CAPTURE_FORMAT']._serialized_start=6369 - _globals['_CAPTURE_FORMAT']._serialized_end=6424 - _globals['_CAPTURE_FORMAT_ENUM']._serialized_start=6379 - _globals['_CAPTURE_FORMAT_ENUM']._serialized_end=6424 - _globals['_CAPTUREFILTER']._serialized_start=6477 - _globals['_CAPTUREFILTER']._serialized_end=6819 - _globals['_CAPTUREFILTER_CHOICE']._serialized_start=6719 - _globals['_CAPTUREFILTER_CHOICE']._serialized_end=6808 - _globals['_CAPTUREFILTER_CHOICE_ENUM']._serialized_start=6729 - _globals['_CAPTUREFILTER_CHOICE_ENUM']._serialized_end=6808 - _globals['_CAPTURECUSTOM']._serialized_start=6822 - _globals['_CAPTURECUSTOM']._serialized_end=6999 - _globals['_CAPTUREFIELD']._serialized_start=7001 - _globals['_CAPTUREFIELD']._serialized_end=7105 - _globals['_CAPTUREETHERNET']._serialized_start=7108 - _globals['_CAPTUREETHERNET']._serialized_end=7266 - _globals['_CAPTUREVLAN']._serialized_start=7269 - _globals['_CAPTUREVLAN']._serialized_end=7419 - _globals['_CAPTUREIPV4']._serialized_start=7422 - _globals['_CAPTUREIPV4']._serialized_end=7986 - _globals['_CAPTUREIPV6']._serialized_start=7989 - _globals['_CAPTUREIPV6']._serialized_end=8304 - _globals['_DEVICE']._serialized_start=8307 - _globals['_DEVICE']._serialized_end=8661 - _globals['_PROTOCOLOPTIONS']._serialized_start=8663 - _globals['_PROTOCOLOPTIONS']._serialized_end=8728 - _globals['_DEVICEISISROUTER']._serialized_start=8731 - _globals['_DEVICEISISROUTER']._serialized_end=9101 - _globals['_DEVICEISISMULTIINSTANCE']._serialized_start=9103 - _globals['_DEVICEISISMULTIINSTANCE']._serialized_end=9169 - _globals['_ISISINTERFACE']._serialized_start=9172 - _globals['_ISISINTERFACE']._serialized_end=9957 - _globals['_ISISINTERFACE_NETWORKTYPE']._serialized_start=9740 - _globals['_ISISINTERFACE_NETWORKTYPE']._serialized_end=9813 - _globals['_ISISINTERFACE_NETWORKTYPE_ENUM']._serialized_start=9755 - _globals['_ISISINTERFACE_NETWORKTYPE_ENUM']._serialized_end=9813 - _globals['_ISISINTERFACE_LEVELTYPE']._serialized_start=9815 - _globals['_ISISINTERFACE_LEVELTYPE']._serialized_end=9892 - _globals['_ISISINTERFACE_LEVELTYPE_ENUM']._serialized_start=9828 - _globals['_ISISINTERFACE_LEVELTYPE_ENUM']._serialized_end=9892 - _globals['_ISISINTERFACELEVEL']._serialized_start=9960 - _globals['_ISISINTERFACELEVEL']._serialized_end=10110 - _globals['_ISISMT']._serialized_start=10112 - _globals['_ISISMT']._serialized_end=10192 - _globals['_LINKSTATETE']._serialized_start=10195 - _globals['_LINKSTATETE']._serialized_end=10487 - _globals['_LINKSTATEPRIORITYBANDWIDTHS']._serialized_start=10490 - _globals['_LINKSTATEPRIORITYBANDWIDTHS']._serialized_end=10727 - _globals['_ISISINTERFACEAUTHENTICATION']._serialized_start=10730 - _globals['_ISISINTERFACEAUTHENTICATION']._serialized_end=10967 - _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE']._serialized_start=10874 - _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE']._serialized_end=10932 - _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM']._serialized_start=10886 - _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM']._serialized_end=10932 - _globals['_ISISINTERFACEADVANCED']._serialized_start=10970 - _globals['_ISISINTERFACEADVANCED']._serialized_end=11309 - _globals['_ISISINTERFACELINKPROTECTION']._serialized_start=11312 - _globals['_ISISINTERFACELINKPROTECTION']._serialized_end=11689 - _globals['_ISISBASIC']._serialized_start=11692 - _globals['_ISISBASIC']._serialized_end=11905 - _globals['_ISISADVANCED']._serialized_start=11908 - _globals['_ISISADVANCED']._serialized_end=12430 - _globals['_ISISAUTHENTICATION']._serialized_start=12433 - _globals['_ISISAUTHENTICATION']._serialized_end=12607 - _globals['_ISISAUTHENTICATIONBASE']._serialized_start=12610 - _globals['_ISISAUTHENTICATIONBASE']._serialized_end=12837 - _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE']._serialized_start=10874 - _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE']._serialized_end=10932 - _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM']._serialized_start=10886 - _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM']._serialized_end=10932 - _globals['_ISISV4ROUTERANGE']._serialized_start=12840 - _globals['_ISISV4ROUTERANGE']._serialized_end=13440 - _globals['_ISISV4ROUTERANGE_ORIGINTYPE']._serialized_start=13188 - _globals['_ISISV4ROUTERANGE_ORIGINTYPE']._serialized_end=13253 - _globals['_ISISV4ROUTERANGE_ORIGINTYPE_ENUM']._serialized_start=13202 - _globals['_ISISV4ROUTERANGE_ORIGINTYPE_ENUM']._serialized_end=13253 - _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_start=13255 - _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_end=13318 - _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_start=13277 - _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_end=13318 - _globals['_V4ROUTEADDRESS']._serialized_start=13443 - _globals['_V4ROUTEADDRESS']._serialized_end=13583 - _globals['_V6ROUTEADDRESS']._serialized_start=13586 - _globals['_V6ROUTEADDRESS']._serialized_end=13726 - _globals['_MACROUTEADDRESS']._serialized_start=13729 - _globals['_MACROUTEADDRESS']._serialized_end=13870 - _globals['_ISISV6ROUTERANGE']._serialized_start=13873 - _globals['_ISISV6ROUTERANGE']._serialized_end=14473 - _globals['_ISISV6ROUTERANGE_ORIGINTYPE']._serialized_start=13188 - _globals['_ISISV6ROUTERANGE_ORIGINTYPE']._serialized_end=13253 - _globals['_ISISV6ROUTERANGE_ORIGINTYPE_ENUM']._serialized_start=13202 - _globals['_ISISV6ROUTERANGE_ORIGINTYPE_ENUM']._serialized_end=13253 - _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_start=13255 - _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_end=13318 - _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_start=13277 - _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_end=13318 - _globals['_DEVICEBGPROUTER']._serialized_start=14476 - _globals['_DEVICEBGPROUTER']._serialized_end=14623 - _globals['_DEVICEBGPMESSAGEHEADERERROR']._serialized_start=14626 - _globals['_DEVICEBGPMESSAGEHEADERERROR']._serialized_end=14898 - _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE']._serialized_start=14727 - _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE']._serialized_end=14886 - _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM']._serialized_start=14739 - _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM']._serialized_end=14886 - _globals['_DEVICEBGPOPENMESSAGEERROR']._serialized_start=14901 - _globals['_DEVICEBGPOPENMESSAGEERROR']._serialized_end=15327 - _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE']._serialized_start=14998 - _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE']._serialized_end=15315 - _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM']._serialized_start=15010 - _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM']._serialized_end=15315 - _globals['_DEVICEBGPUPDATEMESSAGEERROR']._serialized_start=15330 - _globals['_DEVICEBGPUPDATEMESSAGEERROR']._serialized_end=15934 - _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE']._serialized_start=15431 - _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE']._serialized_end=15922 - _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM']._serialized_start=15443 - _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM']._serialized_end=15922 - _globals['_DEVICEBGPHOLDTIMEREXPIRED']._serialized_start=15936 - _globals['_DEVICEBGPHOLDTIMEREXPIRED']._serialized_end=15963 - _globals['_DEVICEBGPFINITESTATEMACHINEERROR']._serialized_start=15965 - _globals['_DEVICEBGPFINITESTATEMACHINEERROR']._serialized_end=15999 - _globals['_DEVICEBGPCEASEERROR']._serialized_start=16002 - _globals['_DEVICEBGPCEASEERROR']._serialized_end=16485 - _globals['_DEVICEBGPCEASEERROR_SUBCODE']._serialized_start=16087 - _globals['_DEVICEBGPCEASEERROR_SUBCODE']._serialized_end=16473 - _globals['_DEVICEBGPCEASEERROR_SUBCODE_ENUM']._serialized_start=16099 - _globals['_DEVICEBGPCEASEERROR_SUBCODE_ENUM']._serialized_end=16473 - _globals['_DEVICEBGPCUSTOMERROR']._serialized_start=16487 - _globals['_DEVICEBGPCUSTOMERROR']._serialized_end=16571 - _globals['_BGPV4PEER']._serialized_start=16574 - _globals['_BGPV4PEER']._serialized_end=17438 - _globals['_BGPV4PEER_ASTYPE']._serialized_start=17252 - _globals['_BGPV4PEER_ASTYPE']._serialized_end=17305 - _globals['_BGPV4PEER_ASTYPE_ENUM']._serialized_start=17262 - _globals['_BGPV4PEER_ASTYPE_ENUM']._serialized_end=17305 - _globals['_BGPV4PEER_ASNUMBERWIDTH']._serialized_start=17307 - _globals['_BGPV4PEER_ASNUMBERWIDTH']._serialized_end=17366 - _globals['_BGPV4PEER_ASNUMBERWIDTH_ENUM']._serialized_start=17324 - _globals['_BGPV4PEER_ASNUMBERWIDTH_ENUM']._serialized_end=17366 - _globals['_BGPV4INTERFACE']._serialized_start=17440 - _globals['_BGPV4INTERFACE']._serialized_end=17525 - _globals['_BGPV4ETHERNETSEGMENT']._serialized_start=17528 - _globals['_BGPV4ETHERNETSEGMENT']._serialized_end=18024 - _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE']._serialized_start=17914 - _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE']._serialized_end=17986 - _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_start=17928 - _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_end=17986 - _globals['_BGPETHERNETSEGMENTDFELECTION']._serialized_start=18026 - _globals['_BGPETHERNETSEGMENTDFELECTION']._serialized_end=18104 - _globals['_BGPROUTEADVANCED']._serialized_start=18107 - _globals['_BGPROUTEADVANCED']._serialized_end=18581 - _globals['_BGPROUTEADVANCED_ORIGIN']._serialized_start=18368 - _globals['_BGPROUTEADVANCED_ORIGIN']._serialized_end=18435 - _globals['_BGPROUTEADVANCED_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPROUTEADVANCED_ORIGIN_ENUM']._serialized_end=18435 - _globals['_BGPCOMMUNITY']._serialized_start=18584 - _globals['_BGPCOMMUNITY']._serialized_end=18876 - _globals['_BGPCOMMUNITY_TYPE']._serialized_start=18697 - _globals['_BGPCOMMUNITY_TYPE']._serialized_end=18839 - _globals['_BGPCOMMUNITY_TYPE_ENUM']._serialized_start=18706 - _globals['_BGPCOMMUNITY_TYPE_ENUM']._serialized_end=18839 - _globals['_BGPEXTCOMMUNITY']._serialized_start=18879 - _globals['_BGPEXTCOMMUNITY']._serialized_end=19384 - _globals['_BGPEXTCOMMUNITY_TYPE']._serialized_start=19027 - _globals['_BGPEXTCOMMUNITY_TYPE']._serialized_end=19215 - _globals['_BGPEXTCOMMUNITY_TYPE_ENUM']._serialized_start=19036 - _globals['_BGPEXTCOMMUNITY_TYPE_ENUM']._serialized_end=19215 - _globals['_BGPEXTCOMMUNITY_SUBTYPE']._serialized_start=19218 - _globals['_BGPEXTCOMMUNITY_SUBTYPE']._serialized_end=19353 - _globals['_BGPEXTCOMMUNITY_SUBTYPE_ENUM']._serialized_start=19229 - _globals['_BGPEXTCOMMUNITY_SUBTYPE_ENUM']._serialized_end=19353 - _globals['_BGPASPATH']._serialized_start=19387 - _globals['_BGPASPATH']._serialized_end=19705 - _globals['_BGPASPATH_ASSETMODE']._serialized_start=19499 - _globals['_BGPASPATH_ASSETMODE']._serialized_end=19689 - _globals['_BGPASPATH_ASSETMODE_ENUM']._serialized_start=19513 - _globals['_BGPASPATH_ASSETMODE_ENUM']._serialized_end=19689 - _globals['_BGPASPATHSEGMENT']._serialized_start=19708 - _globals['_BGPASPATHSEGMENT']._serialized_end=19902 - _globals['_BGPASPATHSEGMENT_TYPE']._serialized_start=19800 - _globals['_BGPASPATHSEGMENT_TYPE']._serialized_end=19893 - _globals['_BGPASPATHSEGMENT_TYPE_ENUM']._serialized_start=19808 - _globals['_BGPASPATHSEGMENT_TYPE_ENUM']._serialized_end=19893 - _globals['_BGPV4EVPNEVIS']._serialized_start=19905 - _globals['_BGPV4EVPNEVIS']._serialized_end=20073 - _globals['_BGPV4EVPNEVIS_CHOICE']._serialized_start=20014 - _globals['_BGPV4EVPNEVIS_CHOICE']._serialized_end=20062 - _globals['_BGPV4EVPNEVIS_CHOICE_ENUM']._serialized_start=20024 - _globals['_BGPV4EVPNEVIS_CHOICE_ENUM']._serialized_end=20062 - _globals['_BGPV4EVIVXLAN']._serialized_start=20076 - _globals['_BGPV4EVIVXLAN']._serialized_end=20815 - _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE']._serialized_start=20699 - _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE']._serialized_end=20766 - _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_start=20718 - _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_end=20766 - _globals['_BGPV4EVIVXLANBROADCASTDOMAIN']._serialized_start=20818 - _globals['_BGPV4EVIVXLANBROADCASTDOMAIN']._serialized_end=20998 - _globals['_BGPCMACIPRANGE']._serialized_start=21001 - _globals['_BGPCMACIPRANGE']._serialized_end=21467 - _globals['_BGPROUTEDISTINGUISHER']._serialized_start=21470 - _globals['_BGPROUTEDISTINGUISHER']._serialized_end=21750 - _globals['_BGPROUTEDISTINGUISHER_RDTYPE']._serialized_start=21617 - _globals['_BGPROUTEDISTINGUISHER_RDTYPE']._serialized_end=21698 - _globals['_BGPROUTEDISTINGUISHER_RDTYPE_ENUM']._serialized_start=21627 - _globals['_BGPROUTEDISTINGUISHER_RDTYPE_ENUM']._serialized_end=21698 - _globals['_BGPROUTETARGET']._serialized_start=21753 - _globals['_BGPROUTETARGET']._serialized_end=21955 - _globals['_BGPROUTETARGET_RTTYPE']._serialized_start=21849 - _globals['_BGPROUTETARGET_RTTYPE']._serialized_end=21930 - _globals['_BGPROUTETARGET_RTTYPE_ENUM']._serialized_start=21627 - _globals['_BGPROUTETARGET_RTTYPE_ENUM']._serialized_end=21698 - _globals['_BGPADVANCED']._serialized_start=21958 - _globals['_BGPADVANCED']._serialized_end=22345 - _globals['_BGPCAPABILITY']._serialized_start=22348 - _globals['_BGPCAPABILITY']._serialized_end=23645 - _globals['_BGPLEARNEDINFORMATIONFILTER']._serialized_start=23648 - _globals['_BGPLEARNEDINFORMATIONFILTER']._serialized_end=23793 - _globals['_BGPV4ROUTERANGE']._serialized_start=23796 - _globals['_BGPV4ROUTERANGE']._serialized_end=24584 - _globals['_BGPV4ROUTERANGE_NEXTHOPMODE']._serialized_start=24348 - _globals['_BGPV4ROUTERANGE_NEXTHOPMODE']._serialized_end=24412 - _globals['_BGPV4ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_start=24363 - _globals['_BGPV4ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_end=24412 - _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_start=24414 - _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_end=24479 - _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=24436 - _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=24479 - _globals['_BGPADDPATH']._serialized_start=24586 - _globals['_BGPADDPATH']._serialized_end=24632 - _globals['_BGPEXTENDEDCOMMUNITY']._serialized_start=24635 - _globals['_BGPEXTENDEDCOMMUNITY']._serialized_end=25518 - _globals['_BGPEXTENDEDCOMMUNITY_CHOICE']._serialized_start=25276 - _globals['_BGPEXTENDEDCOMMUNITY_CHOICE']._serialized_end=25507 - _globals['_BGPEXTENDEDCOMMUNITY_CHOICE_ENUM']._serialized_start=25287 - _globals['_BGPEXTENDEDCOMMUNITY_CHOICE_ENUM']._serialized_end=25507 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_start=25521 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_end=25680 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_start=25683 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_end=25842 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_start=25845 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_end=26249 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=26153 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_start=26252 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_end=26418 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_start=26421 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_end=26587 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_start=26590 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_end=27006 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_start=26153 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_start=27009 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_end=27168 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_start=27171 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_end=27330 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_start=27333 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_end=27737 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_start=26153 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_start=27739 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_end=27846 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_start=27849 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_end=27982 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_start=27985 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_end=28365 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_start=28275 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_end=28354 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_start=28285 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_end=28354 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC']._serialized_start=28367 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC']._serialized_end=28456 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE']._serialized_start=28459 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE']._serialized_end=28729 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE']._serialized_start=28661 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE']._serialized_end=28718 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM']._serialized_start=28671 - _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM']._serialized_end=28718 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_start=28732 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_end=28880 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_start=28883 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_end=29186 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=29114 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=29175 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=29124 - _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=29175 - _globals['_BGPEXTENDEDCOMMUNITYCUSTOMTYPE']._serialized_start=29189 - _globals['_BGPEXTENDEDCOMMUNITYCUSTOMTYPE']._serialized_end=29353 - _globals['_BGPV6ROUTERANGE']._serialized_start=29356 - _globals['_BGPV6ROUTERANGE']._serialized_end=30144 - _globals['_BGPV6ROUTERANGE_NEXTHOPMODE']._serialized_start=24348 - _globals['_BGPV6ROUTERANGE_NEXTHOPMODE']._serialized_end=24412 - _globals['_BGPV6ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_start=24363 - _globals['_BGPV6ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_end=24412 - _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_start=24414 - _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_end=24479 - _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=24436 - _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=24479 - _globals['_BGPSRTEV4POLICY']._serialized_start=30147 - _globals['_BGPSRTEV4POLICY']._serialized_end=31038 - _globals['_BGPSRTEV4POLICY_NEXTHOPMODE']._serialized_start=24348 - _globals['_BGPSRTEV4POLICY_NEXTHOPMODE']._serialized_end=24412 - _globals['_BGPSRTEV4POLICY_NEXTHOPMODE_ENUM']._serialized_start=24363 - _globals['_BGPSRTEV4POLICY_NEXTHOPMODE_ENUM']._serialized_end=24412 - _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE']._serialized_start=24414 - _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE']._serialized_end=24479 - _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=24436 - _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=24479 - _globals['_BGPSRTEV4TUNNELTLV']._serialized_start=31041 - _globals['_BGPSRTEV4TUNNELTLV']._serialized_end=31607 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV']._serialized_start=31610 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV']._serialized_end=31928 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY']._serialized_start=31801 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY']._serialized_end=31861 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM']._serialized_start=24436 - _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM']._serialized_end=24479 - _globals['_BGPSRTECOLORSUBTLV']._serialized_start=31930 - _globals['_BGPSRTECOLORSUBTLV']._serialized_end=31980 - _globals['_BGPSRTEBINDINGSUBTLV']._serialized_start=31983 - _globals['_BGPSRTEBINDINGSUBTLV']._serialized_end=32345 - _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE']._serialized_start=32179 - _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE']._serialized_end=32270 - _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM']._serialized_start=32197 - _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM']._serialized_end=32270 - _globals['_BGPSRTEPREFERENCESUBTLV']._serialized_start=32347 - _globals['_BGPSRTEPREFERENCESUBTLV']._serialized_end=32412 - _globals['_BGPSRTEPOLICYPRIORITYSUBTLV']._serialized_start=32414 - _globals['_BGPSRTEPOLICYPRIORITYSUBTLV']._serialized_end=32493 - _globals['_BGPSRTEPOLICYNAMESUBTLV']._serialized_start=32495 - _globals['_BGPSRTEPOLICYNAMESUBTLV']._serialized_end=32562 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV']._serialized_start=32565 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV']._serialized_end=32907 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY']._serialized_start=32719 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY']._serialized_end=32876 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM']._serialized_start=32747 - _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM']._serialized_end=32876 - _globals['_BGPSRTESEGMENTLIST']._serialized_start=32910 - _globals['_BGPSRTESEGMENTLIST']._serialized_end=33061 - _globals['_BGPSRTESEGMENT']._serialized_start=33064 - _globals['_BGPSRTESEGMENT']._serialized_end=33924 - _globals['_BGPSRTESEGMENT_SEGMENTTYPE']._serialized_start=33716 - _globals['_BGPSRTESEGMENT_SEGMENTTYPE']._serialized_end=33887 - _globals['_BGPSRTESEGMENT_SEGMENTTYPE_ENUM']._serialized_start=33732 - _globals['_BGPSRTESEGMENT_SEGMENTTYPE_ENUM']._serialized_end=33887 - _globals['_BGPSRTESRMPLSSID']._serialized_start=33927 - _globals['_BGPSRTESRMPLSSID']._serialized_end=34055 - _globals['_BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_start=34058 - _globals['_BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_end=34260 - _globals['_BGPSRTESEGMENTATYPESUBTLV']._serialized_start=34263 - _globals['_BGPSRTESEGMENTATYPESUBTLV']._serialized_end=34430 - _globals['_BGPSRTESEGMENTBTYPESUBTLV']._serialized_start=34433 - _globals['_BGPSRTESEGMENTBTYPESUBTLV']._serialized_end=34611 - _globals['_BGPSRTESEGMENTCTYPESUBTLV']._serialized_start=34614 - _globals['_BGPSRTESEGMENTCTYPESUBTLV']._serialized_end=34813 - _globals['_BGPSRTESEGMENTDTYPESUBTLV']._serialized_start=34816 - _globals['_BGPSRTESEGMENTDTYPESUBTLV']._serialized_end=35015 - _globals['_BGPSRTESEGMENTETYPESUBTLV']._serialized_start=35018 - _globals['_BGPSRTESEGMENTETYPESUBTLV']._serialized_end=35229 - _globals['_BGPSRTESEGMENTFTYPESUBTLV']._serialized_start=35232 - _globals['_BGPSRTESEGMENTFTYPESUBTLV']._serialized_end=35447 - _globals['_BGPSRTESEGMENTGTYPESUBTLV']._serialized_start=35450 - _globals['_BGPSRTESEGMENTGTYPESUBTLV']._serialized_end=35799 - _globals['_BGPSRTESEGMENTHTYPESUBTLV']._serialized_start=35802 - _globals['_BGPSRTESEGMENTHTYPESUBTLV']._serialized_end=36017 - _globals['_BGPSRTESEGMENTITYPESUBTLV']._serialized_start=36020 - _globals['_BGPSRTESEGMENTITYPESUBTLV']._serialized_end=36252 - _globals['_BGPSRTESEGMENTJTYPESUBTLV']._serialized_start=36255 - _globals['_BGPSRTESEGMENTJTYPESUBTLV']._serialized_end=36725 - _globals['_BGPSRTESEGMENTKTYPESUBTLV']._serialized_start=36728 - _globals['_BGPSRTESEGMENTKTYPESUBTLV']._serialized_end=37064 - _globals['_BGPSRTEV6POLICY']._serialized_start=37067 - _globals['_BGPSRTEV6POLICY']._serialized_end=37957 - _globals['_BGPSRTEV6POLICY_NEXTHOPMODE']._serialized_start=24348 - _globals['_BGPSRTEV6POLICY_NEXTHOPMODE']._serialized_end=24412 - _globals['_BGPSRTEV6POLICY_NEXTHOPMODE_ENUM']._serialized_start=24363 - _globals['_BGPSRTEV6POLICY_NEXTHOPMODE_ENUM']._serialized_end=24412 - _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE']._serialized_start=24414 - _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE']._serialized_end=24479 - _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=24436 - _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=24479 - _globals['_BGPSRTEV6TUNNELTLV']._serialized_start=37960 - _globals['_BGPSRTEV6TUNNELTLV']._serialized_end=38526 - _globals['_BGPGRACEFULRESTART']._serialized_start=38529 - _globals['_BGPGRACEFULRESTART']._serialized_end=38713 - _globals['_BGPUPDATEREPLAY']._serialized_start=38716 - _globals['_BGPUPDATEREPLAY']._serialized_end=38956 - _globals['_BGPUPDATEREPLAY_CHOICE']._serialized_start=38876 - _globals['_BGPUPDATEREPLAY_CHOICE']._serialized_end=38945 - _globals['_BGPUPDATEREPLAY_CHOICE_ENUM']._serialized_start=38886 - _globals['_BGPUPDATEREPLAY_CHOICE_ENUM']._serialized_end=38945 - _globals['_BGPRAWBYTES']._serialized_start=38958 - _globals['_BGPRAWBYTES']._serialized_end=39013 - _globals['_BGPONEUPDATEREPLAY']._serialized_start=39015 - _globals['_BGPONEUPDATEREPLAY']._serialized_end=39115 - _globals['_BGPSTRUCTUREDPDUS']._serialized_start=39117 - _globals['_BGPSTRUCTUREDPDUS']._serialized_end=39188 - _globals['_BGPONESTRUCTUREDUPDATEREPLAY']._serialized_start=39191 - _globals['_BGPONESTRUCTUREDUPDATEREPLAY']._serialized_end=39438 - _globals['_BGPONETRADITIONALNLRIPREFIX']._serialized_start=39441 - _globals['_BGPONETRADITIONALNLRIPREFIX']._serialized_end=39579 - _globals['_BGPONEIPV4NLRIPREFIX']._serialized_start=39582 - _globals['_BGPONEIPV4NLRIPREFIX']._serialized_end=39713 - _globals['_BGPONEIPV6NLRIPREFIX']._serialized_start=39716 - _globals['_BGPONEIPV6NLRIPREFIX']._serialized_end=39847 - _globals['_BGPNLRIPREFIXPATHID']._serialized_start=39849 - _globals['_BGPNLRIPREFIXPATHID']._serialized_end=39900 - _globals['_BGPIPV4SRPOLICYNLRIPREFIX']._serialized_start=39903 - _globals['_BGPIPV4SRPOLICYNLRIPREFIX']._serialized_end=40042 - _globals['_BGPIPV6SRPOLICYNLRIPREFIX']._serialized_start=40045 - _globals['_BGPIPV6SRPOLICYNLRIPREFIX']._serialized_end=40184 - _globals['_BGPATTRIBUTES']._serialized_start=40187 - _globals['_BGPATTRIBUTES']._serialized_end=41194 - _globals['_BGPATTRIBUTES_ORIGIN']._serialized_start=18368 - _globals['_BGPATTRIBUTES_ORIGIN']._serialized_end=18435 - _globals['_BGPATTRIBUTES_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPATTRIBUTES_ORIGIN_ENUM']._serialized_end=18435 - _globals['_BGPATTRIBUTESOTHERATTRIBUTE']._serialized_start=41197 - _globals['_BGPATTRIBUTESOTHERATTRIBUTE']._serialized_end=41492 - _globals['_BGPATTRIBUTESASPATH']._serialized_start=41495 - _globals['_BGPATTRIBUTESASPATH']._serialized_end=41798 - _globals['_BGPATTRIBUTESASPATH_CHOICE']._serialized_start=41709 - _globals['_BGPATTRIBUTESASPATH_CHOICE']._serialized_end=41787 - _globals['_BGPATTRIBUTESASPATH_CHOICE_ENUM']._serialized_start=41719 - _globals['_BGPATTRIBUTESASPATH_CHOICE_ENUM']._serialized_end=41787 - _globals['_BGPATTRIBUTESASPATHFOURBYTEASPATH']._serialized_start=41800 - _globals['_BGPATTRIBUTESASPATHFOURBYTEASPATH']._serialized_end=41894 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT']._serialized_start=41897 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT']._serialized_end=42127 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE']._serialized_start=19800 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE']._serialized_end=19893 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_start=19808 - _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_end=19893 - _globals['_BGPATTRIBUTESASPATHTWOBYTEASPATH']._serialized_start=42129 - _globals['_BGPATTRIBUTESASPATHTWOBYTEASPATH']._serialized_end=42221 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT']._serialized_start=42224 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT']._serialized_end=42452 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE']._serialized_start=19800 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE']._serialized_end=19893 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_start=19808 - _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_end=19893 - _globals['_BGPATTRIBUTESAS4PATH']._serialized_start=42454 - _globals['_BGPATTRIBUTESAS4PATH']._serialized_end=42535 - _globals['_BGPATTRIBUTESAGGREGATOR']._serialized_start=42538 - _globals['_BGPATTRIBUTESAGGREGATOR']._serialized_end=42837 - _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE']._serialized_start=42708 - _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE']._serialized_end=42776 - _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE_ENUM']._serialized_start=42718 - _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE_ENUM']._serialized_end=42776 - _globals['_BGPATTRIBUTESAS4AGGREGATOR']._serialized_start=42839 - _globals['_BGPATTRIBUTESAS4AGGREGATOR']._serialized_end=42943 - _globals['_BGPATTRIBUTESCOMMUNITY']._serialized_start=42946 - _globals['_BGPATTRIBUTESCOMMUNITY']._serialized_end=43251 - _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE']._serialized_start=43096 - _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE']._serialized_end=43240 - _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE_ENUM']._serialized_start=43107 - _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE_ENUM']._serialized_end=43240 - _globals['_BGPATTRIBUTESCUSTOMCOMMUNITY']._serialized_start=43253 - _globals['_BGPATTRIBUTESCUSTOMCOMMUNITY']._serialized_end=43353 - _globals['_BGPATTRIBUTESNEXTHOP']._serialized_start=43356 - _globals['_BGPATTRIBUTESNEXTHOP']._serialized_end=43655 - _globals['_BGPATTRIBUTESNEXTHOP_CHOICE']._serialized_start=43549 - _globals['_BGPATTRIBUTESNEXTHOP_CHOICE']._serialized_end=43626 - _globals['_BGPATTRIBUTESNEXTHOP_CHOICE_ENUM']._serialized_start=43559 - _globals['_BGPATTRIBUTESNEXTHOP_CHOICE_ENUM']._serialized_end=43626 - _globals['_BGPATTRIBUTESNEXTHOPIPV6TWOADDRESSES']._serialized_start=43657 - _globals['_BGPATTRIBUTESNEXTHOPIPV6TWOADDRESSES']._serialized_end=43757 - _globals['_BGPATTRIBUTESMPREACHNLRI']._serialized_start=43760 - _globals['_BGPATTRIBUTESMPREACHNLRI']._serialized_end=44223 - _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE']._serialized_start=44105 - _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE']._serialized_end=44212 - _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE_ENUM']._serialized_start=44115 - _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE_ENUM']._serialized_end=44212 - _globals['_BGPATTRIBUTESMPUNREACHNLRI']._serialized_start=44226 - _globals['_BGPATTRIBUTESMPUNREACHNLRI']._serialized_end=44648 - _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE']._serialized_start=44105 - _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE']._serialized_end=44212 - _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE_ENUM']._serialized_start=44115 - _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE_ENUM']._serialized_end=44212 - _globals['_BGPATTRIBUTESMULTIEXITDISCRIMINATOR']._serialized_start=44650 - _globals['_BGPATTRIBUTESMULTIEXITDISCRIMINATOR']._serialized_end=44717 - _globals['_BGPATTRIBUTESLOCALPREFERENCE']._serialized_start=44719 - _globals['_BGPATTRIBUTESLOCALPREFERENCE']._serialized_end=44779 - _globals['_BGPATTRIBUTESORIGINATORID']._serialized_start=44781 - _globals['_BGPATTRIBUTESORIGINATORID']._serialized_end=44838 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION']._serialized_start=44841 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION']._serialized_end=45067 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE']._serialized_start=45008 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE']._serialized_end=45056 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE_ENUM']._serialized_start=45018 - _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE_ENUM']._serialized_end=45056 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICY']._serialized_start=45070 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICY']._serialized_end=45626 - _globals['_BGPATTRIBUTESBSID']._serialized_start=45629 - _globals['_BGPATTRIBUTESBSID']._serialized_end=45855 - _globals['_BGPATTRIBUTESBSID_CHOICE']._serialized_start=45791 - _globals['_BGPATTRIBUTESBSID_CHOICE']._serialized_end=45844 - _globals['_BGPATTRIBUTESBSID_CHOICE_ENUM']._serialized_start=45801 - _globals['_BGPATTRIBUTESBSID_CHOICE_ENUM']._serialized_end=45844 - _globals['_BGPATTRIBUTESBSIDMPLS']._serialized_start=45858 - _globals['_BGPATTRIBUTESBSIDMPLS']._serialized_end=46058 - _globals['_BGPATTRIBUTESBSIDSRV6']._serialized_start=46061 - _globals['_BGPATTRIBUTESBSIDSRV6']._serialized_end=46254 - _globals['_BGPATTRIBUTESSRV6BSID']._serialized_start=46257 - _globals['_BGPATTRIBUTESSRV6BSID']._serialized_end=46631 - _globals['_BGPATTRIBUTESSIDMPLS']._serialized_start=46634 - _globals['_BGPATTRIBUTESSIDMPLS']._serialized_end=46794 - _globals['_BGPATTRIBUTESSIDSRV6']._serialized_start=46796 - _globals['_BGPATTRIBUTESSIDSRV6']._serialized_end=46842 - _globals['_BGPATTRIBUTESSRPOLICYPREFERENCE']._serialized_start=46844 - _globals['_BGPATTRIBUTESSRPOLICYPREFERENCE']._serialized_end=46907 - _globals['_BGPATTRIBUTESSRPOLICYPRIORITY']._serialized_start=46909 - _globals['_BGPATTRIBUTESSRPOLICYPRIORITY']._serialized_end=46970 - _globals['_BGPATTRIBUTESSRPOLICYPOLICYCANDIDATENAME']._serialized_start=46972 - _globals['_BGPATTRIBUTESSRPOLICYPOLICYCANDIDATENAME']._serialized_end=47044 - _globals['_BGPATTRIBUTESSRPOLICYPOLICYNAME']._serialized_start=47046 - _globals['_BGPATTRIBUTESSRPOLICYPOLICYNAME']._serialized_end=47109 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY']._serialized_start=47112 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY']._serialized_end=47361 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE']._serialized_start=47234 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE']._serialized_end=47350 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE_ENUM']._serialized_start=47244 - _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE_ENUM']._serialized_end=47350 - _globals['_BGPATTRIBUTESSRPOLICYSEGMENTLIST']._serialized_start=47364 - _globals['_BGPATTRIBUTESSRPOLICYSEGMENTLIST']._serialized_end=47547 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTWEIGHT']._serialized_start=47549 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTWEIGHT']._serialized_end=47631 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT']._serialized_start=47634 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT']._serialized_end=48629 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE']._serialized_start=48452 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE']._serialized_end=48618 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE_ENUM']._serialized_start=33732 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE_ENUM']._serialized_end=33887 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEA']._serialized_start=48632 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEA']._serialized_end=48781 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEB']._serialized_start=48784 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEB']._serialized_end=49031 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEC']._serialized_start=49034 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEC']._serialized_end=49284 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPED']._serialized_start=49287 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPED']._serialized_end=49537 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEE']._serialized_start=49540 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEE']._serialized_end=49802 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEF']._serialized_start=49805 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEF']._serialized_end=50071 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEG']._serialized_start=50074 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEG']._serialized_end=50474 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEH']._serialized_start=50477 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEH']._serialized_end=50743 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEI']._serialized_start=50746 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEI']._serialized_end=51100 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEJ']._serialized_start=51103 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEJ']._serialized_end=51651 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEK']._serialized_start=51654 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEK']._serialized_end=52068 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEFLAGS']._serialized_start=52071 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEFLAGS']._serialized_end=52243 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_start=52246 - _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_end=52530 - _globals['_BGPNLRIPREFIXSEGMENTROUTINGDISTINGUISHER']._serialized_start=52532 - _globals['_BGPNLRIPREFIXSEGMENTROUTINGDISTINGUISHER']._serialized_end=52604 - _globals['_BGPV6PEER']._serialized_start=52607 - _globals['_BGPV6PEER']._serialized_end=53522 - _globals['_BGPV6PEER_ASTYPE']._serialized_start=17252 - _globals['_BGPV6PEER_ASTYPE']._serialized_end=17305 - _globals['_BGPV6PEER_ASTYPE_ENUM']._serialized_start=17262 - _globals['_BGPV6PEER_ASTYPE_ENUM']._serialized_end=17305 - _globals['_BGPV6PEER_ASNUMBERWIDTH']._serialized_start=17307 - _globals['_BGPV6PEER_ASNUMBERWIDTH']._serialized_end=17366 - _globals['_BGPV6PEER_ASNUMBERWIDTH_ENUM']._serialized_start=17324 - _globals['_BGPV6PEER_ASNUMBERWIDTH_ENUM']._serialized_end=17366 - _globals['_BGPV6INTERFACE']._serialized_start=53524 - _globals['_BGPV6INTERFACE']._serialized_end=53609 - _globals['_BGPV6SEGMENTROUTING']._serialized_start=53612 - _globals['_BGPV6SEGMENTROUTING']._serialized_end=54109 - _globals['_BGPV6ETHERNETSEGMENT']._serialized_start=54112 - _globals['_BGPV6ETHERNETSEGMENT']._serialized_end=54608 - _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE']._serialized_start=17914 - _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE']._serialized_end=17986 - _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_start=17928 - _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_end=17986 - _globals['_BGPV6EVPNEVIS']._serialized_start=54611 - _globals['_BGPV6EVPNEVIS']._serialized_end=54779 - _globals['_BGPV6EVPNEVIS_CHOICE']._serialized_start=20014 - _globals['_BGPV6EVPNEVIS_CHOICE']._serialized_end=20062 - _globals['_BGPV6EVPNEVIS_CHOICE_ENUM']._serialized_start=20024 - _globals['_BGPV6EVPNEVIS_CHOICE_ENUM']._serialized_end=20062 - _globals['_BGPV6EVIVXLAN']._serialized_start=54782 - _globals['_BGPV6EVIVXLAN']._serialized_end=55521 - _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE']._serialized_start=20699 - _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE']._serialized_end=20766 - _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_start=20718 - _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_end=20766 - _globals['_BGPV6EVIVXLANBROADCASTDOMAIN']._serialized_start=55524 - _globals['_BGPV6EVIVXLANBROADCASTDOMAIN']._serialized_end=55704 - _globals['_DEVICEVXLAN']._serialized_start=55706 - _globals['_DEVICEVXLAN']._serialized_end=55799 - _globals['_VXLANV4TUNNEL']._serialized_start=55802 - _globals['_VXLANV4TUNNEL']._serialized_end=55989 - _globals['_VXLANV6TUNNEL']._serialized_start=55992 - _globals['_VXLANV6TUNNEL']._serialized_end=56179 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE']._serialized_start=56182 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE']._serialized_end=56484 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE']._serialized_start=56412 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE']._serialized_end=56473 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_start=56422 - _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_end=56473 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE']._serialized_start=56487 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE']._serialized_end=56789 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE']._serialized_start=56412 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE']._serialized_end=56473 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_start=56422 - _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_end=56473 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICAST']._serialized_start=56791 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICAST']._serialized_end=56893 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICAST']._serialized_start=56895 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICAST']._serialized_end=56997 - _globals['_VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE']._serialized_start=57000 - _globals['_VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE']._serialized_end=57150 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_start=57153 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_end=57346 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_start=57349 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_end=57542 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEMULTICAST']._serialized_start=57544 - _globals['_VXLANV4TUNNELDESTINATIONIPMODEMULTICAST']._serialized_end=57619 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEMULTICAST']._serialized_start=57621 - _globals['_VXLANV6TUNNELDESTINATIONIPMODEMULTICAST']._serialized_end=57696 - _globals['_DEVICERSVP']._serialized_start=57699 - _globals['_DEVICERSVP']._serialized_end=57844 - _globals['_RSVPIPV4INTERFACE']._serialized_start=57847 - _globals['_RSVPIPV4INTERFACE']._serialized_end=58428 - _globals['_RSVPLSPIPV4INTERFACE']._serialized_start=58431 - _globals['_RSVPLSPIPV4INTERFACE']._serialized_end=58639 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP']._serialized_start=58642 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP']._serialized_end=59139 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE']._serialized_start=58927 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE']._serialized_end=59019 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM']._serialized_start=58947 - _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM']._serialized_end=59019 - _globals['_RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP']._serialized_start=59142 - _globals['_RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP']._serialized_end=59697 - _globals['_RSVPSESSIONATTRIBUTE']._serialized_start=59700 - _globals['_RSVPSESSIONATTRIBUTE']._serialized_end=60324 - _globals['_RSVPRESOURCEAFFINITIES']._serialized_start=60327 - _globals['_RSVPRESOURCEAFFINITIES']._serialized_end=60477 - _globals['_RSVPTSPEC']._serialized_start=60480 - _globals['_RSVPTSPEC']._serialized_end=60767 - _globals['_RSVPFASTREROUTE']._serialized_start=60770 - _globals['_RSVPFASTREROUTE']._serialized_end=61225 - _globals['_RSVPERO']._serialized_start=61228 - _globals['_RSVPERO']._serialized_end=61524 - _globals['_RSVPERO_PREPENDNEIGHBORIP']._serialized_start=61381 - _globals['_RSVPERO_PREPENDNEIGHBORIP']._serialized_end=61482 - _globals['_RSVPERO_PREPENDNEIGHBORIP_ENUM']._serialized_start=61402 - _globals['_RSVPERO_PREPENDNEIGHBORIP_ENUM']._serialized_end=61482 - _globals['_RSVPEROSUBOBJECT']._serialized_start=61527 - _globals['_RSVPEROSUBOBJECT']._serialized_end=61923 - _globals['_RSVPEROSUBOBJECT_TYPE']._serialized_start=61737 - _globals['_RSVPEROSUBOBJECT_TYPE']._serialized_end=61793 - _globals['_RSVPEROSUBOBJECT_TYPE_ENUM']._serialized_start=61745 - _globals['_RSVPEROSUBOBJECT_TYPE_ENUM']._serialized_end=61793 - _globals['_RSVPEROSUBOBJECT_HOPTYPE']._serialized_start=61795 - _globals['_RSVPEROSUBOBJECT_HOPTYPE']._serialized_end=61852 - _globals['_RSVPEROSUBOBJECT_HOPTYPE_ENUM']._serialized_start=61806 - _globals['_RSVPEROSUBOBJECT_HOPTYPE_ENUM']._serialized_end=61852 - _globals['_DEVICEDHCPSERVER']._serialized_start=61925 - _globals['_DEVICEDHCPSERVER']._serialized_end=61987 - _globals['_DHCPSERVERV4']._serialized_start=61989 - _globals['_DHCPSERVERV4']._serialized_end=62115 - _globals['_DHCPSERVERV4POOL']._serialized_start=62118 - _globals['_DHCPSERVERV4POOL']._serialized_end=62400 - _globals['_DHCPSERVERV4POOLOPTION']._serialized_start=62403 - _globals['_DHCPSERVERV4POOLOPTION']._serialized_end=62655 - _globals['_FLOW']._serialized_start=62658 - _globals['_FLOW']._serialized_end=62925 - _globals['_FLOWTXRX']._serialized_start=62928 - _globals['_FLOWTXRX']._serialized_end=63116 - _globals['_FLOWTXRX_CHOICE']._serialized_start=63050 - _globals['_FLOWTXRX_CHOICE']._serialized_end=63105 - _globals['_FLOWTXRX_CHOICE_ENUM']._serialized_start=63060 - _globals['_FLOWTXRX_CHOICE_ENUM']._serialized_end=63105 - _globals['_FLOWPORT']._serialized_start=63118 - _globals['_FLOWPORT']._serialized_end=63214 - _globals['_FLOWROUTER']._serialized_start=63217 - _globals['_FLOWROUTER']._serialized_end=63379 - _globals['_FLOWROUTER_MODE']._serialized_start=63313 - _globals['_FLOWROUTER_MODE']._serialized_end=63370 - _globals['_FLOWROUTER_MODE_ENUM']._serialized_start=63321 - _globals['_FLOWROUTER_MODE_ENUM']._serialized_end=63370 - _globals['_FLOWHEADER']._serialized_start=63382 - _globals['_FLOWHEADER']._serialized_end=64383 - _globals['_FLOWHEADER_CHOICE']._serialized_start=64104 - _globals['_FLOWHEADER_CHOICE']._serialized_end=64372 - _globals['_FLOWHEADER_CHOICE_ENUM']._serialized_start=64115 - _globals['_FLOWHEADER_CHOICE_ENUM']._serialized_end=64372 - _globals['_FLOWCUSTOM']._serialized_start=64385 - _globals['_FLOWCUSTOM']._serialized_end=64474 - _globals['_FLOWCUSTOMMETRICTAG']._serialized_start=64476 - _globals['_FLOWCUSTOMMETRICTAG']._serialized_end=64589 - _globals['_FLOWETHERNET']._serialized_start=64592 - _globals['_FLOWETHERNET']._serialized_end=64798 - _globals['_FLOWVLAN']._serialized_start=64801 - _globals['_FLOWVLAN']._serialized_end=64973 - _globals['_FLOWVXLAN']._serialized_start=64976 - _globals['_FLOWVXLAN']._serialized_end=65171 - _globals['_FLOWIPV4']._serialized_start=65174 - _globals['_FLOWIPV4']._serialized_end=65946 - _globals['_FLOWIPV4OPTIONS']._serialized_start=65949 - _globals['_FLOWIPV4OPTIONS']._serialized_end=66141 - _globals['_FLOWIPV4OPTIONS_CHOICE']._serialized_start=66067 - _globals['_FLOWIPV4OPTIONS_CHOICE']._serialized_end=66130 - _globals['_FLOWIPV4OPTIONS_CHOICE_ENUM']._serialized_start=66077 - _globals['_FLOWIPV4OPTIONS_CHOICE_ENUM']._serialized_end=66130 - _globals['_FLOWIPV4OPTIONSCUSTOM']._serialized_start=66144 - _globals['_FLOWIPV4OPTIONSCUSTOM']._serialized_end=66293 - _globals['_FLOWIPV4OPTIONSCUSTOMTYPE']._serialized_start=66296 - _globals['_FLOWIPV4OPTIONSCUSTOMTYPE']._serialized_end=66539 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH']._serialized_start=66542 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH']._serialized_end=66763 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWIPV4PRIORITY']._serialized_start=66766 - _globals['_FLOWIPV4PRIORITY']._serialized_end=67024 - _globals['_FLOWIPV4PRIORITY_CHOICE']._serialized_start=66952 - _globals['_FLOWIPV4PRIORITY_CHOICE']._serialized_end=67013 - _globals['_FLOWIPV4PRIORITY_CHOICE_ENUM']._serialized_start=66962 - _globals['_FLOWIPV4PRIORITY_CHOICE_ENUM']._serialized_end=67013 - _globals['_FLOWIPV4DSCP']._serialized_start=67026 - _globals['_FLOWIPV4DSCP']._serialized_end=67124 - _globals['_FLOWIPV4TOS']._serialized_start=67127 - _globals['_FLOWIPV4TOS']._serialized_end=67450 - _globals['_FLOWIPV4AUTO']._serialized_start=67452 - _globals['_FLOWIPV4AUTO']._serialized_end=67574 - _globals['_FLOWIPV4AUTO_CHOICE']._serialized_start=67520 - _globals['_FLOWIPV4AUTO_CHOICE']._serialized_end=67563 - _globals['_FLOWIPV4AUTO_CHOICE_ENUM']._serialized_start=67530 - _globals['_FLOWIPV4AUTO_CHOICE_ENUM']._serialized_end=67563 - _globals['_FLOWIPV6']._serialized_start=67577 - _globals['_FLOWIPV6']._serialized_end=67978 - _globals['_FLOWPFCPAUSE']._serialized_start=67981 - _globals['_FLOWPFCPAUSE']._serialized_end=68750 - _globals['_FLOWETHERNETPAUSE']._serialized_start=68753 - _globals['_FLOWETHERNETPAUSE']._serialized_end=69044 - _globals['_FLOWTCP']._serialized_start=69047 - _globals['_FLOWTCP']._serialized_end=69774 - _globals['_FLOWUDP']._serialized_start=69777 - _globals['_FLOWUDP']._serialized_end=69968 - _globals['_FLOWGRE']._serialized_start=69971 - _globals['_FLOWGRE']._serialized_end=70279 - _globals['_FLOWGTPV1']._serialized_start=70282 - _globals['_FLOWGTPV1']._serialized_end=70985 - _globals['_FLOWGTPEXTENSION']._serialized_start=70988 - _globals['_FLOWGTPEXTENSION']._serialized_end=71213 - _globals['_FLOWGTPV2']._serialized_start=71216 - _globals['_FLOWGTPV2']._serialized_end=71699 - _globals['_FLOWARP']._serialized_start=71702 - _globals['_FLOWARP']._serialized_end=72268 - _globals['_FLOWICMP']._serialized_start=72271 - _globals['_FLOWICMP']._serialized_end=72418 - _globals['_FLOWICMP_CHOICE']._serialized_start=72364 - _globals['_FLOWICMP_CHOICE']._serialized_end=72407 - _globals['_FLOWICMP_CHOICE_ENUM']._serialized_start=72374 - _globals['_FLOWICMP_CHOICE_ENUM']._serialized_end=72407 - _globals['_FLOWICMPECHO']._serialized_start=72421 - _globals['_FLOWICMPECHO']._serialized_end=72696 - _globals['_FLOWICMPV6']._serialized_start=72699 - _globals['_FLOWICMPV6']._serialized_end=72852 - _globals['_FLOWICMPV6_CHOICE']._serialized_start=72364 - _globals['_FLOWICMPV6_CHOICE']._serialized_end=72407 - _globals['_FLOWICMPV6_CHOICE_ENUM']._serialized_start=72374 - _globals['_FLOWICMPV6_CHOICE_ENUM']._serialized_end=72407 - _globals['_FLOWICMPV6ECHO']._serialized_start=72855 - _globals['_FLOWICMPV6ECHO']._serialized_end=73142 - _globals['_FLOWPPP']._serialized_start=73145 - _globals['_FLOWPPP']._serialized_end=73300 - _globals['_FLOWIGMPV1']._serialized_start=73303 - _globals['_FLOWIGMPV1']._serialized_end=73560 - _globals['_FLOWMPLS']._serialized_start=73563 - _globals['_FLOWMPLS']._serialized_end=73786 - _globals['_FLOWSNMPV2C']._serialized_start=73789 - _globals['_FLOWSNMPV2C']._serialized_end=73925 - _globals['_FLOWSNMPV2CDATA']._serialized_start=73928 - _globals['_FLOWSNMPV2CDATA']._serialized_end=74534 - _globals['_FLOWSNMPV2CDATA_CHOICE']._serialized_start=74348 - _globals['_FLOWSNMPV2CDATA_CHOICE']._serialized_end=74523 - _globals['_FLOWSNMPV2CDATA_CHOICE_ENUM']._serialized_start=74359 - _globals['_FLOWSNMPV2CDATA_CHOICE_ENUM']._serialized_end=74523 - _globals['_FLOWSNMPV2CPDU']._serialized_start=74537 - _globals['_FLOWSNMPV2CPDU']._serialized_end=75196 - _globals['_FLOWSNMPV2CPDU_ERRORSTATUS']._serialized_start=74797 - _globals['_FLOWSNMPV2CPDU_ERRORSTATUS']._serialized_end=75179 - _globals['_FLOWSNMPV2CPDU_ERRORSTATUS_ENUM']._serialized_start=74813 - _globals['_FLOWSNMPV2CPDU_ERRORSTATUS_ENUM']._serialized_end=75179 - _globals['_FLOWSNMPV2CBULKPDU']._serialized_start=75199 - _globals['_FLOWSNMPV2CBULKPDU']._serialized_end=75478 - _globals['_FLOWSNMPV2CVARIABLEBINDING']._serialized_start=75481 - _globals['_FLOWSNMPV2CVARIABLEBINDING']._serialized_end=75616 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE']._serialized_start=75619 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE']._serialized_end=76680 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE']._serialized_start=76373 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE']._serialized_end=76621 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM']._serialized_start=76384 - _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM']._serialized_end=76621 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE']._serialized_start=76683 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE']._serialized_end=76921 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE']._serialized_start=76839 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE']._serialized_end=76892 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE_ENUM']._serialized_start=76849 - _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE_ENUM']._serialized_end=76892 - _globals['_FLOWRSVP']._serialized_start=76924 - _globals['_FLOWRSVP']._serialized_end=77365 - _globals['_FLOWRSVP_FLAG']._serialized_start=77247 - _globals['_FLOWRSVP_FLAG']._serialized_end=77344 - _globals['_FLOWRSVP_FLAG_ENUM']._serialized_start=77255 - _globals['_FLOWRSVP_FLAG_ENUM']._serialized_end=77344 - _globals['_FLOWRSVPLENGTH']._serialized_start=77368 - _globals['_FLOWRSVPLENGTH']._serialized_end=77563 - _globals['_FLOWRSVPLENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPLENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPLENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPLENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPMESSAGE']._serialized_start=77566 - _globals['_FLOWRSVPMESSAGE']._serialized_end=77734 - _globals['_FLOWRSVPMESSAGE_CHOICE']._serialized_start=77680 - _globals['_FLOWRSVPMESSAGE_CHOICE']._serialized_end=77723 - _globals['_FLOWRSVPMESSAGE_CHOICE_ENUM']._serialized_start=77690 - _globals['_FLOWRSVPMESSAGE_CHOICE_ENUM']._serialized_end=77723 - _globals['_FLOWRSVPPATHMESSAGE']._serialized_start=77736 - _globals['_FLOWRSVPPATHMESSAGE']._serialized_end=77800 - _globals['_FLOWRSVPPATHOBJECTS']._serialized_start=77802 - _globals['_FLOWRSVPPATHOBJECTS']._serialized_end=77873 - _globals['_FLOWRSVPOBJECTLENGTH']._serialized_start=77876 - _globals['_FLOWRSVPOBJECTLENGTH']._serialized_end=78083 - _globals['_FLOWRSVPOBJECTLENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPOBJECTLENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPOBJECTLENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPOBJECTLENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPPATHOBJECTSCLASS']._serialized_start=78086 - _globals['_FLOWRSVPPATHOBJECTSCLASS']._serialized_end=79026 - _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE']._serialized_start=78806 - _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE']._serialized_end=79015 - _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE_ENUM']._serialized_start=78817 - _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE_ENUM']._serialized_end=79015 - _globals['_FLOWRSVPPATHOBJECTSCLASSSESSION']._serialized_start=79029 - _globals['_FLOWRSVPPATHOBJECTSCLASSSESSION']._serialized_end=79159 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE']._serialized_start=79162 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE']._serialized_end=79397 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE']._serialized_start=79332 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE']._serialized_end=79386 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE_ENUM']._serialized_start=79342 - _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE_ENUM']._serialized_end=79386 - _globals['_FLOWRSVPPATHSESSIONLSPTUNNELIPV4']._serialized_start=79400 - _globals['_FLOWRSVPPATHSESSIONLSPTUNNELIPV4']._serialized_end=79754 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID']._serialized_start=79757 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID']._serialized_end=80074 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE']._serialized_start=80001 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE']._serialized_end=80063 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE_ENUM']._serialized_start=80011 - _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE_ENUM']._serialized_end=80063 - _globals['_FLOWRSVPPATHOBJECTSCLASSRSVPHOP']._serialized_start=80077 - _globals['_FLOWRSVPPATHOBJECTSCLASSRSVPHOP']._serialized_end=80207 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE']._serialized_start=80210 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE']._serialized_end=80414 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE']._serialized_start=80360 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE']._serialized_end=80403 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE_ENUM']._serialized_start=24436 - _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE_ENUM']._serialized_end=24469 - _globals['_FLOWRSVPPATHRSVPHOPIPV4']._serialized_start=80417 - _globals['_FLOWRSVPPATHRSVPHOPIPV4']._serialized_end=80605 - _globals['_FLOWRSVPPATHOBJECTSCLASSTIMEVALUES']._serialized_start=80608 - _globals['_FLOWRSVPPATHOBJECTSCLASSTIMEVALUES']._serialized_end=80744 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE']._serialized_start=80747 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE']._serialized_end=80965 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE']._serialized_start=80909 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE']._serialized_end=80954 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE_ENUM']._serialized_start=80919 - _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE_ENUM']._serialized_end=80954 - _globals['_FLOWRSVPPATHTIMEVALUESTYPE1']._serialized_start=80967 - _globals['_FLOWRSVPPATHTIMEVALUESTYPE1']._serialized_end=81077 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTE']._serialized_start=81080 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTE']._serialized_end=81227 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE']._serialized_start=81230 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE']._serialized_end=81467 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE']._serialized_start=80909 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE']._serialized_end=80954 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE_ENUM']._serialized_start=80919 - _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE_ENUM']._serialized_end=80954 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1']._serialized_start=81469 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1']._serialized_end=81564 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTS']._serialized_start=81566 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTS']._serialized_end=81665 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE']._serialized_start=81668 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE']._serialized_end=82000 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE']._serialized_start=81924 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE']._serialized_end=81989 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE_ENUM']._serialized_start=81934 - _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE_ENUM']._serialized_end=81989 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIX']._serialized_start=82003 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIX']._serialized_end=82287 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBER']._serialized_start=82290 - _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBER']._serialized_end=82497 - _globals['_FLOWRSVPEXPLICITROUTELENGTH']._serialized_start=82500 - _globals['_FLOWRSVPEXPLICITROUTELENGTH']._serialized_end=82721 - _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH']._serialized_start=82724 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH']._serialized_end=82961 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPPATHOBJECTSCLASSLABELREQUEST']._serialized_start=82964 - _globals['_FLOWRSVPPATHOBJECTSCLASSLABELREQUEST']._serialized_end=83104 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE']._serialized_start=83107 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE']._serialized_end=83369 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE']._serialized_start=83300 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE']._serialized_end=83358 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE_ENUM']._serialized_start=83310 - _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE_ENUM']._serialized_end=83358 - _globals['_FLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGE']._serialized_start=83372 - _globals['_FLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGE']._serialized_end=83571 - _globals['_FLOWRSVPPATHOBJECTSCLASSSESSIONATTRIBUTE']._serialized_start=83574 - _globals['_FLOWRSVPPATHOBJECTSCLASSSESSIONATTRIBUTE']._serialized_end=83722 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE']._serialized_start=83725 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE']._serialized_end=84061 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE']._serialized_start=83982 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE']._serialized_end=84050 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE_ENUM']._serialized_start=83992 - _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE_ENUM']._serialized_end=84050 - _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNEL']._serialized_start=84064 - _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNEL']._serialized_end=84352 - _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNELRA']._serialized_start=84355 - _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNELRA']._serialized_end=84771 - _globals['_FLOWRSVPLSPTUNNELFLAG']._serialized_start=84774 - _globals['_FLOWRSVPLSPTUNNELFLAG']._serialized_end=84985 - _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE']._serialized_start=84860 - _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE']._serialized_end=84974 - _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE_ENUM']._serialized_start=84870 - _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE_ENUM']._serialized_end=84974 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH']._serialized_start=84988 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH']._serialized_end=85223 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTEMPLATE']._serialized_start=85226 - _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTEMPLATE']._serialized_end=85370 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE']._serialized_start=85373 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE']._serialized_end=85629 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE']._serialized_start=79332 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE']._serialized_end=79386 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE_ENUM']._serialized_start=79342 - _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE_ENUM']._serialized_end=79386 - _globals['_FLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4']._serialized_start=85632 - _globals['_FLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4']._serialized_end=85938 - _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTSPEC']._serialized_start=85941 - _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTSPEC']._serialized_end=86079 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE']._serialized_start=86082 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE']._serialized_end=86309 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE']._serialized_start=86251 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE']._serialized_end=86298 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE_ENUM']._serialized_start=86261 - _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE_ENUM']._serialized_end=86298 - _globals['_FLOWRSVPPATHSENDERTSPECINTSERV']._serialized_start=86312 - _globals['_FLOWRSVPPATHSENDERTSPECINTSERV']._serialized_end=87512 - _globals['_FLOWRSVPPATHOBJECTSCLASSRECORDROUTE']._serialized_start=87515 - _globals['_FLOWRSVPPATHOBJECTSCLASSRECORDROUTE']._serialized_end=87653 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE']._serialized_start=87656 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE']._serialized_end=87877 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE']._serialized_start=80909 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE']._serialized_end=80954 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE_ENUM']._serialized_start=80919 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE_ENUM']._serialized_end=80954 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1']._serialized_start=87879 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1']._serialized_end=87970 - _globals['_FLOWRSVPTYPE1RECORDROUTESUBOBJECTS']._serialized_start=87972 - _globals['_FLOWRSVPTYPE1RECORDROUTESUBOBJECTS']._serialized_end=88072 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE']._serialized_start=88075 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE']._serialized_end=88401 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE']._serialized_start=88328 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE']._serialized_end=88390 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE_ENUM']._serialized_start=88338 - _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE_ENUM']._serialized_end=88390 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESS']._serialized_start=88404 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESS']._serialized_end=88716 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG']._serialized_start=88719 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG']._serialized_end=88922 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE']._serialized_start=88817 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE']._serialized_end=88911 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE_ENUM']._serialized_start=88827 - _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE_ENUM']._serialized_end=88911 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1LABEL']._serialized_start=88925 - _globals['_FLOWRSVPPATHRECORDROUTETYPE1LABEL']._serialized_end=89193 - _globals['_FLOWRSVPPATHRECORDROUTELABEL']._serialized_start=89196 - _globals['_FLOWRSVPPATHRECORDROUTELABEL']._serialized_end=89440 - _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE']._serialized_start=89342 - _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE']._serialized_end=89403 - _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE_ENUM']._serialized_start=89352 - _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE_ENUM']._serialized_end=89403 - _globals['_FLOWRSVPROUTERECORDLENGTH']._serialized_start=89443 - _globals['_FLOWRSVPROUTERECORDLENGTH']._serialized_end=89660 - _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE']._serialized_start=3114 - _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE']._serialized_end=3168 - _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE_ENUM']._serialized_start=3124 - _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE_ENUM']._serialized_end=3168 - _globals['_FLOWRSVPPATHOBJECTSCUSTOM']._serialized_start=89663 - _globals['_FLOWRSVPPATHOBJECTSCUSTOM']._serialized_end=89820 - _globals['_FLOWSIZE']._serialized_start=89823 - _globals['_FLOWSIZE']._serialized_end=90141 - _globals['_FLOWSIZE_CHOICE']._serialized_start=90031 - _globals['_FLOWSIZE_CHOICE']._serialized_end=90120 - _globals['_FLOWSIZE_CHOICE_ENUM']._serialized_start=90041 - _globals['_FLOWSIZE_CHOICE_ENUM']._serialized_end=90120 - _globals['_FLOWSIZEINCREMENT']._serialized_start=90143 - _globals['_FLOWSIZEINCREMENT']._serialized_end=90246 - _globals['_FLOWSIZERANDOM']._serialized_start=90248 - _globals['_FLOWSIZERANDOM']._serialized_end=90316 - _globals['_FLOWSIZEWEIGHTPAIRS']._serialized_start=90319 - _globals['_FLOWSIZEWEIGHTPAIRS']._serialized_end=90716 - _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE']._serialized_start=90516 - _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE']._serialized_end=90577 - _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM']._serialized_start=90526 - _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM']._serialized_end=90577 - _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED']._serialized_start=90579 - _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED']._serialized_end=90690 - _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM']._serialized_start=90593 - _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM']._serialized_end=90690 - _globals['_FLOWSIZEWEIGHTPAIRSCUSTOM']._serialized_start=90718 - _globals['_FLOWSIZEWEIGHTPAIRSCUSTOM']._serialized_end=90805 - _globals['_FLOWRATE']._serialized_start=90808 - _globals['_FLOWRATE']._serialized_end=91152 - _globals['_FLOWRATE_CHOICE']._serialized_start=90986 - _globals['_FLOWRATE_CHOICE']._serialized_end=91083 - _globals['_FLOWRATE_CHOICE_ENUM']._serialized_start=90996 - _globals['_FLOWRATE_CHOICE_ENUM']._serialized_end=91083 - _globals['_FLOWDURATION']._serialized_start=91155 - _globals['_FLOWDURATION']._serialized_end=91496 - _globals['_FLOWDURATION_CHOICE']._serialized_start=91387 - _globals['_FLOWDURATION_CHOICE']._serialized_end=91485 - _globals['_FLOWDURATION_CHOICE_ENUM']._serialized_start=91397 - _globals['_FLOWDURATION_CHOICE_ENUM']._serialized_end=91485 - _globals['_FLOWCONTINUOUS']._serialized_start=91498 - _globals['_FLOWCONTINUOUS']._serialized_end=91571 - _globals['_FLOWDELAY']._serialized_start=91574 - _globals['_FLOWDELAY']._serialized_end=91842 - _globals['_FLOWDELAY_CHOICE']._serialized_start=91709 - _globals['_FLOWDELAY_CHOICE']._serialized_end=91788 - _globals['_FLOWDELAY_CHOICE_ENUM']._serialized_start=91719 - _globals['_FLOWDELAY_CHOICE_ENUM']._serialized_end=91788 - _globals['_FLOWFIXEDPACKETS']._serialized_start=91844 - _globals['_FLOWFIXEDPACKETS']._serialized_end=91953 - _globals['_FLOWFIXEDSECONDS']._serialized_start=91955 - _globals['_FLOWFIXEDSECONDS']._serialized_end=92064 - _globals['_FLOWBURST']._serialized_start=92067 - _globals['_FLOWBURST']._serialized_end=92227 - _globals['_FLOWDURATIONINTERBURSTGAP']._serialized_start=92230 - _globals['_FLOWDURATIONINTERBURSTGAP']._serialized_end=92530 - _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE']._serialized_start=91709 - _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE']._serialized_end=91788 - _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM']._serialized_start=91719 - _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM']._serialized_end=91788 - _globals['_FLOWMETRICS']._serialized_start=92533 - _globals['_FLOWMETRICS']._serialized_end=92786 - _globals['_FLOWLATENCYMETRICS']._serialized_start=92789 - _globals['_FLOWLATENCYMETRICS']._serialized_end=92973 - _globals['_FLOWLATENCYMETRICS_MODE']._serialized_start=92886 - _globals['_FLOWLATENCYMETRICS_MODE']._serialized_end=92953 - _globals['_FLOWLATENCYMETRICS_MODE_ENUM']._serialized_start=92894 - _globals['_FLOWLATENCYMETRICS_MODE_ENUM']._serialized_end=92953 - _globals['_FLOWPREDEFINEDTAGS']._serialized_start=92975 - _globals['_FLOWPREDEFINEDTAGS']._serialized_end=93029 - _globals['_FLOWRXTXRATIO']._serialized_start=93032 - _globals['_FLOWRXTXRATIO']._serialized_end=93246 - _globals['_FLOWRXTXRATIO_CHOICE']._serialized_start=93167 - _globals['_FLOWRXTXRATIO_CHOICE']._serialized_end=93225 - _globals['_FLOWRXTXRATIO_CHOICE_ENUM']._serialized_start=93177 - _globals['_FLOWRXTXRATIO_CHOICE_ENUM']._serialized_end=93225 - _globals['_FLOWRXTXRATIORXCOUNT']._serialized_start=93248 - _globals['_FLOWRXTXRATIORXCOUNT']._serialized_end=93270 - _globals['_EVENT']._serialized_start=93273 - _globals['_EVENT']._serialized_end=93464 - _globals['_EVENTRXRATETHRESHOLD']._serialized_start=93466 - _globals['_EVENTRXRATETHRESHOLD']._serialized_end=93558 - _globals['_EVENTLINK']._serialized_start=93560 - _globals['_EVENTLINK']._serialized_end=93603 - _globals['_EVENTROUTEADVERTISEWITHDRAW']._serialized_start=93605 - _globals['_EVENTROUTEADVERTISEWITHDRAW']._serialized_end=93666 - _globals['_EVENTREQUEST']._serialized_start=93669 - _globals['_EVENTREQUEST']._serialized_end=93914 - _globals['_EVENTREQUEST_TYPE']._serialized_start=93745 - _globals['_EVENTREQUEST_TYPE']._serialized_end=93914 - _globals['_EVENTREQUEST_TYPE_ENUM']._serialized_start=93754 - _globals['_EVENTREQUEST_TYPE_ENUM']._serialized_end=93914 - _globals['_EVENTSUBSCRIPTION']._serialized_start=93916 - _globals['_EVENTSUBSCRIPTION']._serialized_end=94014 - _globals['_LLDP']._serialized_start=94017 - _globals['_LLDP']._serialized_end=94310 - _globals['_LLDPCONNECTION']._serialized_start=94313 - _globals['_LLDPCONNECTION']._serialized_end=94482 - _globals['_LLDPCONNECTION_CHOICE']._serialized_start=94409 - _globals['_LLDPCONNECTION_CHOICE']._serialized_end=94457 - _globals['_LLDPCONNECTION_CHOICE_ENUM']._serialized_start=2310 - _globals['_LLDPCONNECTION_CHOICE_ENUM']._serialized_end=2348 - _globals['_LLDPCHASSISID']._serialized_start=94485 - _globals['_LLDPCHASSISID']._serialized_end=94838 - _globals['_LLDPCHASSISID_CHOICE']._serialized_start=94677 - _globals['_LLDPCHASSISID_CHOICE']._serialized_end=94782 - _globals['_LLDPCHASSISID_CHOICE_ENUM']._serialized_start=94687 - _globals['_LLDPCHASSISID_CHOICE_ENUM']._serialized_end=94782 - _globals['_LLDPPORTID']._serialized_start=94841 - _globals['_LLDPPORTID']._serialized_end=95192 - _globals['_LLDPPORTID_CHOICE']._serialized_start=94677 - _globals['_LLDPPORTID_CHOICE']._serialized_end=94782 - _globals['_LLDPPORTID_CHOICE_ENUM']._serialized_start=94687 - _globals['_LLDPPORTID_CHOICE_ENUM']._serialized_end=94782 - _globals['_LLDPCHASSISMACSUBTYPE']._serialized_start=95195 - _globals['_LLDPCHASSISMACSUBTYPE']._serialized_end=95404 - _globals['_LLDPCHASSISMACSUBTYPE_CHOICE']._serialized_start=3114 - _globals['_LLDPCHASSISMACSUBTYPE_CHOICE']._serialized_end=3168 - _globals['_LLDPCHASSISMACSUBTYPE_CHOICE_ENUM']._serialized_start=3124 - _globals['_LLDPCHASSISMACSUBTYPE_CHOICE_ENUM']._serialized_end=3168 - _globals['_LLDPPORTINTERFACENAMESUBTYPE']._serialized_start=95407 - _globals['_LLDPPORTINTERFACENAMESUBTYPE']._serialized_end=95630 - _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE']._serialized_start=3114 - _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE']._serialized_end=3168 - _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM']._serialized_start=3124 - _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM']._serialized_end=3168 - _globals['_LLDPSYSTEMNAME']._serialized_start=95633 - _globals['_LLDPSYSTEMNAME']._serialized_end=95828 - _globals['_LLDPSYSTEMNAME_CHOICE']._serialized_start=3114 - _globals['_LLDPSYSTEMNAME_CHOICE']._serialized_end=3168 - _globals['_LLDPSYSTEMNAME_CHOICE_ENUM']._serialized_start=3124 - _globals['_LLDPSYSTEMNAME_CHOICE_ENUM']._serialized_end=3168 - _globals['_ERROR']._serialized_start=95831 - _globals['_ERROR']._serialized_end=95995 - _globals['_ERROR_KIND']._serialized_start=95916 - _globals['_ERROR_KIND']._serialized_end=95977 - _globals['_ERROR_KIND_ENUM']._serialized_start=95924 - _globals['_ERROR_KIND_ENUM']._serialized_end=95977 - _globals['_WARNING']._serialized_start=95997 - _globals['_WARNING']._serialized_end=96024 - _globals['_CONFIGUPDATE']._serialized_start=96027 - _globals['_CONFIGUPDATE']._serialized_end=96183 - _globals['_CONFIGUPDATE_CHOICE']._serialized_start=96128 - _globals['_CONFIGUPDATE_CHOICE']._serialized_end=96172 - _globals['_CONFIGUPDATE_CHOICE_ENUM']._serialized_start=96138 - _globals['_CONFIGUPDATE_CHOICE_ENUM']._serialized_end=96172 - _globals['_FLOWSUPDATE']._serialized_start=96186 - _globals['_FLOWSUPDATE']._serialized_end=96348 - _globals['_FLOWSUPDATE_PROPERTYNAMES']._serialized_start=96288 - _globals['_FLOWSUPDATE_PROPERTYNAMES']._serialized_end=96348 - _globals['_FLOWSUPDATE_PROPERTYNAMES_ENUM']._serialized_start=96305 - _globals['_FLOWSUPDATE_PROPERTYNAMES_ENUM']._serialized_end=96348 - _globals['_CONTROLSTATE']._serialized_start=96351 - _globals['_CONTROLSTATE']._serialized_end=96604 - _globals['_CONTROLSTATE_CHOICE']._serialized_start=96523 - _globals['_CONTROLSTATE_CHOICE']._serialized_end=96593 - _globals['_CONTROLSTATE_CHOICE_ENUM']._serialized_start=96533 - _globals['_CONTROLSTATE_CHOICE_ENUM']._serialized_end=96593 - _globals['_STATEPORT']._serialized_start=96607 - _globals['_STATEPORT']._serialized_end=96810 - _globals['_STATEPORT_CHOICE']._serialized_start=96743 - _globals['_STATEPORT_CHOICE']._serialized_end=96799 - _globals['_STATEPORT_CHOICE_ENUM']._serialized_start=96753 - _globals['_STATEPORT_CHOICE_ENUM']._serialized_end=96799 - _globals['_STATETRAFFIC']._serialized_start=96813 - _globals['_STATETRAFFIC']._serialized_end=96998 - _globals['_STATETRAFFIC_CHOICE']._serialized_start=96935 - _globals['_STATETRAFFIC_CHOICE']._serialized_end=96987 - _globals['_STATETRAFFIC_CHOICE_ENUM']._serialized_start=96945 - _globals['_STATETRAFFIC_CHOICE_ENUM']._serialized_end=96987 - _globals['_STATEPROTOCOL']._serialized_start=97001 - _globals['_STATEPROTOCOL']._serialized_end=97352 - _globals['_STATEPROTOCOL_CHOICE']._serialized_start=97259 - _globals['_STATEPROTOCOL_CHOICE']._serialized_end=97341 - _globals['_STATEPROTOCOL_CHOICE_ENUM']._serialized_start=97269 - _globals['_STATEPROTOCOL_CHOICE_ENUM']._serialized_end=97341 - _globals['_STATEPORTLINK']._serialized_start=97355 - _globals['_STATEPORTLINK']._serialized_end=97503 - _globals['_STATEPORTLINK_STATE']._serialized_start=97443 - _globals['_STATEPORTLINK_STATE']._serialized_end=97493 - _globals['_STATEPORTLINK_STATE_ENUM']._serialized_start=13277 - _globals['_STATEPORTLINK_STATE_ENUM']._serialized_end=13318 - _globals['_STATEPORTCAPTURE']._serialized_start=97506 - _globals['_STATEPORTCAPTURE']._serialized_end=97663 - _globals['_STATEPORTCAPTURE_STATE']._serialized_start=97600 - _globals['_STATEPORTCAPTURE_STATE']._serialized_end=97653 - _globals['_STATEPORTCAPTURE_STATE_ENUM']._serialized_start=97609 - _globals['_STATEPORTCAPTURE_STATE_ENUM']._serialized_end=97653 - _globals['_STATETRAFFICFLOWTRANSMIT']._serialized_start=97666 - _globals['_STATETRAFFICFLOWTRANSMIT']._serialized_end=97862 - _globals['_STATETRAFFICFLOWTRANSMIT_STATE']._serialized_start=97776 - _globals['_STATETRAFFICFLOWTRANSMIT_STATE']._serialized_end=97852 - _globals['_STATETRAFFICFLOWTRANSMIT_STATE_ENUM']._serialized_start=97785 - _globals['_STATETRAFFICFLOWTRANSMIT_STATE_ENUM']._serialized_end=97852 - _globals['_STATEPROTOCOLALL']._serialized_start=97865 - _globals['_STATEPROTOCOLALL']._serialized_end=98002 - _globals['_STATEPROTOCOLALL_STATE']._serialized_start=97600 - _globals['_STATEPROTOCOLALL_STATE']._serialized_end=97653 - _globals['_STATEPROTOCOLALL_STATE_ENUM']._serialized_start=97609 - _globals['_STATEPROTOCOLALL_STATE_ENUM']._serialized_end=97653 - _globals['_STATEPROTOCOLROUTE']._serialized_start=98005 - _globals['_STATEPROTOCOLROUTE']._serialized_end=98169 - _globals['_STATEPROTOCOLROUTE_STATE']._serialized_start=98098 - _globals['_STATEPROTOCOLROUTE_STATE']._serialized_end=98159 - _globals['_STATEPROTOCOLROUTE_STATE_ENUM']._serialized_start=98107 - _globals['_STATEPROTOCOLROUTE_STATE_ENUM']._serialized_end=98159 - _globals['_STATEPROTOCOLLACP']._serialized_start=98172 - _globals['_STATEPROTOCOLLACP']._serialized_end=98424 - _globals['_STATEPROTOCOLLACP_CHOICE']._serialized_start=98351 - _globals['_STATEPROTOCOLLACP_CHOICE']._serialized_end=98413 - _globals['_STATEPROTOCOLLACP_CHOICE_ENUM']._serialized_start=98361 - _globals['_STATEPROTOCOLLACP_CHOICE_ENUM']._serialized_end=98413 - _globals['_STATEPROTOCOLLACPADMIN']._serialized_start=98427 - _globals['_STATEPROTOCOLLACPADMIN']._serialized_end=98599 - _globals['_STATEPROTOCOLLACPADMIN_STATE']._serialized_start=97443 - _globals['_STATEPROTOCOLLACPADMIN_STATE']._serialized_end=97493 - _globals['_STATEPROTOCOLLACPADMIN_STATE_ENUM']._serialized_start=13277 - _globals['_STATEPROTOCOLLACPADMIN_STATE_ENUM']._serialized_end=13318 - _globals['_STATEPROTOCOLLACPMEMBERPORTS']._serialized_start=98602 - _globals['_STATEPROTOCOLLACPMEMBERPORTS']._serialized_end=98786 - _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE']._serialized_start=97443 - _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE']._serialized_end=97493 - _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM']._serialized_start=13277 - _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM']._serialized_end=13318 - _globals['_STATEPROTOCOLBGP']._serialized_start=98789 - _globals['_STATEPROTOCOLBGP']._serialized_end=98963 - _globals['_STATEPROTOCOLBGP_CHOICE']._serialized_start=98908 - _globals['_STATEPROTOCOLBGP_CHOICE']._serialized_end=98952 - _globals['_STATEPROTOCOLBGP_CHOICE_ENUM']._serialized_start=98918 - _globals['_STATEPROTOCOLBGP_CHOICE_ENUM']._serialized_end=98952 - _globals['_STATEPROTOCOLBGPPEERS']._serialized_start=98966 - _globals['_STATEPROTOCOLBGPPEERS']._serialized_end=99130 - _globals['_STATEPROTOCOLBGPPEERS_STATE']._serialized_start=97443 - _globals['_STATEPROTOCOLBGPPEERS_STATE']._serialized_end=97493 - _globals['_STATEPROTOCOLBGPPEERS_STATE_ENUM']._serialized_start=13277 - _globals['_STATEPROTOCOLBGPPEERS_STATE_ENUM']._serialized_end=13318 - _globals['_STATEPROTOCOLISIS']._serialized_start=99133 - _globals['_STATEPROTOCOLISIS']._serialized_end=99316 - _globals['_STATEPROTOCOLISIS_CHOICE']._serialized_start=99259 - _globals['_STATEPROTOCOLISIS_CHOICE']._serialized_end=99305 - _globals['_STATEPROTOCOLISIS_CHOICE_ENUM']._serialized_start=99269 - _globals['_STATEPROTOCOLISIS_CHOICE_ENUM']._serialized_end=99305 - _globals['_STATEPROTOCOLISISROUTERS']._serialized_start=99319 - _globals['_STATEPROTOCOLISISROUTERS']._serialized_end=99491 - _globals['_STATEPROTOCOLISISROUTERS_STATE']._serialized_start=97443 - _globals['_STATEPROTOCOLISISROUTERS_STATE']._serialized_end=97493 - _globals['_STATEPROTOCOLISISROUTERS_STATE_ENUM']._serialized_start=13277 - _globals['_STATEPROTOCOLISISROUTERS_STATE_ENUM']._serialized_end=13318 - _globals['_CONTROLACTION']._serialized_start=99494 - _globals['_CONTROLACTION']._serialized_end=99661 - _globals['_CONTROLACTION_CHOICE']._serialized_start=99603 - _globals['_CONTROLACTION_CHOICE']._serialized_end=99650 - _globals['_CONTROLACTION_CHOICE_ENUM']._serialized_start=99613 - _globals['_CONTROLACTION_CHOICE_ENUM']._serialized_end=99650 - _globals['_CONTROLACTIONRESPONSE']._serialized_start=99663 - _globals['_CONTROLACTIONRESPONSE']._serialized_end=99743 - _globals['_ACTIONRESPONSE']._serialized_start=99746 - _globals['_ACTIONRESPONSE']._serialized_end=99923 - _globals['_ACTIONRESPONSE_CHOICE']._serialized_start=99603 - _globals['_ACTIONRESPONSE_CHOICE']._serialized_end=99650 - _globals['_ACTIONRESPONSE_CHOICE_ENUM']._serialized_start=99613 - _globals['_ACTIONRESPONSE_CHOICE_ENUM']._serialized_end=99650 - _globals['_ACTIONPROTOCOL']._serialized_start=99926 - _globals['_ACTIONPROTOCOL']._serialized_end=100186 - _globals['_ACTIONPROTOCOL_CHOICE']._serialized_start=100113 - _globals['_ACTIONPROTOCOL_CHOICE']._serialized_end=100175 - _globals['_ACTIONPROTOCOL_CHOICE_ENUM']._serialized_start=100123 - _globals['_ACTIONPROTOCOL_CHOICE_ENUM']._serialized_end=100175 - _globals['_ACTIONRESPONSEPROTOCOL']._serialized_start=100189 - _globals['_ACTIONRESPONSEPROTOCOL']._serialized_end=100435 - _globals['_ACTIONRESPONSEPROTOCOL_CHOICE']._serialized_start=100371 - _globals['_ACTIONRESPONSEPROTOCOL_CHOICE']._serialized_end=100424 - _globals['_ACTIONRESPONSEPROTOCOL_CHOICE_ENUM']._serialized_start=24436 - _globals['_ACTIONRESPONSEPROTOCOL_CHOICE_ENUM']._serialized_end=24479 - _globals['_ACTIONPROTOCOLIPV4']._serialized_start=100438 - _globals['_ACTIONPROTOCOLIPV4']._serialized_end=100615 - _globals['_ACTIONPROTOCOLIPV4_CHOICE']._serialized_start=100561 - _globals['_ACTIONPROTOCOLIPV4_CHOICE']._serialized_end=100604 - _globals['_ACTIONPROTOCOLIPV4_CHOICE_ENUM']._serialized_start=100571 - _globals['_ACTIONPROTOCOLIPV4_CHOICE_ENUM']._serialized_end=100604 - _globals['_ACTIONRESPONSEPROTOCOLIPV4']._serialized_start=100618 - _globals['_ACTIONRESPONSEPROTOCOLIPV4']._serialized_end=100819 - _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE']._serialized_start=100561 - _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE']._serialized_end=100604 - _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM']._serialized_start=100571 - _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM']._serialized_end=100604 - _globals['_ACTIONPROTOCOLIPV4PING']._serialized_start=100821 - _globals['_ACTIONPROTOCOLIPV4PING']._serialized_end=100899 - _globals['_ACTIONPROTOCOLIPV4PINGREQUEST']._serialized_start=100901 - _globals['_ACTIONPROTOCOLIPV4PINGREQUEST']._serialized_end=101000 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PING']._serialized_start=101002 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PING']._serialized_end=101098 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE']._serialized_start=101101 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE']._serialized_end=101360 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT']._serialized_start=101265 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT']._serialized_end=101325 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM']._serialized_start=101275 - _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM']._serialized_end=101325 - _globals['_ACTIONPROTOCOLIPV6']._serialized_start=101363 - _globals['_ACTIONPROTOCOLIPV6']._serialized_end=101540 - _globals['_ACTIONPROTOCOLIPV6_CHOICE']._serialized_start=100561 - _globals['_ACTIONPROTOCOLIPV6_CHOICE']._serialized_end=100604 - _globals['_ACTIONPROTOCOLIPV6_CHOICE_ENUM']._serialized_start=100571 - _globals['_ACTIONPROTOCOLIPV6_CHOICE_ENUM']._serialized_end=100604 - _globals['_ACTIONRESPONSEPROTOCOLIPV6']._serialized_start=101543 - _globals['_ACTIONRESPONSEPROTOCOLIPV6']._serialized_end=101744 - _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE']._serialized_start=100561 - _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE']._serialized_end=100604 - _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM']._serialized_start=100571 - _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM']._serialized_end=100604 - _globals['_ACTIONPROTOCOLIPV6PING']._serialized_start=101746 - _globals['_ACTIONPROTOCOLIPV6PING']._serialized_end=101824 - _globals['_ACTIONPROTOCOLIPV6PINGREQUEST']._serialized_start=101826 - _globals['_ACTIONPROTOCOLIPV6PINGREQUEST']._serialized_end=101925 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PING']._serialized_start=101927 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PING']._serialized_end=102023 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE']._serialized_start=102026 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE']._serialized_end=102285 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT']._serialized_start=101265 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT']._serialized_end=101325 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM']._serialized_start=101275 - _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM']._serialized_end=101325 - _globals['_ACTIONPROTOCOLBGP']._serialized_start=102288 - _globals['_ACTIONPROTOCOLBGP']._serialized_end=102599 - _globals['_ACTIONPROTOCOLBGP_CHOICE']._serialized_start=102506 - _globals['_ACTIONPROTOCOLBGP_CHOICE']._serialized_end=102588 - _globals['_ACTIONPROTOCOLBGP_CHOICE_ENUM']._serialized_start=102516 - _globals['_ACTIONPROTOCOLBGP_CHOICE_ENUM']._serialized_end=102588 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION']._serialized_start=102602 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION']._serialized_end=103327 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE']._serialized_start=103127 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE']._serialized_end=103316 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM']._serialized_start=103138 - _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM']._serialized_end=103316 - _globals['_ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART']._serialized_start=103329 - _globals['_ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART']._serialized_end=103437 - _globals['_METRICSREQUEST']._serialized_start=103440 - _globals['_METRICSREQUEST']._serialized_end=104152 - _globals['_METRICSREQUEST_CHOICE']._serialized_start=103978 - _globals['_METRICSREQUEST_CHOICE']._serialized_end=104141 - _globals['_METRICSREQUEST_CHOICE_ENUM']._serialized_start=103989 - _globals['_METRICSREQUEST_CHOICE_ENUM']._serialized_end=104141 - _globals['_METRICSRESPONSE']._serialized_start=104155 - _globals['_METRICSRESPONSE']._serialized_end=104939 - _globals['_METRICSRESPONSE_CHOICE']._serialized_start=104693 - _globals['_METRICSRESPONSE_CHOICE']._serialized_end=104928 - _globals['_METRICSRESPONSE_CHOICE_ENUM']._serialized_start=104704 - _globals['_METRICSRESPONSE_CHOICE_ENUM']._serialized_end=104928 - _globals['_PORTMETRICSREQUEST']._serialized_start=104942 - _globals['_PORTMETRICSREQUEST']._serialized_end=105275 - _globals['_PORTMETRICSREQUEST_COLUMNNAMES']._serialized_start=105049 - _globals['_PORTMETRICSREQUEST_COLUMNNAMES']._serialized_end=105275 - _globals['_PORTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=105065 - _globals['_PORTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=105275 - _globals['_PORTMETRIC']._serialized_start=105278 - _globals['_PORTMETRIC']._serialized_end=106052 - _globals['_PORTMETRIC_LINK']._serialized_start=105694 - _globals['_PORTMETRIC_LINK']._serialized_end=105743 - _globals['_PORTMETRIC_LINK_ENUM']._serialized_start=13277 - _globals['_PORTMETRIC_LINK_ENUM']._serialized_end=13318 - _globals['_PORTMETRIC_CAPTURE']._serialized_start=105745 - _globals['_PORTMETRIC_CAPTURE']._serialized_end=105805 - _globals['_PORTMETRIC_CAPTURE_ENUM']._serialized_start=105756 - _globals['_PORTMETRIC_CAPTURE_ENUM']._serialized_end=105805 - _globals['_PORTMETRIC_TRANSMIT']._serialized_start=105807 - _globals['_PORTMETRIC_TRANSMIT']._serialized_end=105868 - _globals['_PORTMETRIC_TRANSMIT_ENUM']._serialized_start=105756 - _globals['_PORTMETRIC_TRANSMIT_ENUM']._serialized_end=105805 - _globals['_FLOWMETRICSREQUEST']._serialized_start=106055 - _globals['_FLOWMETRICSREQUEST']._serialized_end=106367 - _globals['_FLOWMETRICSREQUEST_METRICNAMES']._serialized_start=106216 - _globals['_FLOWMETRICSREQUEST_METRICNAMES']._serialized_end=106367 - _globals['_FLOWMETRICSREQUEST_METRICNAMES_ENUM']._serialized_start=106232 - _globals['_FLOWMETRICSREQUEST_METRICNAMES_ENUM']._serialized_end=106367 - _globals['_FLOWTAGGEDMETRICSFILTER']._serialized_start=106370 - _globals['_FLOWTAGGEDMETRICSFILTER']._serialized_end=106742 - _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES']._serialized_start=106568 - _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES']._serialized_end=106704 - _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM']._serialized_start=106583 - _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM']._serialized_end=106704 - _globals['_FLOWMETRICTAGFILTER']._serialized_start=106744 - _globals['_FLOWMETRICTAGFILTER']._serialized_end=106809 - _globals['_FLOWMETRIC']._serialized_start=106812 - _globals['_FLOWMETRIC']._serialized_end=107460 - _globals['_FLOWMETRIC_TRANSMIT']._serialized_start=107240 - _globals['_FLOWMETRIC_TRANSMIT']._serialized_end=107313 - _globals['_FLOWMETRIC_TRANSMIT_ENUM']._serialized_start=107252 - _globals['_FLOWMETRIC_TRANSMIT_ENUM']._serialized_end=107313 - _globals['_FLOWTAGGEDMETRIC']._serialized_start=107463 - _globals['_FLOWTAGGEDMETRIC']._serialized_end=107866 - _globals['_FLOWMETRICTAG']._serialized_start=107868 - _globals['_FLOWMETRICTAG']._serialized_end=107951 - _globals['_FLOWMETRICTAGVALUE']._serialized_start=107954 - _globals['_FLOWMETRICTAGVALUE']._serialized_end=108148 - _globals['_FLOWMETRICTAGVALUE_CHOICE']._serialized_start=108070 - _globals['_FLOWMETRICTAGVALUE_CHOICE']._serialized_end=108121 - _globals['_FLOWMETRICTAGVALUE_CHOICE_ENUM']._serialized_start=108080 - _globals['_FLOWMETRICTAGVALUE_CHOICE_ENUM']._serialized_end=108121 - _globals['_METRICTIMESTAMP']._serialized_start=108150 - _globals['_METRICTIMESTAMP']._serialized_end=108277 - _globals['_METRICLATENCY']._serialized_start=108280 - _globals['_METRICLATENCY']._serialized_end=108415 - _globals['_BGPV4METRICSREQUEST']._serialized_start=108418 - _globals['_BGPV4METRICSREQUEST']._serialized_end=108923 - _globals['_BGPV4METRICSREQUEST_COLUMNNAMES']._serialized_start=108527 - _globals['_BGPV4METRICSREQUEST_COLUMNNAMES']._serialized_end=108923 - _globals['_BGPV4METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=108543 - _globals['_BGPV4METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=108923 - _globals['_BGPV4METRIC']._serialized_start=108926 - _globals['_BGPV4METRIC']._serialized_end=110056 - _globals['_BGPV4METRIC_SESSIONSTATE']._serialized_start=109529 - _globals['_BGPV4METRIC_SESSIONSTATE']._serialized_end=109586 - _globals['_BGPV4METRIC_SESSIONSTATE_ENUM']._serialized_start=13277 - _globals['_BGPV4METRIC_SESSIONSTATE_ENUM']._serialized_end=13318 - _globals['_BGPV4METRIC_FSMSTATE']._serialized_start=109588 - _globals['_BGPV4METRIC_FSMSTATE']._serialized_end=109706 - _globals['_BGPV4METRIC_FSMSTATE_ENUM']._serialized_start=109600 - _globals['_BGPV4METRIC_FSMSTATE_ENUM']._serialized_end=109706 - _globals['_BGPV6METRICSREQUEST']._serialized_start=110059 - _globals['_BGPV6METRICSREQUEST']._serialized_end=110564 - _globals['_BGPV6METRICSREQUEST_COLUMNNAMES']._serialized_start=108527 - _globals['_BGPV6METRICSREQUEST_COLUMNNAMES']._serialized_end=108923 - _globals['_BGPV6METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=108543 - _globals['_BGPV6METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=108923 - _globals['_BGPV6METRIC']._serialized_start=110567 - _globals['_BGPV6METRIC']._serialized_end=111697 - _globals['_BGPV6METRIC_SESSIONSTATE']._serialized_start=109529 - _globals['_BGPV6METRIC_SESSIONSTATE']._serialized_end=109586 - _globals['_BGPV6METRIC_SESSIONSTATE_ENUM']._serialized_start=13277 - _globals['_BGPV6METRIC_SESSIONSTATE_ENUM']._serialized_end=13318 - _globals['_BGPV6METRIC_FSMSTATE']._serialized_start=109588 - _globals['_BGPV6METRIC_FSMSTATE']._serialized_end=109706 - _globals['_BGPV6METRIC_FSMSTATE_ENUM']._serialized_start=109600 - _globals['_BGPV6METRIC_FSMSTATE_ENUM']._serialized_end=109706 - _globals['_ISISMETRICSREQUEST']._serialized_start=111700 - _globals['_ISISMETRICSREQUEST']._serialized_end=112486 - _globals['_ISISMETRICSREQUEST_COLUMNNAMES']._serialized_start=111809 - _globals['_ISISMETRICSREQUEST_COLUMNNAMES']._serialized_end=112486 - _globals['_ISISMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=111825 - _globals['_ISISMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=112486 - _globals['_ISISMETRIC']._serialized_start=112489 - _globals['_ISISMETRIC']._serialized_end=114013 - _globals['_LAGMETRICSREQUEST']._serialized_start=114016 - _globals['_LAGMETRICSREQUEST']._serialized_end=114333 - _globals['_LAGMETRICSREQUEST_COLUMNNAMES']._serialized_start=114120 - _globals['_LAGMETRICSREQUEST_COLUMNNAMES']._serialized_end=114333 - _globals['_LAGMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=114136 - _globals['_LAGMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=114333 - _globals['_LAGMETRIC']._serialized_start=114336 - _globals['_LAGMETRIC']._serialized_end=114892 - _globals['_LAGMETRIC_OPERSTATUS']._serialized_start=114664 - _globals['_LAGMETRIC_OPERSTATUS']._serialized_end=114719 - _globals['_LAGMETRIC_OPERSTATUS_ENUM']._serialized_start=13277 - _globals['_LAGMETRIC_OPERSTATUS_ENUM']._serialized_end=13318 - _globals['_LACPMETRICSREQUEST']._serialized_start=114895 - _globals['_LACPMETRICSREQUEST']._serialized_end=115331 - _globals['_LACPMETRICSREQUEST_COLUMNNAMES']._serialized_start=115032 - _globals['_LACPMETRICSREQUEST_COLUMNNAMES']._serialized_end=115331 - _globals['_LACPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=115048 - _globals['_LACPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=115331 - _globals['_LACPMETRIC']._serialized_start=115334 - _globals['_LACPMETRIC']._serialized_end=116371 - _globals['_LACPMETRIC_ACTIVITY']._serialized_start=115900 - _globals['_LACPMETRIC_ACTIVITY']._serialized_end=115960 - _globals['_LACPMETRIC_ACTIVITY_ENUM']._serialized_start=115912 - _globals['_LACPMETRIC_ACTIVITY_ENUM']._serialized_end=115960 - _globals['_LACPMETRIC_TIMEOUT']._serialized_start=115962 - _globals['_LACPMETRIC_TIMEOUT']._serialized_end=116017 - _globals['_LACPMETRIC_TIMEOUT_ENUM']._serialized_start=115973 - _globals['_LACPMETRIC_TIMEOUT_ENUM']._serialized_end=116017 - _globals['_LACPMETRIC_SYNCHRONIZATION']._serialized_start=116019 - _globals['_LACPMETRIC_SYNCHRONIZATION']._serialized_end=116088 - _globals['_LACPMETRIC_SYNCHRONIZATION_ENUM']._serialized_start=116038 - _globals['_LACPMETRIC_SYNCHRONIZATION_ENUM']._serialized_end=116088 - _globals['_LLDPMETRICSREQUEST']._serialized_start=116374 - _globals['_LLDPMETRICSREQUEST']._serialized_end=116627 - _globals['_LLDPMETRICSREQUEST_COLUMNNAMES']._serialized_start=116481 - _globals['_LLDPMETRICSREQUEST_COLUMNNAMES']._serialized_end=116627 - _globals['_LLDPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=116497 - _globals['_LLDPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=116627 - _globals['_LLDPMETRIC']._serialized_start=116630 - _globals['_LLDPMETRIC']._serialized_end=116932 - _globals['_RSVPMETRICSREQUEST']._serialized_start=116935 - _globals['_RSVPMETRICSREQUEST']._serialized_end=117641 - _globals['_RSVPMETRICSREQUEST_COLUMNNAMES']._serialized_start=117044 - _globals['_RSVPMETRICSREQUEST_COLUMNNAMES']._serialized_end=117641 - _globals['_RSVPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=117060 - _globals['_RSVPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=117641 - _globals['_RSVPMETRIC']._serialized_start=117644 - _globals['_RSVPMETRIC']._serialized_end=119040 - _globals['_DHCPV4CLIENTMETRICSREQUEST']._serialized_start=119043 - _globals['_DHCPV4CLIENTMETRICSREQUEST']._serialized_end=119344 - _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_start=119168 - _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_end=119344 - _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=119184 - _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=119344 - _globals['_DHCPV4CLIENTMETRIC']._serialized_start=119347 - _globals['_DHCPV4CLIENTMETRIC']._serialized_end=119725 - _globals['_DHCPV4SERVERMETRICSREQUEST']._serialized_start=119728 - _globals['_DHCPV4SERVERMETRICSREQUEST']._serialized_end=120033 - _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_start=119853 - _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_end=120033 - _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=119869 - _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=120033 - _globals['_DHCPV4SERVERMETRIC']._serialized_start=120036 - _globals['_DHCPV4SERVERMETRIC']._serialized_end=120422 - _globals['_STATESREQUEST']._serialized_start=120425 - _globals['_STATESREQUEST']._serialized_end=121113 - _globals['_STATESREQUEST_CHOICE']._serialized_start=120918 - _globals['_STATESREQUEST_CHOICE']._serialized_end=121102 - _globals['_STATESREQUEST_CHOICE_ENUM']._serialized_start=120929 - _globals['_STATESREQUEST_CHOICE_ENUM']._serialized_end=121102 - _globals['_STATESRESPONSE']._serialized_start=121116 - _globals['_STATESRESPONSE']._serialized_end=121751 - _globals['_STATESRESPONSE_CHOICE']._serialized_start=120918 - _globals['_STATESRESPONSE_CHOICE']._serialized_end=121102 - _globals['_STATESRESPONSE_CHOICE_ENUM']._serialized_start=120929 - _globals['_STATESRESPONSE_CHOICE_ENUM']._serialized_end=121102 - _globals['_NEIGHBORSV4STATESREQUEST']._serialized_start=121753 - _globals['_NEIGHBORSV4STATESREQUEST']._serialized_end=121803 - _globals['_NEIGHBORSV4STATE']._serialized_start=121806 - _globals['_NEIGHBORSV4STATE']._serialized_end=121970 - _globals['_NEIGHBORSV6STATESREQUEST']._serialized_start=121972 - _globals['_NEIGHBORSV6STATESREQUEST']._serialized_end=122022 - _globals['_NEIGHBORSV6STATE']._serialized_start=122025 - _globals['_NEIGHBORSV6STATE']._serialized_end=122189 - _globals['_BGPPREFIXSTATEREQUEST']._serialized_start=122192 - _globals['_BGPPREFIXSTATEREQUEST']._serialized_end=122514 - _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS']._serialized_start=122438 - _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS']._serialized_end=122514 - _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM']._serialized_start=44115 - _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM']._serialized_end=44174 - _globals['_BGPPREFIXIPV4UNICASTFILTER']._serialized_start=122517 - _globals['_BGPPREFIXIPV4UNICASTFILTER']._serialized_end=122790 - _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN']._serialized_start=18368 - _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN']._serialized_end=18435 - _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM']._serialized_end=18435 - _globals['_BGPPREFIXIPV6UNICASTFILTER']._serialized_start=122793 - _globals['_BGPPREFIXIPV6UNICASTFILTER']._serialized_end=123066 - _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN']._serialized_start=18368 - _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN']._serialized_end=18435 - _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM']._serialized_end=18435 - _globals['_BGPPREFIXESSTATE']._serialized_start=123069 - _globals['_BGPPREFIXESSTATE']._serialized_end=123259 - _globals['_BGPPREFIXIPV4UNICASTSTATE']._serialized_start=123262 - _globals['_BGPPREFIXIPV4UNICASTSTATE']._serialized_end=123915 - _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN']._serialized_start=18368 - _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN']._serialized_end=18435 - _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM']._serialized_end=18435 - _globals['_BGPPREFIXIPV6UNICASTSTATE']._serialized_start=123918 - _globals['_BGPPREFIXIPV6UNICASTSTATE']._serialized_end=124571 - _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN']._serialized_start=18368 - _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN']._serialized_end=18435 - _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM']._serialized_start=18378 - _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM']._serialized_end=18435 - _globals['_RESULTEXTENDEDCOMMUNITY']._serialized_start=124573 - _globals['_RESULTEXTENDEDCOMMUNITY']._serialized_end=124684 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED']._serialized_start=124687 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED']._serialized_end=125445 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE']._serialized_start=125241 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE']._serialized_end=125434 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE_ENUM']._serialized_start=125252 - _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE_ENUM']._serialized_end=125434 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_start=125448 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_end=125610 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_start=125613 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_end=125775 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_start=125778 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_end=126194 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=26153 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_start=126197 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_end=126366 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_start=126369 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_end=126538 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_start=126541 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_end=126969 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_start=26153 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_start=126972 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_end=127134 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_start=127137 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_end=127299 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_start=127302 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_end=127718 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_start=26153 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_start=26163 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_end=26238 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_start=127720 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_end=127830 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_start=127833 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_end=127969 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_start=127972 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_end=128364 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_start=28275 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_end=28354 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_start=28285 - _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_end=28354 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_start=128367 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_end=128518 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_start=128521 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_end=128833 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=29114 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=29175 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=29124 - _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=29175 - _globals['_RESULTBGPCOMMUNITY']._serialized_start=128836 - _globals['_RESULTBGPCOMMUNITY']._serialized_end=129140 - _globals['_RESULTBGPCOMMUNITY_TYPE']._serialized_start=18697 - _globals['_RESULTBGPCOMMUNITY_TYPE']._serialized_end=18839 - _globals['_RESULTBGPCOMMUNITY_TYPE_ENUM']._serialized_start=18706 - _globals['_RESULTBGPCOMMUNITY_TYPE_ENUM']._serialized_end=18839 - _globals['_RESULTBGPASPATH']._serialized_start=129142 - _globals['_RESULTBGPASPATH']._serialized_end=129206 - _globals['_RESULTBGPASPATHSEGMENT']._serialized_start=129209 - _globals['_RESULTBGPASPATHSEGMENT']._serialized_end=129415 - _globals['_RESULTBGPASPATHSEGMENT_TYPE']._serialized_start=19800 - _globals['_RESULTBGPASPATHSEGMENT_TYPE']._serialized_end=19893 - _globals['_RESULTBGPASPATHSEGMENT_TYPE_ENUM']._serialized_start=19808 - _globals['_RESULTBGPASPATHSEGMENT_TYPE_ENUM']._serialized_end=19893 - _globals['_ISISLSPSSTATEREQUEST']._serialized_start=129417 - _globals['_ISISLSPSSTATEREQUEST']._serialized_end=129466 - _globals['_ISISLSPSSTATE']._serialized_start=129468 - _globals['_ISISLSPSSTATE']._serialized_end=129568 - _globals['_ISISLSPSTATE']._serialized_start=129571 - _globals['_ISISLSPSTATE']._serialized_end=129993 - _globals['_ISISLSPSTATE_PDUTYPE']._serialized_start=129839 - _globals['_ISISLSPSTATE_PDUTYPE']._serialized_end=129899 - _globals['_ISISLSPSTATE_PDUTYPE_ENUM']._serialized_start=9828 - _globals['_ISISLSPSTATE_PDUTYPE_ENUM']._serialized_end=9877 - _globals['_ISISLSPTLVS']._serialized_start=129996 - _globals['_ISISLSPTLVS']._serialized_end=130504 - _globals['_ISISLSPHOSTNAME']._serialized_start=130506 - _globals['_ISISLSPHOSTNAME']._serialized_end=130559 - _globals['_ISISLSPFLAGS']._serialized_start=130562 - _globals['_ISISLSPFLAGS']._serialized_end=130864 - _globals['_ISISLSPISREACHABILITYTLV']._serialized_start=130866 - _globals['_ISISLSPISREACHABILITYTLV']._serialized_end=130933 - _globals['_ISISLSPEXTENDEDISREACHABILITYTLV']._serialized_start=130935 - _globals['_ISISLSPEXTENDEDISREACHABILITYTLV']._serialized_end=131010 - _globals['_ISISLSPNEIGHBOR']._serialized_start=131012 - _globals['_ISISLSPNEIGHBOR']._serialized_end=131067 - _globals['_ISISLSPIPV4INTERNALREACHABILITYTLV']._serialized_start=131069 - _globals['_ISISLSPIPV4INTERNALREACHABILITYTLV']._serialized_end=131145 - _globals['_ISISLSPIPV4EXTERNALREACHABILITYTLV']._serialized_start=131147 - _globals['_ISISLSPIPV4EXTERNALREACHABILITYTLV']._serialized_end=131223 - _globals['_ISISLSPV4PREFIX']._serialized_start=131226 - _globals['_ISISLSPV4PREFIX']._serialized_end=131697 - _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE']._serialized_start=13255 - _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE']._serialized_end=13318 - _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=13277 - _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=13318 - _globals['_ISISLSPV4PREFIX_ORIGINTYPE']._serialized_start=13188 - _globals['_ISISLSPV4PREFIX_ORIGINTYPE']._serialized_end=13253 - _globals['_ISISLSPV4PREFIX_ORIGINTYPE_ENUM']._serialized_start=13202 - _globals['_ISISLSPV4PREFIX_ORIGINTYPE_ENUM']._serialized_end=13253 - _globals['_ISISLSPEXTENDEDIPV4REACHABILITYTLV']._serialized_start=131699 - _globals['_ISISLSPEXTENDEDIPV4REACHABILITYTLV']._serialized_end=131783 - _globals['_ISISLSPEXTENDEDV4PREFIX']._serialized_start=131786 - _globals['_ISISLSPEXTENDEDV4PREFIX']._serialized_end=132167 - _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE']._serialized_start=13255 - _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE']._serialized_end=13318 - _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=13277 - _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=13318 - _globals['_ISISLSPIPV6REACHABILITYTLV']._serialized_start=132169 - _globals['_ISISLSPIPV6REACHABILITYTLV']._serialized_end=132237 - _globals['_ISISLSPV6PREFIX']._serialized_start=132240 - _globals['_ISISLSPV6PREFIX']._serialized_end=132752 - _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE']._serialized_start=13255 - _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE']._serialized_end=13318 - _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=13277 - _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=13318 - _globals['_ISISLSPV6PREFIX_ORIGINTYPE']._serialized_start=13188 - _globals['_ISISLSPV6PREFIX_ORIGINTYPE']._serialized_end=13253 - _globals['_ISISLSPV6PREFIX_ORIGINTYPE_ENUM']._serialized_start=13202 - _globals['_ISISLSPV6PREFIX_ORIGINTYPE_ENUM']._serialized_end=13253 - _globals['_ISISLSPPREFIXATTRIBUTES']._serialized_start=132754 - _globals['_ISISLSPPREFIXATTRIBUTES']._serialized_end=132875 - _globals['_LLDPNEIGHBORSSTATEREQUEST']._serialized_start=132877 - _globals['_LLDPNEIGHBORSSTATEREQUEST']._serialized_end=132953 - _globals['_LLDPNEIGHBORSSTATE']._serialized_start=132956 - _globals['_LLDPNEIGHBORSSTATE']._serialized_end=134119 - _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE']._serialized_start=133535 - _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE']._serialized_end=133709 - _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM']._serialized_start=133553 - _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM']._serialized_end=133709 - _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE']._serialized_start=133712 - _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE']._serialized_end=133882 - _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM']._serialized_start=133727 - _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM']._serialized_end=133882 - _globals['_LLDPCUSTOMTLVSTATE']._serialized_start=134122 - _globals['_LLDPCUSTOMTLVSTATE']._serialized_end=134252 - _globals['_LLDPCAPABILITYSTATE']._serialized_start=134255 - _globals['_LLDPCAPABILITYSTATE']._serialized_end=134655 - _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME']._serialized_start=134388 - _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME']._serialized_end=134612 - _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM']._serialized_start=134407 - _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM']._serialized_end=134612 - _globals['_RSVPLSPSSTATEREQUEST']._serialized_start=134657 - _globals['_RSVPLSPSSTATEREQUEST']._serialized_end=134706 - _globals['_RSVPLSPSSTATE']._serialized_start=134708 - _globals['_RSVPLSPSSTATE']._serialized_end=134817 - _globals['_RSVPIPV4LSPSTATE']._serialized_start=134820 - _globals['_RSVPIPV4LSPSTATE']._serialized_end=135046 - _globals['_RSVPLSPSTATE']._serialized_start=135049 - _globals['_RSVPLSPSTATE']._serialized_end=135613 - _globals['_RSVPLSPSTATE_SESSIONSTATUS']._serialized_start=135343 - _globals['_RSVPLSPSTATE_SESSIONSTATUS']._serialized_end=135401 - _globals['_RSVPLSPSTATE_SESSIONSTATUS_ENUM']._serialized_start=13277 - _globals['_RSVPLSPSTATE_SESSIONSTATUS_ENUM']._serialized_end=13318 - _globals['_RSVPLSPSTATE_LASTFLAPREASON']._serialized_start=135403 - _globals['_RSVPLSPSTATE_LASTFLAPREASON']._serialized_end=135492 - _globals['_RSVPLSPSTATE_LASTFLAPREASON_ENUM']._serialized_start=135421 - _globals['_RSVPLSPSTATE_LASTFLAPREASON_ENUM']._serialized_end=135492 - _globals['_RSVPLSPIPV4RRO']._serialized_start=135615 - _globals['_RSVPLSPIPV4RRO']._serialized_end=135713 - _globals['_RSVPLSPIPV4ERO']._serialized_start=135716 - _globals['_RSVPLSPIPV4ERO']._serialized_end=135958 - _globals['_RSVPLSPIPV4ERO_TYPE']._serialized_start=135823 - _globals['_RSVPLSPIPV4ERO_TYPE']._serialized_end=135930 - _globals['_RSVPLSPIPV4ERO_TYPE_ENUM']._serialized_start=135831 - _globals['_RSVPLSPIPV4ERO_TYPE_ENUM']._serialized_end=135930 - _globals['_DHCPV4INTERFACESTATEREQUEST']._serialized_start=135960 - _globals['_DHCPV4INTERFACESTATEREQUEST']._serialized_end=136016 - _globals['_DHCPV4INTERFACESTATE']._serialized_start=136019 - _globals['_DHCPV4INTERFACESTATE']._serialized_end=136355 - _globals['_DHCPV4LEASESTATEREQUEST']._serialized_start=136357 - _globals['_DHCPV4LEASESTATEREQUEST']._serialized_end=136409 - _globals['_DHCPV4LEASESSTATE']._serialized_start=136411 - _globals['_DHCPV4LEASESSTATE']._serialized_end=136521 - _globals['_DHCPV4LEASESTATE']._serialized_start=136524 - _globals['_DHCPV4LEASESTATE']._serialized_end=136862 - _globals['_CAPTUREREQUEST']._serialized_start=136864 - _globals['_CAPTUREREQUEST']._serialized_end=136918 - _globals['_PATTERNFLOWETHERNETDSTCOUNTER']._serialized_start=136920 - _globals['_PATTERNFLOWETHERNETDSTCOUNTER']._serialized_end=137039 - _globals['_PATTERNFLOWETHERNETDSTMETRICTAG']._serialized_start=137041 - _globals['_PATTERNFLOWETHERNETDSTMETRICTAG']._serialized_end=137166 - _globals['_PATTERNFLOWETHERNETDST']._serialized_start=137169 - _globals['_PATTERNFLOWETHERNETDST']._serialized_end=137607 - _globals['_PATTERNFLOWETHERNETDST_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWETHERNETDST_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWETHERNETDST_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWETHERNETDST_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWETHERNETSRCCOUNTER']._serialized_start=137609 - _globals['_PATTERNFLOWETHERNETSRCCOUNTER']._serialized_end=137728 - _globals['_PATTERNFLOWETHERNETSRCMETRICTAG']._serialized_start=137730 - _globals['_PATTERNFLOWETHERNETSRCMETRICTAG']._serialized_end=137855 - _globals['_PATTERNFLOWETHERNETSRC']._serialized_start=137858 - _globals['_PATTERNFLOWETHERNETSRC']._serialized_end=138258 - _globals['_PATTERNFLOWETHERNETSRC_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETSRC_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETSRC_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETSRC_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETETHERTYPECOUNTER']._serialized_start=138260 - _globals['_PATTERNFLOWETHERNETETHERTYPECOUNTER']._serialized_end=138385 - _globals['_PATTERNFLOWETHERNETETHERTYPEMETRICTAG']._serialized_start=138388 - _globals['_PATTERNFLOWETHERNETETHERTYPEMETRICTAG']._serialized_end=138519 - _globals['_PATTERNFLOWETHERNETETHERTYPE']._serialized_start=138522 - _globals['_PATTERNFLOWETHERNETETHERTYPE']._serialized_end=138990 - _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWETHERNETPFCQUEUECOUNTER']._serialized_start=138992 - _globals['_PATTERNFLOWETHERNETPFCQUEUECOUNTER']._serialized_end=139116 - _globals['_PATTERNFLOWETHERNETPFCQUEUEMETRICTAG']._serialized_start=139119 - _globals['_PATTERNFLOWETHERNETPFCQUEUEMETRICTAG']._serialized_end=139249 - _globals['_PATTERNFLOWETHERNETPFCQUEUE']._serialized_start=139252 - _globals['_PATTERNFLOWETHERNETPFCQUEUE']._serialized_end=139677 - _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVLANPRIORITYCOUNTER']._serialized_start=139679 - _globals['_PATTERNFLOWVLANPRIORITYCOUNTER']._serialized_end=139799 - _globals['_PATTERNFLOWVLANPRIORITYMETRICTAG']._serialized_start=139801 - _globals['_PATTERNFLOWVLANPRIORITYMETRICTAG']._serialized_end=139927 - _globals['_PATTERNFLOWVLANPRIORITY']._serialized_start=139930 - _globals['_PATTERNFLOWVLANPRIORITY']._serialized_end=140335 - _globals['_PATTERNFLOWVLANPRIORITY_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVLANPRIORITY_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVLANPRIORITY_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVLANPRIORITY_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVLANCFICOUNTER']._serialized_start=140337 - _globals['_PATTERNFLOWVLANCFICOUNTER']._serialized_end=140452 - _globals['_PATTERNFLOWVLANCFIMETRICTAG']._serialized_start=140454 - _globals['_PATTERNFLOWVLANCFIMETRICTAG']._serialized_end=140575 - _globals['_PATTERNFLOWVLANCFI']._serialized_start=140578 - _globals['_PATTERNFLOWVLANCFI']._serialized_end=140958 - _globals['_PATTERNFLOWVLANCFI_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVLANCFI_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVLANCFI_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVLANCFI_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVLANIDCOUNTER']._serialized_start=140960 - _globals['_PATTERNFLOWVLANIDCOUNTER']._serialized_end=141074 - _globals['_PATTERNFLOWVLANIDMETRICTAG']._serialized_start=141076 - _globals['_PATTERNFLOWVLANIDMETRICTAG']._serialized_end=141196 - _globals['_PATTERNFLOWVLANID']._serialized_start=141199 - _globals['_PATTERNFLOWVLANID']._serialized_end=141574 - _globals['_PATTERNFLOWVLANID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVLANID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVLANID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVLANID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVLANTPIDCOUNTER']._serialized_start=141576 - _globals['_PATTERNFLOWVLANTPIDCOUNTER']._serialized_end=141692 - _globals['_PATTERNFLOWVLANTPIDMETRICTAG']._serialized_start=141694 - _globals['_PATTERNFLOWVLANTPIDMETRICTAG']._serialized_end=141816 - _globals['_PATTERNFLOWVLANTPID']._serialized_start=141819 - _globals['_PATTERNFLOWVLANTPID']._serialized_end=142204 - _globals['_PATTERNFLOWVLANTPID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVLANTPID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVLANTPID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVLANTPID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANFLAGSCOUNTER']._serialized_start=142206 - _globals['_PATTERNFLOWVXLANFLAGSCOUNTER']._serialized_end=142324 - _globals['_PATTERNFLOWVXLANFLAGSMETRICTAG']._serialized_start=142326 - _globals['_PATTERNFLOWVXLANFLAGSMETRICTAG']._serialized_end=142450 - _globals['_PATTERNFLOWVXLANFLAGS']._serialized_start=142453 - _globals['_PATTERNFLOWVXLANFLAGS']._serialized_end=142848 - _globals['_PATTERNFLOWVXLANFLAGS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVXLANFLAGS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANFLAGS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVXLANFLAGS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANRESERVED0COUNTER']._serialized_start=142850 - _globals['_PATTERNFLOWVXLANRESERVED0COUNTER']._serialized_end=142972 - _globals['_PATTERNFLOWVXLANRESERVED0METRICTAG']._serialized_start=142975 - _globals['_PATTERNFLOWVXLANRESERVED0METRICTAG']._serialized_end=143103 - _globals['_PATTERNFLOWVXLANRESERVED0']._serialized_start=143106 - _globals['_PATTERNFLOWVXLANRESERVED0']._serialized_end=143521 - _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANVNICOUNTER']._serialized_start=143523 - _globals['_PATTERNFLOWVXLANVNICOUNTER']._serialized_end=143639 - _globals['_PATTERNFLOWVXLANVNIMETRICTAG']._serialized_start=143641 - _globals['_PATTERNFLOWVXLANVNIMETRICTAG']._serialized_end=143763 - _globals['_PATTERNFLOWVXLANVNI']._serialized_start=143766 - _globals['_PATTERNFLOWVXLANVNI']._serialized_end=144189 - _globals['_PATTERNFLOWVXLANVNI_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWVXLANVNI_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWVXLANVNI_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWVXLANVNI_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWVXLANRESERVED1COUNTER']._serialized_start=144191 - _globals['_PATTERNFLOWVXLANRESERVED1COUNTER']._serialized_end=144313 - _globals['_PATTERNFLOWVXLANRESERVED1METRICTAG']._serialized_start=144316 - _globals['_PATTERNFLOWVXLANRESERVED1METRICTAG']._serialized_end=144444 - _globals['_PATTERNFLOWVXLANRESERVED1']._serialized_start=144447 - _globals['_PATTERNFLOWVXLANRESERVED1']._serialized_end=144862 - _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4VERSIONCOUNTER']._serialized_start=144864 - _globals['_PATTERNFLOWIPV4VERSIONCOUNTER']._serialized_end=144983 - _globals['_PATTERNFLOWIPV4VERSIONMETRICTAG']._serialized_start=144985 - _globals['_PATTERNFLOWIPV4VERSIONMETRICTAG']._serialized_end=145110 - _globals['_PATTERNFLOWIPV4VERSION']._serialized_start=145113 - _globals['_PATTERNFLOWIPV4VERSION']._serialized_end=145513 - _globals['_PATTERNFLOWIPV4VERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4VERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4VERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4VERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4HEADERLENGTHCOUNTER']._serialized_start=145515 - _globals['_PATTERNFLOWIPV4HEADERLENGTHCOUNTER']._serialized_end=145639 - _globals['_PATTERNFLOWIPV4HEADERLENGTHMETRICTAG']._serialized_start=145642 - _globals['_PATTERNFLOWIPV4HEADERLENGTHMETRICTAG']._serialized_end=145772 - _globals['_PATTERNFLOWIPV4HEADERLENGTH']._serialized_start=145775 - _globals['_PATTERNFLOWIPV4HEADERLENGTH']._serialized_end=146238 - _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4TOTALLENGTHCOUNTER']._serialized_start=146240 - _globals['_PATTERNFLOWIPV4TOTALLENGTHCOUNTER']._serialized_end=146363 - _globals['_PATTERNFLOWIPV4TOTALLENGTHMETRICTAG']._serialized_start=146366 - _globals['_PATTERNFLOWIPV4TOTALLENGTHMETRICTAG']._serialized_end=146495 - _globals['_PATTERNFLOWIPV4TOTALLENGTH']._serialized_start=146498 - _globals['_PATTERNFLOWIPV4TOTALLENGTH']._serialized_end=146956 - _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4IDENTIFICATIONCOUNTER']._serialized_start=146958 - _globals['_PATTERNFLOWIPV4IDENTIFICATIONCOUNTER']._serialized_end=147084 - _globals['_PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG']._serialized_start=147087 - _globals['_PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG']._serialized_end=147219 - _globals['_PATTERNFLOWIPV4IDENTIFICATION']._serialized_start=147222 - _globals['_PATTERNFLOWIPV4IDENTIFICATION']._serialized_end=147657 - _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4RESERVEDCOUNTER']._serialized_start=147659 - _globals['_PATTERNFLOWIPV4RESERVEDCOUNTER']._serialized_end=147779 - _globals['_PATTERNFLOWIPV4RESERVEDMETRICTAG']._serialized_start=147781 - _globals['_PATTERNFLOWIPV4RESERVEDMETRICTAG']._serialized_end=147907 - _globals['_PATTERNFLOWIPV4RESERVED']._serialized_start=147910 - _globals['_PATTERNFLOWIPV4RESERVED']._serialized_end=148315 - _globals['_PATTERNFLOWIPV4RESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4RESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4RESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4RESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DONTFRAGMENTCOUNTER']._serialized_start=148317 - _globals['_PATTERNFLOWIPV4DONTFRAGMENTCOUNTER']._serialized_end=148441 - _globals['_PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG']._serialized_start=148444 - _globals['_PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG']._serialized_end=148574 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT']._serialized_start=148577 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT']._serialized_end=149002 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER']._serialized_start=149004 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER']._serialized_end=149129 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG']._serialized_start=149132 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG']._serialized_end=149263 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS']._serialized_start=149266 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS']._serialized_end=149696 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER']._serialized_start=149698 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER']._serialized_end=149824 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG']._serialized_start=149827 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG']._serialized_end=149959 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET']._serialized_start=149962 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET']._serialized_end=150397 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TIMETOLIVECOUNTER']._serialized_start=150399 - _globals['_PATTERNFLOWIPV4TIMETOLIVECOUNTER']._serialized_end=150521 - _globals['_PATTERNFLOWIPV4TIMETOLIVEMETRICTAG']._serialized_start=150524 - _globals['_PATTERNFLOWIPV4TIMETOLIVEMETRICTAG']._serialized_end=150652 - _globals['_PATTERNFLOWIPV4TIMETOLIVE']._serialized_start=150655 - _globals['_PATTERNFLOWIPV4TIMETOLIVE']._serialized_end=151070 - _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4PROTOCOLCOUNTER']._serialized_start=151072 - _globals['_PATTERNFLOWIPV4PROTOCOLCOUNTER']._serialized_end=151192 - _globals['_PATTERNFLOWIPV4PROTOCOLMETRICTAG']._serialized_start=151194 - _globals['_PATTERNFLOWIPV4PROTOCOLMETRICTAG']._serialized_end=151320 - _globals['_PATTERNFLOWIPV4PROTOCOL']._serialized_start=151323 - _globals['_PATTERNFLOWIPV4PROTOCOL']._serialized_end=151766 - _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM']._serialized_start=151769 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM']._serialized_end=152120 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWIPV4SRCCOUNTER']._serialized_start=152122 - _globals['_PATTERNFLOWIPV4SRCCOUNTER']._serialized_end=152237 - _globals['_PATTERNFLOWIPV4SRCMETRICTAG']._serialized_start=152239 - _globals['_PATTERNFLOWIPV4SRCMETRICTAG']._serialized_end=152360 - _globals['_PATTERNFLOWIPV4SRCRANDOM']._serialized_start=152363 - _globals['_PATTERNFLOWIPV4SRCRANDOM']._serialized_end=152499 - _globals['_PATTERNFLOWIPV4SRC']._serialized_start=152502 - _globals['_PATTERNFLOWIPV4SRC']._serialized_end=152984 - _globals['_PATTERNFLOWIPV4SRC_CHOICE']._serialized_start=152855 - _globals['_PATTERNFLOWIPV4SRC_CHOICE']._serialized_end=152963 - _globals['_PATTERNFLOWIPV4SRC_CHOICE_ENUM']._serialized_start=152865 - _globals['_PATTERNFLOWIPV4SRC_CHOICE_ENUM']._serialized_end=152963 - _globals['_PATTERNFLOWIPV4DSTCOUNTER']._serialized_start=152986 - _globals['_PATTERNFLOWIPV4DSTCOUNTER']._serialized_end=153101 - _globals['_PATTERNFLOWIPV4DSTMETRICTAG']._serialized_start=153103 - _globals['_PATTERNFLOWIPV4DSTMETRICTAG']._serialized_end=153224 - _globals['_PATTERNFLOWIPV4DSTRANDOM']._serialized_start=153227 - _globals['_PATTERNFLOWIPV4DSTRANDOM']._serialized_end=153363 - _globals['_PATTERNFLOWIPV4DST']._serialized_start=153366 - _globals['_PATTERNFLOWIPV4DST']._serialized_end=153848 - _globals['_PATTERNFLOWIPV4DST_CHOICE']._serialized_start=152855 - _globals['_PATTERNFLOWIPV4DST_CHOICE']._serialized_end=152963 - _globals['_PATTERNFLOWIPV4DST_CHOICE_ENUM']._serialized_start=152865 - _globals['_PATTERNFLOWIPV4DST_CHOICE_ENUM']._serialized_end=152963 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER']._serialized_start=153851 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER']._serialized_end=153990 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG']._serialized_start=153993 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG']._serialized_end=154414 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER']._serialized_start=154417 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER']._serialized_end=154557 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS']._serialized_start=154560 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS']._serialized_end=154985 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER']._serialized_start=154988 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER']._serialized_end=155129 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER']._serialized_start=155132 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER']._serialized_end=155561 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4PRIORITYRAWCOUNTER']._serialized_start=155563 - _globals['_PATTERNFLOWIPV4PRIORITYRAWCOUNTER']._serialized_end=155686 - _globals['_PATTERNFLOWIPV4PRIORITYRAWMETRICTAG']._serialized_start=155689 - _globals['_PATTERNFLOWIPV4PRIORITYRAWMETRICTAG']._serialized_end=155818 - _globals['_PATTERNFLOWIPV4PRIORITYRAW']._serialized_start=155821 - _globals['_PATTERNFLOWIPV4PRIORITYRAW']._serialized_end=156241 - _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DSCPPHBCOUNTER']._serialized_start=156243 - _globals['_PATTERNFLOWIPV4DSCPPHBCOUNTER']._serialized_end=156362 - _globals['_PATTERNFLOWIPV4DSCPPHBMETRICTAG']._serialized_start=156364 - _globals['_PATTERNFLOWIPV4DSCPPHBMETRICTAG']._serialized_end=156489 - _globals['_PATTERNFLOWIPV4DSCPPHB']._serialized_start=156492 - _globals['_PATTERNFLOWIPV4DSCPPHB']._serialized_end=156892 - _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DSCPECNCOUNTER']._serialized_start=156894 - _globals['_PATTERNFLOWIPV4DSCPECNCOUNTER']._serialized_end=157013 - _globals['_PATTERNFLOWIPV4DSCPECNMETRICTAG']._serialized_start=157015 - _globals['_PATTERNFLOWIPV4DSCPECNMETRICTAG']._serialized_end=157140 - _globals['_PATTERNFLOWIPV4DSCPECN']._serialized_start=157143 - _globals['_PATTERNFLOWIPV4DSCPECN']._serialized_end=157543 - _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCECOUNTER']._serialized_start=157545 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCECOUNTER']._serialized_end=157670 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG']._serialized_start=157673 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG']._serialized_end=157804 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE']._serialized_start=157807 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE']._serialized_end=158237 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSDELAYCOUNTER']._serialized_start=158239 - _globals['_PATTERNFLOWIPV4TOSDELAYCOUNTER']._serialized_end=158359 - _globals['_PATTERNFLOWIPV4TOSDELAYMETRICTAG']._serialized_start=158361 - _globals['_PATTERNFLOWIPV4TOSDELAYMETRICTAG']._serialized_end=158487 - _globals['_PATTERNFLOWIPV4TOSDELAY']._serialized_start=158490 - _globals['_PATTERNFLOWIPV4TOSDELAY']._serialized_end=158895 - _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER']._serialized_start=158897 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER']._serialized_end=159022 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG']._serialized_start=159025 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG']._serialized_end=159156 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT']._serialized_start=159159 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT']._serialized_end=159589 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSRELIABILITYCOUNTER']._serialized_start=159591 - _globals['_PATTERNFLOWIPV4TOSRELIABILITYCOUNTER']._serialized_end=159717 - _globals['_PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG']._serialized_start=159720 - _globals['_PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG']._serialized_end=159852 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY']._serialized_start=159855 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY']._serialized_end=160290 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSMONETARYCOUNTER']._serialized_start=160292 - _globals['_PATTERNFLOWIPV4TOSMONETARYCOUNTER']._serialized_end=160415 - _globals['_PATTERNFLOWIPV4TOSMONETARYMETRICTAG']._serialized_start=160418 - _globals['_PATTERNFLOWIPV4TOSMONETARYMETRICTAG']._serialized_end=160547 - _globals['_PATTERNFLOWIPV4TOSMONETARY']._serialized_start=160550 - _globals['_PATTERNFLOWIPV4TOSMONETARY']._serialized_end=160970 - _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSUNUSEDCOUNTER']._serialized_start=160972 - _globals['_PATTERNFLOWIPV4TOSUNUSEDCOUNTER']._serialized_end=161093 - _globals['_PATTERNFLOWIPV4TOSUNUSEDMETRICTAG']._serialized_start=161095 - _globals['_PATTERNFLOWIPV4TOSUNUSEDMETRICTAG']._serialized_end=161222 - _globals['_PATTERNFLOWIPV4TOSUNUSED']._serialized_start=161225 - _globals['_PATTERNFLOWIPV4TOSUNUSED']._serialized_end=161635 - _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6VERSIONCOUNTER']._serialized_start=161637 - _globals['_PATTERNFLOWIPV6VERSIONCOUNTER']._serialized_end=161756 - _globals['_PATTERNFLOWIPV6VERSIONMETRICTAG']._serialized_start=161758 - _globals['_PATTERNFLOWIPV6VERSIONMETRICTAG']._serialized_end=161883 - _globals['_PATTERNFLOWIPV6VERSION']._serialized_start=161886 - _globals['_PATTERNFLOWIPV6VERSION']._serialized_end=162286 - _globals['_PATTERNFLOWIPV6VERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV6VERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6VERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV6VERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6TRAFFICCLASSCOUNTER']._serialized_start=162288 - _globals['_PATTERNFLOWIPV6TRAFFICCLASSCOUNTER']._serialized_end=162412 - _globals['_PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG']._serialized_start=162415 - _globals['_PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG']._serialized_end=162545 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS']._serialized_start=162548 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS']._serialized_end=162973 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6FLOWLABELCOUNTER']._serialized_start=162975 - _globals['_PATTERNFLOWIPV6FLOWLABELCOUNTER']._serialized_end=163096 - _globals['_PATTERNFLOWIPV6FLOWLABELMETRICTAG']._serialized_start=163098 - _globals['_PATTERNFLOWIPV6FLOWLABELMETRICTAG']._serialized_end=163225 - _globals['_PATTERNFLOWIPV6FLOWLABELRANDOM']._serialized_start=163228 - _globals['_PATTERNFLOWIPV6FLOWLABELRANDOM']._serialized_end=163370 - _globals['_PATTERNFLOWIPV6FLOWLABEL']._serialized_start=163373 - _globals['_PATTERNFLOWIPV6FLOWLABEL']._serialized_end=163848 - _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE']._serialized_start=163729 - _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE']._serialized_end=163827 - _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM']._serialized_start=163739 - _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM']._serialized_end=163827 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER']._serialized_start=163850 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER']._serialized_end=163975 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG']._serialized_start=163978 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG']._serialized_end=164109 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH']._serialized_start=164112 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH']._serialized_end=164580 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIPV6NEXTHEADERCOUNTER']._serialized_start=164582 - _globals['_PATTERNFLOWIPV6NEXTHEADERCOUNTER']._serialized_end=164704 - _globals['_PATTERNFLOWIPV6NEXTHEADERMETRICTAG']._serialized_start=164707 - _globals['_PATTERNFLOWIPV6NEXTHEADERMETRICTAG']._serialized_end=164835 - _globals['_PATTERNFLOWIPV6NEXTHEADER']._serialized_start=164838 - _globals['_PATTERNFLOWIPV6NEXTHEADER']._serialized_end=165291 - _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIPV6HOPLIMITCOUNTER']._serialized_start=165293 - _globals['_PATTERNFLOWIPV6HOPLIMITCOUNTER']._serialized_end=165413 - _globals['_PATTERNFLOWIPV6HOPLIMITMETRICTAG']._serialized_start=165415 - _globals['_PATTERNFLOWIPV6HOPLIMITMETRICTAG']._serialized_end=165541 - _globals['_PATTERNFLOWIPV6HOPLIMIT']._serialized_start=165544 - _globals['_PATTERNFLOWIPV6HOPLIMIT']._serialized_end=165949 - _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6SRCCOUNTER']._serialized_start=165951 - _globals['_PATTERNFLOWIPV6SRCCOUNTER']._serialized_end=166066 - _globals['_PATTERNFLOWIPV6SRCMETRICTAG']._serialized_start=166068 - _globals['_PATTERNFLOWIPV6SRCMETRICTAG']._serialized_end=166189 - _globals['_PATTERNFLOWIPV6SRC']._serialized_start=166192 - _globals['_PATTERNFLOWIPV6SRC']._serialized_end=166572 - _globals['_PATTERNFLOWIPV6SRC_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV6SRC_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6SRC_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV6SRC_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6DSTCOUNTER']._serialized_start=166574 - _globals['_PATTERNFLOWIPV6DSTCOUNTER']._serialized_end=166689 - _globals['_PATTERNFLOWIPV6DSTMETRICTAG']._serialized_start=166691 - _globals['_PATTERNFLOWIPV6DSTMETRICTAG']._serialized_end=166812 - _globals['_PATTERNFLOWIPV6DST']._serialized_start=166815 - _globals['_PATTERNFLOWIPV6DST']._serialized_end=167195 - _globals['_PATTERNFLOWIPV6DST_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIPV6DST_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIPV6DST_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIPV6DST_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEDSTCOUNTER']._serialized_start=167197 - _globals['_PATTERNFLOWPFCPAUSEDSTCOUNTER']._serialized_end=167316 - _globals['_PATTERNFLOWPFCPAUSEDSTMETRICTAG']._serialized_start=167318 - _globals['_PATTERNFLOWPFCPAUSEDSTMETRICTAG']._serialized_end=167443 - _globals['_PATTERNFLOWPFCPAUSEDST']._serialized_start=167446 - _globals['_PATTERNFLOWPFCPAUSEDST']._serialized_end=167846 - _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSESRCCOUNTER']._serialized_start=167848 - _globals['_PATTERNFLOWPFCPAUSESRCCOUNTER']._serialized_end=167967 - _globals['_PATTERNFLOWPFCPAUSESRCMETRICTAG']._serialized_start=167969 - _globals['_PATTERNFLOWPFCPAUSESRCMETRICTAG']._serialized_end=168094 - _globals['_PATTERNFLOWPFCPAUSESRC']._serialized_start=168097 - _globals['_PATTERNFLOWPFCPAUSESRC']._serialized_end=168497 - _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPECOUNTER']._serialized_start=168499 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPECOUNTER']._serialized_end=168624 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG']._serialized_start=168627 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG']._serialized_end=168758 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE']._serialized_start=168761 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE']._serialized_end=169191 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER']._serialized_start=169194 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER']._serialized_end=169323 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG']._serialized_start=169326 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG']._serialized_end=169461 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE']._serialized_start=169464 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE']._serialized_end=169914 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER']._serialized_start=169917 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER']._serialized_end=170050 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG']._serialized_start=170053 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG']._serialized_end=170192 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR']._serialized_start=170195 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR']._serialized_end=170665 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER']._serialized_start=170667 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER']._serialized_end=170794 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG']._serialized_start=170797 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG']._serialized_end=170930 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0']._serialized_start=170933 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0']._serialized_end=171373 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER']._serialized_start=171375 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER']._serialized_end=171502 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG']._serialized_start=171505 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG']._serialized_end=171638 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1']._serialized_start=171641 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1']._serialized_end=172081 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER']._serialized_start=172083 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER']._serialized_end=172210 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG']._serialized_start=172213 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG']._serialized_end=172346 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2']._serialized_start=172349 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2']._serialized_end=172789 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER']._serialized_start=172791 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER']._serialized_end=172918 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG']._serialized_start=172921 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG']._serialized_end=173054 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3']._serialized_start=173057 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3']._serialized_end=173497 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER']._serialized_start=173499 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER']._serialized_end=173626 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG']._serialized_start=173629 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG']._serialized_end=173762 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4']._serialized_start=173765 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4']._serialized_end=174205 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER']._serialized_start=174207 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER']._serialized_end=174334 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG']._serialized_start=174337 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG']._serialized_end=174470 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5']._serialized_start=174473 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5']._serialized_end=174913 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER']._serialized_start=174915 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER']._serialized_end=175042 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG']._serialized_start=175045 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG']._serialized_end=175178 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6']._serialized_start=175181 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6']._serialized_end=175621 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER']._serialized_start=175623 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER']._serialized_end=175750 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG']._serialized_start=175753 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG']._serialized_end=175886 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7']._serialized_start=175889 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7']._serialized_end=176329 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSEDSTCOUNTER']._serialized_start=176331 - _globals['_PATTERNFLOWETHERNETPAUSEDSTCOUNTER']._serialized_end=176455 - _globals['_PATTERNFLOWETHERNETPAUSEDSTMETRICTAG']._serialized_start=176458 - _globals['_PATTERNFLOWETHERNETPAUSEDSTMETRICTAG']._serialized_end=176588 - _globals['_PATTERNFLOWETHERNETPAUSEDST']._serialized_start=176591 - _globals['_PATTERNFLOWETHERNETPAUSEDST']._serialized_end=177016 - _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSESRCCOUNTER']._serialized_start=177018 - _globals['_PATTERNFLOWETHERNETPAUSESRCCOUNTER']._serialized_end=177142 - _globals['_PATTERNFLOWETHERNETPAUSESRCMETRICTAG']._serialized_start=177145 - _globals['_PATTERNFLOWETHERNETPAUSESRCMETRICTAG']._serialized_end=177275 - _globals['_PATTERNFLOWETHERNETPAUSESRC']._serialized_start=177278 - _globals['_PATTERNFLOWETHERNETPAUSESRC']._serialized_end=177703 - _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER']._serialized_start=177706 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER']._serialized_end=177836 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG']._serialized_start=177839 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG']._serialized_end=177975 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE']._serialized_start=177978 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE']._serialized_end=178433 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER']._serialized_start=178436 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER']._serialized_end=178570 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG']._serialized_start=178573 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG']._serialized_end=178713 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE']._serialized_start=178716 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE']._serialized_end=179191 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSETIMECOUNTER']._serialized_start=179193 - _globals['_PATTERNFLOWETHERNETPAUSETIMECOUNTER']._serialized_end=179318 - _globals['_PATTERNFLOWETHERNETPAUSETIMEMETRICTAG']._serialized_start=179321 - _globals['_PATTERNFLOWETHERNETPAUSETIMEMETRICTAG']._serialized_end=179452 - _globals['_PATTERNFLOWETHERNETPAUSETIME']._serialized_start=179455 - _globals['_PATTERNFLOWETHERNETPAUSETIME']._serialized_end=179885 - _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPSRCPORTCOUNTER']._serialized_start=179887 - _globals['_PATTERNFLOWTCPSRCPORTCOUNTER']._serialized_end=180005 - _globals['_PATTERNFLOWTCPSRCPORTMETRICTAG']._serialized_start=180007 - _globals['_PATTERNFLOWTCPSRCPORTMETRICTAG']._serialized_end=180131 - _globals['_PATTERNFLOWTCPSRCPORTRANDOM']._serialized_start=180134 - _globals['_PATTERNFLOWTCPSRCPORTRANDOM']._serialized_end=180273 - _globals['_PATTERNFLOWTCPSRCPORT']._serialized_start=180276 - _globals['_PATTERNFLOWTCPSRCPORT']._serialized_end=180733 - _globals['_PATTERNFLOWTCPSRCPORT_CHOICE']._serialized_start=163729 - _globals['_PATTERNFLOWTCPSRCPORT_CHOICE']._serialized_end=163827 - _globals['_PATTERNFLOWTCPSRCPORT_CHOICE_ENUM']._serialized_start=163739 - _globals['_PATTERNFLOWTCPSRCPORT_CHOICE_ENUM']._serialized_end=163827 - _globals['_PATTERNFLOWTCPDSTPORTCOUNTER']._serialized_start=180735 - _globals['_PATTERNFLOWTCPDSTPORTCOUNTER']._serialized_end=180853 - _globals['_PATTERNFLOWTCPDSTPORTMETRICTAG']._serialized_start=180855 - _globals['_PATTERNFLOWTCPDSTPORTMETRICTAG']._serialized_end=180979 - _globals['_PATTERNFLOWTCPDSTPORTRANDOM']._serialized_start=180982 - _globals['_PATTERNFLOWTCPDSTPORTRANDOM']._serialized_end=181121 - _globals['_PATTERNFLOWTCPDSTPORT']._serialized_start=181124 - _globals['_PATTERNFLOWTCPDSTPORT']._serialized_end=181581 - _globals['_PATTERNFLOWTCPDSTPORT_CHOICE']._serialized_start=163729 - _globals['_PATTERNFLOWTCPDSTPORT_CHOICE']._serialized_end=163827 - _globals['_PATTERNFLOWTCPDSTPORT_CHOICE_ENUM']._serialized_start=163739 - _globals['_PATTERNFLOWTCPDSTPORT_CHOICE_ENUM']._serialized_end=163827 - _globals['_PATTERNFLOWTCPSEQNUMCOUNTER']._serialized_start=181583 - _globals['_PATTERNFLOWTCPSEQNUMCOUNTER']._serialized_end=181700 - _globals['_PATTERNFLOWTCPSEQNUMMETRICTAG']._serialized_start=181702 - _globals['_PATTERNFLOWTCPSEQNUMMETRICTAG']._serialized_end=181825 - _globals['_PATTERNFLOWTCPSEQNUM']._serialized_start=181828 - _globals['_PATTERNFLOWTCPSEQNUM']._serialized_end=182218 - _globals['_PATTERNFLOWTCPSEQNUM_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPSEQNUM_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPSEQNUM_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPSEQNUM_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPACKNUMCOUNTER']._serialized_start=182220 - _globals['_PATTERNFLOWTCPACKNUMCOUNTER']._serialized_end=182337 - _globals['_PATTERNFLOWTCPACKNUMMETRICTAG']._serialized_start=182339 - _globals['_PATTERNFLOWTCPACKNUMMETRICTAG']._serialized_end=182462 - _globals['_PATTERNFLOWTCPACKNUM']._serialized_start=182465 - _globals['_PATTERNFLOWTCPACKNUM']._serialized_end=182855 - _globals['_PATTERNFLOWTCPACKNUM_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPACKNUM_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPACKNUM_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPACKNUM_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPDATAOFFSETCOUNTER']._serialized_start=182857 - _globals['_PATTERNFLOWTCPDATAOFFSETCOUNTER']._serialized_end=182978 - _globals['_PATTERNFLOWTCPDATAOFFSETMETRICTAG']._serialized_start=182980 - _globals['_PATTERNFLOWTCPDATAOFFSETMETRICTAG']._serialized_end=183107 - _globals['_PATTERNFLOWTCPDATAOFFSET']._serialized_start=183110 - _globals['_PATTERNFLOWTCPDATAOFFSET']._serialized_end=183520 - _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNNSCOUNTER']._serialized_start=183522 - _globals['_PATTERNFLOWTCPECNNSCOUNTER']._serialized_end=183638 - _globals['_PATTERNFLOWTCPECNNSMETRICTAG']._serialized_start=183640 - _globals['_PATTERNFLOWTCPECNNSMETRICTAG']._serialized_end=183762 - _globals['_PATTERNFLOWTCPECNNS']._serialized_start=183765 - _globals['_PATTERNFLOWTCPECNNS']._serialized_end=184150 - _globals['_PATTERNFLOWTCPECNNS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPECNNS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNNS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPECNNS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNCWRCOUNTER']._serialized_start=184152 - _globals['_PATTERNFLOWTCPECNCWRCOUNTER']._serialized_end=184269 - _globals['_PATTERNFLOWTCPECNCWRMETRICTAG']._serialized_start=184271 - _globals['_PATTERNFLOWTCPECNCWRMETRICTAG']._serialized_end=184394 - _globals['_PATTERNFLOWTCPECNCWR']._serialized_start=184397 - _globals['_PATTERNFLOWTCPECNCWR']._serialized_end=184787 - _globals['_PATTERNFLOWTCPECNCWR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPECNCWR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNCWR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPECNCWR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNECHOCOUNTER']._serialized_start=184789 - _globals['_PATTERNFLOWTCPECNECHOCOUNTER']._serialized_end=184907 - _globals['_PATTERNFLOWTCPECNECHOMETRICTAG']._serialized_start=184909 - _globals['_PATTERNFLOWTCPECNECHOMETRICTAG']._serialized_end=185033 - _globals['_PATTERNFLOWTCPECNECHO']._serialized_start=185036 - _globals['_PATTERNFLOWTCPECNECHO']._serialized_end=185431 - _globals['_PATTERNFLOWTCPECNECHO_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPECNECHO_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPECNECHO_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPECNECHO_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLURGCOUNTER']._serialized_start=185433 - _globals['_PATTERNFLOWTCPCTLURGCOUNTER']._serialized_end=185550 - _globals['_PATTERNFLOWTCPCTLURGMETRICTAG']._serialized_start=185552 - _globals['_PATTERNFLOWTCPCTLURGMETRICTAG']._serialized_end=185675 - _globals['_PATTERNFLOWTCPCTLURG']._serialized_start=185678 - _globals['_PATTERNFLOWTCPCTLURG']._serialized_end=186068 - _globals['_PATTERNFLOWTCPCTLURG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLURG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLURG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLURG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLACKCOUNTER']._serialized_start=186070 - _globals['_PATTERNFLOWTCPCTLACKCOUNTER']._serialized_end=186187 - _globals['_PATTERNFLOWTCPCTLACKMETRICTAG']._serialized_start=186189 - _globals['_PATTERNFLOWTCPCTLACKMETRICTAG']._serialized_end=186312 - _globals['_PATTERNFLOWTCPCTLACK']._serialized_start=186315 - _globals['_PATTERNFLOWTCPCTLACK']._serialized_end=186705 - _globals['_PATTERNFLOWTCPCTLACK_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLACK_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLACK_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLACK_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLPSHCOUNTER']._serialized_start=186707 - _globals['_PATTERNFLOWTCPCTLPSHCOUNTER']._serialized_end=186824 - _globals['_PATTERNFLOWTCPCTLPSHMETRICTAG']._serialized_start=186826 - _globals['_PATTERNFLOWTCPCTLPSHMETRICTAG']._serialized_end=186949 - _globals['_PATTERNFLOWTCPCTLPSH']._serialized_start=186952 - _globals['_PATTERNFLOWTCPCTLPSH']._serialized_end=187342 - _globals['_PATTERNFLOWTCPCTLPSH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLPSH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLPSH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLPSH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLRSTCOUNTER']._serialized_start=187344 - _globals['_PATTERNFLOWTCPCTLRSTCOUNTER']._serialized_end=187461 - _globals['_PATTERNFLOWTCPCTLRSTMETRICTAG']._serialized_start=187463 - _globals['_PATTERNFLOWTCPCTLRSTMETRICTAG']._serialized_end=187586 - _globals['_PATTERNFLOWTCPCTLRST']._serialized_start=187589 - _globals['_PATTERNFLOWTCPCTLRST']._serialized_end=187979 - _globals['_PATTERNFLOWTCPCTLRST_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLRST_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLRST_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLRST_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLSYNCOUNTER']._serialized_start=187981 - _globals['_PATTERNFLOWTCPCTLSYNCOUNTER']._serialized_end=188098 - _globals['_PATTERNFLOWTCPCTLSYNMETRICTAG']._serialized_start=188100 - _globals['_PATTERNFLOWTCPCTLSYNMETRICTAG']._serialized_end=188223 - _globals['_PATTERNFLOWTCPCTLSYN']._serialized_start=188226 - _globals['_PATTERNFLOWTCPCTLSYN']._serialized_end=188616 - _globals['_PATTERNFLOWTCPCTLSYN_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLSYN_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLSYN_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLSYN_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLFINCOUNTER']._serialized_start=188618 - _globals['_PATTERNFLOWTCPCTLFINCOUNTER']._serialized_end=188735 - _globals['_PATTERNFLOWTCPCTLFINMETRICTAG']._serialized_start=188737 - _globals['_PATTERNFLOWTCPCTLFINMETRICTAG']._serialized_end=188860 - _globals['_PATTERNFLOWTCPCTLFIN']._serialized_start=188863 - _globals['_PATTERNFLOWTCPCTLFIN']._serialized_end=189253 - _globals['_PATTERNFLOWTCPCTLFIN_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPCTLFIN_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCTLFIN_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPCTLFIN_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPWINDOWCOUNTER']._serialized_start=189255 - _globals['_PATTERNFLOWTCPWINDOWCOUNTER']._serialized_end=189372 - _globals['_PATTERNFLOWTCPWINDOWMETRICTAG']._serialized_start=189374 - _globals['_PATTERNFLOWTCPWINDOWMETRICTAG']._serialized_end=189497 - _globals['_PATTERNFLOWTCPWINDOW']._serialized_start=189500 - _globals['_PATTERNFLOWTCPWINDOW']._serialized_end=189890 - _globals['_PATTERNFLOWTCPWINDOW_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWTCPWINDOW_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWTCPWINDOW_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWTCPWINDOW_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWTCPCHECKSUM']._serialized_start=189893 - _globals['_PATTERNFLOWTCPCHECKSUM']._serialized_end=190223 - _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWUDPSRCPORTCOUNTER']._serialized_start=190225 - _globals['_PATTERNFLOWUDPSRCPORTCOUNTER']._serialized_end=190343 - _globals['_PATTERNFLOWUDPSRCPORTMETRICTAG']._serialized_start=190345 - _globals['_PATTERNFLOWUDPSRCPORTMETRICTAG']._serialized_end=190469 - _globals['_PATTERNFLOWUDPSRCPORTRANDOM']._serialized_start=190472 - _globals['_PATTERNFLOWUDPSRCPORTRANDOM']._serialized_end=190611 - _globals['_PATTERNFLOWUDPSRCPORT']._serialized_start=190614 - _globals['_PATTERNFLOWUDPSRCPORT']._serialized_end=191071 - _globals['_PATTERNFLOWUDPSRCPORT_CHOICE']._serialized_start=163729 - _globals['_PATTERNFLOWUDPSRCPORT_CHOICE']._serialized_end=163827 - _globals['_PATTERNFLOWUDPSRCPORT_CHOICE_ENUM']._serialized_start=163739 - _globals['_PATTERNFLOWUDPSRCPORT_CHOICE_ENUM']._serialized_end=163827 - _globals['_PATTERNFLOWUDPDSTPORTCOUNTER']._serialized_start=191073 - _globals['_PATTERNFLOWUDPDSTPORTCOUNTER']._serialized_end=191191 - _globals['_PATTERNFLOWUDPDSTPORTMETRICTAG']._serialized_start=191193 - _globals['_PATTERNFLOWUDPDSTPORTMETRICTAG']._serialized_end=191317 - _globals['_PATTERNFLOWUDPDSTPORTRANDOM']._serialized_start=191320 - _globals['_PATTERNFLOWUDPDSTPORTRANDOM']._serialized_end=191459 - _globals['_PATTERNFLOWUDPDSTPORT']._serialized_start=191462 - _globals['_PATTERNFLOWUDPDSTPORT']._serialized_end=191919 - _globals['_PATTERNFLOWUDPDSTPORT_CHOICE']._serialized_start=163729 - _globals['_PATTERNFLOWUDPDSTPORT_CHOICE']._serialized_end=163827 - _globals['_PATTERNFLOWUDPDSTPORT_CHOICE_ENUM']._serialized_start=163739 - _globals['_PATTERNFLOWUDPDSTPORT_CHOICE_ENUM']._serialized_end=163827 - _globals['_PATTERNFLOWUDPLENGTHCOUNTER']._serialized_start=191921 - _globals['_PATTERNFLOWUDPLENGTHCOUNTER']._serialized_end=192038 - _globals['_PATTERNFLOWUDPLENGTHMETRICTAG']._serialized_start=192040 - _globals['_PATTERNFLOWUDPLENGTHMETRICTAG']._serialized_end=192163 - _globals['_PATTERNFLOWUDPLENGTH']._serialized_start=192166 - _globals['_PATTERNFLOWUDPLENGTH']._serialized_end=192556 - _globals['_PATTERNFLOWUDPLENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWUDPLENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWUDPLENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWUDPLENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWUDPCHECKSUM']._serialized_start=192559 - _globals['_PATTERNFLOWUDPCHECKSUM']._serialized_end=192889 - _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWGRECHECKSUMPRESENTCOUNTER']._serialized_start=192891 - _globals['_PATTERNFLOWGRECHECKSUMPRESENTCOUNTER']._serialized_end=193017 - _globals['_PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG']._serialized_start=193020 - _globals['_PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG']._serialized_end=193152 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT']._serialized_start=193155 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT']._serialized_end=193590 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGRERESERVED0COUNTER']._serialized_start=193592 - _globals['_PATTERNFLOWGRERESERVED0COUNTER']._serialized_end=193712 - _globals['_PATTERNFLOWGRERESERVED0METRICTAG']._serialized_start=193714 - _globals['_PATTERNFLOWGRERESERVED0METRICTAG']._serialized_end=193840 - _globals['_PATTERNFLOWGRERESERVED0']._serialized_start=193843 - _globals['_PATTERNFLOWGRERESERVED0']._serialized_end=194248 - _globals['_PATTERNFLOWGRERESERVED0_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGRERESERVED0_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGRERESERVED0_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGRERESERVED0_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGREVERSIONCOUNTER']._serialized_start=194250 - _globals['_PATTERNFLOWGREVERSIONCOUNTER']._serialized_end=194368 - _globals['_PATTERNFLOWGREVERSIONMETRICTAG']._serialized_start=194370 - _globals['_PATTERNFLOWGREVERSIONMETRICTAG']._serialized_end=194494 - _globals['_PATTERNFLOWGREVERSION']._serialized_start=194497 - _globals['_PATTERNFLOWGREVERSION']._serialized_end=194892 - _globals['_PATTERNFLOWGREVERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGREVERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGREVERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGREVERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGREPROTOCOLCOUNTER']._serialized_start=194894 - _globals['_PATTERNFLOWGREPROTOCOLCOUNTER']._serialized_end=195013 - _globals['_PATTERNFLOWGREPROTOCOLMETRICTAG']._serialized_start=195015 - _globals['_PATTERNFLOWGREPROTOCOLMETRICTAG']._serialized_end=195140 - _globals['_PATTERNFLOWGREPROTOCOL']._serialized_start=195143 - _globals['_PATTERNFLOWGREPROTOCOL']._serialized_end=195543 - _globals['_PATTERNFLOWGREPROTOCOL_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGREPROTOCOL_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGREPROTOCOL_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGREPROTOCOL_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGRECHECKSUM']._serialized_start=195546 - _globals['_PATTERNFLOWGRECHECKSUM']._serialized_end=195876 - _globals['_PATTERNFLOWGRECHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWGRECHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWGRECHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWGRECHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWGRECHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWGRECHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWGRECHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWGRECHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWGRERESERVED1COUNTER']._serialized_start=195878 - _globals['_PATTERNFLOWGRERESERVED1COUNTER']._serialized_end=195998 - _globals['_PATTERNFLOWGRERESERVED1METRICTAG']._serialized_start=196000 - _globals['_PATTERNFLOWGRERESERVED1METRICTAG']._serialized_end=196126 - _globals['_PATTERNFLOWGRERESERVED1']._serialized_start=196129 - _globals['_PATTERNFLOWGRERESERVED1']._serialized_end=196534 - _globals['_PATTERNFLOWGRERESERVED1_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGRERESERVED1_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGRERESERVED1_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGRERESERVED1_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1VERSIONCOUNTER']._serialized_start=196536 - _globals['_PATTERNFLOWGTPV1VERSIONCOUNTER']._serialized_end=196656 - _globals['_PATTERNFLOWGTPV1VERSIONMETRICTAG']._serialized_start=196658 - _globals['_PATTERNFLOWGTPV1VERSIONMETRICTAG']._serialized_end=196784 - _globals['_PATTERNFLOWGTPV1VERSION']._serialized_start=196787 - _globals['_PATTERNFLOWGTPV1VERSION']._serialized_end=197192 - _globals['_PATTERNFLOWGTPV1VERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1VERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1VERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1VERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER']._serialized_start=197194 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER']._serialized_end=197319 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG']._serialized_start=197322 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG']._serialized_end=197453 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE']._serialized_start=197456 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE']._serialized_end=197886 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1RESERVEDCOUNTER']._serialized_start=197888 - _globals['_PATTERNFLOWGTPV1RESERVEDCOUNTER']._serialized_end=198009 - _globals['_PATTERNFLOWGTPV1RESERVEDMETRICTAG']._serialized_start=198011 - _globals['_PATTERNFLOWGTPV1RESERVEDMETRICTAG']._serialized_end=198138 - _globals['_PATTERNFLOWGTPV1RESERVED']._serialized_start=198141 - _globals['_PATTERNFLOWGTPV1RESERVED']._serialized_end=198551 - _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1EFLAGCOUNTER']._serialized_start=198553 - _globals['_PATTERNFLOWGTPV1EFLAGCOUNTER']._serialized_end=198671 - _globals['_PATTERNFLOWGTPV1EFLAGMETRICTAG']._serialized_start=198673 - _globals['_PATTERNFLOWGTPV1EFLAGMETRICTAG']._serialized_end=198797 - _globals['_PATTERNFLOWGTPV1EFLAG']._serialized_start=198800 - _globals['_PATTERNFLOWGTPV1EFLAG']._serialized_end=199195 - _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1SFLAGCOUNTER']._serialized_start=199197 - _globals['_PATTERNFLOWGTPV1SFLAGCOUNTER']._serialized_end=199315 - _globals['_PATTERNFLOWGTPV1SFLAGMETRICTAG']._serialized_start=199317 - _globals['_PATTERNFLOWGTPV1SFLAGMETRICTAG']._serialized_end=199441 - _globals['_PATTERNFLOWGTPV1SFLAG']._serialized_start=199444 - _globals['_PATTERNFLOWGTPV1SFLAG']._serialized_end=199839 - _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1PNFLAGCOUNTER']._serialized_start=199841 - _globals['_PATTERNFLOWGTPV1PNFLAGCOUNTER']._serialized_end=199960 - _globals['_PATTERNFLOWGTPV1PNFLAGMETRICTAG']._serialized_start=199962 - _globals['_PATTERNFLOWGTPV1PNFLAGMETRICTAG']._serialized_end=200087 - _globals['_PATTERNFLOWGTPV1PNFLAG']._serialized_start=200090 - _globals['_PATTERNFLOWGTPV1PNFLAG']._serialized_end=200490 - _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1MESSAGETYPECOUNTER']._serialized_start=200492 - _globals['_PATTERNFLOWGTPV1MESSAGETYPECOUNTER']._serialized_end=200616 - _globals['_PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG']._serialized_start=200619 - _globals['_PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG']._serialized_end=200749 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE']._serialized_start=200752 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE']._serialized_end=201177 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER']._serialized_start=201179 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER']._serialized_end=201305 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG']._serialized_start=201308 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG']._serialized_end=201440 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH']._serialized_start=201443 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH']._serialized_end=201878 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1TEIDCOUNTER']._serialized_start=201880 - _globals['_PATTERNFLOWGTPV1TEIDCOUNTER']._serialized_end=201997 - _globals['_PATTERNFLOWGTPV1TEIDMETRICTAG']._serialized_start=201999 - _globals['_PATTERNFLOWGTPV1TEIDMETRICTAG']._serialized_end=202122 - _globals['_PATTERNFLOWGTPV1TEID']._serialized_start=202125 - _globals['_PATTERNFLOWGTPV1TEID']._serialized_end=202515 - _globals['_PATTERNFLOWGTPV1TEID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1TEID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1TEID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1TEID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER']._serialized_start=202517 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER']._serialized_end=202643 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG']._serialized_start=202646 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG']._serialized_end=202778 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER']._serialized_start=202781 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER']._serialized_end=203216 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1NPDUNUMBERCOUNTER']._serialized_start=203218 - _globals['_PATTERNFLOWGTPV1NPDUNUMBERCOUNTER']._serialized_end=203341 - _globals['_PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG']._serialized_start=203344 - _globals['_PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG']._serialized_end=203473 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER']._serialized_start=203476 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER']._serialized_end=203896 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER']._serialized_start=203899 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER']._serialized_end=204035 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG']._serialized_start=204038 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG']._serialized_end=204180 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE']._serialized_start=204183 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE']._serialized_end=204668 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER']._serialized_start=204671 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER']._serialized_end=204806 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG']._serialized_start=204809 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG']._serialized_end=204950 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH']._serialized_start=204953 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH']._serialized_end=205433 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER']._serialized_start=205436 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER']._serialized_end=205564 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG']._serialized_start=205567 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG']._serialized_end=205701 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS']._serialized_start=205704 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS']._serialized_end=206149 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER']._serialized_start=206152 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER']._serialized_end=206291 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG']._serialized_start=206294 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG']._serialized_end=206439 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER']._serialized_start=206442 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER']._serialized_end=206942 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2VERSIONCOUNTER']._serialized_start=206944 - _globals['_PATTERNFLOWGTPV2VERSIONCOUNTER']._serialized_end=207064 - _globals['_PATTERNFLOWGTPV2VERSIONMETRICTAG']._serialized_start=207066 - _globals['_PATTERNFLOWGTPV2VERSIONMETRICTAG']._serialized_end=207192 - _globals['_PATTERNFLOWGTPV2VERSION']._serialized_start=207195 - _globals['_PATTERNFLOWGTPV2VERSION']._serialized_end=207600 - _globals['_PATTERNFLOWGTPV2VERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2VERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2VERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2VERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER']._serialized_start=207603 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER']._serialized_end=207732 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG']._serialized_start=207735 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG']._serialized_end=207870 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG']._serialized_start=207873 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG']._serialized_end=208323 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2TEIDFLAGCOUNTER']._serialized_start=208325 - _globals['_PATTERNFLOWGTPV2TEIDFLAGCOUNTER']._serialized_end=208446 - _globals['_PATTERNFLOWGTPV2TEIDFLAGMETRICTAG']._serialized_start=208448 - _globals['_PATTERNFLOWGTPV2TEIDFLAGMETRICTAG']._serialized_end=208575 - _globals['_PATTERNFLOWGTPV2TEIDFLAG']._serialized_start=208578 - _globals['_PATTERNFLOWGTPV2TEIDFLAG']._serialized_end=208988 - _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SPARE1COUNTER']._serialized_start=208990 - _globals['_PATTERNFLOWGTPV2SPARE1COUNTER']._serialized_end=209109 - _globals['_PATTERNFLOWGTPV2SPARE1METRICTAG']._serialized_start=209111 - _globals['_PATTERNFLOWGTPV2SPARE1METRICTAG']._serialized_end=209236 - _globals['_PATTERNFLOWGTPV2SPARE1']._serialized_start=209239 - _globals['_PATTERNFLOWGTPV2SPARE1']._serialized_end=209639 - _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2MESSAGETYPECOUNTER']._serialized_start=209641 - _globals['_PATTERNFLOWGTPV2MESSAGETYPECOUNTER']._serialized_end=209765 - _globals['_PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG']._serialized_start=209768 - _globals['_PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG']._serialized_end=209898 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE']._serialized_start=209901 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE']._serialized_end=210326 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER']._serialized_start=210328 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER']._serialized_end=210454 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG']._serialized_start=210457 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG']._serialized_end=210589 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH']._serialized_start=210592 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH']._serialized_end=211027 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2TEIDCOUNTER']._serialized_start=211029 - _globals['_PATTERNFLOWGTPV2TEIDCOUNTER']._serialized_end=211146 - _globals['_PATTERNFLOWGTPV2TEIDMETRICTAG']._serialized_start=211148 - _globals['_PATTERNFLOWGTPV2TEIDMETRICTAG']._serialized_end=211271 - _globals['_PATTERNFLOWGTPV2TEID']._serialized_start=211274 - _globals['_PATTERNFLOWGTPV2TEID']._serialized_end=211664 - _globals['_PATTERNFLOWGTPV2TEID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2TEID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2TEID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2TEID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER']._serialized_start=211666 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER']._serialized_end=211793 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG']._serialized_start=211796 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG']._serialized_end=211929 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER']._serialized_start=211932 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER']._serialized_end=212372 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SPARE2COUNTER']._serialized_start=212374 - _globals['_PATTERNFLOWGTPV2SPARE2COUNTER']._serialized_end=212493 - _globals['_PATTERNFLOWGTPV2SPARE2METRICTAG']._serialized_start=212495 - _globals['_PATTERNFLOWGTPV2SPARE2METRICTAG']._serialized_end=212620 - _globals['_PATTERNFLOWGTPV2SPARE2']._serialized_start=212623 - _globals['_PATTERNFLOWGTPV2SPARE2']._serialized_end=213023 - _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPHARDWARETYPECOUNTER']._serialized_start=213025 - _globals['_PATTERNFLOWARPHARDWARETYPECOUNTER']._serialized_end=213148 - _globals['_PATTERNFLOWARPHARDWARETYPEMETRICTAG']._serialized_start=213151 - _globals['_PATTERNFLOWARPHARDWARETYPEMETRICTAG']._serialized_end=213280 - _globals['_PATTERNFLOWARPHARDWARETYPE']._serialized_start=213283 - _globals['_PATTERNFLOWARPHARDWARETYPE']._serialized_end=213703 - _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPPROTOCOLTYPECOUNTER']._serialized_start=213705 - _globals['_PATTERNFLOWARPPROTOCOLTYPECOUNTER']._serialized_end=213828 - _globals['_PATTERNFLOWARPPROTOCOLTYPEMETRICTAG']._serialized_start=213831 - _globals['_PATTERNFLOWARPPROTOCOLTYPEMETRICTAG']._serialized_end=213960 - _globals['_PATTERNFLOWARPPROTOCOLTYPE']._serialized_start=213963 - _globals['_PATTERNFLOWARPPROTOCOLTYPE']._serialized_end=214383 - _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPHARDWARELENGTHCOUNTER']._serialized_start=214385 - _globals['_PATTERNFLOWARPHARDWARELENGTHCOUNTER']._serialized_end=214510 - _globals['_PATTERNFLOWARPHARDWARELENGTHMETRICTAG']._serialized_start=214513 - _globals['_PATTERNFLOWARPHARDWARELENGTHMETRICTAG']._serialized_end=214644 - _globals['_PATTERNFLOWARPHARDWARELENGTH']._serialized_start=214647 - _globals['_PATTERNFLOWARPHARDWARELENGTH']._serialized_end=215077 - _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPPROTOCOLLENGTHCOUNTER']._serialized_start=215079 - _globals['_PATTERNFLOWARPPROTOCOLLENGTHCOUNTER']._serialized_end=215204 - _globals['_PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG']._serialized_start=215207 - _globals['_PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG']._serialized_end=215338 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH']._serialized_start=215341 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH']._serialized_end=215771 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPOPERATIONCOUNTER']._serialized_start=215773 - _globals['_PATTERNFLOWARPOPERATIONCOUNTER']._serialized_end=215893 - _globals['_PATTERNFLOWARPOPERATIONMETRICTAG']._serialized_start=215895 - _globals['_PATTERNFLOWARPOPERATIONMETRICTAG']._serialized_end=216021 - _globals['_PATTERNFLOWARPOPERATION']._serialized_start=216024 - _globals['_PATTERNFLOWARPOPERATION']._serialized_end=216429 - _globals['_PATTERNFLOWARPOPERATION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPOPERATION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPOPERATION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPOPERATION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER']._serialized_start=216432 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER']._serialized_end=216561 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG']._serialized_start=216564 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG']._serialized_end=216699 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR']._serialized_start=216702 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR']._serialized_end=217152 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER']._serialized_start=217155 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER']._serialized_end=217284 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG']._serialized_start=217287 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG']._serialized_end=217422 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR']._serialized_start=217425 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR']._serialized_end=217875 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER']._serialized_start=217878 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER']._serialized_end=218007 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG']._serialized_start=218010 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG']._serialized_end=218145 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR']._serialized_start=218148 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR']._serialized_end=218598 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER']._serialized_start=218601 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER']._serialized_end=218730 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG']._serialized_start=218733 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG']._serialized_end=218868 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR']._serialized_start=218871 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR']._serialized_end=219321 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOTYPECOUNTER']._serialized_start=219323 - _globals['_PATTERNFLOWICMPECHOTYPECOUNTER']._serialized_end=219443 - _globals['_PATTERNFLOWICMPECHOTYPEMETRICTAG']._serialized_start=219445 - _globals['_PATTERNFLOWICMPECHOTYPEMETRICTAG']._serialized_end=219571 - _globals['_PATTERNFLOWICMPECHOTYPE']._serialized_start=219574 - _globals['_PATTERNFLOWICMPECHOTYPE']._serialized_end=219979 - _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOCODECOUNTER']._serialized_start=219981 - _globals['_PATTERNFLOWICMPECHOCODECOUNTER']._serialized_end=220101 - _globals['_PATTERNFLOWICMPECHOCODEMETRICTAG']._serialized_start=220103 - _globals['_PATTERNFLOWICMPECHOCODEMETRICTAG']._serialized_end=220229 - _globals['_PATTERNFLOWICMPECHOCODE']._serialized_start=220232 - _globals['_PATTERNFLOWICMPECHOCODE']._serialized_end=220637 - _globals['_PATTERNFLOWICMPECHOCODE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPECHOCODE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOCODE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPECHOCODE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOCHECKSUM']._serialized_start=220640 - _globals['_PATTERNFLOWICMPECHOCHECKSUM']._serialized_end=220985 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWICMPECHOIDENTIFIERCOUNTER']._serialized_start=220987 - _globals['_PATTERNFLOWICMPECHOIDENTIFIERCOUNTER']._serialized_end=221113 - _globals['_PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG']._serialized_start=221116 - _globals['_PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG']._serialized_end=221248 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER']._serialized_start=221251 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER']._serialized_end=221686 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER']._serialized_start=221689 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER']._serialized_end=221819 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG']._serialized_start=221822 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG']._serialized_end=221958 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER']._serialized_start=221961 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER']._serialized_end=222416 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM']._serialized_start=222419 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM']._serialized_end=222770 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER']._serialized_start=222773 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER']._serialized_end=222905 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG']._serialized_start=222908 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG']._serialized_end=223046 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER']._serialized_start=223049 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER']._serialized_end=223514 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER']._serialized_start=223517 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER']._serialized_end=223653 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG']._serialized_start=223656 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG']._serialized_end=223798 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER']._serialized_start=223801 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER']._serialized_end=224286 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOTYPECOUNTER']._serialized_start=224288 - _globals['_PATTERNFLOWICMPV6ECHOTYPECOUNTER']._serialized_end=224410 - _globals['_PATTERNFLOWICMPV6ECHOTYPEMETRICTAG']._serialized_start=224413 - _globals['_PATTERNFLOWICMPV6ECHOTYPEMETRICTAG']._serialized_end=224541 - _globals['_PATTERNFLOWICMPV6ECHOTYPE']._serialized_start=224544 - _globals['_PATTERNFLOWICMPV6ECHOTYPE']._serialized_end=224959 - _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOCODECOUNTER']._serialized_start=224961 - _globals['_PATTERNFLOWICMPV6ECHOCODECOUNTER']._serialized_end=225083 - _globals['_PATTERNFLOWICMPV6ECHOCODEMETRICTAG']._serialized_start=225086 - _globals['_PATTERNFLOWICMPV6ECHOCODEMETRICTAG']._serialized_end=225214 - _globals['_PATTERNFLOWICMPV6ECHOCODE']._serialized_start=225217 - _globals['_PATTERNFLOWICMPV6ECHOCODE']._serialized_end=225632 - _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER']._serialized_start=225635 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER']._serialized_end=225763 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG']._serialized_start=225766 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG']._serialized_end=225900 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER']._serialized_start=225903 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER']._serialized_end=226348 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER']._serialized_start=226351 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER']._serialized_end=226483 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG']._serialized_start=226486 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG']._serialized_end=226624 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER']._serialized_start=226627 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER']._serialized_end=227092 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM']._serialized_start=227095 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM']._serialized_end=227446 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM']._serialized_start=227449 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM']._serialized_end=227806 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWPPPADDRESSCOUNTER']._serialized_start=227808 - _globals['_PATTERNFLOWPPPADDRESSCOUNTER']._serialized_end=227926 - _globals['_PATTERNFLOWPPPADDRESSMETRICTAG']._serialized_start=227928 - _globals['_PATTERNFLOWPPPADDRESSMETRICTAG']._serialized_end=228052 - _globals['_PATTERNFLOWPPPADDRESS']._serialized_start=228055 - _globals['_PATTERNFLOWPPPADDRESS']._serialized_end=228450 - _globals['_PATTERNFLOWPPPADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPPPADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPPPADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPPPADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPPPCONTROLCOUNTER']._serialized_start=228452 - _globals['_PATTERNFLOWPPPCONTROLCOUNTER']._serialized_end=228570 - _globals['_PATTERNFLOWPPPCONTROLMETRICTAG']._serialized_start=228572 - _globals['_PATTERNFLOWPPPCONTROLMETRICTAG']._serialized_end=228696 - _globals['_PATTERNFLOWPPPCONTROL']._serialized_start=228699 - _globals['_PATTERNFLOWPPPCONTROL']._serialized_end=229094 - _globals['_PATTERNFLOWPPPCONTROL_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWPPPCONTROL_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWPPPCONTROL_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWPPPCONTROL_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWPPPPROTOCOLTYPECOUNTER']._serialized_start=229096 - _globals['_PATTERNFLOWPPPPROTOCOLTYPECOUNTER']._serialized_end=229219 - _globals['_PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG']._serialized_start=229222 - _globals['_PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG']._serialized_end=229351 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE']._serialized_start=229354 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE']._serialized_end=229812 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWIGMPV1VERSIONCOUNTER']._serialized_start=229814 - _globals['_PATTERNFLOWIGMPV1VERSIONCOUNTER']._serialized_end=229935 - _globals['_PATTERNFLOWIGMPV1VERSIONMETRICTAG']._serialized_start=229937 - _globals['_PATTERNFLOWIGMPV1VERSIONMETRICTAG']._serialized_end=230064 - _globals['_PATTERNFLOWIGMPV1VERSION']._serialized_start=230067 - _globals['_PATTERNFLOWIGMPV1VERSION']._serialized_end=230477 - _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1TYPECOUNTER']._serialized_start=230479 - _globals['_PATTERNFLOWIGMPV1TYPECOUNTER']._serialized_end=230597 - _globals['_PATTERNFLOWIGMPV1TYPEMETRICTAG']._serialized_start=230599 - _globals['_PATTERNFLOWIGMPV1TYPEMETRICTAG']._serialized_end=230723 - _globals['_PATTERNFLOWIGMPV1TYPE']._serialized_start=230726 - _globals['_PATTERNFLOWIGMPV1TYPE']._serialized_end=231121 - _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1UNUSEDCOUNTER']._serialized_start=231123 - _globals['_PATTERNFLOWIGMPV1UNUSEDCOUNTER']._serialized_end=231243 - _globals['_PATTERNFLOWIGMPV1UNUSEDMETRICTAG']._serialized_start=231245 - _globals['_PATTERNFLOWIGMPV1UNUSEDMETRICTAG']._serialized_end=231371 - _globals['_PATTERNFLOWIGMPV1UNUSED']._serialized_start=231374 - _globals['_PATTERNFLOWIGMPV1UNUSED']._serialized_end=231779 - _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1CHECKSUM']._serialized_start=231782 - _globals['_PATTERNFLOWIGMPV1CHECKSUM']._serialized_end=232121 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER']._serialized_start=232123 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER']._serialized_end=232249 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG']._serialized_start=232252 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG']._serialized_end=232384 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS']._serialized_start=232387 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS']._serialized_end=232822 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWMPLSLABELCOUNTER']._serialized_start=232824 - _globals['_PATTERNFLOWMPLSLABELCOUNTER']._serialized_end=232941 - _globals['_PATTERNFLOWMPLSLABELMETRICTAG']._serialized_start=232943 - _globals['_PATTERNFLOWMPLSLABELMETRICTAG']._serialized_end=233066 - _globals['_PATTERNFLOWMPLSLABEL']._serialized_start=233069 - _globals['_PATTERNFLOWMPLSLABEL']._serialized_end=233497 - _globals['_PATTERNFLOWMPLSLABEL_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWMPLSLABEL_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWMPLSLABEL_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWMPLSLABEL_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWMPLSTRAFFICCLASSCOUNTER']._serialized_start=233499 - _globals['_PATTERNFLOWMPLSTRAFFICCLASSCOUNTER']._serialized_end=233623 - _globals['_PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG']._serialized_start=233626 - _globals['_PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG']._serialized_end=233756 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS']._serialized_start=233759 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS']._serialized_end=234184 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER']._serialized_start=234186 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER']._serialized_end=234311 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG']._serialized_start=234314 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG']._serialized_end=234445 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK']._serialized_start=234448 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK']._serialized_end=234916 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE']._serialized_start=137481 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE']._serialized_end=137577 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM']._serialized_end=137577 - _globals['_PATTERNFLOWMPLSTIMETOLIVECOUNTER']._serialized_start=234918 - _globals['_PATTERNFLOWMPLSTIMETOLIVECOUNTER']._serialized_end=235040 - _globals['_PATTERNFLOWMPLSTIMETOLIVEMETRICTAG']._serialized_start=235043 - _globals['_PATTERNFLOWMPLSTIMETOLIVEMETRICTAG']._serialized_end=235171 - _globals['_PATTERNFLOWMPLSTIMETOLIVE']._serialized_start=235174 - _globals['_PATTERNFLOWMPLSTIMETOLIVE']._serialized_end=235589 - _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVERSIONCOUNTER']._serialized_start=235591 - _globals['_PATTERNFLOWSNMPV2CVERSIONCOUNTER']._serialized_end=235713 - _globals['_PATTERNFLOWSNMPV2CVERSION']._serialized_start=235716 - _globals['_PATTERNFLOWSNMPV2CVERSION']._serialized_end=236069 - _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER']._serialized_start=236071 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER']._serialized_end=236198 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID']._serialized_start=236201 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID']._serialized_end=236574 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER']._serialized_start=236577 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER']._serialized_end=236705 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX']._serialized_start=236708 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX']._serialized_end=237085 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER']._serialized_start=237088 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER']._serialized_end=237219 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID']._serialized_start=237222 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID']._serialized_end=237611 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS']._serialized_start=237614 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS']._serialized_end=237845 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE']._serialized_start=237768 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE']._serialized_end=237824 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM']._serialized_end=137537 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER']._serialized_start=237848 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER']._serialized_end=237984 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS']._serialized_start=237987 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS']._serialized_end=238396 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER']._serialized_start=238399 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER']._serialized_end=238546 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE']._serialized_start=238549 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE']._serialized_end=239002 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER']._serialized_start=239005 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER']._serialized_end=239154 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE']._serialized_start=239157 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE']._serialized_end=239618 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER']._serialized_start=239621 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER']._serialized_end=239768 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE']._serialized_start=239771 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE']._serialized_end=240224 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER']._serialized_start=240227 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER']._serialized_end=240376 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE']._serialized_start=240379 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE']._serialized_end=240840 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER']._serialized_start=240843 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER']._serialized_end=240993 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE']._serialized_start=240996 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE']._serialized_end=241461 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER']._serialized_start=241464 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER']._serialized_end=241619 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE']._serialized_start=241622 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE']._serialized_end=242107 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER']._serialized_start=242110 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER']._serialized_end=242240 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID']._serialized_start=242243 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID']._serialized_end=242628 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM']._serialized_start=242631 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM']._serialized_end=242976 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE']._serialized_start=151967 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE']._serialized_end=152027 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE_ENUM']._serialized_start=151977 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE_ENUM']._serialized_end=152027 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED']._serialized_start=152029 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED']._serialized_end=152084 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED_ENUM']._serialized_start=152042 - _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED_ENUM']._serialized_end=152084 - _globals['_PATTERNFLOWRSVPTIMETOLIVECOUNTER']._serialized_start=242978 - _globals['_PATTERNFLOWRSVPTIMETOLIVECOUNTER']._serialized_end=243100 - _globals['_PATTERNFLOWRSVPTIMETOLIVE']._serialized_start=243103 - _globals['_PATTERNFLOWRSVPTIMETOLIVE']._serialized_end=243456 - _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPRESERVEDCOUNTER']._serialized_start=243458 - _globals['_PATTERNFLOWRSVPRESERVEDCOUNTER']._serialized_end=243578 - _globals['_PATTERNFLOWRSVPRESERVED']._serialized_start=243581 - _globals['_PATTERNFLOWRSVPRESERVED']._serialized_end=243926 - _globals['_PATTERNFLOWRSVPRESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPRESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPRESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPRESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESSCOUNTER']._serialized_start=243929 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESSCOUNTER']._serialized_end=244090 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS']._serialized_start=244093 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS']._serialized_end=244602 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVEDCOUNTER']._serialized_start=244605 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVEDCOUNTER']._serialized_end=244749 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED']._serialized_start=244752 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED']._serialized_end=245193 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELIDCOUNTER']._serialized_start=245196 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELIDCOUNTER']._serialized_end=245340 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID']._serialized_start=245343 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID']._serialized_end=245784 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGERCOUNTER']._serialized_start=245787 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGERCOUNTER']._serialized_end=245930 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER']._serialized_start=245933 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER']._serialized_end=246370 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4COUNTER']._serialized_start=246373 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4COUNTER']._serialized_end=246513 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4']._serialized_start=246516 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4']._serialized_end=246941 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESSCOUNTER']._serialized_start=246944 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESSCOUNTER']._serialized_end=247082 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS']._serialized_start=247085 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS']._serialized_end=247502 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLECOUNTER']._serialized_start=247505 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLECOUNTER']._serialized_end=247654 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE']._serialized_start=247657 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE']._serialized_end=248118 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODRCOUNTER']._serialized_start=248121 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODRCOUNTER']._serialized_end=248266 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR']._serialized_start=248269 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR']._serialized_end=248714 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBITCOUNTER']._serialized_start=248717 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBITCOUNTER']._serialized_end=248865 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT']._serialized_start=248868 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT']._serialized_end=249325 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESSCOUNTER']._serialized_start=249328 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESSCOUNTER']._serialized_end=249483 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS']._serialized_start=249486 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS']._serialized_end=249971 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBITCOUNTER']._serialized_start=249974 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBITCOUNTER']._serialized_end=250120 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT']._serialized_start=250123 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT']._serialized_end=250572 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVEDCOUNTER']._serialized_start=250575 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVEDCOUNTER']._serialized_end=250728 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED']._serialized_start=250731 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED']._serialized_end=251208 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PIDCOUNTER']._serialized_start=251211 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PIDCOUNTER']._serialized_end=251361 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID']._serialized_start=251364 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID']._serialized_end=251829 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESSCOUNTER']._serialized_start=251832 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESSCOUNTER']._serialized_end=251998 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS']._serialized_start=252001 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS']._serialized_end=252530 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVEDCOUNTER']._serialized_start=252533 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVEDCOUNTER']._serialized_end=252684 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED']._serialized_start=252687 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED']._serialized_end=253156 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPIDCOUNTER']._serialized_start=253159 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPIDCOUNTER']._serialized_end=253307 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID']._serialized_start=253310 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID']._serialized_end=253767 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSIONCOUNTER']._serialized_start=253770 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSIONCOUNTER']._serialized_end=253911 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION']._serialized_start=253914 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION']._serialized_end=254343 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1COUNTER']._serialized_start=254346 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1COUNTER']._serialized_end=254489 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1']._serialized_start=254492 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1']._serialized_end=254929 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTHCOUNTER']._serialized_start=254932 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTHCOUNTER']._serialized_end=255079 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH']._serialized_start=255082 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH']._serialized_end=255535 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADERCOUNTER']._serialized_start=255538 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADERCOUNTER']._serialized_end=255685 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER']._serialized_start=255688 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER']._serialized_end=256141 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBITCOUNTER']._serialized_start=256144 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBITCOUNTER']._serialized_end=256285 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT']._serialized_start=256288 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT']._serialized_end=256717 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2COUNTER']._serialized_start=256720 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2COUNTER']._serialized_end=256863 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2']._serialized_start=256866 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2']._serialized_end=257303 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATACOUNTER']._serialized_start=257306 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATACOUNTER']._serialized_end=257459 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA']._serialized_start=257462 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA']._serialized_end=257939 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPECCOUNTER']._serialized_start=257942 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPECCOUNTER']._serialized_end=258103 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC']._serialized_start=258106 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC']._serialized_end=258615 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAGCOUNTER']._serialized_start=258618 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAGCOUNTER']._serialized_end=258768 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG']._serialized_start=258771 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG']._serialized_end=259236 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTHCOUNTER']._serialized_start=259239 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTHCOUNTER']._serialized_end=259391 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH']._serialized_start=259394 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH']._serialized_end=259867 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNITCOUNTER']._serialized_start=259870 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNITCOUNTER']._serialized_end=260022 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT']._serialized_start=260025 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT']._serialized_end=260498 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZECOUNTER']._serialized_start=260501 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZECOUNTER']._serialized_end=260652 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE']._serialized_start=260655 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE']._serialized_end=261124 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESSCOUNTER']._serialized_start=261127 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESSCOUNTER']._serialized_end=261281 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS']._serialized_start=261284 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS']._serialized_end=261765 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTHCOUNTER']._serialized_start=261768 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTHCOUNTER']._serialized_end=261923 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH']._serialized_start=261926 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH']._serialized_end=262411 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE_ENUM']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS']._serialized_start=262414 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS']._serialized_end=262661 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE']._serialized_start=237768 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE']._serialized_end=237824 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE_ENUM']._serialized_end=137537 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE']._serialized_start=262664 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE']._serialized_end=262911 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE']._serialized_start=237768 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE']._serialized_end=237824 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE_ENUM']._serialized_start=137491 - _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE_ENUM']._serialized_end=137537 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPECOUNTER']._serialized_start=262914 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPECOUNTER']._serialized_end=263047 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE']._serialized_start=263050 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE']._serialized_end=263447 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE']._serialized_start=138151 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE']._serialized_end=138237 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE_ENUM']._serialized_start=138161 - _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE_ENUM']._serialized_end=138237 - _globals['_VERSION']._serialized_start=263450 - _globals['_VERSION']._serialized_end=263595 - _globals['_SUCCESS']._serialized_start=263597 - _globals['_SUCCESS']._serialized_end=263637 - _globals['_FAILURE']._serialized_start=263639 - _globals['_FAILURE']._serialized_end=263675 - _globals['_SETCONFIGREQUEST']._serialized_start=263677 - _globals['_SETCONFIGREQUEST']._serialized_end=263724 - _globals['_UPDATECONFIGREQUEST']._serialized_start=263726 - _globals['_UPDATECONFIGREQUEST']._serialized_end=263789 - _globals['_SETCONFIGRESPONSE']._serialized_start=263791 - _globals['_SETCONFIGRESPONSE']._serialized_end=263841 - _globals['_GETCONFIGRESPONSE']._serialized_start=263843 - _globals['_GETCONFIGRESPONSE']._serialized_end=263891 - _globals['_UPDATECONFIGRESPONSE']._serialized_start=263893 - _globals['_UPDATECONFIGRESPONSE']._serialized_end=263946 - _globals['_SETCONTROLSTATEREQUEST']._serialized_start=263948 - _globals['_SETCONTROLSTATEREQUEST']._serialized_end=264014 - _globals['_SETCONTROLSTATERESPONSE']._serialized_start=264016 - _globals['_SETCONTROLSTATERESPONSE']._serialized_end=264072 - _globals['_SETCONTROLACTIONREQUEST']._serialized_start=264074 - _globals['_SETCONTROLACTIONREQUEST']._serialized_end=264143 - _globals['_SETCONTROLACTIONRESPONSE']._serialized_start=264145 - _globals['_SETCONTROLACTIONRESPONSE']._serialized_end=264232 - _globals['_GETMETRICSREQUEST']._serialized_start=264234 - _globals['_GETMETRICSREQUEST']._serialized_end=264299 - _globals['_GETMETRICSRESPONSE']._serialized_start=264301 - _globals['_GETMETRICSRESPONSE']._serialized_end=264369 - _globals['_GETSTATESREQUEST']._serialized_start=264371 - _globals['_GETSTATESREQUEST']._serialized_end=264433 - _globals['_GETSTATESRESPONSE']._serialized_start=264435 - _globals['_GETSTATESRESPONSE']._serialized_end=264500 - _globals['_GETCAPTUREREQUEST']._serialized_start=264502 - _globals['_GETCAPTUREREQUEST']._serialized_end=264567 - _globals['_GETCAPTURERESPONSE']._serialized_start=264569 - _globals['_GETCAPTURERESPONSE']._serialized_end=264613 - _globals['_GETVERSIONRESPONSE']._serialized_start=264615 - _globals['_GETVERSIONRESPONSE']._serialized_end=264666 - _globals['_OPENAPI']._serialized_start=264669 - _globals['_OPENAPI']._serialized_end=265276 + _globals['_DEVICEETHERNET']._serialized_end=2197 + _globals['_ETHERNETCONNECTION']._serialized_start=2200 + _globals['_ETHERNETCONNECTION']._serialized_end=2483 + _globals['_ETHERNETCONNECTION_CHOICE']._serialized_start=2352 + _globals['_ETHERNETCONNECTION_CHOICE']._serialized_end=2430 + _globals['_ETHERNETCONNECTION_CHOICE_ENUM']._serialized_start=2362 + _globals['_ETHERNETCONNECTION_CHOICE_ENUM']._serialized_end=2430 + _globals['_DEVICEVLAN']._serialized_start=2486 + _globals['_DEVICEVLAN']._serialized_end=2729 + _globals['_DEVICEVLAN_TPID']._serialized_start=2605 + _globals['_DEVICEVLAN_TPID']._serialized_end=2691 + _globals['_DEVICEVLAN_TPID_ENUM']._serialized_start=2613 + _globals['_DEVICEVLAN_TPID_ENUM']._serialized_end=2691 + _globals['_DEVICEIPV4']._serialized_start=2732 + _globals['_DEVICEIPV4']._serialized_end=2920 + _globals['_DEVICEIPV4LOOPBACK']._serialized_start=2922 + _globals['_DEVICEIPV4LOOPBACK']._serialized_end=3040 + _globals['_DEVICEIPV4GATEWAYMAC']._serialized_start=3043 + _globals['_DEVICEIPV4GATEWAYMAC']._serialized_end=3250 + _globals['_DEVICEIPV4GATEWAYMAC_CHOICE']._serialized_start=3166 + _globals['_DEVICEIPV4GATEWAYMAC_CHOICE']._serialized_end=3220 + _globals['_DEVICEIPV4GATEWAYMAC_CHOICE_ENUM']._serialized_start=3176 + _globals['_DEVICEIPV4GATEWAYMAC_CHOICE_ENUM']._serialized_end=3220 + _globals['_DEVICEIPV6']._serialized_start=3253 + _globals['_DEVICEIPV6']._serialized_end=3441 + _globals['_DEVICEIPV6LOOPBACK']._serialized_start=3443 + _globals['_DEVICEIPV6LOOPBACK']._serialized_end=3561 + _globals['_DEVICEIPV6GATEWAYMAC']._serialized_start=3564 + _globals['_DEVICEIPV6GATEWAYMAC']._serialized_end=3771 + _globals['_DEVICEIPV6GATEWAYMAC_CHOICE']._serialized_start=3166 + _globals['_DEVICEIPV6GATEWAYMAC_CHOICE']._serialized_end=3220 + _globals['_DEVICEIPV6GATEWAYMAC_CHOICE_ENUM']._serialized_start=3176 + _globals['_DEVICEIPV6GATEWAYMAC_CHOICE_ENUM']._serialized_end=3220 + _globals['_DEVICEDHCPV4CLIENT']._serialized_start=3774 + _globals['_DEVICEDHCPV4CLIENT']._serialized_end=4108 + _globals['_DEVICEDHCPV4CLIENT_CHOICE']._serialized_start=3984 + _globals['_DEVICEDHCPV4CLIENT_CHOICE']._serialized_end=4055 + _globals['_DEVICEDHCPV4CLIENT_CHOICE_ENUM']._serialized_start=3994 + _globals['_DEVICEDHCPV4CLIENT_CHOICE_ENUM']._serialized_end=4055 + _globals['_DHCPV4CLIENTPARAMS']._serialized_start=4111 + _globals['_DHCPV4CLIENTPARAMS']._serialized_end=4301 + _globals['_DEVICEDHCPV6CLIENT']._serialized_start=4304 + _globals['_DEVICEDHCPV6CLIENT']._serialized_end=4609 + _globals['_DEVICEDHCPV6CLIENTOPTIONSREQUEST']._serialized_start=4612 + _globals['_DEVICEDHCPV6CLIENTOPTIONSREQUEST']._serialized_end=4793 + _globals['_DEVICEDHCPV6CLIENTOPTIONS']._serialized_start=4796 + _globals['_DEVICEDHCPV6CLIENTOPTIONS']._serialized_end=5052 + _globals['_DEVICEDHCPV6CLIENTIATYPE']._serialized_start=5055 + _globals['_DEVICEDHCPV6CLIENTIATYPE']._serialized_end=5385 + _globals['_DEVICEDHCPV6CLIENTIATYPE_CHOICE']._serialized_start=5299 + _globals['_DEVICEDHCPV6CLIENTIATYPE_CHOICE']._serialized_end=5374 + _globals['_DEVICEDHCPV6CLIENTIATYPE_CHOICE_ENUM']._serialized_start=5309 + _globals['_DEVICEDHCPV6CLIENTIATYPE_CHOICE_ENUM']._serialized_end=5374 + _globals['_DEVICEDHCPV6CLIENTIATIMEVALUE']._serialized_start=5387 + _globals['_DEVICEDHCPV6CLIENTIATIMEVALUE']._serialized_end=5466 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE']._serialized_start=5469 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE']._serialized_end=5767 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE_CHOICE']._serialized_start=5698 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE_CHOICE']._serialized_end=5756 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE_CHOICE_ENUM']._serialized_start=5708 + _globals['_DEVICEDHCPV6CLIENTDUIDTYPE_CHOICE_ENUM']._serialized_end=5756 + _globals['_DEVICEDHCPV6CLIENTDUIDVALUE']._serialized_start=5769 + _globals['_DEVICEDHCPV6CLIENTDUIDVALUE']._serialized_end=5882 + _globals['_DEVICEDHCPV6CLIENTNODUID']._serialized_start=5884 + _globals['_DEVICEDHCPV6CLIENTNODUID']._serialized_end=5910 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER']._serialized_start=5913 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER']._serialized_end=6328 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER_CHOICE']._serialized_start=6229 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER_CHOICE']._serialized_end=6317 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER_CHOICE_ENUM']._serialized_start=6239 + _globals['_DHCPV6CLIENTOPTIONSSERVERIDENTIFIER_CHOICE_ENUM']._serialized_end=6317 + _globals['_DHCPV6CLIENTOPTIONSDUIDLLT']._serialized_start=6330 + _globals['_DHCPV6CLIENTOPTIONSDUIDLLT']._serialized_end=6456 + _globals['_DHCPV6CLIENTOPTIONSDUIDEN']._serialized_start=6458 + _globals['_DHCPV6CLIENTOPTIONSDUIDEN']._serialized_end=6579 + _globals['_DHCPV6CLIENTOPTIONSDUIDLL']._serialized_start=6581 + _globals['_DHCPV6CLIENTOPTIONSDUIDLL']._serialized_end=6678 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUID']._serialized_start=6681 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUID']._serialized_end=7100 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION']._serialized_start=7103 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION']._serialized_end=7304 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION_CHOICE']._serialized_start=7215 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION_CHOICE']._serialized_end=7293 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION_CHOICE_ENUM']._serialized_start=7225 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVERSION_CHOICE_ENUM']._serialized_end=7293 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT']._serialized_start=7307 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT']._serialized_end=7509 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT_CHOICE']._serialized_start=7419 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT_CHOICE']._serialized_end=7498 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT_CHOICE_ENUM']._serialized_start=7429 + _globals['_DHCPV6CLIENTOPTIONSDUIDUUIDVARIANT_CHOICE_ENUM']._serialized_end=7498 + _globals['_DHCPV6CLIENTOPTIONSLINKLAYERADDRESS']._serialized_start=7511 + _globals['_DHCPV6CLIENTOPTIONSLINKLAYERADDRESS']._serialized_end=7578 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST']._serialized_start=7581 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST']._serialized_end=7875 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST_CHOICE']._serialized_start=7739 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST_CHOICE']._serialized_end=7864 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST_CHOICE_ENUM']._serialized_start=7749 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUEST_CHOICE_ENUM']._serialized_end=7864 + _globals['_DHCPV6CLIENTOPTIONSCUSTOM']._serialized_start=7877 + _globals['_DHCPV6CLIENTOPTIONSCUSTOM']._serialized_end=7932 + _globals['_DHCPV6CLIENTOPTIONSVENDORCLASS']._serialized_start=7935 + _globals['_DHCPV6CLIENTOPTIONSVENDORCLASS']._serialized_end=8117 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES']._serialized_start=8120 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES']._serialized_end=8386 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES_CHOICE']._serialized_start=8318 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES_CHOICE']._serialized_end=8375 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_start=8328 + _globals['_DHCPV6CLIENTOPTIONSOPTIONSREQUESTINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_end=8375 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES']._serialized_start=8389 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES']._serialized_end=8627 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES_CHOICE']._serialized_start=8318 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES_CHOICE']._serialized_end=8375 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_start=8328 + _globals['_DHCPV6CLIENTOPTIONSINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_end=8375 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE']._serialized_start=8630 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE']._serialized_end=8860 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE_CHOICE']._serialized_start=8734 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE_CHOICE']._serialized_end=8849 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE_CHOICE_ENUM']._serialized_start=8744 + _globals['_DHCPV6CLIENTOPTIONSMESSAGETYPE_CHOICE_ENUM']._serialized_end=8849 + _globals['_DHCPV6CLIENTOPTIONSVENDORINFO']._serialized_start=8863 + _globals['_DHCPV6CLIENTOPTIONSVENDORINFO']._serialized_end=9086 + _globals['_DHCPV6SERVEROPTIONSVENDORINFO']._serialized_start=9089 + _globals['_DHCPV6SERVEROPTIONSVENDORINFO']._serialized_end=9312 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES']._serialized_start=9315 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES']._serialized_end=9553 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES_CHOICE']._serialized_start=8318 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES_CHOICE']._serialized_end=8375 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_start=8328 + _globals['_DHCPV6SERVEROPTIONSINCLUDEDMESSAGES_CHOICE_ENUM']._serialized_end=8375 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE']._serialized_start=9556 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE']._serialized_end=9748 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE_CHOICE']._serialized_start=9660 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE_CHOICE']._serialized_end=9737 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE_CHOICE_ENUM']._serialized_start=9670 + _globals['_DHCPV6SERVEROPTIONSMESSAGETYPE_CHOICE_ENUM']._serialized_end=9737 + _globals['_DHCPV6OPTIONSVENDORSPECIFICOPTIONS']._serialized_start=9750 + _globals['_DHCPV6OPTIONSVENDORSPECIFICOPTIONS']._serialized_end=9842 + _globals['_DHCPV6CLIENTOPTIONSFQDN']._serialized_start=9845 + _globals['_DHCPV6CLIENTOPTIONSFQDN']._serialized_end=10084 + _globals['_DHCPV6SERVEROPTIONSBOOTFILEURL']._serialized_start=10087 + _globals['_DHCPV6SERVEROPTIONSBOOTFILEURL']._serialized_end=10286 + _globals['_DHCPV6SERVEROPTIONSBOOTFILEPARAMS']._serialized_start=10288 + _globals['_DHCPV6SERVEROPTIONSBOOTFILEPARAMS']._serialized_end=10361 + _globals['_LAYER1']._serialized_start=10364 + _globals['_LAYER1']._serialized_end=11170 + _globals['_LAYER1_SPEED']._serialized_start=10709 + _globals['_LAYER1_SPEED']._serialized_end=11006 + _globals['_LAYER1_SPEED_ENUM']._serialized_start=10719 + _globals['_LAYER1_SPEED_ENUM']._serialized_end=11006 + _globals['_LAYER1_MEDIA']._serialized_start=11008 + _globals['_LAYER1_MEDIA']._serialized_end=11074 + _globals['_LAYER1_MEDIA_ENUM']._serialized_start=11017 + _globals['_LAYER1_MEDIA_ENUM']._serialized_end=11074 + _globals['_LAYER1AUTONEGOTIATION']._serialized_start=11173 + _globals['_LAYER1AUTONEGOTIATION']._serialized_end=11576 + _globals['_LAYER1FLOWCONTROL']._serialized_start=11579 + _globals['_LAYER1FLOWCONTROL']._serialized_end=11879 + _globals['_LAYER1FLOWCONTROL_CHOICE']._serialized_start=11778 + _globals['_LAYER1FLOWCONTROL_CHOICE']._serialized_end=11847 + _globals['_LAYER1FLOWCONTROL_CHOICE_ENUM']._serialized_start=11788 + _globals['_LAYER1FLOWCONTROL_CHOICE_ENUM']._serialized_end=11847 + _globals['_LAYER1IEEE8023X']._serialized_start=11881 + _globals['_LAYER1IEEE8023X']._serialized_end=11898 + _globals['_LAYER1IEEE8021QBB']._serialized_start=11901 + _globals['_LAYER1IEEE8021QBB']._serialized_end=12294 + _globals['_CAPTURE']._serialized_start=12297 + _globals['_CAPTURE']._serialized_end=12586 + _globals['_CAPTURE_FORMAT']._serialized_start=12481 + _globals['_CAPTURE_FORMAT']._serialized_end=12536 + _globals['_CAPTURE_FORMAT_ENUM']._serialized_start=12491 + _globals['_CAPTURE_FORMAT_ENUM']._serialized_end=12536 + _globals['_CAPTUREFILTER']._serialized_start=12589 + _globals['_CAPTUREFILTER']._serialized_end=12931 + _globals['_CAPTUREFILTER_CHOICE']._serialized_start=12831 + _globals['_CAPTUREFILTER_CHOICE']._serialized_end=12920 + _globals['_CAPTUREFILTER_CHOICE_ENUM']._serialized_start=12841 + _globals['_CAPTUREFILTER_CHOICE_ENUM']._serialized_end=12920 + _globals['_CAPTURECUSTOM']._serialized_start=12934 + _globals['_CAPTURECUSTOM']._serialized_end=13111 + _globals['_CAPTUREFIELD']._serialized_start=13113 + _globals['_CAPTUREFIELD']._serialized_end=13217 + _globals['_CAPTUREETHERNET']._serialized_start=13220 + _globals['_CAPTUREETHERNET']._serialized_end=13378 + _globals['_CAPTUREVLAN']._serialized_start=13381 + _globals['_CAPTUREVLAN']._serialized_end=13531 + _globals['_CAPTUREIPV4']._serialized_start=13534 + _globals['_CAPTUREIPV4']._serialized_end=14098 + _globals['_CAPTUREIPV6']._serialized_start=14101 + _globals['_CAPTUREIPV6']._serialized_end=14416 + _globals['_DEVICE']._serialized_start=14419 + _globals['_DEVICE']._serialized_end=14773 + _globals['_PROTOCOLOPTIONS']._serialized_start=14775 + _globals['_PROTOCOLOPTIONS']._serialized_end=14840 + _globals['_DEVICEISISROUTER']._serialized_start=14843 + _globals['_DEVICEISISROUTER']._serialized_end=15213 + _globals['_DEVICEISISMULTIINSTANCE']._serialized_start=15215 + _globals['_DEVICEISISMULTIINSTANCE']._serialized_end=15281 + _globals['_ISISINTERFACE']._serialized_start=15284 + _globals['_ISISINTERFACE']._serialized_end=16069 + _globals['_ISISINTERFACE_NETWORKTYPE']._serialized_start=15852 + _globals['_ISISINTERFACE_NETWORKTYPE']._serialized_end=15925 + _globals['_ISISINTERFACE_NETWORKTYPE_ENUM']._serialized_start=15867 + _globals['_ISISINTERFACE_NETWORKTYPE_ENUM']._serialized_end=15925 + _globals['_ISISINTERFACE_LEVELTYPE']._serialized_start=15927 + _globals['_ISISINTERFACE_LEVELTYPE']._serialized_end=16004 + _globals['_ISISINTERFACE_LEVELTYPE_ENUM']._serialized_start=15940 + _globals['_ISISINTERFACE_LEVELTYPE_ENUM']._serialized_end=16004 + _globals['_ISISINTERFACELEVEL']._serialized_start=16072 + _globals['_ISISINTERFACELEVEL']._serialized_end=16222 + _globals['_ISISMT']._serialized_start=16224 + _globals['_ISISMT']._serialized_end=16304 + _globals['_LINKSTATETE']._serialized_start=16307 + _globals['_LINKSTATETE']._serialized_end=16599 + _globals['_LINKSTATEPRIORITYBANDWIDTHS']._serialized_start=16602 + _globals['_LINKSTATEPRIORITYBANDWIDTHS']._serialized_end=16839 + _globals['_ISISINTERFACEAUTHENTICATION']._serialized_start=16842 + _globals['_ISISINTERFACEAUTHENTICATION']._serialized_end=17079 + _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE']._serialized_start=16986 + _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE']._serialized_end=17044 + _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM']._serialized_start=16998 + _globals['_ISISINTERFACEAUTHENTICATION_AUTHTYPE_ENUM']._serialized_end=17044 + _globals['_ISISINTERFACEADVANCED']._serialized_start=17082 + _globals['_ISISINTERFACEADVANCED']._serialized_end=17421 + _globals['_ISISINTERFACELINKPROTECTION']._serialized_start=17424 + _globals['_ISISINTERFACELINKPROTECTION']._serialized_end=17801 + _globals['_ISISBASIC']._serialized_start=17804 + _globals['_ISISBASIC']._serialized_end=18017 + _globals['_ISISADVANCED']._serialized_start=18020 + _globals['_ISISADVANCED']._serialized_end=18542 + _globals['_ISISAUTHENTICATION']._serialized_start=18545 + _globals['_ISISAUTHENTICATION']._serialized_end=18719 + _globals['_ISISAUTHENTICATIONBASE']._serialized_start=18722 + _globals['_ISISAUTHENTICATIONBASE']._serialized_end=18949 + _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE']._serialized_start=16986 + _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE']._serialized_end=17044 + _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM']._serialized_start=16998 + _globals['_ISISAUTHENTICATIONBASE_AUTHTYPE_ENUM']._serialized_end=17044 + _globals['_ISISV4ROUTERANGE']._serialized_start=18952 + _globals['_ISISV4ROUTERANGE']._serialized_end=19552 + _globals['_ISISV4ROUTERANGE_ORIGINTYPE']._serialized_start=19300 + _globals['_ISISV4ROUTERANGE_ORIGINTYPE']._serialized_end=19365 + _globals['_ISISV4ROUTERANGE_ORIGINTYPE_ENUM']._serialized_start=19314 + _globals['_ISISV4ROUTERANGE_ORIGINTYPE_ENUM']._serialized_end=19365 + _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_start=19367 + _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_end=19430 + _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_start=19389 + _globals['_ISISV4ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_end=19430 + _globals['_V4ROUTEADDRESS']._serialized_start=19555 + _globals['_V4ROUTEADDRESS']._serialized_end=19695 + _globals['_V6ROUTEADDRESS']._serialized_start=19698 + _globals['_V6ROUTEADDRESS']._serialized_end=19838 + _globals['_MACROUTEADDRESS']._serialized_start=19841 + _globals['_MACROUTEADDRESS']._serialized_end=19982 + _globals['_ISISV6ROUTERANGE']._serialized_start=19985 + _globals['_ISISV6ROUTERANGE']._serialized_end=20585 + _globals['_ISISV6ROUTERANGE_ORIGINTYPE']._serialized_start=19300 + _globals['_ISISV6ROUTERANGE_ORIGINTYPE']._serialized_end=19365 + _globals['_ISISV6ROUTERANGE_ORIGINTYPE_ENUM']._serialized_start=19314 + _globals['_ISISV6ROUTERANGE_ORIGINTYPE_ENUM']._serialized_end=19365 + _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_start=19367 + _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE']._serialized_end=19430 + _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_start=19389 + _globals['_ISISV6ROUTERANGE_REDISTRIBUTIONTYPE_ENUM']._serialized_end=19430 + _globals['_DEVICEBGPROUTER']._serialized_start=20588 + _globals['_DEVICEBGPROUTER']._serialized_end=20735 + _globals['_DEVICEBGPMESSAGEHEADERERROR']._serialized_start=20738 + _globals['_DEVICEBGPMESSAGEHEADERERROR']._serialized_end=21010 + _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE']._serialized_start=20839 + _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE']._serialized_end=20998 + _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM']._serialized_start=20851 + _globals['_DEVICEBGPMESSAGEHEADERERROR_SUBCODE_ENUM']._serialized_end=20998 + _globals['_DEVICEBGPOPENMESSAGEERROR']._serialized_start=21013 + _globals['_DEVICEBGPOPENMESSAGEERROR']._serialized_end=21439 + _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE']._serialized_start=21110 + _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE']._serialized_end=21427 + _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM']._serialized_start=21122 + _globals['_DEVICEBGPOPENMESSAGEERROR_SUBCODE_ENUM']._serialized_end=21427 + _globals['_DEVICEBGPUPDATEMESSAGEERROR']._serialized_start=21442 + _globals['_DEVICEBGPUPDATEMESSAGEERROR']._serialized_end=22046 + _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE']._serialized_start=21543 + _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE']._serialized_end=22034 + _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM']._serialized_start=21555 + _globals['_DEVICEBGPUPDATEMESSAGEERROR_SUBCODE_ENUM']._serialized_end=22034 + _globals['_DEVICEBGPHOLDTIMEREXPIRED']._serialized_start=22048 + _globals['_DEVICEBGPHOLDTIMEREXPIRED']._serialized_end=22075 + _globals['_DEVICEBGPFINITESTATEMACHINEERROR']._serialized_start=22077 + _globals['_DEVICEBGPFINITESTATEMACHINEERROR']._serialized_end=22111 + _globals['_DEVICEBGPCEASEERROR']._serialized_start=22114 + _globals['_DEVICEBGPCEASEERROR']._serialized_end=22597 + _globals['_DEVICEBGPCEASEERROR_SUBCODE']._serialized_start=22199 + _globals['_DEVICEBGPCEASEERROR_SUBCODE']._serialized_end=22585 + _globals['_DEVICEBGPCEASEERROR_SUBCODE_ENUM']._serialized_start=22211 + _globals['_DEVICEBGPCEASEERROR_SUBCODE_ENUM']._serialized_end=22585 + _globals['_DEVICEBGPCUSTOMERROR']._serialized_start=22599 + _globals['_DEVICEBGPCUSTOMERROR']._serialized_end=22683 + _globals['_BGPV4PEER']._serialized_start=22686 + _globals['_BGPV4PEER']._serialized_end=23550 + _globals['_BGPV4PEER_ASTYPE']._serialized_start=23364 + _globals['_BGPV4PEER_ASTYPE']._serialized_end=23417 + _globals['_BGPV4PEER_ASTYPE_ENUM']._serialized_start=23374 + _globals['_BGPV4PEER_ASTYPE_ENUM']._serialized_end=23417 + _globals['_BGPV4PEER_ASNUMBERWIDTH']._serialized_start=23419 + _globals['_BGPV4PEER_ASNUMBERWIDTH']._serialized_end=23478 + _globals['_BGPV4PEER_ASNUMBERWIDTH_ENUM']._serialized_start=23436 + _globals['_BGPV4PEER_ASNUMBERWIDTH_ENUM']._serialized_end=23478 + _globals['_BGPV4INTERFACE']._serialized_start=23552 + _globals['_BGPV4INTERFACE']._serialized_end=23637 + _globals['_BGPV4ETHERNETSEGMENT']._serialized_start=23640 + _globals['_BGPV4ETHERNETSEGMENT']._serialized_end=24136 + _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE']._serialized_start=24026 + _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE']._serialized_end=24098 + _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_start=24040 + _globals['_BGPV4ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_end=24098 + _globals['_BGPETHERNETSEGMENTDFELECTION']._serialized_start=24138 + _globals['_BGPETHERNETSEGMENTDFELECTION']._serialized_end=24216 + _globals['_BGPROUTEADVANCED']._serialized_start=24219 + _globals['_BGPROUTEADVANCED']._serialized_end=24693 + _globals['_BGPROUTEADVANCED_ORIGIN']._serialized_start=24480 + _globals['_BGPROUTEADVANCED_ORIGIN']._serialized_end=24547 + _globals['_BGPROUTEADVANCED_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPROUTEADVANCED_ORIGIN_ENUM']._serialized_end=24547 + _globals['_BGPCOMMUNITY']._serialized_start=24696 + _globals['_BGPCOMMUNITY']._serialized_end=24988 + _globals['_BGPCOMMUNITY_TYPE']._serialized_start=24809 + _globals['_BGPCOMMUNITY_TYPE']._serialized_end=24951 + _globals['_BGPCOMMUNITY_TYPE_ENUM']._serialized_start=24818 + _globals['_BGPCOMMUNITY_TYPE_ENUM']._serialized_end=24951 + _globals['_BGPEXTCOMMUNITY']._serialized_start=24991 + _globals['_BGPEXTCOMMUNITY']._serialized_end=25496 + _globals['_BGPEXTCOMMUNITY_TYPE']._serialized_start=25139 + _globals['_BGPEXTCOMMUNITY_TYPE']._serialized_end=25327 + _globals['_BGPEXTCOMMUNITY_TYPE_ENUM']._serialized_start=25148 + _globals['_BGPEXTCOMMUNITY_TYPE_ENUM']._serialized_end=25327 + _globals['_BGPEXTCOMMUNITY_SUBTYPE']._serialized_start=25330 + _globals['_BGPEXTCOMMUNITY_SUBTYPE']._serialized_end=25465 + _globals['_BGPEXTCOMMUNITY_SUBTYPE_ENUM']._serialized_start=25341 + _globals['_BGPEXTCOMMUNITY_SUBTYPE_ENUM']._serialized_end=25465 + _globals['_BGPASPATH']._serialized_start=25499 + _globals['_BGPASPATH']._serialized_end=25817 + _globals['_BGPASPATH_ASSETMODE']._serialized_start=25611 + _globals['_BGPASPATH_ASSETMODE']._serialized_end=25801 + _globals['_BGPASPATH_ASSETMODE_ENUM']._serialized_start=25625 + _globals['_BGPASPATH_ASSETMODE_ENUM']._serialized_end=25801 + _globals['_BGPASPATHSEGMENT']._serialized_start=25820 + _globals['_BGPASPATHSEGMENT']._serialized_end=26014 + _globals['_BGPASPATHSEGMENT_TYPE']._serialized_start=25912 + _globals['_BGPASPATHSEGMENT_TYPE']._serialized_end=26005 + _globals['_BGPASPATHSEGMENT_TYPE_ENUM']._serialized_start=25920 + _globals['_BGPASPATHSEGMENT_TYPE_ENUM']._serialized_end=26005 + _globals['_BGPV4EVPNEVIS']._serialized_start=26017 + _globals['_BGPV4EVPNEVIS']._serialized_end=26185 + _globals['_BGPV4EVPNEVIS_CHOICE']._serialized_start=26126 + _globals['_BGPV4EVPNEVIS_CHOICE']._serialized_end=26174 + _globals['_BGPV4EVPNEVIS_CHOICE_ENUM']._serialized_start=26136 + _globals['_BGPV4EVPNEVIS_CHOICE_ENUM']._serialized_end=26174 + _globals['_BGPV4EVIVXLAN']._serialized_start=26188 + _globals['_BGPV4EVIVXLAN']._serialized_end=26927 + _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE']._serialized_start=26811 + _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE']._serialized_end=26878 + _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_start=26830 + _globals['_BGPV4EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_end=26878 + _globals['_BGPV4EVIVXLANBROADCASTDOMAIN']._serialized_start=26930 + _globals['_BGPV4EVIVXLANBROADCASTDOMAIN']._serialized_end=27110 + _globals['_BGPCMACIPRANGE']._serialized_start=27113 + _globals['_BGPCMACIPRANGE']._serialized_end=27579 + _globals['_BGPROUTEDISTINGUISHER']._serialized_start=27582 + _globals['_BGPROUTEDISTINGUISHER']._serialized_end=27862 + _globals['_BGPROUTEDISTINGUISHER_RDTYPE']._serialized_start=27729 + _globals['_BGPROUTEDISTINGUISHER_RDTYPE']._serialized_end=27810 + _globals['_BGPROUTEDISTINGUISHER_RDTYPE_ENUM']._serialized_start=27739 + _globals['_BGPROUTEDISTINGUISHER_RDTYPE_ENUM']._serialized_end=27810 + _globals['_BGPROUTETARGET']._serialized_start=27865 + _globals['_BGPROUTETARGET']._serialized_end=28067 + _globals['_BGPROUTETARGET_RTTYPE']._serialized_start=27961 + _globals['_BGPROUTETARGET_RTTYPE']._serialized_end=28042 + _globals['_BGPROUTETARGET_RTTYPE_ENUM']._serialized_start=27739 + _globals['_BGPROUTETARGET_RTTYPE_ENUM']._serialized_end=27810 + _globals['_BGPADVANCED']._serialized_start=28070 + _globals['_BGPADVANCED']._serialized_end=28457 + _globals['_BGPCAPABILITY']._serialized_start=28460 + _globals['_BGPCAPABILITY']._serialized_end=29757 + _globals['_BGPLEARNEDINFORMATIONFILTER']._serialized_start=29760 + _globals['_BGPLEARNEDINFORMATIONFILTER']._serialized_end=29905 + _globals['_BGPV4ROUTERANGE']._serialized_start=29908 + _globals['_BGPV4ROUTERANGE']._serialized_end=30696 + _globals['_BGPV4ROUTERANGE_NEXTHOPMODE']._serialized_start=30460 + _globals['_BGPV4ROUTERANGE_NEXTHOPMODE']._serialized_end=30524 + _globals['_BGPV4ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_start=30475 + _globals['_BGPV4ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_end=30524 + _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_start=30526 + _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_end=30591 + _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=30548 + _globals['_BGPV4ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=30591 + _globals['_BGPADDPATH']._serialized_start=30698 + _globals['_BGPADDPATH']._serialized_end=30744 + _globals['_BGPEXTENDEDCOMMUNITY']._serialized_start=30747 + _globals['_BGPEXTENDEDCOMMUNITY']._serialized_end=31630 + _globals['_BGPEXTENDEDCOMMUNITY_CHOICE']._serialized_start=31388 + _globals['_BGPEXTENDEDCOMMUNITY_CHOICE']._serialized_end=31619 + _globals['_BGPEXTENDEDCOMMUNITY_CHOICE_ENUM']._serialized_start=31399 + _globals['_BGPEXTENDEDCOMMUNITY_CHOICE_ENUM']._serialized_end=31619 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_start=31633 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_end=31792 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_start=31795 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_end=31954 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_start=31957 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_end=32361 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=32265 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_start=32364 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_end=32530 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_start=32533 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_end=32699 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_start=32702 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_end=33118 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_start=32265 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_start=33121 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_end=33280 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_start=33283 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_end=33442 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_start=33445 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_end=33849 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_start=32265 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_start=33851 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_end=33958 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_start=33961 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_end=34094 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_start=34097 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_end=34477 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_start=34387 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_end=34466 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_start=34397 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_end=34466 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC']._serialized_start=34479 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPEROUTERMAC']._serialized_end=34568 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE']._serialized_start=34571 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE']._serialized_end=34841 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE']._serialized_start=34773 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE']._serialized_end=34830 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM']._serialized_start=34783 + _globals['_BGPEXTENDEDCOMMUNITYTRANSITIVEEVPNTYPE_CHOICE_ENUM']._serialized_end=34830 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_start=34844 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_end=34992 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_start=34995 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_end=35298 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=35226 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=35287 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=35236 + _globals['_BGPEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=35287 + _globals['_BGPEXTENDEDCOMMUNITYCUSTOMTYPE']._serialized_start=35301 + _globals['_BGPEXTENDEDCOMMUNITYCUSTOMTYPE']._serialized_end=35465 + _globals['_BGPV6ROUTERANGE']._serialized_start=35468 + _globals['_BGPV6ROUTERANGE']._serialized_end=36256 + _globals['_BGPV6ROUTERANGE_NEXTHOPMODE']._serialized_start=30460 + _globals['_BGPV6ROUTERANGE_NEXTHOPMODE']._serialized_end=30524 + _globals['_BGPV6ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_start=30475 + _globals['_BGPV6ROUTERANGE_NEXTHOPMODE_ENUM']._serialized_end=30524 + _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_start=30526 + _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE']._serialized_end=30591 + _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=30548 + _globals['_BGPV6ROUTERANGE_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=30591 + _globals['_BGPSRTEV4POLICY']._serialized_start=36259 + _globals['_BGPSRTEV4POLICY']._serialized_end=37150 + _globals['_BGPSRTEV4POLICY_NEXTHOPMODE']._serialized_start=30460 + _globals['_BGPSRTEV4POLICY_NEXTHOPMODE']._serialized_end=30524 + _globals['_BGPSRTEV4POLICY_NEXTHOPMODE_ENUM']._serialized_start=30475 + _globals['_BGPSRTEV4POLICY_NEXTHOPMODE_ENUM']._serialized_end=30524 + _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE']._serialized_start=30526 + _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE']._serialized_end=30591 + _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=30548 + _globals['_BGPSRTEV4POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=30591 + _globals['_BGPSRTEV4TUNNELTLV']._serialized_start=37153 + _globals['_BGPSRTEV4TUNNELTLV']._serialized_end=37719 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV']._serialized_start=37722 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV']._serialized_end=38040 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY']._serialized_start=37913 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY']._serialized_end=37973 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM']._serialized_start=30548 + _globals['_BGPSRTEREMOTEENDPOINTSUBTLV_ADDRESSFAMILY_ENUM']._serialized_end=30591 + _globals['_BGPSRTECOLORSUBTLV']._serialized_start=38042 + _globals['_BGPSRTECOLORSUBTLV']._serialized_end=38092 + _globals['_BGPSRTEBINDINGSUBTLV']._serialized_start=38095 + _globals['_BGPSRTEBINDINGSUBTLV']._serialized_end=38457 + _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE']._serialized_start=38291 + _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE']._serialized_end=38382 + _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM']._serialized_start=38309 + _globals['_BGPSRTEBINDINGSUBTLV_BINDINGSIDTYPE_ENUM']._serialized_end=38382 + _globals['_BGPSRTEPREFERENCESUBTLV']._serialized_start=38459 + _globals['_BGPSRTEPREFERENCESUBTLV']._serialized_end=38524 + _globals['_BGPSRTEPOLICYPRIORITYSUBTLV']._serialized_start=38526 + _globals['_BGPSRTEPOLICYPRIORITYSUBTLV']._serialized_end=38605 + _globals['_BGPSRTEPOLICYNAMESUBTLV']._serialized_start=38607 + _globals['_BGPSRTEPOLICYNAMESUBTLV']._serialized_end=38674 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV']._serialized_start=38677 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV']._serialized_end=39019 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY']._serialized_start=38831 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY']._serialized_end=38988 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM']._serialized_start=38859 + _globals['_BGPSRTEEXPLICITNULLLABELPOLICYSUBTLV_EXPLICITNULLLABELPOLICY_ENUM']._serialized_end=38988 + _globals['_BGPSRTESEGMENTLIST']._serialized_start=39022 + _globals['_BGPSRTESEGMENTLIST']._serialized_end=39173 + _globals['_BGPSRTESEGMENT']._serialized_start=39176 + _globals['_BGPSRTESEGMENT']._serialized_end=40036 + _globals['_BGPSRTESEGMENT_SEGMENTTYPE']._serialized_start=39828 + _globals['_BGPSRTESEGMENT_SEGMENTTYPE']._serialized_end=39999 + _globals['_BGPSRTESEGMENT_SEGMENTTYPE_ENUM']._serialized_start=39844 + _globals['_BGPSRTESEGMENT_SEGMENTTYPE_ENUM']._serialized_end=39999 + _globals['_BGPSRTESRMPLSSID']._serialized_start=40039 + _globals['_BGPSRTESRMPLSSID']._serialized_end=40167 + _globals['_BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_start=40170 + _globals['_BGPSRTESRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_end=40372 + _globals['_BGPSRTESEGMENTATYPESUBTLV']._serialized_start=40375 + _globals['_BGPSRTESEGMENTATYPESUBTLV']._serialized_end=40542 + _globals['_BGPSRTESEGMENTBTYPESUBTLV']._serialized_start=40545 + _globals['_BGPSRTESEGMENTBTYPESUBTLV']._serialized_end=40723 + _globals['_BGPSRTESEGMENTCTYPESUBTLV']._serialized_start=40726 + _globals['_BGPSRTESEGMENTCTYPESUBTLV']._serialized_end=40925 + _globals['_BGPSRTESEGMENTDTYPESUBTLV']._serialized_start=40928 + _globals['_BGPSRTESEGMENTDTYPESUBTLV']._serialized_end=41127 + _globals['_BGPSRTESEGMENTETYPESUBTLV']._serialized_start=41130 + _globals['_BGPSRTESEGMENTETYPESUBTLV']._serialized_end=41341 + _globals['_BGPSRTESEGMENTFTYPESUBTLV']._serialized_start=41344 + _globals['_BGPSRTESEGMENTFTYPESUBTLV']._serialized_end=41559 + _globals['_BGPSRTESEGMENTGTYPESUBTLV']._serialized_start=41562 + _globals['_BGPSRTESEGMENTGTYPESUBTLV']._serialized_end=41911 + _globals['_BGPSRTESEGMENTHTYPESUBTLV']._serialized_start=41914 + _globals['_BGPSRTESEGMENTHTYPESUBTLV']._serialized_end=42129 + _globals['_BGPSRTESEGMENTITYPESUBTLV']._serialized_start=42132 + _globals['_BGPSRTESEGMENTITYPESUBTLV']._serialized_end=42364 + _globals['_BGPSRTESEGMENTJTYPESUBTLV']._serialized_start=42367 + _globals['_BGPSRTESEGMENTJTYPESUBTLV']._serialized_end=42837 + _globals['_BGPSRTESEGMENTKTYPESUBTLV']._serialized_start=42840 + _globals['_BGPSRTESEGMENTKTYPESUBTLV']._serialized_end=43176 + _globals['_BGPSRTEV6POLICY']._serialized_start=43179 + _globals['_BGPSRTEV6POLICY']._serialized_end=44069 + _globals['_BGPSRTEV6POLICY_NEXTHOPMODE']._serialized_start=30460 + _globals['_BGPSRTEV6POLICY_NEXTHOPMODE']._serialized_end=30524 + _globals['_BGPSRTEV6POLICY_NEXTHOPMODE_ENUM']._serialized_start=30475 + _globals['_BGPSRTEV6POLICY_NEXTHOPMODE_ENUM']._serialized_end=30524 + _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE']._serialized_start=30526 + _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE']._serialized_end=30591 + _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_start=30548 + _globals['_BGPSRTEV6POLICY_NEXTHOPADDRESSTYPE_ENUM']._serialized_end=30591 + _globals['_BGPSRTEV6TUNNELTLV']._serialized_start=44072 + _globals['_BGPSRTEV6TUNNELTLV']._serialized_end=44638 + _globals['_BGPGRACEFULRESTART']._serialized_start=44641 + _globals['_BGPGRACEFULRESTART']._serialized_end=44825 + _globals['_BGPUPDATEREPLAY']._serialized_start=44828 + _globals['_BGPUPDATEREPLAY']._serialized_end=45068 + _globals['_BGPUPDATEREPLAY_CHOICE']._serialized_start=44988 + _globals['_BGPUPDATEREPLAY_CHOICE']._serialized_end=45057 + _globals['_BGPUPDATEREPLAY_CHOICE_ENUM']._serialized_start=44998 + _globals['_BGPUPDATEREPLAY_CHOICE_ENUM']._serialized_end=45057 + _globals['_BGPRAWBYTES']._serialized_start=45070 + _globals['_BGPRAWBYTES']._serialized_end=45125 + _globals['_BGPONEUPDATEREPLAY']._serialized_start=45127 + _globals['_BGPONEUPDATEREPLAY']._serialized_end=45227 + _globals['_BGPSTRUCTUREDPDUS']._serialized_start=45229 + _globals['_BGPSTRUCTUREDPDUS']._serialized_end=45300 + _globals['_BGPONESTRUCTUREDUPDATEREPLAY']._serialized_start=45303 + _globals['_BGPONESTRUCTUREDUPDATEREPLAY']._serialized_end=45550 + _globals['_BGPONETRADITIONALNLRIPREFIX']._serialized_start=45553 + _globals['_BGPONETRADITIONALNLRIPREFIX']._serialized_end=45691 + _globals['_BGPONEIPV4NLRIPREFIX']._serialized_start=45694 + _globals['_BGPONEIPV4NLRIPREFIX']._serialized_end=45825 + _globals['_BGPONEIPV6NLRIPREFIX']._serialized_start=45828 + _globals['_BGPONEIPV6NLRIPREFIX']._serialized_end=45959 + _globals['_BGPNLRIPREFIXPATHID']._serialized_start=45961 + _globals['_BGPNLRIPREFIXPATHID']._serialized_end=46012 + _globals['_BGPIPV4SRPOLICYNLRIPREFIX']._serialized_start=46015 + _globals['_BGPIPV4SRPOLICYNLRIPREFIX']._serialized_end=46154 + _globals['_BGPIPV6SRPOLICYNLRIPREFIX']._serialized_start=46157 + _globals['_BGPIPV6SRPOLICYNLRIPREFIX']._serialized_end=46296 + _globals['_BGPATTRIBUTES']._serialized_start=46299 + _globals['_BGPATTRIBUTES']._serialized_end=47306 + _globals['_BGPATTRIBUTES_ORIGIN']._serialized_start=24480 + _globals['_BGPATTRIBUTES_ORIGIN']._serialized_end=24547 + _globals['_BGPATTRIBUTES_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPATTRIBUTES_ORIGIN_ENUM']._serialized_end=24547 + _globals['_BGPATTRIBUTESOTHERATTRIBUTE']._serialized_start=47309 + _globals['_BGPATTRIBUTESOTHERATTRIBUTE']._serialized_end=47604 + _globals['_BGPATTRIBUTESASPATH']._serialized_start=47607 + _globals['_BGPATTRIBUTESASPATH']._serialized_end=47910 + _globals['_BGPATTRIBUTESASPATH_CHOICE']._serialized_start=47821 + _globals['_BGPATTRIBUTESASPATH_CHOICE']._serialized_end=47899 + _globals['_BGPATTRIBUTESASPATH_CHOICE_ENUM']._serialized_start=47831 + _globals['_BGPATTRIBUTESASPATH_CHOICE_ENUM']._serialized_end=47899 + _globals['_BGPATTRIBUTESASPATHFOURBYTEASPATH']._serialized_start=47912 + _globals['_BGPATTRIBUTESASPATHFOURBYTEASPATH']._serialized_end=48006 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT']._serialized_start=48009 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT']._serialized_end=48239 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE']._serialized_start=25912 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE']._serialized_end=26005 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_start=25920 + _globals['_BGPATTRIBUTESFOURBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_end=26005 + _globals['_BGPATTRIBUTESASPATHTWOBYTEASPATH']._serialized_start=48241 + _globals['_BGPATTRIBUTESASPATHTWOBYTEASPATH']._serialized_end=48333 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT']._serialized_start=48336 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT']._serialized_end=48564 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE']._serialized_start=25912 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE']._serialized_end=26005 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_start=25920 + _globals['_BGPATTRIBUTESTWOBYTEASPATHSEGMENT_TYPE_ENUM']._serialized_end=26005 + _globals['_BGPATTRIBUTESAS4PATH']._serialized_start=48566 + _globals['_BGPATTRIBUTESAS4PATH']._serialized_end=48647 + _globals['_BGPATTRIBUTESAGGREGATOR']._serialized_start=48650 + _globals['_BGPATTRIBUTESAGGREGATOR']._serialized_end=48949 + _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE']._serialized_start=48820 + _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE']._serialized_end=48888 + _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE_ENUM']._serialized_start=48830 + _globals['_BGPATTRIBUTESAGGREGATOR_CHOICE_ENUM']._serialized_end=48888 + _globals['_BGPATTRIBUTESAS4AGGREGATOR']._serialized_start=48951 + _globals['_BGPATTRIBUTESAS4AGGREGATOR']._serialized_end=49055 + _globals['_BGPATTRIBUTESCOMMUNITY']._serialized_start=49058 + _globals['_BGPATTRIBUTESCOMMUNITY']._serialized_end=49363 + _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE']._serialized_start=49208 + _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE']._serialized_end=49352 + _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE_ENUM']._serialized_start=49219 + _globals['_BGPATTRIBUTESCOMMUNITY_CHOICE_ENUM']._serialized_end=49352 + _globals['_BGPATTRIBUTESCUSTOMCOMMUNITY']._serialized_start=49365 + _globals['_BGPATTRIBUTESCUSTOMCOMMUNITY']._serialized_end=49465 + _globals['_BGPATTRIBUTESNEXTHOP']._serialized_start=49468 + _globals['_BGPATTRIBUTESNEXTHOP']._serialized_end=49767 + _globals['_BGPATTRIBUTESNEXTHOP_CHOICE']._serialized_start=49661 + _globals['_BGPATTRIBUTESNEXTHOP_CHOICE']._serialized_end=49738 + _globals['_BGPATTRIBUTESNEXTHOP_CHOICE_ENUM']._serialized_start=49671 + _globals['_BGPATTRIBUTESNEXTHOP_CHOICE_ENUM']._serialized_end=49738 + _globals['_BGPATTRIBUTESNEXTHOPIPV6TWOADDRESSES']._serialized_start=49769 + _globals['_BGPATTRIBUTESNEXTHOPIPV6TWOADDRESSES']._serialized_end=49869 + _globals['_BGPATTRIBUTESMPREACHNLRI']._serialized_start=49872 + _globals['_BGPATTRIBUTESMPREACHNLRI']._serialized_end=50335 + _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE']._serialized_start=50217 + _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE']._serialized_end=50324 + _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE_ENUM']._serialized_start=50227 + _globals['_BGPATTRIBUTESMPREACHNLRI_CHOICE_ENUM']._serialized_end=50324 + _globals['_BGPATTRIBUTESMPUNREACHNLRI']._serialized_start=50338 + _globals['_BGPATTRIBUTESMPUNREACHNLRI']._serialized_end=50760 + _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE']._serialized_start=50217 + _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE']._serialized_end=50324 + _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE_ENUM']._serialized_start=50227 + _globals['_BGPATTRIBUTESMPUNREACHNLRI_CHOICE_ENUM']._serialized_end=50324 + _globals['_BGPATTRIBUTESMULTIEXITDISCRIMINATOR']._serialized_start=50762 + _globals['_BGPATTRIBUTESMULTIEXITDISCRIMINATOR']._serialized_end=50829 + _globals['_BGPATTRIBUTESLOCALPREFERENCE']._serialized_start=50831 + _globals['_BGPATTRIBUTESLOCALPREFERENCE']._serialized_end=50891 + _globals['_BGPATTRIBUTESORIGINATORID']._serialized_start=50893 + _globals['_BGPATTRIBUTESORIGINATORID']._serialized_end=50950 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION']._serialized_start=50953 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION']._serialized_end=51179 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE']._serialized_start=51120 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE']._serialized_end=51168 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE_ENUM']._serialized_start=51130 + _globals['_BGPATTRIBUTESTUNNELENCAPSULATION_CHOICE_ENUM']._serialized_end=51168 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICY']._serialized_start=51182 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICY']._serialized_end=51738 + _globals['_BGPATTRIBUTESBSID']._serialized_start=51741 + _globals['_BGPATTRIBUTESBSID']._serialized_end=51967 + _globals['_BGPATTRIBUTESBSID_CHOICE']._serialized_start=51903 + _globals['_BGPATTRIBUTESBSID_CHOICE']._serialized_end=51956 + _globals['_BGPATTRIBUTESBSID_CHOICE_ENUM']._serialized_start=51913 + _globals['_BGPATTRIBUTESBSID_CHOICE_ENUM']._serialized_end=51956 + _globals['_BGPATTRIBUTESBSIDMPLS']._serialized_start=51970 + _globals['_BGPATTRIBUTESBSIDMPLS']._serialized_end=52170 + _globals['_BGPATTRIBUTESBSIDSRV6']._serialized_start=52173 + _globals['_BGPATTRIBUTESBSIDSRV6']._serialized_end=52366 + _globals['_BGPATTRIBUTESSRV6BSID']._serialized_start=52369 + _globals['_BGPATTRIBUTESSRV6BSID']._serialized_end=52743 + _globals['_BGPATTRIBUTESSIDMPLS']._serialized_start=52746 + _globals['_BGPATTRIBUTESSIDMPLS']._serialized_end=52906 + _globals['_BGPATTRIBUTESSIDSRV6']._serialized_start=52908 + _globals['_BGPATTRIBUTESSIDSRV6']._serialized_end=52954 + _globals['_BGPATTRIBUTESSRPOLICYPREFERENCE']._serialized_start=52956 + _globals['_BGPATTRIBUTESSRPOLICYPREFERENCE']._serialized_end=53019 + _globals['_BGPATTRIBUTESSRPOLICYPRIORITY']._serialized_start=53021 + _globals['_BGPATTRIBUTESSRPOLICYPRIORITY']._serialized_end=53082 + _globals['_BGPATTRIBUTESSRPOLICYPOLICYCANDIDATENAME']._serialized_start=53084 + _globals['_BGPATTRIBUTESSRPOLICYPOLICYCANDIDATENAME']._serialized_end=53156 + _globals['_BGPATTRIBUTESSRPOLICYPOLICYNAME']._serialized_start=53158 + _globals['_BGPATTRIBUTESSRPOLICYPOLICYNAME']._serialized_end=53221 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY']._serialized_start=53224 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY']._serialized_end=53473 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE']._serialized_start=53346 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE']._serialized_end=53462 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE_ENUM']._serialized_start=53356 + _globals['_BGPATTRIBUTESSRPOLICYEXPLICITNULLPOLICY_CHOICE_ENUM']._serialized_end=53462 + _globals['_BGPATTRIBUTESSRPOLICYSEGMENTLIST']._serialized_start=53476 + _globals['_BGPATTRIBUTESSRPOLICYSEGMENTLIST']._serialized_end=53659 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTWEIGHT']._serialized_start=53661 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTWEIGHT']._serialized_end=53743 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT']._serialized_start=53746 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT']._serialized_end=54741 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE']._serialized_start=54564 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE']._serialized_end=54730 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE_ENUM']._serialized_start=39844 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSEGMENTLISTSEGMENT_CHOICE_ENUM']._serialized_end=39999 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEA']._serialized_start=54744 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEA']._serialized_end=54893 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEB']._serialized_start=54896 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEB']._serialized_end=55143 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEC']._serialized_start=55146 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEC']._serialized_end=55396 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPED']._serialized_start=55399 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPED']._serialized_end=55649 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEE']._serialized_start=55652 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEE']._serialized_end=55914 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEF']._serialized_start=55917 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEF']._serialized_end=56183 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEG']._serialized_start=56186 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEG']._serialized_end=56586 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEH']._serialized_start=56589 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEH']._serialized_end=56855 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEI']._serialized_start=56858 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEI']._serialized_end=57212 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEJ']._serialized_start=57215 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEJ']._serialized_end=57763 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEK']._serialized_start=57766 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEK']._serialized_end=58180 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEFLAGS']._serialized_start=58183 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYTYPEFLAGS']._serialized_end=58355 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_start=58358 + _globals['_BGPATTRIBUTESSEGMENTROUTINGPOLICYSRV6SIDENDPOINTBEHAVIORANDSTRUCTURE']._serialized_end=58642 + _globals['_BGPNLRIPREFIXSEGMENTROUTINGDISTINGUISHER']._serialized_start=58644 + _globals['_BGPNLRIPREFIXSEGMENTROUTINGDISTINGUISHER']._serialized_end=58716 + _globals['_BGPV6PEER']._serialized_start=58719 + _globals['_BGPV6PEER']._serialized_end=59634 + _globals['_BGPV6PEER_ASTYPE']._serialized_start=23364 + _globals['_BGPV6PEER_ASTYPE']._serialized_end=23417 + _globals['_BGPV6PEER_ASTYPE_ENUM']._serialized_start=23374 + _globals['_BGPV6PEER_ASTYPE_ENUM']._serialized_end=23417 + _globals['_BGPV6PEER_ASNUMBERWIDTH']._serialized_start=23419 + _globals['_BGPV6PEER_ASNUMBERWIDTH']._serialized_end=23478 + _globals['_BGPV6PEER_ASNUMBERWIDTH_ENUM']._serialized_start=23436 + _globals['_BGPV6PEER_ASNUMBERWIDTH_ENUM']._serialized_end=23478 + _globals['_BGPV6INTERFACE']._serialized_start=59636 + _globals['_BGPV6INTERFACE']._serialized_end=59721 + _globals['_BGPV6SEGMENTROUTING']._serialized_start=59724 + _globals['_BGPV6SEGMENTROUTING']._serialized_end=60221 + _globals['_BGPV6ETHERNETSEGMENT']._serialized_start=60224 + _globals['_BGPV6ETHERNETSEGMENT']._serialized_end=60720 + _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE']._serialized_start=24026 + _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE']._serialized_end=24098 + _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_start=24040 + _globals['_BGPV6ETHERNETSEGMENT_ACTIVEMODE_ENUM']._serialized_end=24098 + _globals['_BGPV6EVPNEVIS']._serialized_start=60723 + _globals['_BGPV6EVPNEVIS']._serialized_end=60891 + _globals['_BGPV6EVPNEVIS_CHOICE']._serialized_start=26126 + _globals['_BGPV6EVPNEVIS_CHOICE']._serialized_end=26174 + _globals['_BGPV6EVPNEVIS_CHOICE_ENUM']._serialized_start=26136 + _globals['_BGPV6EVPNEVIS_CHOICE_ENUM']._serialized_end=26174 + _globals['_BGPV6EVIVXLAN']._serialized_start=60894 + _globals['_BGPV6EVIVXLAN']._serialized_end=61633 + _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE']._serialized_start=26811 + _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE']._serialized_end=26878 + _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_start=26830 + _globals['_BGPV6EVIVXLAN_REPLICATIONTYPE_ENUM']._serialized_end=26878 + _globals['_BGPV6EVIVXLANBROADCASTDOMAIN']._serialized_start=61636 + _globals['_BGPV6EVIVXLANBROADCASTDOMAIN']._serialized_end=61816 + _globals['_DEVICEVXLAN']._serialized_start=61818 + _globals['_DEVICEVXLAN']._serialized_end=61911 + _globals['_VXLANV4TUNNEL']._serialized_start=61914 + _globals['_VXLANV4TUNNEL']._serialized_end=62101 + _globals['_VXLANV6TUNNEL']._serialized_start=62104 + _globals['_VXLANV6TUNNEL']._serialized_end=62291 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE']._serialized_start=62294 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE']._serialized_end=62596 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE']._serialized_start=62524 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE']._serialized_end=62585 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_start=62534 + _globals['_VXLANV4TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_end=62585 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE']._serialized_start=62599 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE']._serialized_end=62901 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE']._serialized_start=62524 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE']._serialized_end=62585 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_start=62534 + _globals['_VXLANV6TUNNELDESTINATIONIPMODE_CHOICE_ENUM']._serialized_end=62585 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICAST']._serialized_start=62903 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICAST']._serialized_end=63005 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICAST']._serialized_start=63007 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICAST']._serialized_end=63109 + _globals['_VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE']._serialized_start=63112 + _globals['_VXLANTUNNELDESTINATIONIPMODEUNICASTARPSUPPRESSIONCACHE']._serialized_end=63262 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_start=63265 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_end=63458 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_start=63461 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEUNICASTVTEP']._serialized_end=63654 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEMULTICAST']._serialized_start=63656 + _globals['_VXLANV4TUNNELDESTINATIONIPMODEMULTICAST']._serialized_end=63731 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEMULTICAST']._serialized_start=63733 + _globals['_VXLANV6TUNNELDESTINATIONIPMODEMULTICAST']._serialized_end=63808 + _globals['_DEVICERSVP']._serialized_start=63811 + _globals['_DEVICERSVP']._serialized_end=63956 + _globals['_RSVPIPV4INTERFACE']._serialized_start=63959 + _globals['_RSVPIPV4INTERFACE']._serialized_end=64540 + _globals['_RSVPLSPIPV4INTERFACE']._serialized_start=64543 + _globals['_RSVPLSPIPV4INTERFACE']._serialized_end=64751 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP']._serialized_start=64754 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP']._serialized_end=65251 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE']._serialized_start=65039 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE']._serialized_end=65131 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM']._serialized_start=65059 + _globals['_RSVPLSPIPV4INTERFACEP2PEGRESSIPV4LSP_RESERVATIONSTYLE_ENUM']._serialized_end=65131 + _globals['_RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP']._serialized_start=65254 + _globals['_RSVPLSPIPV4INTERFACEP2PINGRESSIPV4LSP']._serialized_end=65809 + _globals['_RSVPSESSIONATTRIBUTE']._serialized_start=65812 + _globals['_RSVPSESSIONATTRIBUTE']._serialized_end=66436 + _globals['_RSVPRESOURCEAFFINITIES']._serialized_start=66439 + _globals['_RSVPRESOURCEAFFINITIES']._serialized_end=66589 + _globals['_RSVPTSPEC']._serialized_start=66592 + _globals['_RSVPTSPEC']._serialized_end=66879 + _globals['_RSVPFASTREROUTE']._serialized_start=66882 + _globals['_RSVPFASTREROUTE']._serialized_end=67337 + _globals['_RSVPERO']._serialized_start=67340 + _globals['_RSVPERO']._serialized_end=67636 + _globals['_RSVPERO_PREPENDNEIGHBORIP']._serialized_start=67493 + _globals['_RSVPERO_PREPENDNEIGHBORIP']._serialized_end=67594 + _globals['_RSVPERO_PREPENDNEIGHBORIP_ENUM']._serialized_start=67514 + _globals['_RSVPERO_PREPENDNEIGHBORIP_ENUM']._serialized_end=67594 + _globals['_RSVPEROSUBOBJECT']._serialized_start=67639 + _globals['_RSVPEROSUBOBJECT']._serialized_end=68035 + _globals['_RSVPEROSUBOBJECT_TYPE']._serialized_start=67849 + _globals['_RSVPEROSUBOBJECT_TYPE']._serialized_end=67905 + _globals['_RSVPEROSUBOBJECT_TYPE_ENUM']._serialized_start=67857 + _globals['_RSVPEROSUBOBJECT_TYPE_ENUM']._serialized_end=67905 + _globals['_RSVPEROSUBOBJECT_HOPTYPE']._serialized_start=67907 + _globals['_RSVPEROSUBOBJECT_HOPTYPE']._serialized_end=67964 + _globals['_RSVPEROSUBOBJECT_HOPTYPE_ENUM']._serialized_start=67918 + _globals['_RSVPEROSUBOBJECT_HOPTYPE_ENUM']._serialized_end=67964 + _globals['_DEVICEDHCPSERVER']._serialized_start=68037 + _globals['_DEVICEDHCPSERVER']._serialized_end=68143 + _globals['_DHCPSERVERV4']._serialized_start=68145 + _globals['_DHCPSERVERV4']._serialized_end=68271 + _globals['_DHCPSERVERV4POOL']._serialized_start=68274 + _globals['_DHCPSERVERV4POOL']._serialized_end=68556 + _globals['_DHCPSERVERV4POOLOPTION']._serialized_start=68559 + _globals['_DHCPSERVERV4POOLOPTION']._serialized_end=68811 + _globals['_DHCPSERVERV6']._serialized_start=68814 + _globals['_DHCPSERVERV6']._serialized_end=69095 + _globals['_DHCPV6SERVEROPTIONS']._serialized_start=69098 + _globals['_DHCPV6SERVEROPTIONS']._serialized_end=69270 + _globals['_DHCPV6SERVERLEASE']._serialized_start=69272 + _globals['_DHCPV6SERVERLEASE']._serialized_end=69373 + _globals['_DHCPV6SERVERIATYPE']._serialized_start=69376 + _globals['_DHCPV6SERVERIATYPE']._serialized_end=69718 + _globals['_DHCPV6SERVERIATYPE_CHOICE']._serialized_start=5299 + _globals['_DHCPV6SERVERIATYPE_CHOICE']._serialized_end=5374 + _globals['_DHCPV6SERVERIATYPE_CHOICE_ENUM']._serialized_start=5309 + _globals['_DHCPV6SERVERIATYPE_CHOICE_ENUM']._serialized_end=5374 + _globals['_DHCPV6SERVERPOOLINFO']._serialized_start=69721 + _globals['_DHCPV6SERVERPOOLINFO']._serialized_end=69885 + _globals['_DHCPV6SERVERIAPDPOOLINFO']._serialized_start=69888 + _globals['_DHCPV6SERVERIAPDPOOLINFO']._serialized_end=70182 + _globals['_DHCPV6SERVERIANAPDPOOLINFO']._serialized_start=70184 + _globals['_DHCPV6SERVERIANAPDPOOLINFO']._serialized_end=70298 + _globals['_DHCPV6SERVERDNS']._serialized_start=70300 + _globals['_DHCPV6SERVERDNS']._serialized_end=70405 + _globals['_DHCPV6SERVERSECONDARYDNS']._serialized_start=70407 + _globals['_DHCPV6SERVERSECONDARYDNS']._serialized_end=70457 + _globals['_FLOW']._serialized_start=70460 + _globals['_FLOW']._serialized_end=70727 + _globals['_FLOWTXRX']._serialized_start=70730 + _globals['_FLOWTXRX']._serialized_end=70918 + _globals['_FLOWTXRX_CHOICE']._serialized_start=70852 + _globals['_FLOWTXRX_CHOICE']._serialized_end=70907 + _globals['_FLOWTXRX_CHOICE_ENUM']._serialized_start=70862 + _globals['_FLOWTXRX_CHOICE_ENUM']._serialized_end=70907 + _globals['_FLOWPORT']._serialized_start=70920 + _globals['_FLOWPORT']._serialized_end=71016 + _globals['_FLOWROUTER']._serialized_start=71019 + _globals['_FLOWROUTER']._serialized_end=71181 + _globals['_FLOWROUTER_MODE']._serialized_start=71115 + _globals['_FLOWROUTER_MODE']._serialized_end=71172 + _globals['_FLOWROUTER_MODE_ENUM']._serialized_start=71123 + _globals['_FLOWROUTER_MODE_ENUM']._serialized_end=71172 + _globals['_FLOWHEADER']._serialized_start=71184 + _globals['_FLOWHEADER']._serialized_end=72185 + _globals['_FLOWHEADER_CHOICE']._serialized_start=71906 + _globals['_FLOWHEADER_CHOICE']._serialized_end=72174 + _globals['_FLOWHEADER_CHOICE_ENUM']._serialized_start=71917 + _globals['_FLOWHEADER_CHOICE_ENUM']._serialized_end=72174 + _globals['_FLOWCUSTOM']._serialized_start=72187 + _globals['_FLOWCUSTOM']._serialized_end=72276 + _globals['_FLOWCUSTOMMETRICTAG']._serialized_start=72278 + _globals['_FLOWCUSTOMMETRICTAG']._serialized_end=72391 + _globals['_FLOWETHERNET']._serialized_start=72394 + _globals['_FLOWETHERNET']._serialized_end=72600 + _globals['_FLOWVLAN']._serialized_start=72603 + _globals['_FLOWVLAN']._serialized_end=72775 + _globals['_FLOWVXLAN']._serialized_start=72778 + _globals['_FLOWVXLAN']._serialized_end=72973 + _globals['_FLOWIPV4']._serialized_start=72976 + _globals['_FLOWIPV4']._serialized_end=73748 + _globals['_FLOWIPV4OPTIONS']._serialized_start=73751 + _globals['_FLOWIPV4OPTIONS']._serialized_end=73943 + _globals['_FLOWIPV4OPTIONS_CHOICE']._serialized_start=73869 + _globals['_FLOWIPV4OPTIONS_CHOICE']._serialized_end=73932 + _globals['_FLOWIPV4OPTIONS_CHOICE_ENUM']._serialized_start=73879 + _globals['_FLOWIPV4OPTIONS_CHOICE_ENUM']._serialized_end=73932 + _globals['_FLOWIPV4OPTIONSCUSTOM']._serialized_start=73946 + _globals['_FLOWIPV4OPTIONSCUSTOM']._serialized_end=74095 + _globals['_FLOWIPV4OPTIONSCUSTOMTYPE']._serialized_start=74098 + _globals['_FLOWIPV4OPTIONSCUSTOMTYPE']._serialized_end=74341 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH']._serialized_start=74344 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH']._serialized_end=74565 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWIPV4OPTIONSCUSTOMLENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWIPV4PRIORITY']._serialized_start=74568 + _globals['_FLOWIPV4PRIORITY']._serialized_end=74826 + _globals['_FLOWIPV4PRIORITY_CHOICE']._serialized_start=74754 + _globals['_FLOWIPV4PRIORITY_CHOICE']._serialized_end=74815 + _globals['_FLOWIPV4PRIORITY_CHOICE_ENUM']._serialized_start=74764 + _globals['_FLOWIPV4PRIORITY_CHOICE_ENUM']._serialized_end=74815 + _globals['_FLOWIPV4DSCP']._serialized_start=74828 + _globals['_FLOWIPV4DSCP']._serialized_end=74926 + _globals['_FLOWIPV4TOS']._serialized_start=74929 + _globals['_FLOWIPV4TOS']._serialized_end=75252 + _globals['_FLOWIPV4AUTO']._serialized_start=75254 + _globals['_FLOWIPV4AUTO']._serialized_end=75376 + _globals['_FLOWIPV4AUTO_CHOICE']._serialized_start=75322 + _globals['_FLOWIPV4AUTO_CHOICE']._serialized_end=75365 + _globals['_FLOWIPV4AUTO_CHOICE_ENUM']._serialized_start=75332 + _globals['_FLOWIPV4AUTO_CHOICE_ENUM']._serialized_end=75365 + _globals['_FLOWIPV6']._serialized_start=75379 + _globals['_FLOWIPV6']._serialized_end=75780 + _globals['_FLOWIPV6AUTO']._serialized_start=75782 + _globals['_FLOWIPV6AUTO']._serialized_end=75904 + _globals['_FLOWIPV6AUTO_CHOICE']._serialized_start=75322 + _globals['_FLOWIPV6AUTO_CHOICE']._serialized_end=75365 + _globals['_FLOWIPV6AUTO_CHOICE_ENUM']._serialized_start=75332 + _globals['_FLOWIPV6AUTO_CHOICE_ENUM']._serialized_end=75365 + _globals['_FLOWPFCPAUSE']._serialized_start=75907 + _globals['_FLOWPFCPAUSE']._serialized_end=76676 + _globals['_FLOWETHERNETPAUSE']._serialized_start=76679 + _globals['_FLOWETHERNETPAUSE']._serialized_end=76970 + _globals['_FLOWTCP']._serialized_start=76973 + _globals['_FLOWTCP']._serialized_end=77700 + _globals['_FLOWUDP']._serialized_start=77703 + _globals['_FLOWUDP']._serialized_end=77894 + _globals['_FLOWGRE']._serialized_start=77897 + _globals['_FLOWGRE']._serialized_end=78205 + _globals['_FLOWGTPV1']._serialized_start=78208 + _globals['_FLOWGTPV1']._serialized_end=78911 + _globals['_FLOWGTPEXTENSION']._serialized_start=78914 + _globals['_FLOWGTPEXTENSION']._serialized_end=79139 + _globals['_FLOWGTPV2']._serialized_start=79142 + _globals['_FLOWGTPV2']._serialized_end=79625 + _globals['_FLOWARP']._serialized_start=79628 + _globals['_FLOWARP']._serialized_end=80194 + _globals['_FLOWICMP']._serialized_start=80197 + _globals['_FLOWICMP']._serialized_end=80344 + _globals['_FLOWICMP_CHOICE']._serialized_start=80290 + _globals['_FLOWICMP_CHOICE']._serialized_end=80333 + _globals['_FLOWICMP_CHOICE_ENUM']._serialized_start=80300 + _globals['_FLOWICMP_CHOICE_ENUM']._serialized_end=80333 + _globals['_FLOWICMPECHO']._serialized_start=80347 + _globals['_FLOWICMPECHO']._serialized_end=80622 + _globals['_FLOWICMPV6']._serialized_start=80625 + _globals['_FLOWICMPV6']._serialized_end=80778 + _globals['_FLOWICMPV6_CHOICE']._serialized_start=80290 + _globals['_FLOWICMPV6_CHOICE']._serialized_end=80333 + _globals['_FLOWICMPV6_CHOICE_ENUM']._serialized_start=80300 + _globals['_FLOWICMPV6_CHOICE_ENUM']._serialized_end=80333 + _globals['_FLOWICMPV6ECHO']._serialized_start=80781 + _globals['_FLOWICMPV6ECHO']._serialized_end=81068 + _globals['_FLOWPPP']._serialized_start=81071 + _globals['_FLOWPPP']._serialized_end=81226 + _globals['_FLOWIGMPV1']._serialized_start=81229 + _globals['_FLOWIGMPV1']._serialized_end=81486 + _globals['_FLOWMPLS']._serialized_start=81489 + _globals['_FLOWMPLS']._serialized_end=81712 + _globals['_FLOWSNMPV2C']._serialized_start=81715 + _globals['_FLOWSNMPV2C']._serialized_end=81851 + _globals['_FLOWSNMPV2CDATA']._serialized_start=81854 + _globals['_FLOWSNMPV2CDATA']._serialized_end=82460 + _globals['_FLOWSNMPV2CDATA_CHOICE']._serialized_start=82274 + _globals['_FLOWSNMPV2CDATA_CHOICE']._serialized_end=82449 + _globals['_FLOWSNMPV2CDATA_CHOICE_ENUM']._serialized_start=82285 + _globals['_FLOWSNMPV2CDATA_CHOICE_ENUM']._serialized_end=82449 + _globals['_FLOWSNMPV2CPDU']._serialized_start=82463 + _globals['_FLOWSNMPV2CPDU']._serialized_end=83122 + _globals['_FLOWSNMPV2CPDU_ERRORSTATUS']._serialized_start=82723 + _globals['_FLOWSNMPV2CPDU_ERRORSTATUS']._serialized_end=83105 + _globals['_FLOWSNMPV2CPDU_ERRORSTATUS_ENUM']._serialized_start=82739 + _globals['_FLOWSNMPV2CPDU_ERRORSTATUS_ENUM']._serialized_end=83105 + _globals['_FLOWSNMPV2CBULKPDU']._serialized_start=83125 + _globals['_FLOWSNMPV2CBULKPDU']._serialized_end=83404 + _globals['_FLOWSNMPV2CVARIABLEBINDING']._serialized_start=83407 + _globals['_FLOWSNMPV2CVARIABLEBINDING']._serialized_end=83542 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE']._serialized_start=83545 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE']._serialized_end=84606 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE']._serialized_start=84299 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE']._serialized_end=84547 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM']._serialized_start=84310 + _globals['_FLOWSNMPV2CVARIABLEBINDINGVALUE_CHOICE_ENUM']._serialized_end=84547 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE']._serialized_start=84609 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE']._serialized_end=84847 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE']._serialized_start=84765 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE']._serialized_end=84818 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE_ENUM']._serialized_start=84775 + _globals['_FLOWSNMPV2CVARIABLEBINDINGSTRINGVALUE_CHOICE_ENUM']._serialized_end=84818 + _globals['_FLOWRSVP']._serialized_start=84850 + _globals['_FLOWRSVP']._serialized_end=85291 + _globals['_FLOWRSVP_FLAG']._serialized_start=85173 + _globals['_FLOWRSVP_FLAG']._serialized_end=85270 + _globals['_FLOWRSVP_FLAG_ENUM']._serialized_start=85181 + _globals['_FLOWRSVP_FLAG_ENUM']._serialized_end=85270 + _globals['_FLOWRSVPLENGTH']._serialized_start=85294 + _globals['_FLOWRSVPLENGTH']._serialized_end=85489 + _globals['_FLOWRSVPLENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPLENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPLENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPLENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPMESSAGE']._serialized_start=85492 + _globals['_FLOWRSVPMESSAGE']._serialized_end=85660 + _globals['_FLOWRSVPMESSAGE_CHOICE']._serialized_start=85606 + _globals['_FLOWRSVPMESSAGE_CHOICE']._serialized_end=85649 + _globals['_FLOWRSVPMESSAGE_CHOICE_ENUM']._serialized_start=85616 + _globals['_FLOWRSVPMESSAGE_CHOICE_ENUM']._serialized_end=85649 + _globals['_FLOWRSVPPATHMESSAGE']._serialized_start=85662 + _globals['_FLOWRSVPPATHMESSAGE']._serialized_end=85726 + _globals['_FLOWRSVPPATHOBJECTS']._serialized_start=85728 + _globals['_FLOWRSVPPATHOBJECTS']._serialized_end=85799 + _globals['_FLOWRSVPOBJECTLENGTH']._serialized_start=85802 + _globals['_FLOWRSVPOBJECTLENGTH']._serialized_end=86009 + _globals['_FLOWRSVPOBJECTLENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPOBJECTLENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPOBJECTLENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPOBJECTLENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPPATHOBJECTSCLASS']._serialized_start=86012 + _globals['_FLOWRSVPPATHOBJECTSCLASS']._serialized_end=86952 + _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE']._serialized_start=86732 + _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE']._serialized_end=86941 + _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE_ENUM']._serialized_start=86743 + _globals['_FLOWRSVPPATHOBJECTSCLASS_CHOICE_ENUM']._serialized_end=86941 + _globals['_FLOWRSVPPATHOBJECTSCLASSSESSION']._serialized_start=86955 + _globals['_FLOWRSVPPATHOBJECTSCLASSSESSION']._serialized_end=87085 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE']._serialized_start=87088 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE']._serialized_end=87323 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE']._serialized_start=87258 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE']._serialized_end=87312 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE_ENUM']._serialized_start=87268 + _globals['_FLOWRSVPPATHOBJECTSSESSIONCTYPE_CHOICE_ENUM']._serialized_end=87312 + _globals['_FLOWRSVPPATHSESSIONLSPTUNNELIPV4']._serialized_start=87326 + _globals['_FLOWRSVPPATHSESSIONLSPTUNNELIPV4']._serialized_end=87680 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID']._serialized_start=87683 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID']._serialized_end=88000 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE']._serialized_start=87927 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE']._serialized_end=87989 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE_ENUM']._serialized_start=87937 + _globals['_FLOWRSVPPATHSESSIONEXTTUNNELID_CHOICE_ENUM']._serialized_end=87989 + _globals['_FLOWRSVPPATHOBJECTSCLASSRSVPHOP']._serialized_start=88003 + _globals['_FLOWRSVPPATHOBJECTSCLASSRSVPHOP']._serialized_end=88133 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE']._serialized_start=88136 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE']._serialized_end=88340 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE']._serialized_start=88286 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE']._serialized_end=88329 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE_ENUM']._serialized_start=30548 + _globals['_FLOWRSVPPATHOBJECTSRSVPHOPCTYPE_CHOICE_ENUM']._serialized_end=30581 + _globals['_FLOWRSVPPATHRSVPHOPIPV4']._serialized_start=88343 + _globals['_FLOWRSVPPATHRSVPHOPIPV4']._serialized_end=88531 + _globals['_FLOWRSVPPATHOBJECTSCLASSTIMEVALUES']._serialized_start=88534 + _globals['_FLOWRSVPPATHOBJECTSCLASSTIMEVALUES']._serialized_end=88670 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE']._serialized_start=88673 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE']._serialized_end=88891 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE']._serialized_start=88835 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE']._serialized_end=88880 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE_ENUM']._serialized_start=88845 + _globals['_FLOWRSVPPATHOBJECTSTIMEVALUESCTYPE_CHOICE_ENUM']._serialized_end=88880 + _globals['_FLOWRSVPPATHTIMEVALUESTYPE1']._serialized_start=88893 + _globals['_FLOWRSVPPATHTIMEVALUESTYPE1']._serialized_end=89003 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTE']._serialized_start=89006 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTE']._serialized_end=89153 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE']._serialized_start=89156 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE']._serialized_end=89393 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE']._serialized_start=88835 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE']._serialized_end=88880 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE_ENUM']._serialized_start=88845 + _globals['_FLOWRSVPPATHOBJECTSCLASSEXPLICITROUTECTYPE_CHOICE_ENUM']._serialized_end=88880 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1']._serialized_start=89395 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1']._serialized_end=89490 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTS']._serialized_start=89492 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTS']._serialized_end=89591 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE']._serialized_start=89594 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE']._serialized_end=89926 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE']._serialized_start=89850 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE']._serialized_end=89915 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE_ENUM']._serialized_start=89860 + _globals['_FLOWRSVPTYPE1EXPLICITROUTESUBOBJECTSTYPE_CHOICE_ENUM']._serialized_end=89915 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIX']._serialized_start=89929 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIX']._serialized_end=90213 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBER']._serialized_start=90216 + _globals['_FLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBER']._serialized_end=90423 + _globals['_FLOWRSVPEXPLICITROUTELENGTH']._serialized_start=90426 + _globals['_FLOWRSVPEXPLICITROUTELENGTH']._serialized_end=90647 + _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPEXPLICITROUTELENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH']._serialized_start=90650 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH']._serialized_end=90887 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPEXPLICITROUTEASNUMBERLENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPPATHOBJECTSCLASSLABELREQUEST']._serialized_start=90890 + _globals['_FLOWRSVPPATHOBJECTSCLASSLABELREQUEST']._serialized_end=91030 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE']._serialized_start=91033 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE']._serialized_end=91295 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE']._serialized_start=91226 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE']._serialized_end=91284 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE_ENUM']._serialized_start=91236 + _globals['_FLOWRSVPPATHOBJECTSLABELREQUESTCTYPE_CHOICE_ENUM']._serialized_end=91284 + _globals['_FLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGE']._serialized_start=91298 + _globals['_FLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGE']._serialized_end=91497 + _globals['_FLOWRSVPPATHOBJECTSCLASSSESSIONATTRIBUTE']._serialized_start=91500 + _globals['_FLOWRSVPPATHOBJECTSCLASSSESSIONATTRIBUTE']._serialized_end=91648 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE']._serialized_start=91651 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE']._serialized_end=91987 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE']._serialized_start=91908 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE']._serialized_end=91976 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE_ENUM']._serialized_start=91918 + _globals['_FLOWRSVPPATHOBJECTSSESSIONATTRIBUTECTYPE_CHOICE_ENUM']._serialized_end=91976 + _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNEL']._serialized_start=91990 + _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNEL']._serialized_end=92278 + _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNELRA']._serialized_start=92281 + _globals['_FLOWRSVPPATHSESSIONATTRIBUTELSPTUNNELRA']._serialized_end=92697 + _globals['_FLOWRSVPLSPTUNNELFLAG']._serialized_start=92700 + _globals['_FLOWRSVPLSPTUNNELFLAG']._serialized_end=92911 + _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE']._serialized_start=92786 + _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE']._serialized_end=92900 + _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE_ENUM']._serialized_start=92796 + _globals['_FLOWRSVPLSPTUNNELFLAG_CHOICE_ENUM']._serialized_end=92900 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH']._serialized_start=92914 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH']._serialized_end=93149 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPSESSIONATTRIBUTENAMELENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTEMPLATE']._serialized_start=93152 + _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTEMPLATE']._serialized_end=93296 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE']._serialized_start=93299 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE']._serialized_end=93555 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE']._serialized_start=87258 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE']._serialized_end=87312 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE_ENUM']._serialized_start=87268 + _globals['_FLOWRSVPPATHOBJECTSSENDERTEMPLATECTYPE_CHOICE_ENUM']._serialized_end=87312 + _globals['_FLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4']._serialized_start=93558 + _globals['_FLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4']._serialized_end=93864 + _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTSPEC']._serialized_start=93867 + _globals['_FLOWRSVPPATHOBJECTSCLASSSENDERTSPEC']._serialized_end=94005 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE']._serialized_start=94008 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE']._serialized_end=94235 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE']._serialized_start=94177 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE']._serialized_end=94224 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE_ENUM']._serialized_start=94187 + _globals['_FLOWRSVPPATHOBJECTSSENDERTSPECCTYPE_CHOICE_ENUM']._serialized_end=94224 + _globals['_FLOWRSVPPATHSENDERTSPECINTSERV']._serialized_start=94238 + _globals['_FLOWRSVPPATHSENDERTSPECINTSERV']._serialized_end=95438 + _globals['_FLOWRSVPPATHOBJECTSCLASSRECORDROUTE']._serialized_start=95441 + _globals['_FLOWRSVPPATHOBJECTSCLASSRECORDROUTE']._serialized_end=95579 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE']._serialized_start=95582 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE']._serialized_end=95803 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE']._serialized_start=88835 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE']._serialized_end=88880 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE_ENUM']._serialized_start=88845 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTECTYPE_CHOICE_ENUM']._serialized_end=88880 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1']._serialized_start=95805 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1']._serialized_end=95896 + _globals['_FLOWRSVPTYPE1RECORDROUTESUBOBJECTS']._serialized_start=95898 + _globals['_FLOWRSVPTYPE1RECORDROUTESUBOBJECTS']._serialized_end=95998 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE']._serialized_start=96001 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE']._serialized_end=96327 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE']._serialized_start=96254 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE']._serialized_end=96316 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE_ENUM']._serialized_start=96264 + _globals['_FLOWRSVPPATHOBJECTSRECORDROUTESUBOBJECTTYPE_CHOICE_ENUM']._serialized_end=96316 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESS']._serialized_start=96330 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESS']._serialized_end=96642 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG']._serialized_start=96645 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG']._serialized_end=96848 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE']._serialized_start=96743 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE']._serialized_end=96837 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE_ENUM']._serialized_start=96753 + _globals['_FLOWRSVPRECORDROUTEIPV4FLAG_CHOICE_ENUM']._serialized_end=96837 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1LABEL']._serialized_start=96851 + _globals['_FLOWRSVPPATHRECORDROUTETYPE1LABEL']._serialized_end=97119 + _globals['_FLOWRSVPPATHRECORDROUTELABEL']._serialized_start=97122 + _globals['_FLOWRSVPPATHRECORDROUTELABEL']._serialized_end=97366 + _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE']._serialized_start=97268 + _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE']._serialized_end=97329 + _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE_ENUM']._serialized_start=97278 + _globals['_FLOWRSVPPATHRECORDROUTELABEL_CHOICE_ENUM']._serialized_end=97329 + _globals['_FLOWRSVPROUTERECORDLENGTH']._serialized_start=97369 + _globals['_FLOWRSVPROUTERECORDLENGTH']._serialized_end=97586 + _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE']._serialized_start=3166 + _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE']._serialized_end=3220 + _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE_ENUM']._serialized_start=3176 + _globals['_FLOWRSVPROUTERECORDLENGTH_CHOICE_ENUM']._serialized_end=3220 + _globals['_FLOWRSVPPATHOBJECTSCUSTOM']._serialized_start=97589 + _globals['_FLOWRSVPPATHOBJECTSCUSTOM']._serialized_end=97746 + _globals['_FLOWSIZE']._serialized_start=97749 + _globals['_FLOWSIZE']._serialized_end=98067 + _globals['_FLOWSIZE_CHOICE']._serialized_start=97957 + _globals['_FLOWSIZE_CHOICE']._serialized_end=98046 + _globals['_FLOWSIZE_CHOICE_ENUM']._serialized_start=97967 + _globals['_FLOWSIZE_CHOICE_ENUM']._serialized_end=98046 + _globals['_FLOWSIZEINCREMENT']._serialized_start=98069 + _globals['_FLOWSIZEINCREMENT']._serialized_end=98172 + _globals['_FLOWSIZERANDOM']._serialized_start=98174 + _globals['_FLOWSIZERANDOM']._serialized_end=98242 + _globals['_FLOWSIZEWEIGHTPAIRS']._serialized_start=98245 + _globals['_FLOWSIZEWEIGHTPAIRS']._serialized_end=98642 + _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE']._serialized_start=98442 + _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE']._serialized_end=98503 + _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM']._serialized_start=98452 + _globals['_FLOWSIZEWEIGHTPAIRS_CHOICE_ENUM']._serialized_end=98503 + _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED']._serialized_start=98505 + _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED']._serialized_end=98616 + _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM']._serialized_start=98519 + _globals['_FLOWSIZEWEIGHTPAIRS_PREDEFINED_ENUM']._serialized_end=98616 + _globals['_FLOWSIZEWEIGHTPAIRSCUSTOM']._serialized_start=98644 + _globals['_FLOWSIZEWEIGHTPAIRSCUSTOM']._serialized_end=98731 + _globals['_FLOWRATE']._serialized_start=98734 + _globals['_FLOWRATE']._serialized_end=99078 + _globals['_FLOWRATE_CHOICE']._serialized_start=98912 + _globals['_FLOWRATE_CHOICE']._serialized_end=99009 + _globals['_FLOWRATE_CHOICE_ENUM']._serialized_start=98922 + _globals['_FLOWRATE_CHOICE_ENUM']._serialized_end=99009 + _globals['_FLOWDURATION']._serialized_start=99081 + _globals['_FLOWDURATION']._serialized_end=99422 + _globals['_FLOWDURATION_CHOICE']._serialized_start=99313 + _globals['_FLOWDURATION_CHOICE']._serialized_end=99411 + _globals['_FLOWDURATION_CHOICE_ENUM']._serialized_start=99323 + _globals['_FLOWDURATION_CHOICE_ENUM']._serialized_end=99411 + _globals['_FLOWCONTINUOUS']._serialized_start=99424 + _globals['_FLOWCONTINUOUS']._serialized_end=99497 + _globals['_FLOWDELAY']._serialized_start=99500 + _globals['_FLOWDELAY']._serialized_end=99768 + _globals['_FLOWDELAY_CHOICE']._serialized_start=99635 + _globals['_FLOWDELAY_CHOICE']._serialized_end=99714 + _globals['_FLOWDELAY_CHOICE_ENUM']._serialized_start=99645 + _globals['_FLOWDELAY_CHOICE_ENUM']._serialized_end=99714 + _globals['_FLOWFIXEDPACKETS']._serialized_start=99770 + _globals['_FLOWFIXEDPACKETS']._serialized_end=99879 + _globals['_FLOWFIXEDSECONDS']._serialized_start=99881 + _globals['_FLOWFIXEDSECONDS']._serialized_end=99990 + _globals['_FLOWBURST']._serialized_start=99993 + _globals['_FLOWBURST']._serialized_end=100153 + _globals['_FLOWDURATIONINTERBURSTGAP']._serialized_start=100156 + _globals['_FLOWDURATIONINTERBURSTGAP']._serialized_end=100456 + _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE']._serialized_start=99635 + _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE']._serialized_end=99714 + _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM']._serialized_start=99645 + _globals['_FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM']._serialized_end=99714 + _globals['_FLOWMETRICS']._serialized_start=100459 + _globals['_FLOWMETRICS']._serialized_end=100712 + _globals['_FLOWLATENCYMETRICS']._serialized_start=100715 + _globals['_FLOWLATENCYMETRICS']._serialized_end=100899 + _globals['_FLOWLATENCYMETRICS_MODE']._serialized_start=100812 + _globals['_FLOWLATENCYMETRICS_MODE']._serialized_end=100879 + _globals['_FLOWLATENCYMETRICS_MODE_ENUM']._serialized_start=100820 + _globals['_FLOWLATENCYMETRICS_MODE_ENUM']._serialized_end=100879 + _globals['_FLOWPREDEFINEDTAGS']._serialized_start=100901 + _globals['_FLOWPREDEFINEDTAGS']._serialized_end=100955 + _globals['_FLOWRXTXRATIO']._serialized_start=100958 + _globals['_FLOWRXTXRATIO']._serialized_end=101172 + _globals['_FLOWRXTXRATIO_CHOICE']._serialized_start=101093 + _globals['_FLOWRXTXRATIO_CHOICE']._serialized_end=101151 + _globals['_FLOWRXTXRATIO_CHOICE_ENUM']._serialized_start=101103 + _globals['_FLOWRXTXRATIO_CHOICE_ENUM']._serialized_end=101151 + _globals['_FLOWRXTXRATIORXCOUNT']._serialized_start=101174 + _globals['_FLOWRXTXRATIORXCOUNT']._serialized_end=101196 + _globals['_EVENT']._serialized_start=101199 + _globals['_EVENT']._serialized_end=101390 + _globals['_EVENTRXRATETHRESHOLD']._serialized_start=101392 + _globals['_EVENTRXRATETHRESHOLD']._serialized_end=101484 + _globals['_EVENTLINK']._serialized_start=101486 + _globals['_EVENTLINK']._serialized_end=101529 + _globals['_EVENTROUTEADVERTISEWITHDRAW']._serialized_start=101531 + _globals['_EVENTROUTEADVERTISEWITHDRAW']._serialized_end=101592 + _globals['_EVENTREQUEST']._serialized_start=101595 + _globals['_EVENTREQUEST']._serialized_end=101840 + _globals['_EVENTREQUEST_TYPE']._serialized_start=101671 + _globals['_EVENTREQUEST_TYPE']._serialized_end=101840 + _globals['_EVENTREQUEST_TYPE_ENUM']._serialized_start=101680 + _globals['_EVENTREQUEST_TYPE_ENUM']._serialized_end=101840 + _globals['_EVENTSUBSCRIPTION']._serialized_start=101842 + _globals['_EVENTSUBSCRIPTION']._serialized_end=101940 + _globals['_LLDP']._serialized_start=101943 + _globals['_LLDP']._serialized_end=102236 + _globals['_LLDPCONNECTION']._serialized_start=102239 + _globals['_LLDPCONNECTION']._serialized_end=102408 + _globals['_LLDPCONNECTION_CHOICE']._serialized_start=102335 + _globals['_LLDPCONNECTION_CHOICE']._serialized_end=102383 + _globals['_LLDPCONNECTION_CHOICE_ENUM']._serialized_start=2362 + _globals['_LLDPCONNECTION_CHOICE_ENUM']._serialized_end=2400 + _globals['_LLDPCHASSISID']._serialized_start=102411 + _globals['_LLDPCHASSISID']._serialized_end=102764 + _globals['_LLDPCHASSISID_CHOICE']._serialized_start=102603 + _globals['_LLDPCHASSISID_CHOICE']._serialized_end=102708 + _globals['_LLDPCHASSISID_CHOICE_ENUM']._serialized_start=102613 + _globals['_LLDPCHASSISID_CHOICE_ENUM']._serialized_end=102708 + _globals['_LLDPPORTID']._serialized_start=102767 + _globals['_LLDPPORTID']._serialized_end=103118 + _globals['_LLDPPORTID_CHOICE']._serialized_start=102603 + _globals['_LLDPPORTID_CHOICE']._serialized_end=102708 + _globals['_LLDPPORTID_CHOICE_ENUM']._serialized_start=102613 + _globals['_LLDPPORTID_CHOICE_ENUM']._serialized_end=102708 + _globals['_LLDPCHASSISMACSUBTYPE']._serialized_start=103121 + _globals['_LLDPCHASSISMACSUBTYPE']._serialized_end=103330 + _globals['_LLDPCHASSISMACSUBTYPE_CHOICE']._serialized_start=3166 + _globals['_LLDPCHASSISMACSUBTYPE_CHOICE']._serialized_end=3220 + _globals['_LLDPCHASSISMACSUBTYPE_CHOICE_ENUM']._serialized_start=3176 + _globals['_LLDPCHASSISMACSUBTYPE_CHOICE_ENUM']._serialized_end=3220 + _globals['_LLDPPORTINTERFACENAMESUBTYPE']._serialized_start=103333 + _globals['_LLDPPORTINTERFACENAMESUBTYPE']._serialized_end=103556 + _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE']._serialized_start=3166 + _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE']._serialized_end=3220 + _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM']._serialized_start=3176 + _globals['_LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM']._serialized_end=3220 + _globals['_LLDPSYSTEMNAME']._serialized_start=103559 + _globals['_LLDPSYSTEMNAME']._serialized_end=103754 + _globals['_LLDPSYSTEMNAME_CHOICE']._serialized_start=3166 + _globals['_LLDPSYSTEMNAME_CHOICE']._serialized_end=3220 + _globals['_LLDPSYSTEMNAME_CHOICE_ENUM']._serialized_start=3176 + _globals['_LLDPSYSTEMNAME_CHOICE_ENUM']._serialized_end=3220 + _globals['_ERROR']._serialized_start=103757 + _globals['_ERROR']._serialized_end=103921 + _globals['_ERROR_KIND']._serialized_start=103842 + _globals['_ERROR_KIND']._serialized_end=103903 + _globals['_ERROR_KIND_ENUM']._serialized_start=103850 + _globals['_ERROR_KIND_ENUM']._serialized_end=103903 + _globals['_WARNING']._serialized_start=103923 + _globals['_WARNING']._serialized_end=103950 + _globals['_CONFIGUPDATE']._serialized_start=103953 + _globals['_CONFIGUPDATE']._serialized_end=104109 + _globals['_CONFIGUPDATE_CHOICE']._serialized_start=104054 + _globals['_CONFIGUPDATE_CHOICE']._serialized_end=104098 + _globals['_CONFIGUPDATE_CHOICE_ENUM']._serialized_start=104064 + _globals['_CONFIGUPDATE_CHOICE_ENUM']._serialized_end=104098 + _globals['_FLOWSUPDATE']._serialized_start=104112 + _globals['_FLOWSUPDATE']._serialized_end=104274 + _globals['_FLOWSUPDATE_PROPERTYNAMES']._serialized_start=104214 + _globals['_FLOWSUPDATE_PROPERTYNAMES']._serialized_end=104274 + _globals['_FLOWSUPDATE_PROPERTYNAMES_ENUM']._serialized_start=104231 + _globals['_FLOWSUPDATE_PROPERTYNAMES_ENUM']._serialized_end=104274 + _globals['_CONTROLSTATE']._serialized_start=104277 + _globals['_CONTROLSTATE']._serialized_end=104530 + _globals['_CONTROLSTATE_CHOICE']._serialized_start=104449 + _globals['_CONTROLSTATE_CHOICE']._serialized_end=104519 + _globals['_CONTROLSTATE_CHOICE_ENUM']._serialized_start=104459 + _globals['_CONTROLSTATE_CHOICE_ENUM']._serialized_end=104519 + _globals['_STATEPORT']._serialized_start=104533 + _globals['_STATEPORT']._serialized_end=104736 + _globals['_STATEPORT_CHOICE']._serialized_start=104669 + _globals['_STATEPORT_CHOICE']._serialized_end=104725 + _globals['_STATEPORT_CHOICE_ENUM']._serialized_start=104679 + _globals['_STATEPORT_CHOICE_ENUM']._serialized_end=104725 + _globals['_STATETRAFFIC']._serialized_start=104739 + _globals['_STATETRAFFIC']._serialized_end=104924 + _globals['_STATETRAFFIC_CHOICE']._serialized_start=104861 + _globals['_STATETRAFFIC_CHOICE']._serialized_end=104913 + _globals['_STATETRAFFIC_CHOICE_ENUM']._serialized_start=104871 + _globals['_STATETRAFFIC_CHOICE_ENUM']._serialized_end=104913 + _globals['_STATEPROTOCOL']._serialized_start=104927 + _globals['_STATEPROTOCOL']._serialized_end=105278 + _globals['_STATEPROTOCOL_CHOICE']._serialized_start=105185 + _globals['_STATEPROTOCOL_CHOICE']._serialized_end=105267 + _globals['_STATEPROTOCOL_CHOICE_ENUM']._serialized_start=105195 + _globals['_STATEPROTOCOL_CHOICE_ENUM']._serialized_end=105267 + _globals['_STATEPORTLINK']._serialized_start=105281 + _globals['_STATEPORTLINK']._serialized_end=105429 + _globals['_STATEPORTLINK_STATE']._serialized_start=105369 + _globals['_STATEPORTLINK_STATE']._serialized_end=105419 + _globals['_STATEPORTLINK_STATE_ENUM']._serialized_start=19389 + _globals['_STATEPORTLINK_STATE_ENUM']._serialized_end=19430 + _globals['_STATEPORTCAPTURE']._serialized_start=105432 + _globals['_STATEPORTCAPTURE']._serialized_end=105589 + _globals['_STATEPORTCAPTURE_STATE']._serialized_start=105526 + _globals['_STATEPORTCAPTURE_STATE']._serialized_end=105579 + _globals['_STATEPORTCAPTURE_STATE_ENUM']._serialized_start=105535 + _globals['_STATEPORTCAPTURE_STATE_ENUM']._serialized_end=105579 + _globals['_STATETRAFFICFLOWTRANSMIT']._serialized_start=105592 + _globals['_STATETRAFFICFLOWTRANSMIT']._serialized_end=105788 + _globals['_STATETRAFFICFLOWTRANSMIT_STATE']._serialized_start=105702 + _globals['_STATETRAFFICFLOWTRANSMIT_STATE']._serialized_end=105778 + _globals['_STATETRAFFICFLOWTRANSMIT_STATE_ENUM']._serialized_start=105711 + _globals['_STATETRAFFICFLOWTRANSMIT_STATE_ENUM']._serialized_end=105778 + _globals['_STATEPROTOCOLALL']._serialized_start=105791 + _globals['_STATEPROTOCOLALL']._serialized_end=105928 + _globals['_STATEPROTOCOLALL_STATE']._serialized_start=105526 + _globals['_STATEPROTOCOLALL_STATE']._serialized_end=105579 + _globals['_STATEPROTOCOLALL_STATE_ENUM']._serialized_start=105535 + _globals['_STATEPROTOCOLALL_STATE_ENUM']._serialized_end=105579 + _globals['_STATEPROTOCOLROUTE']._serialized_start=105931 + _globals['_STATEPROTOCOLROUTE']._serialized_end=106095 + _globals['_STATEPROTOCOLROUTE_STATE']._serialized_start=106024 + _globals['_STATEPROTOCOLROUTE_STATE']._serialized_end=106085 + _globals['_STATEPROTOCOLROUTE_STATE_ENUM']._serialized_start=106033 + _globals['_STATEPROTOCOLROUTE_STATE_ENUM']._serialized_end=106085 + _globals['_STATEPROTOCOLLACP']._serialized_start=106098 + _globals['_STATEPROTOCOLLACP']._serialized_end=106350 + _globals['_STATEPROTOCOLLACP_CHOICE']._serialized_start=106277 + _globals['_STATEPROTOCOLLACP_CHOICE']._serialized_end=106339 + _globals['_STATEPROTOCOLLACP_CHOICE_ENUM']._serialized_start=106287 + _globals['_STATEPROTOCOLLACP_CHOICE_ENUM']._serialized_end=106339 + _globals['_STATEPROTOCOLLACPADMIN']._serialized_start=106353 + _globals['_STATEPROTOCOLLACPADMIN']._serialized_end=106525 + _globals['_STATEPROTOCOLLACPADMIN_STATE']._serialized_start=105369 + _globals['_STATEPROTOCOLLACPADMIN_STATE']._serialized_end=105419 + _globals['_STATEPROTOCOLLACPADMIN_STATE_ENUM']._serialized_start=19389 + _globals['_STATEPROTOCOLLACPADMIN_STATE_ENUM']._serialized_end=19430 + _globals['_STATEPROTOCOLLACPMEMBERPORTS']._serialized_start=106528 + _globals['_STATEPROTOCOLLACPMEMBERPORTS']._serialized_end=106712 + _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE']._serialized_start=105369 + _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE']._serialized_end=105419 + _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM']._serialized_start=19389 + _globals['_STATEPROTOCOLLACPMEMBERPORTS_STATE_ENUM']._serialized_end=19430 + _globals['_STATEPROTOCOLBGP']._serialized_start=106715 + _globals['_STATEPROTOCOLBGP']._serialized_end=106889 + _globals['_STATEPROTOCOLBGP_CHOICE']._serialized_start=106834 + _globals['_STATEPROTOCOLBGP_CHOICE']._serialized_end=106878 + _globals['_STATEPROTOCOLBGP_CHOICE_ENUM']._serialized_start=106844 + _globals['_STATEPROTOCOLBGP_CHOICE_ENUM']._serialized_end=106878 + _globals['_STATEPROTOCOLBGPPEERS']._serialized_start=106892 + _globals['_STATEPROTOCOLBGPPEERS']._serialized_end=107056 + _globals['_STATEPROTOCOLBGPPEERS_STATE']._serialized_start=105369 + _globals['_STATEPROTOCOLBGPPEERS_STATE']._serialized_end=105419 + _globals['_STATEPROTOCOLBGPPEERS_STATE_ENUM']._serialized_start=19389 + _globals['_STATEPROTOCOLBGPPEERS_STATE_ENUM']._serialized_end=19430 + _globals['_STATEPROTOCOLISIS']._serialized_start=107059 + _globals['_STATEPROTOCOLISIS']._serialized_end=107242 + _globals['_STATEPROTOCOLISIS_CHOICE']._serialized_start=107185 + _globals['_STATEPROTOCOLISIS_CHOICE']._serialized_end=107231 + _globals['_STATEPROTOCOLISIS_CHOICE_ENUM']._serialized_start=107195 + _globals['_STATEPROTOCOLISIS_CHOICE_ENUM']._serialized_end=107231 + _globals['_STATEPROTOCOLISISROUTERS']._serialized_start=107245 + _globals['_STATEPROTOCOLISISROUTERS']._serialized_end=107417 + _globals['_STATEPROTOCOLISISROUTERS_STATE']._serialized_start=105369 + _globals['_STATEPROTOCOLISISROUTERS_STATE']._serialized_end=105419 + _globals['_STATEPROTOCOLISISROUTERS_STATE_ENUM']._serialized_start=19389 + _globals['_STATEPROTOCOLISISROUTERS_STATE_ENUM']._serialized_end=19430 + _globals['_CONTROLACTION']._serialized_start=107420 + _globals['_CONTROLACTION']._serialized_end=107587 + _globals['_CONTROLACTION_CHOICE']._serialized_start=107529 + _globals['_CONTROLACTION_CHOICE']._serialized_end=107576 + _globals['_CONTROLACTION_CHOICE_ENUM']._serialized_start=107539 + _globals['_CONTROLACTION_CHOICE_ENUM']._serialized_end=107576 + _globals['_CONTROLACTIONRESPONSE']._serialized_start=107589 + _globals['_CONTROLACTIONRESPONSE']._serialized_end=107669 + _globals['_ACTIONRESPONSE']._serialized_start=107672 + _globals['_ACTIONRESPONSE']._serialized_end=107849 + _globals['_ACTIONRESPONSE_CHOICE']._serialized_start=107529 + _globals['_ACTIONRESPONSE_CHOICE']._serialized_end=107576 + _globals['_ACTIONRESPONSE_CHOICE_ENUM']._serialized_start=107539 + _globals['_ACTIONRESPONSE_CHOICE_ENUM']._serialized_end=107576 + _globals['_ACTIONPROTOCOL']._serialized_start=107852 + _globals['_ACTIONPROTOCOL']._serialized_end=108112 + _globals['_ACTIONPROTOCOL_CHOICE']._serialized_start=108039 + _globals['_ACTIONPROTOCOL_CHOICE']._serialized_end=108101 + _globals['_ACTIONPROTOCOL_CHOICE_ENUM']._serialized_start=108049 + _globals['_ACTIONPROTOCOL_CHOICE_ENUM']._serialized_end=108101 + _globals['_ACTIONRESPONSEPROTOCOL']._serialized_start=108115 + _globals['_ACTIONRESPONSEPROTOCOL']._serialized_end=108361 + _globals['_ACTIONRESPONSEPROTOCOL_CHOICE']._serialized_start=108297 + _globals['_ACTIONRESPONSEPROTOCOL_CHOICE']._serialized_end=108350 + _globals['_ACTIONRESPONSEPROTOCOL_CHOICE_ENUM']._serialized_start=30548 + _globals['_ACTIONRESPONSEPROTOCOL_CHOICE_ENUM']._serialized_end=30591 + _globals['_ACTIONPROTOCOLIPV4']._serialized_start=108364 + _globals['_ACTIONPROTOCOLIPV4']._serialized_end=108541 + _globals['_ACTIONPROTOCOLIPV4_CHOICE']._serialized_start=108487 + _globals['_ACTIONPROTOCOLIPV4_CHOICE']._serialized_end=108530 + _globals['_ACTIONPROTOCOLIPV4_CHOICE_ENUM']._serialized_start=108497 + _globals['_ACTIONPROTOCOLIPV4_CHOICE_ENUM']._serialized_end=108530 + _globals['_ACTIONRESPONSEPROTOCOLIPV4']._serialized_start=108544 + _globals['_ACTIONRESPONSEPROTOCOLIPV4']._serialized_end=108745 + _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE']._serialized_start=108487 + _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE']._serialized_end=108530 + _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM']._serialized_start=108497 + _globals['_ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM']._serialized_end=108530 + _globals['_ACTIONPROTOCOLIPV4PING']._serialized_start=108747 + _globals['_ACTIONPROTOCOLIPV4PING']._serialized_end=108825 + _globals['_ACTIONPROTOCOLIPV4PINGREQUEST']._serialized_start=108827 + _globals['_ACTIONPROTOCOLIPV4PINGREQUEST']._serialized_end=108926 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PING']._serialized_start=108928 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PING']._serialized_end=109024 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE']._serialized_start=109027 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE']._serialized_end=109286 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT']._serialized_start=109191 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT']._serialized_end=109251 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM']._serialized_start=109201 + _globals['_ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM']._serialized_end=109251 + _globals['_ACTIONPROTOCOLIPV6']._serialized_start=109289 + _globals['_ACTIONPROTOCOLIPV6']._serialized_end=109466 + _globals['_ACTIONPROTOCOLIPV6_CHOICE']._serialized_start=108487 + _globals['_ACTIONPROTOCOLIPV6_CHOICE']._serialized_end=108530 + _globals['_ACTIONPROTOCOLIPV6_CHOICE_ENUM']._serialized_start=108497 + _globals['_ACTIONPROTOCOLIPV6_CHOICE_ENUM']._serialized_end=108530 + _globals['_ACTIONRESPONSEPROTOCOLIPV6']._serialized_start=109469 + _globals['_ACTIONRESPONSEPROTOCOLIPV6']._serialized_end=109670 + _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE']._serialized_start=108487 + _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE']._serialized_end=108530 + _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM']._serialized_start=108497 + _globals['_ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM']._serialized_end=108530 + _globals['_ACTIONPROTOCOLIPV6PING']._serialized_start=109672 + _globals['_ACTIONPROTOCOLIPV6PING']._serialized_end=109750 + _globals['_ACTIONPROTOCOLIPV6PINGREQUEST']._serialized_start=109752 + _globals['_ACTIONPROTOCOLIPV6PINGREQUEST']._serialized_end=109851 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PING']._serialized_start=109853 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PING']._serialized_end=109949 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE']._serialized_start=109952 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE']._serialized_end=110211 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT']._serialized_start=109191 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT']._serialized_end=109251 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM']._serialized_start=109201 + _globals['_ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM']._serialized_end=109251 + _globals['_ACTIONPROTOCOLBGP']._serialized_start=110214 + _globals['_ACTIONPROTOCOLBGP']._serialized_end=110525 + _globals['_ACTIONPROTOCOLBGP_CHOICE']._serialized_start=110432 + _globals['_ACTIONPROTOCOLBGP_CHOICE']._serialized_end=110514 + _globals['_ACTIONPROTOCOLBGP_CHOICE_ENUM']._serialized_start=110442 + _globals['_ACTIONPROTOCOLBGP_CHOICE_ENUM']._serialized_end=110514 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION']._serialized_start=110528 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION']._serialized_end=111253 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE']._serialized_start=111053 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE']._serialized_end=111242 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM']._serialized_start=111064 + _globals['_ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM']._serialized_end=111242 + _globals['_ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART']._serialized_start=111255 + _globals['_ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART']._serialized_end=111363 + _globals['_METRICSREQUEST']._serialized_start=111366 + _globals['_METRICSREQUEST']._serialized_end=112228 + _globals['_METRICSREQUEST_CHOICE']._serialized_start=112016 + _globals['_METRICSREQUEST_CHOICE']._serialized_end=112217 + _globals['_METRICSREQUEST_CHOICE_ENUM']._serialized_start=112027 + _globals['_METRICSREQUEST_CHOICE_ENUM']._serialized_end=112217 + _globals['_METRICSRESPONSE']._serialized_start=112231 + _globals['_METRICSRESPONSE']._serialized_end=113163 + _globals['_METRICSRESPONSE_CHOICE']._serialized_start=112879 + _globals['_METRICSRESPONSE_CHOICE']._serialized_end=113152 + _globals['_METRICSRESPONSE_CHOICE_ENUM']._serialized_start=112890 + _globals['_METRICSRESPONSE_CHOICE_ENUM']._serialized_end=113152 + _globals['_PORTMETRICSREQUEST']._serialized_start=113166 + _globals['_PORTMETRICSREQUEST']._serialized_end=113499 + _globals['_PORTMETRICSREQUEST_COLUMNNAMES']._serialized_start=113273 + _globals['_PORTMETRICSREQUEST_COLUMNNAMES']._serialized_end=113499 + _globals['_PORTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=113289 + _globals['_PORTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=113499 + _globals['_PORTMETRIC']._serialized_start=113502 + _globals['_PORTMETRIC']._serialized_end=114276 + _globals['_PORTMETRIC_LINK']._serialized_start=113918 + _globals['_PORTMETRIC_LINK']._serialized_end=113967 + _globals['_PORTMETRIC_LINK_ENUM']._serialized_start=19389 + _globals['_PORTMETRIC_LINK_ENUM']._serialized_end=19430 + _globals['_PORTMETRIC_CAPTURE']._serialized_start=113969 + _globals['_PORTMETRIC_CAPTURE']._serialized_end=114029 + _globals['_PORTMETRIC_CAPTURE_ENUM']._serialized_start=113980 + _globals['_PORTMETRIC_CAPTURE_ENUM']._serialized_end=114029 + _globals['_PORTMETRIC_TRANSMIT']._serialized_start=114031 + _globals['_PORTMETRIC_TRANSMIT']._serialized_end=114092 + _globals['_PORTMETRIC_TRANSMIT_ENUM']._serialized_start=113980 + _globals['_PORTMETRIC_TRANSMIT_ENUM']._serialized_end=114029 + _globals['_FLOWMETRICSREQUEST']._serialized_start=114279 + _globals['_FLOWMETRICSREQUEST']._serialized_end=114591 + _globals['_FLOWMETRICSREQUEST_METRICNAMES']._serialized_start=114440 + _globals['_FLOWMETRICSREQUEST_METRICNAMES']._serialized_end=114591 + _globals['_FLOWMETRICSREQUEST_METRICNAMES_ENUM']._serialized_start=114456 + _globals['_FLOWMETRICSREQUEST_METRICNAMES_ENUM']._serialized_end=114591 + _globals['_FLOWTAGGEDMETRICSFILTER']._serialized_start=114594 + _globals['_FLOWTAGGEDMETRICSFILTER']._serialized_end=114966 + _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES']._serialized_start=114792 + _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES']._serialized_end=114928 + _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM']._serialized_start=114807 + _globals['_FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM']._serialized_end=114928 + _globals['_FLOWMETRICTAGFILTER']._serialized_start=114968 + _globals['_FLOWMETRICTAGFILTER']._serialized_end=115033 + _globals['_FLOWMETRIC']._serialized_start=115036 + _globals['_FLOWMETRIC']._serialized_end=115684 + _globals['_FLOWMETRIC_TRANSMIT']._serialized_start=115464 + _globals['_FLOWMETRIC_TRANSMIT']._serialized_end=115537 + _globals['_FLOWMETRIC_TRANSMIT_ENUM']._serialized_start=115476 + _globals['_FLOWMETRIC_TRANSMIT_ENUM']._serialized_end=115537 + _globals['_FLOWTAGGEDMETRIC']._serialized_start=115687 + _globals['_FLOWTAGGEDMETRIC']._serialized_end=116090 + _globals['_FLOWMETRICTAG']._serialized_start=116092 + _globals['_FLOWMETRICTAG']._serialized_end=116175 + _globals['_FLOWMETRICTAGVALUE']._serialized_start=116178 + _globals['_FLOWMETRICTAGVALUE']._serialized_end=116372 + _globals['_FLOWMETRICTAGVALUE_CHOICE']._serialized_start=116294 + _globals['_FLOWMETRICTAGVALUE_CHOICE']._serialized_end=116345 + _globals['_FLOWMETRICTAGVALUE_CHOICE_ENUM']._serialized_start=116304 + _globals['_FLOWMETRICTAGVALUE_CHOICE_ENUM']._serialized_end=116345 + _globals['_METRICTIMESTAMP']._serialized_start=116374 + _globals['_METRICTIMESTAMP']._serialized_end=116501 + _globals['_METRICLATENCY']._serialized_start=116504 + _globals['_METRICLATENCY']._serialized_end=116639 + _globals['_BGPV4METRICSREQUEST']._serialized_start=116642 + _globals['_BGPV4METRICSREQUEST']._serialized_end=117147 + _globals['_BGPV4METRICSREQUEST_COLUMNNAMES']._serialized_start=116751 + _globals['_BGPV4METRICSREQUEST_COLUMNNAMES']._serialized_end=117147 + _globals['_BGPV4METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=116767 + _globals['_BGPV4METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=117147 + _globals['_BGPV4METRIC']._serialized_start=117150 + _globals['_BGPV4METRIC']._serialized_end=118280 + _globals['_BGPV4METRIC_SESSIONSTATE']._serialized_start=117753 + _globals['_BGPV4METRIC_SESSIONSTATE']._serialized_end=117810 + _globals['_BGPV4METRIC_SESSIONSTATE_ENUM']._serialized_start=19389 + _globals['_BGPV4METRIC_SESSIONSTATE_ENUM']._serialized_end=19430 + _globals['_BGPV4METRIC_FSMSTATE']._serialized_start=117812 + _globals['_BGPV4METRIC_FSMSTATE']._serialized_end=117930 + _globals['_BGPV4METRIC_FSMSTATE_ENUM']._serialized_start=117824 + _globals['_BGPV4METRIC_FSMSTATE_ENUM']._serialized_end=117930 + _globals['_BGPV6METRICSREQUEST']._serialized_start=118283 + _globals['_BGPV6METRICSREQUEST']._serialized_end=118788 + _globals['_BGPV6METRICSREQUEST_COLUMNNAMES']._serialized_start=116751 + _globals['_BGPV6METRICSREQUEST_COLUMNNAMES']._serialized_end=117147 + _globals['_BGPV6METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=116767 + _globals['_BGPV6METRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=117147 + _globals['_BGPV6METRIC']._serialized_start=118791 + _globals['_BGPV6METRIC']._serialized_end=119921 + _globals['_BGPV6METRIC_SESSIONSTATE']._serialized_start=117753 + _globals['_BGPV6METRIC_SESSIONSTATE']._serialized_end=117810 + _globals['_BGPV6METRIC_SESSIONSTATE_ENUM']._serialized_start=19389 + _globals['_BGPV6METRIC_SESSIONSTATE_ENUM']._serialized_end=19430 + _globals['_BGPV6METRIC_FSMSTATE']._serialized_start=117812 + _globals['_BGPV6METRIC_FSMSTATE']._serialized_end=117930 + _globals['_BGPV6METRIC_FSMSTATE_ENUM']._serialized_start=117824 + _globals['_BGPV6METRIC_FSMSTATE_ENUM']._serialized_end=117930 + _globals['_ISISMETRICSREQUEST']._serialized_start=119924 + _globals['_ISISMETRICSREQUEST']._serialized_end=120710 + _globals['_ISISMETRICSREQUEST_COLUMNNAMES']._serialized_start=120033 + _globals['_ISISMETRICSREQUEST_COLUMNNAMES']._serialized_end=120710 + _globals['_ISISMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=120049 + _globals['_ISISMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=120710 + _globals['_ISISMETRIC']._serialized_start=120713 + _globals['_ISISMETRIC']._serialized_end=122237 + _globals['_LAGMETRICSREQUEST']._serialized_start=122240 + _globals['_LAGMETRICSREQUEST']._serialized_end=122557 + _globals['_LAGMETRICSREQUEST_COLUMNNAMES']._serialized_start=122344 + _globals['_LAGMETRICSREQUEST_COLUMNNAMES']._serialized_end=122557 + _globals['_LAGMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=122360 + _globals['_LAGMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=122557 + _globals['_LAGMETRIC']._serialized_start=122560 + _globals['_LAGMETRIC']._serialized_end=123116 + _globals['_LAGMETRIC_OPERSTATUS']._serialized_start=122888 + _globals['_LAGMETRIC_OPERSTATUS']._serialized_end=122943 + _globals['_LAGMETRIC_OPERSTATUS_ENUM']._serialized_start=19389 + _globals['_LAGMETRIC_OPERSTATUS_ENUM']._serialized_end=19430 + _globals['_LACPMETRICSREQUEST']._serialized_start=123119 + _globals['_LACPMETRICSREQUEST']._serialized_end=123555 + _globals['_LACPMETRICSREQUEST_COLUMNNAMES']._serialized_start=123256 + _globals['_LACPMETRICSREQUEST_COLUMNNAMES']._serialized_end=123555 + _globals['_LACPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=123272 + _globals['_LACPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=123555 + _globals['_LACPMETRIC']._serialized_start=123558 + _globals['_LACPMETRIC']._serialized_end=124595 + _globals['_LACPMETRIC_ACTIVITY']._serialized_start=124124 + _globals['_LACPMETRIC_ACTIVITY']._serialized_end=124184 + _globals['_LACPMETRIC_ACTIVITY_ENUM']._serialized_start=124136 + _globals['_LACPMETRIC_ACTIVITY_ENUM']._serialized_end=124184 + _globals['_LACPMETRIC_TIMEOUT']._serialized_start=124186 + _globals['_LACPMETRIC_TIMEOUT']._serialized_end=124241 + _globals['_LACPMETRIC_TIMEOUT_ENUM']._serialized_start=124197 + _globals['_LACPMETRIC_TIMEOUT_ENUM']._serialized_end=124241 + _globals['_LACPMETRIC_SYNCHRONIZATION']._serialized_start=124243 + _globals['_LACPMETRIC_SYNCHRONIZATION']._serialized_end=124312 + _globals['_LACPMETRIC_SYNCHRONIZATION_ENUM']._serialized_start=124262 + _globals['_LACPMETRIC_SYNCHRONIZATION_ENUM']._serialized_end=124312 + _globals['_LLDPMETRICSREQUEST']._serialized_start=124598 + _globals['_LLDPMETRICSREQUEST']._serialized_end=124851 + _globals['_LLDPMETRICSREQUEST_COLUMNNAMES']._serialized_start=124705 + _globals['_LLDPMETRICSREQUEST_COLUMNNAMES']._serialized_end=124851 + _globals['_LLDPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=124721 + _globals['_LLDPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=124851 + _globals['_LLDPMETRIC']._serialized_start=124854 + _globals['_LLDPMETRIC']._serialized_end=125156 + _globals['_RSVPMETRICSREQUEST']._serialized_start=125159 + _globals['_RSVPMETRICSREQUEST']._serialized_end=125865 + _globals['_RSVPMETRICSREQUEST_COLUMNNAMES']._serialized_start=125268 + _globals['_RSVPMETRICSREQUEST_COLUMNNAMES']._serialized_end=125865 + _globals['_RSVPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=125284 + _globals['_RSVPMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=125865 + _globals['_RSVPMETRIC']._serialized_start=125868 + _globals['_RSVPMETRIC']._serialized_end=127264 + _globals['_DHCPV4CLIENTMETRICSREQUEST']._serialized_start=127267 + _globals['_DHCPV4CLIENTMETRICSREQUEST']._serialized_end=127568 + _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_start=127392 + _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_end=127568 + _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=127408 + _globals['_DHCPV4CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=127568 + _globals['_DHCPV4CLIENTMETRIC']._serialized_start=127571 + _globals['_DHCPV4CLIENTMETRIC']._serialized_end=127949 + _globals['_DHCPV4SERVERMETRICSREQUEST']._serialized_start=127952 + _globals['_DHCPV4SERVERMETRICSREQUEST']._serialized_end=128257 + _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_start=128077 + _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_end=128257 + _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=128093 + _globals['_DHCPV4SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=128257 + _globals['_DHCPV4SERVERMETRIC']._serialized_start=128260 + _globals['_DHCPV4SERVERMETRIC']._serialized_end=128646 + _globals['_DHCPV6CLIENTMETRICSREQUEST']._serialized_start=128649 + _globals['_DHCPV6CLIENTMETRICSREQUEST']._serialized_end=129129 + _globals['_DHCPV6CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_start=128774 + _globals['_DHCPV6CLIENTMETRICSREQUEST_COLUMNNAMES']._serialized_end=129129 + _globals['_DHCPV6CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=128790 + _globals['_DHCPV6CLIENTMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=129129 + _globals['_DHCPV6CLIENTMETRIC']._serialized_start=129132 + _globals['_DHCPV6CLIENTMETRIC']._serialized_end=129916 + _globals['_DHCPV6SERVERMETRICSREQUEST']._serialized_start=129919 + _globals['_DHCPV6SERVERMETRICSREQUEST']._serialized_end=130435 + _globals['_DHCPV6SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_start=130044 + _globals['_DHCPV6SERVERMETRICSREQUEST_COLUMNNAMES']._serialized_end=130435 + _globals['_DHCPV6SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_start=130060 + _globals['_DHCPV6SERVERMETRICSREQUEST_COLUMNNAMES_ENUM']._serialized_end=130435 + _globals['_DHCPV6SERVERMETRIC']._serialized_start=130438 + _globals['_DHCPV6SERVERMETRIC']._serialized_end=131310 + _globals['_STATESREQUEST']._serialized_start=131313 + _globals['_STATESREQUEST']._serialized_end=132157 + _globals['_STATESREQUEST_CHOICE']._serialized_start=131920 + _globals['_STATESREQUEST_CHOICE']._serialized_end=132146 + _globals['_STATESREQUEST_CHOICE_ENUM']._serialized_start=131931 + _globals['_STATESREQUEST_CHOICE_ENUM']._serialized_end=132146 + _globals['_STATESRESPONSE']._serialized_start=132160 + _globals['_STATESRESPONSE']._serialized_end=132938 + _globals['_STATESRESPONSE_CHOICE']._serialized_start=131920 + _globals['_STATESRESPONSE_CHOICE']._serialized_end=132146 + _globals['_STATESRESPONSE_CHOICE_ENUM']._serialized_start=131931 + _globals['_STATESRESPONSE_CHOICE_ENUM']._serialized_end=132146 + _globals['_NEIGHBORSV4STATESREQUEST']._serialized_start=132940 + _globals['_NEIGHBORSV4STATESREQUEST']._serialized_end=132990 + _globals['_NEIGHBORSV4STATE']._serialized_start=132993 + _globals['_NEIGHBORSV4STATE']._serialized_end=133157 + _globals['_NEIGHBORSV6STATESREQUEST']._serialized_start=133159 + _globals['_NEIGHBORSV6STATESREQUEST']._serialized_end=133209 + _globals['_NEIGHBORSV6STATE']._serialized_start=133212 + _globals['_NEIGHBORSV6STATE']._serialized_end=133376 + _globals['_BGPPREFIXSTATEREQUEST']._serialized_start=133379 + _globals['_BGPPREFIXSTATEREQUEST']._serialized_end=133701 + _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS']._serialized_start=133625 + _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS']._serialized_end=133701 + _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM']._serialized_start=50227 + _globals['_BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM']._serialized_end=50286 + _globals['_BGPPREFIXIPV4UNICASTFILTER']._serialized_start=133704 + _globals['_BGPPREFIXIPV4UNICASTFILTER']._serialized_end=133977 + _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN']._serialized_start=24480 + _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN']._serialized_end=24547 + _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM']._serialized_end=24547 + _globals['_BGPPREFIXIPV6UNICASTFILTER']._serialized_start=133980 + _globals['_BGPPREFIXIPV6UNICASTFILTER']._serialized_end=134253 + _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN']._serialized_start=24480 + _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN']._serialized_end=24547 + _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM']._serialized_end=24547 + _globals['_BGPPREFIXESSTATE']._serialized_start=134256 + _globals['_BGPPREFIXESSTATE']._serialized_end=134446 + _globals['_BGPPREFIXIPV4UNICASTSTATE']._serialized_start=134449 + _globals['_BGPPREFIXIPV4UNICASTSTATE']._serialized_end=135102 + _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN']._serialized_start=24480 + _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN']._serialized_end=24547 + _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM']._serialized_end=24547 + _globals['_BGPPREFIXIPV6UNICASTSTATE']._serialized_start=135105 + _globals['_BGPPREFIXIPV6UNICASTSTATE']._serialized_end=135758 + _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN']._serialized_start=24480 + _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN']._serialized_end=24547 + _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM']._serialized_start=24490 + _globals['_BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM']._serialized_end=24547 + _globals['_RESULTEXTENDEDCOMMUNITY']._serialized_start=135760 + _globals['_RESULTEXTENDEDCOMMUNITY']._serialized_end=135871 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED']._serialized_start=135874 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED']._serialized_end=136632 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE']._serialized_start=136428 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE']._serialized_end=136621 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE_ENUM']._serialized_start=136439 + _globals['_RESULTEXTENDEDCOMMUNITYSTRUCTURED_CHOICE_ENUM']._serialized_end=136621 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_start=136635 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTETARGET']._serialized_end=136797 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_start=136800 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPEROUTEORIGIN']._serialized_end=136962 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_start=136965 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE']._serialized_end=137381 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=32265 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_start=137384 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTEORIGIN']._serialized_end=137553 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_start=137556 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPEROUTETARGET']._serialized_end=137725 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_start=137728 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE']._serialized_end=138156 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_start=32265 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEIPV4ADDRESSTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_start=138159 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTETARGET']._serialized_end=138321 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_start=138324 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPEROUTEORIGIN']._serialized_end=138486 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_start=138489 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE']._serialized_end=138905 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_start=32265 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_start=32275 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVE4OCTETASTYPE_CHOICE_ENUM']._serialized_end=32350 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_start=138907 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPECOLOR']._serialized_end=139017 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_start=139020 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPEENCAPSULATION']._serialized_end=139156 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_start=139159 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE']._serialized_end=139551 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_start=34387 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE']._serialized_end=34466 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_start=34397 + _globals['_RESULTEXTENDEDCOMMUNITYTRANSITIVEOPAQUETYPE_CHOICE_ENUM']._serialized_end=34466 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_start=139554 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPELINKBANDWIDTH']._serialized_end=139705 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_start=139708 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE']._serialized_end=140020 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_start=35226 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE']._serialized_end=35287 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_start=35236 + _globals['_RESULTEXTENDEDCOMMUNITYNONTRANSITIVE2OCTETASTYPE_CHOICE_ENUM']._serialized_end=35287 + _globals['_RESULTBGPCOMMUNITY']._serialized_start=140023 + _globals['_RESULTBGPCOMMUNITY']._serialized_end=140327 + _globals['_RESULTBGPCOMMUNITY_TYPE']._serialized_start=24809 + _globals['_RESULTBGPCOMMUNITY_TYPE']._serialized_end=24951 + _globals['_RESULTBGPCOMMUNITY_TYPE_ENUM']._serialized_start=24818 + _globals['_RESULTBGPCOMMUNITY_TYPE_ENUM']._serialized_end=24951 + _globals['_RESULTBGPASPATH']._serialized_start=140329 + _globals['_RESULTBGPASPATH']._serialized_end=140393 + _globals['_RESULTBGPASPATHSEGMENT']._serialized_start=140396 + _globals['_RESULTBGPASPATHSEGMENT']._serialized_end=140602 + _globals['_RESULTBGPASPATHSEGMENT_TYPE']._serialized_start=25912 + _globals['_RESULTBGPASPATHSEGMENT_TYPE']._serialized_end=26005 + _globals['_RESULTBGPASPATHSEGMENT_TYPE_ENUM']._serialized_start=25920 + _globals['_RESULTBGPASPATHSEGMENT_TYPE_ENUM']._serialized_end=26005 + _globals['_ISISLSPSSTATEREQUEST']._serialized_start=140604 + _globals['_ISISLSPSSTATEREQUEST']._serialized_end=140653 + _globals['_ISISLSPSSTATE']._serialized_start=140655 + _globals['_ISISLSPSSTATE']._serialized_end=140755 + _globals['_ISISLSPSTATE']._serialized_start=140758 + _globals['_ISISLSPSTATE']._serialized_end=141180 + _globals['_ISISLSPSTATE_PDUTYPE']._serialized_start=141026 + _globals['_ISISLSPSTATE_PDUTYPE']._serialized_end=141086 + _globals['_ISISLSPSTATE_PDUTYPE_ENUM']._serialized_start=15940 + _globals['_ISISLSPSTATE_PDUTYPE_ENUM']._serialized_end=15989 + _globals['_ISISLSPTLVS']._serialized_start=141183 + _globals['_ISISLSPTLVS']._serialized_end=141691 + _globals['_ISISLSPHOSTNAME']._serialized_start=141693 + _globals['_ISISLSPHOSTNAME']._serialized_end=141746 + _globals['_ISISLSPFLAGS']._serialized_start=141749 + _globals['_ISISLSPFLAGS']._serialized_end=142051 + _globals['_ISISLSPISREACHABILITYTLV']._serialized_start=142053 + _globals['_ISISLSPISREACHABILITYTLV']._serialized_end=142120 + _globals['_ISISLSPEXTENDEDISREACHABILITYTLV']._serialized_start=142122 + _globals['_ISISLSPEXTENDEDISREACHABILITYTLV']._serialized_end=142197 + _globals['_ISISLSPNEIGHBOR']._serialized_start=142199 + _globals['_ISISLSPNEIGHBOR']._serialized_end=142254 + _globals['_ISISLSPIPV4INTERNALREACHABILITYTLV']._serialized_start=142256 + _globals['_ISISLSPIPV4INTERNALREACHABILITYTLV']._serialized_end=142332 + _globals['_ISISLSPIPV4EXTERNALREACHABILITYTLV']._serialized_start=142334 + _globals['_ISISLSPIPV4EXTERNALREACHABILITYTLV']._serialized_end=142410 + _globals['_ISISLSPV4PREFIX']._serialized_start=142413 + _globals['_ISISLSPV4PREFIX']._serialized_end=142884 + _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE']._serialized_start=19367 + _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE']._serialized_end=19430 + _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=19389 + _globals['_ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=19430 + _globals['_ISISLSPV4PREFIX_ORIGINTYPE']._serialized_start=19300 + _globals['_ISISLSPV4PREFIX_ORIGINTYPE']._serialized_end=19365 + _globals['_ISISLSPV4PREFIX_ORIGINTYPE_ENUM']._serialized_start=19314 + _globals['_ISISLSPV4PREFIX_ORIGINTYPE_ENUM']._serialized_end=19365 + _globals['_ISISLSPEXTENDEDIPV4REACHABILITYTLV']._serialized_start=142886 + _globals['_ISISLSPEXTENDEDIPV4REACHABILITYTLV']._serialized_end=142970 + _globals['_ISISLSPEXTENDEDV4PREFIX']._serialized_start=142973 + _globals['_ISISLSPEXTENDEDV4PREFIX']._serialized_end=143354 + _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE']._serialized_start=19367 + _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE']._serialized_end=19430 + _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=19389 + _globals['_ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=19430 + _globals['_ISISLSPIPV6REACHABILITYTLV']._serialized_start=143356 + _globals['_ISISLSPIPV6REACHABILITYTLV']._serialized_end=143424 + _globals['_ISISLSPV6PREFIX']._serialized_start=143427 + _globals['_ISISLSPV6PREFIX']._serialized_end=143939 + _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE']._serialized_start=19367 + _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE']._serialized_end=19430 + _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_start=19389 + _globals['_ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM']._serialized_end=19430 + _globals['_ISISLSPV6PREFIX_ORIGINTYPE']._serialized_start=19300 + _globals['_ISISLSPV6PREFIX_ORIGINTYPE']._serialized_end=19365 + _globals['_ISISLSPV6PREFIX_ORIGINTYPE_ENUM']._serialized_start=19314 + _globals['_ISISLSPV6PREFIX_ORIGINTYPE_ENUM']._serialized_end=19365 + _globals['_ISISLSPPREFIXATTRIBUTES']._serialized_start=143941 + _globals['_ISISLSPPREFIXATTRIBUTES']._serialized_end=144062 + _globals['_LLDPNEIGHBORSSTATEREQUEST']._serialized_start=144064 + _globals['_LLDPNEIGHBORSSTATEREQUEST']._serialized_end=144140 + _globals['_LLDPNEIGHBORSSTATE']._serialized_start=144143 + _globals['_LLDPNEIGHBORSSTATE']._serialized_end=145306 + _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE']._serialized_start=144722 + _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE']._serialized_end=144896 + _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM']._serialized_start=144740 + _globals['_LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM']._serialized_end=144896 + _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE']._serialized_start=144899 + _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE']._serialized_end=145069 + _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM']._serialized_start=144914 + _globals['_LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM']._serialized_end=145069 + _globals['_LLDPCUSTOMTLVSTATE']._serialized_start=145309 + _globals['_LLDPCUSTOMTLVSTATE']._serialized_end=145439 + _globals['_LLDPCAPABILITYSTATE']._serialized_start=145442 + _globals['_LLDPCAPABILITYSTATE']._serialized_end=145842 + _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME']._serialized_start=145575 + _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME']._serialized_end=145799 + _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM']._serialized_start=145594 + _globals['_LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM']._serialized_end=145799 + _globals['_RSVPLSPSSTATEREQUEST']._serialized_start=145844 + _globals['_RSVPLSPSSTATEREQUEST']._serialized_end=145893 + _globals['_RSVPLSPSSTATE']._serialized_start=145895 + _globals['_RSVPLSPSSTATE']._serialized_end=146004 + _globals['_RSVPIPV4LSPSTATE']._serialized_start=146007 + _globals['_RSVPIPV4LSPSTATE']._serialized_end=146233 + _globals['_RSVPLSPSTATE']._serialized_start=146236 + _globals['_RSVPLSPSTATE']._serialized_end=146800 + _globals['_RSVPLSPSTATE_SESSIONSTATUS']._serialized_start=146530 + _globals['_RSVPLSPSTATE_SESSIONSTATUS']._serialized_end=146588 + _globals['_RSVPLSPSTATE_SESSIONSTATUS_ENUM']._serialized_start=19389 + _globals['_RSVPLSPSTATE_SESSIONSTATUS_ENUM']._serialized_end=19430 + _globals['_RSVPLSPSTATE_LASTFLAPREASON']._serialized_start=146590 + _globals['_RSVPLSPSTATE_LASTFLAPREASON']._serialized_end=146679 + _globals['_RSVPLSPSTATE_LASTFLAPREASON_ENUM']._serialized_start=146608 + _globals['_RSVPLSPSTATE_LASTFLAPREASON_ENUM']._serialized_end=146679 + _globals['_RSVPLSPIPV4RRO']._serialized_start=146802 + _globals['_RSVPLSPIPV4RRO']._serialized_end=146900 + _globals['_RSVPLSPIPV4ERO']._serialized_start=146903 + _globals['_RSVPLSPIPV4ERO']._serialized_end=147145 + _globals['_RSVPLSPIPV4ERO_TYPE']._serialized_start=147010 + _globals['_RSVPLSPIPV4ERO_TYPE']._serialized_end=147117 + _globals['_RSVPLSPIPV4ERO_TYPE_ENUM']._serialized_start=147018 + _globals['_RSVPLSPIPV4ERO_TYPE_ENUM']._serialized_end=147117 + _globals['_DHCPV4INTERFACESTATEREQUEST']._serialized_start=147147 + _globals['_DHCPV4INTERFACESTATEREQUEST']._serialized_end=147203 + _globals['_DHCPV4INTERFACESTATE']._serialized_start=147206 + _globals['_DHCPV4INTERFACESTATE']._serialized_end=147542 + _globals['_DHCPV4LEASESTATEREQUEST']._serialized_start=147544 + _globals['_DHCPV4LEASESTATEREQUEST']._serialized_end=147596 + _globals['_DHCPV4LEASESSTATE']._serialized_start=147598 + _globals['_DHCPV4LEASESSTATE']._serialized_end=147708 + _globals['_DHCPV4LEASESTATE']._serialized_start=147711 + _globals['_DHCPV4LEASESTATE']._serialized_end=148049 + _globals['_DHCPV6INTERFACESTATEREQUEST']._serialized_start=148051 + _globals['_DHCPV6INTERFACESTATEREQUEST']._serialized_end=148107 + _globals['_DHCPV6INTERFACESTATE']._serialized_start=148110 + _globals['_DHCPV6INTERFACESTATE']._serialized_end=148510 + _globals['_DHCPV6LEASESTATEREQUEST']._serialized_start=148512 + _globals['_DHCPV6LEASESTATEREQUEST']._serialized_end=148564 + _globals['_DHCPV6LEASESSTATE']._serialized_start=148566 + _globals['_DHCPV6LEASESSTATE']._serialized_end=148682 + _globals['_DHCPV6SERVERLEASESTATE']._serialized_start=148685 + _globals['_DHCPV6SERVERLEASESTATE']._serialized_end=149033 + _globals['_CAPTUREREQUEST']._serialized_start=149035 + _globals['_CAPTUREREQUEST']._serialized_end=149089 + _globals['_PATTERNFLOWETHERNETDSTCOUNTER']._serialized_start=149091 + _globals['_PATTERNFLOWETHERNETDSTCOUNTER']._serialized_end=149210 + _globals['_PATTERNFLOWETHERNETDSTMETRICTAG']._serialized_start=149212 + _globals['_PATTERNFLOWETHERNETDSTMETRICTAG']._serialized_end=149337 + _globals['_PATTERNFLOWETHERNETDST']._serialized_start=149340 + _globals['_PATTERNFLOWETHERNETDST']._serialized_end=149778 + _globals['_PATTERNFLOWETHERNETDST_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWETHERNETDST_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWETHERNETDST_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWETHERNETDST_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWETHERNETSRCCOUNTER']._serialized_start=149780 + _globals['_PATTERNFLOWETHERNETSRCCOUNTER']._serialized_end=149899 + _globals['_PATTERNFLOWETHERNETSRCMETRICTAG']._serialized_start=149901 + _globals['_PATTERNFLOWETHERNETSRCMETRICTAG']._serialized_end=150026 + _globals['_PATTERNFLOWETHERNETSRC']._serialized_start=150029 + _globals['_PATTERNFLOWETHERNETSRC']._serialized_end=150429 + _globals['_PATTERNFLOWETHERNETSRC_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETSRC_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETSRC_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETSRC_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETETHERTYPECOUNTER']._serialized_start=150431 + _globals['_PATTERNFLOWETHERNETETHERTYPECOUNTER']._serialized_end=150556 + _globals['_PATTERNFLOWETHERNETETHERTYPEMETRICTAG']._serialized_start=150559 + _globals['_PATTERNFLOWETHERNETETHERTYPEMETRICTAG']._serialized_end=150690 + _globals['_PATTERNFLOWETHERNETETHERTYPE']._serialized_start=150693 + _globals['_PATTERNFLOWETHERNETETHERTYPE']._serialized_end=151161 + _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWETHERNETPFCQUEUECOUNTER']._serialized_start=151163 + _globals['_PATTERNFLOWETHERNETPFCQUEUECOUNTER']._serialized_end=151287 + _globals['_PATTERNFLOWETHERNETPFCQUEUEMETRICTAG']._serialized_start=151290 + _globals['_PATTERNFLOWETHERNETPFCQUEUEMETRICTAG']._serialized_end=151420 + _globals['_PATTERNFLOWETHERNETPFCQUEUE']._serialized_start=151423 + _globals['_PATTERNFLOWETHERNETPFCQUEUE']._serialized_end=151848 + _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVLANPRIORITYCOUNTER']._serialized_start=151850 + _globals['_PATTERNFLOWVLANPRIORITYCOUNTER']._serialized_end=151970 + _globals['_PATTERNFLOWVLANPRIORITYMETRICTAG']._serialized_start=151972 + _globals['_PATTERNFLOWVLANPRIORITYMETRICTAG']._serialized_end=152098 + _globals['_PATTERNFLOWVLANPRIORITY']._serialized_start=152101 + _globals['_PATTERNFLOWVLANPRIORITY']._serialized_end=152506 + _globals['_PATTERNFLOWVLANPRIORITY_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVLANPRIORITY_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVLANPRIORITY_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVLANPRIORITY_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVLANCFICOUNTER']._serialized_start=152508 + _globals['_PATTERNFLOWVLANCFICOUNTER']._serialized_end=152623 + _globals['_PATTERNFLOWVLANCFIMETRICTAG']._serialized_start=152625 + _globals['_PATTERNFLOWVLANCFIMETRICTAG']._serialized_end=152746 + _globals['_PATTERNFLOWVLANCFI']._serialized_start=152749 + _globals['_PATTERNFLOWVLANCFI']._serialized_end=153129 + _globals['_PATTERNFLOWVLANCFI_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVLANCFI_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVLANCFI_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVLANCFI_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVLANIDCOUNTER']._serialized_start=153131 + _globals['_PATTERNFLOWVLANIDCOUNTER']._serialized_end=153245 + _globals['_PATTERNFLOWVLANIDMETRICTAG']._serialized_start=153247 + _globals['_PATTERNFLOWVLANIDMETRICTAG']._serialized_end=153367 + _globals['_PATTERNFLOWVLANID']._serialized_start=153370 + _globals['_PATTERNFLOWVLANID']._serialized_end=153745 + _globals['_PATTERNFLOWVLANID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVLANID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVLANID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVLANID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVLANTPIDCOUNTER']._serialized_start=153747 + _globals['_PATTERNFLOWVLANTPIDCOUNTER']._serialized_end=153863 + _globals['_PATTERNFLOWVLANTPIDMETRICTAG']._serialized_start=153865 + _globals['_PATTERNFLOWVLANTPIDMETRICTAG']._serialized_end=153987 + _globals['_PATTERNFLOWVLANTPID']._serialized_start=153990 + _globals['_PATTERNFLOWVLANTPID']._serialized_end=154375 + _globals['_PATTERNFLOWVLANTPID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVLANTPID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVLANTPID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVLANTPID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANFLAGSCOUNTER']._serialized_start=154377 + _globals['_PATTERNFLOWVXLANFLAGSCOUNTER']._serialized_end=154495 + _globals['_PATTERNFLOWVXLANFLAGSMETRICTAG']._serialized_start=154497 + _globals['_PATTERNFLOWVXLANFLAGSMETRICTAG']._serialized_end=154621 + _globals['_PATTERNFLOWVXLANFLAGS']._serialized_start=154624 + _globals['_PATTERNFLOWVXLANFLAGS']._serialized_end=155019 + _globals['_PATTERNFLOWVXLANFLAGS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVXLANFLAGS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANFLAGS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVXLANFLAGS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANRESERVED0COUNTER']._serialized_start=155021 + _globals['_PATTERNFLOWVXLANRESERVED0COUNTER']._serialized_end=155143 + _globals['_PATTERNFLOWVXLANRESERVED0METRICTAG']._serialized_start=155146 + _globals['_PATTERNFLOWVXLANRESERVED0METRICTAG']._serialized_end=155274 + _globals['_PATTERNFLOWVXLANRESERVED0']._serialized_start=155277 + _globals['_PATTERNFLOWVXLANRESERVED0']._serialized_end=155692 + _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANVNICOUNTER']._serialized_start=155694 + _globals['_PATTERNFLOWVXLANVNICOUNTER']._serialized_end=155810 + _globals['_PATTERNFLOWVXLANVNIMETRICTAG']._serialized_start=155812 + _globals['_PATTERNFLOWVXLANVNIMETRICTAG']._serialized_end=155934 + _globals['_PATTERNFLOWVXLANVNI']._serialized_start=155937 + _globals['_PATTERNFLOWVXLANVNI']._serialized_end=156360 + _globals['_PATTERNFLOWVXLANVNI_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWVXLANVNI_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWVXLANVNI_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWVXLANVNI_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWVXLANRESERVED1COUNTER']._serialized_start=156362 + _globals['_PATTERNFLOWVXLANRESERVED1COUNTER']._serialized_end=156484 + _globals['_PATTERNFLOWVXLANRESERVED1METRICTAG']._serialized_start=156487 + _globals['_PATTERNFLOWVXLANRESERVED1METRICTAG']._serialized_end=156615 + _globals['_PATTERNFLOWVXLANRESERVED1']._serialized_start=156618 + _globals['_PATTERNFLOWVXLANRESERVED1']._serialized_end=157033 + _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4VERSIONCOUNTER']._serialized_start=157035 + _globals['_PATTERNFLOWIPV4VERSIONCOUNTER']._serialized_end=157154 + _globals['_PATTERNFLOWIPV4VERSIONMETRICTAG']._serialized_start=157156 + _globals['_PATTERNFLOWIPV4VERSIONMETRICTAG']._serialized_end=157281 + _globals['_PATTERNFLOWIPV4VERSION']._serialized_start=157284 + _globals['_PATTERNFLOWIPV4VERSION']._serialized_end=157684 + _globals['_PATTERNFLOWIPV4VERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4VERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4VERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4VERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4HEADERLENGTHCOUNTER']._serialized_start=157686 + _globals['_PATTERNFLOWIPV4HEADERLENGTHCOUNTER']._serialized_end=157810 + _globals['_PATTERNFLOWIPV4HEADERLENGTHMETRICTAG']._serialized_start=157813 + _globals['_PATTERNFLOWIPV4HEADERLENGTHMETRICTAG']._serialized_end=157943 + _globals['_PATTERNFLOWIPV4HEADERLENGTH']._serialized_start=157946 + _globals['_PATTERNFLOWIPV4HEADERLENGTH']._serialized_end=158409 + _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4TOTALLENGTHCOUNTER']._serialized_start=158411 + _globals['_PATTERNFLOWIPV4TOTALLENGTHCOUNTER']._serialized_end=158534 + _globals['_PATTERNFLOWIPV4TOTALLENGTHMETRICTAG']._serialized_start=158537 + _globals['_PATTERNFLOWIPV4TOTALLENGTHMETRICTAG']._serialized_end=158666 + _globals['_PATTERNFLOWIPV4TOTALLENGTH']._serialized_start=158669 + _globals['_PATTERNFLOWIPV4TOTALLENGTH']._serialized_end=159127 + _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4IDENTIFICATIONCOUNTER']._serialized_start=159129 + _globals['_PATTERNFLOWIPV4IDENTIFICATIONCOUNTER']._serialized_end=159255 + _globals['_PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG']._serialized_start=159258 + _globals['_PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG']._serialized_end=159390 + _globals['_PATTERNFLOWIPV4IDENTIFICATION']._serialized_start=159393 + _globals['_PATTERNFLOWIPV4IDENTIFICATION']._serialized_end=159828 + _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4RESERVEDCOUNTER']._serialized_start=159830 + _globals['_PATTERNFLOWIPV4RESERVEDCOUNTER']._serialized_end=159950 + _globals['_PATTERNFLOWIPV4RESERVEDMETRICTAG']._serialized_start=159952 + _globals['_PATTERNFLOWIPV4RESERVEDMETRICTAG']._serialized_end=160078 + _globals['_PATTERNFLOWIPV4RESERVED']._serialized_start=160081 + _globals['_PATTERNFLOWIPV4RESERVED']._serialized_end=160486 + _globals['_PATTERNFLOWIPV4RESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4RESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4RESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4RESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DONTFRAGMENTCOUNTER']._serialized_start=160488 + _globals['_PATTERNFLOWIPV4DONTFRAGMENTCOUNTER']._serialized_end=160612 + _globals['_PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG']._serialized_start=160615 + _globals['_PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG']._serialized_end=160745 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT']._serialized_start=160748 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT']._serialized_end=161173 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER']._serialized_start=161175 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER']._serialized_end=161300 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG']._serialized_start=161303 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG']._serialized_end=161434 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS']._serialized_start=161437 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS']._serialized_end=161867 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER']._serialized_start=161869 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER']._serialized_end=161995 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG']._serialized_start=161998 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG']._serialized_end=162130 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET']._serialized_start=162133 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET']._serialized_end=162568 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TIMETOLIVECOUNTER']._serialized_start=162570 + _globals['_PATTERNFLOWIPV4TIMETOLIVECOUNTER']._serialized_end=162692 + _globals['_PATTERNFLOWIPV4TIMETOLIVEMETRICTAG']._serialized_start=162695 + _globals['_PATTERNFLOWIPV4TIMETOLIVEMETRICTAG']._serialized_end=162823 + _globals['_PATTERNFLOWIPV4TIMETOLIVE']._serialized_start=162826 + _globals['_PATTERNFLOWIPV4TIMETOLIVE']._serialized_end=163241 + _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4PROTOCOLCOUNTER']._serialized_start=163243 + _globals['_PATTERNFLOWIPV4PROTOCOLCOUNTER']._serialized_end=163363 + _globals['_PATTERNFLOWIPV4PROTOCOLMETRICTAG']._serialized_start=163365 + _globals['_PATTERNFLOWIPV4PROTOCOLMETRICTAG']._serialized_end=163491 + _globals['_PATTERNFLOWIPV4PROTOCOL']._serialized_start=163494 + _globals['_PATTERNFLOWIPV4PROTOCOL']._serialized_end=163937 + _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM']._serialized_start=163940 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM']._serialized_end=164291 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWIPV4SRCCOUNTER']._serialized_start=164293 + _globals['_PATTERNFLOWIPV4SRCCOUNTER']._serialized_end=164408 + _globals['_PATTERNFLOWIPV4SRCMETRICTAG']._serialized_start=164410 + _globals['_PATTERNFLOWIPV4SRCMETRICTAG']._serialized_end=164531 + _globals['_PATTERNFLOWIPV4SRCRANDOM']._serialized_start=164534 + _globals['_PATTERNFLOWIPV4SRCRANDOM']._serialized_end=164670 + _globals['_PATTERNFLOWIPV4SRC']._serialized_start=164673 + _globals['_PATTERNFLOWIPV4SRC']._serialized_end=165155 + _globals['_PATTERNFLOWIPV4SRC_CHOICE']._serialized_start=165026 + _globals['_PATTERNFLOWIPV4SRC_CHOICE']._serialized_end=165134 + _globals['_PATTERNFLOWIPV4SRC_CHOICE_ENUM']._serialized_start=165036 + _globals['_PATTERNFLOWIPV4SRC_CHOICE_ENUM']._serialized_end=165134 + _globals['_PATTERNFLOWIPV4DSTCOUNTER']._serialized_start=165157 + _globals['_PATTERNFLOWIPV4DSTCOUNTER']._serialized_end=165272 + _globals['_PATTERNFLOWIPV4DSTMETRICTAG']._serialized_start=165274 + _globals['_PATTERNFLOWIPV4DSTMETRICTAG']._serialized_end=165395 + _globals['_PATTERNFLOWIPV4DSTRANDOM']._serialized_start=165398 + _globals['_PATTERNFLOWIPV4DSTRANDOM']._serialized_end=165534 + _globals['_PATTERNFLOWIPV4DST']._serialized_start=165537 + _globals['_PATTERNFLOWIPV4DST']._serialized_end=166019 + _globals['_PATTERNFLOWIPV4DST_CHOICE']._serialized_start=165026 + _globals['_PATTERNFLOWIPV4DST_CHOICE']._serialized_end=165134 + _globals['_PATTERNFLOWIPV4DST_CHOICE_ENUM']._serialized_start=165036 + _globals['_PATTERNFLOWIPV4DST_CHOICE_ENUM']._serialized_end=165134 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER']._serialized_start=166022 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAGCOUNTER']._serialized_end=166161 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG']._serialized_start=166164 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG']._serialized_end=166585 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPECOPIEDFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER']._serialized_start=166588 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASSCOUNTER']._serialized_end=166728 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS']._serialized_start=166731 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS']._serialized_end=167156 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONCLASS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER']._serialized_start=167159 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBERCOUNTER']._serialized_end=167300 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER']._serialized_start=167303 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER']._serialized_end=167732 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4OPTIONSCUSTOMTYPEOPTIONNUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4PRIORITYRAWCOUNTER']._serialized_start=167734 + _globals['_PATTERNFLOWIPV4PRIORITYRAWCOUNTER']._serialized_end=167857 + _globals['_PATTERNFLOWIPV4PRIORITYRAWMETRICTAG']._serialized_start=167860 + _globals['_PATTERNFLOWIPV4PRIORITYRAWMETRICTAG']._serialized_end=167989 + _globals['_PATTERNFLOWIPV4PRIORITYRAW']._serialized_start=167992 + _globals['_PATTERNFLOWIPV4PRIORITYRAW']._serialized_end=168412 + _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DSCPPHBCOUNTER']._serialized_start=168414 + _globals['_PATTERNFLOWIPV4DSCPPHBCOUNTER']._serialized_end=168533 + _globals['_PATTERNFLOWIPV4DSCPPHBMETRICTAG']._serialized_start=168535 + _globals['_PATTERNFLOWIPV4DSCPPHBMETRICTAG']._serialized_end=168660 + _globals['_PATTERNFLOWIPV4DSCPPHB']._serialized_start=168663 + _globals['_PATTERNFLOWIPV4DSCPPHB']._serialized_end=169063 + _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DSCPECNCOUNTER']._serialized_start=169065 + _globals['_PATTERNFLOWIPV4DSCPECNCOUNTER']._serialized_end=169184 + _globals['_PATTERNFLOWIPV4DSCPECNMETRICTAG']._serialized_start=169186 + _globals['_PATTERNFLOWIPV4DSCPECNMETRICTAG']._serialized_end=169311 + _globals['_PATTERNFLOWIPV4DSCPECN']._serialized_start=169314 + _globals['_PATTERNFLOWIPV4DSCPECN']._serialized_end=169714 + _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCECOUNTER']._serialized_start=169716 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCECOUNTER']._serialized_end=169841 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG']._serialized_start=169844 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG']._serialized_end=169975 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE']._serialized_start=169978 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE']._serialized_end=170408 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSDELAYCOUNTER']._serialized_start=170410 + _globals['_PATTERNFLOWIPV4TOSDELAYCOUNTER']._serialized_end=170530 + _globals['_PATTERNFLOWIPV4TOSDELAYMETRICTAG']._serialized_start=170532 + _globals['_PATTERNFLOWIPV4TOSDELAYMETRICTAG']._serialized_end=170658 + _globals['_PATTERNFLOWIPV4TOSDELAY']._serialized_start=170661 + _globals['_PATTERNFLOWIPV4TOSDELAY']._serialized_end=171066 + _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER']._serialized_start=171068 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER']._serialized_end=171193 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG']._serialized_start=171196 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG']._serialized_end=171327 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT']._serialized_start=171330 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT']._serialized_end=171760 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSRELIABILITYCOUNTER']._serialized_start=171762 + _globals['_PATTERNFLOWIPV4TOSRELIABILITYCOUNTER']._serialized_end=171888 + _globals['_PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG']._serialized_start=171891 + _globals['_PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG']._serialized_end=172023 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY']._serialized_start=172026 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY']._serialized_end=172461 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSMONETARYCOUNTER']._serialized_start=172463 + _globals['_PATTERNFLOWIPV4TOSMONETARYCOUNTER']._serialized_end=172586 + _globals['_PATTERNFLOWIPV4TOSMONETARYMETRICTAG']._serialized_start=172589 + _globals['_PATTERNFLOWIPV4TOSMONETARYMETRICTAG']._serialized_end=172718 + _globals['_PATTERNFLOWIPV4TOSMONETARY']._serialized_start=172721 + _globals['_PATTERNFLOWIPV4TOSMONETARY']._serialized_end=173141 + _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSUNUSEDCOUNTER']._serialized_start=173143 + _globals['_PATTERNFLOWIPV4TOSUNUSEDCOUNTER']._serialized_end=173264 + _globals['_PATTERNFLOWIPV4TOSUNUSEDMETRICTAG']._serialized_start=173266 + _globals['_PATTERNFLOWIPV4TOSUNUSEDMETRICTAG']._serialized_end=173393 + _globals['_PATTERNFLOWIPV4TOSUNUSED']._serialized_start=173396 + _globals['_PATTERNFLOWIPV4TOSUNUSED']._serialized_end=173806 + _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6VERSIONCOUNTER']._serialized_start=173808 + _globals['_PATTERNFLOWIPV6VERSIONCOUNTER']._serialized_end=173927 + _globals['_PATTERNFLOWIPV6VERSIONMETRICTAG']._serialized_start=173929 + _globals['_PATTERNFLOWIPV6VERSIONMETRICTAG']._serialized_end=174054 + _globals['_PATTERNFLOWIPV6VERSION']._serialized_start=174057 + _globals['_PATTERNFLOWIPV6VERSION']._serialized_end=174457 + _globals['_PATTERNFLOWIPV6VERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV6VERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6VERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV6VERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6TRAFFICCLASSCOUNTER']._serialized_start=174459 + _globals['_PATTERNFLOWIPV6TRAFFICCLASSCOUNTER']._serialized_end=174583 + _globals['_PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG']._serialized_start=174586 + _globals['_PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG']._serialized_end=174716 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS']._serialized_start=174719 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS']._serialized_end=175144 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6FLOWLABELCOUNTER']._serialized_start=175146 + _globals['_PATTERNFLOWIPV6FLOWLABELCOUNTER']._serialized_end=175267 + _globals['_PATTERNFLOWIPV6FLOWLABELMETRICTAG']._serialized_start=175269 + _globals['_PATTERNFLOWIPV6FLOWLABELMETRICTAG']._serialized_end=175396 + _globals['_PATTERNFLOWIPV6FLOWLABELRANDOM']._serialized_start=175399 + _globals['_PATTERNFLOWIPV6FLOWLABELRANDOM']._serialized_end=175541 + _globals['_PATTERNFLOWIPV6FLOWLABEL']._serialized_start=175544 + _globals['_PATTERNFLOWIPV6FLOWLABEL']._serialized_end=176019 + _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE']._serialized_start=175900 + _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE']._serialized_end=175998 + _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM']._serialized_start=175910 + _globals['_PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM']._serialized_end=175998 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER']._serialized_start=176021 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER']._serialized_end=176146 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG']._serialized_start=176149 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG']._serialized_end=176280 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH']._serialized_start=176283 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH']._serialized_end=176751 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIPV6NEXTHEADERCOUNTER']._serialized_start=176753 + _globals['_PATTERNFLOWIPV6NEXTHEADERCOUNTER']._serialized_end=176875 + _globals['_PATTERNFLOWIPV6NEXTHEADERMETRICTAG']._serialized_start=176878 + _globals['_PATTERNFLOWIPV6NEXTHEADERMETRICTAG']._serialized_end=177006 + _globals['_PATTERNFLOWIPV6NEXTHEADER']._serialized_start=177009 + _globals['_PATTERNFLOWIPV6NEXTHEADER']._serialized_end=177462 + _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIPV6HOPLIMITCOUNTER']._serialized_start=177464 + _globals['_PATTERNFLOWIPV6HOPLIMITCOUNTER']._serialized_end=177584 + _globals['_PATTERNFLOWIPV6HOPLIMITMETRICTAG']._serialized_start=177586 + _globals['_PATTERNFLOWIPV6HOPLIMITMETRICTAG']._serialized_end=177712 + _globals['_PATTERNFLOWIPV6HOPLIMIT']._serialized_start=177715 + _globals['_PATTERNFLOWIPV6HOPLIMIT']._serialized_end=178120 + _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIPV6SRCCOUNTER']._serialized_start=178122 + _globals['_PATTERNFLOWIPV6SRCCOUNTER']._serialized_end=178237 + _globals['_PATTERNFLOWIPV6SRCMETRICTAG']._serialized_start=178239 + _globals['_PATTERNFLOWIPV6SRCMETRICTAG']._serialized_end=178360 + _globals['_PATTERNFLOWIPV6SRC']._serialized_start=178363 + _globals['_PATTERNFLOWIPV6SRC']._serialized_end=178786 + _globals['_PATTERNFLOWIPV6SRC_CHOICE']._serialized_start=178669 + _globals['_PATTERNFLOWIPV6SRC_CHOICE']._serialized_end=178765 + _globals['_PATTERNFLOWIPV6SRC_CHOICE_ENUM']._serialized_start=165036 + _globals['_PATTERNFLOWIPV6SRC_CHOICE_ENUM']._serialized_end=165122 + _globals['_PATTERNFLOWIPV6DSTCOUNTER']._serialized_start=178788 + _globals['_PATTERNFLOWIPV6DSTCOUNTER']._serialized_end=178903 + _globals['_PATTERNFLOWIPV6DSTMETRICTAG']._serialized_start=178905 + _globals['_PATTERNFLOWIPV6DSTMETRICTAG']._serialized_end=179026 + _globals['_PATTERNFLOWIPV6DST']._serialized_start=179029 + _globals['_PATTERNFLOWIPV6DST']._serialized_end=179452 + _globals['_PATTERNFLOWIPV6DST_CHOICE']._serialized_start=178669 + _globals['_PATTERNFLOWIPV6DST_CHOICE']._serialized_end=178765 + _globals['_PATTERNFLOWIPV6DST_CHOICE_ENUM']._serialized_start=165036 + _globals['_PATTERNFLOWIPV6DST_CHOICE_ENUM']._serialized_end=165122 + _globals['_PATTERNFLOWPFCPAUSEDSTCOUNTER']._serialized_start=179454 + _globals['_PATTERNFLOWPFCPAUSEDSTCOUNTER']._serialized_end=179573 + _globals['_PATTERNFLOWPFCPAUSEDSTMETRICTAG']._serialized_start=179575 + _globals['_PATTERNFLOWPFCPAUSEDSTMETRICTAG']._serialized_end=179700 + _globals['_PATTERNFLOWPFCPAUSEDST']._serialized_start=179703 + _globals['_PATTERNFLOWPFCPAUSEDST']._serialized_end=180103 + _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSESRCCOUNTER']._serialized_start=180105 + _globals['_PATTERNFLOWPFCPAUSESRCCOUNTER']._serialized_end=180224 + _globals['_PATTERNFLOWPFCPAUSESRCMETRICTAG']._serialized_start=180226 + _globals['_PATTERNFLOWPFCPAUSESRCMETRICTAG']._serialized_end=180351 + _globals['_PATTERNFLOWPFCPAUSESRC']._serialized_start=180354 + _globals['_PATTERNFLOWPFCPAUSESRC']._serialized_end=180754 + _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPECOUNTER']._serialized_start=180756 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPECOUNTER']._serialized_end=180881 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG']._serialized_start=180884 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG']._serialized_end=181015 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE']._serialized_start=181018 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE']._serialized_end=181448 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER']._serialized_start=181451 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER']._serialized_end=181580 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG']._serialized_start=181583 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG']._serialized_end=181718 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE']._serialized_start=181721 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE']._serialized_end=182171 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER']._serialized_start=182174 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER']._serialized_end=182307 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG']._serialized_start=182310 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG']._serialized_end=182449 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR']._serialized_start=182452 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR']._serialized_end=182922 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER']._serialized_start=182924 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER']._serialized_end=183051 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG']._serialized_start=183054 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG']._serialized_end=183187 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0']._serialized_start=183190 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0']._serialized_end=183630 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER']._serialized_start=183632 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER']._serialized_end=183759 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG']._serialized_start=183762 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG']._serialized_end=183895 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1']._serialized_start=183898 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1']._serialized_end=184338 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER']._serialized_start=184340 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER']._serialized_end=184467 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG']._serialized_start=184470 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG']._serialized_end=184603 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2']._serialized_start=184606 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2']._serialized_end=185046 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER']._serialized_start=185048 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER']._serialized_end=185175 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG']._serialized_start=185178 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG']._serialized_end=185311 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3']._serialized_start=185314 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3']._serialized_end=185754 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER']._serialized_start=185756 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER']._serialized_end=185883 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG']._serialized_start=185886 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG']._serialized_end=186019 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4']._serialized_start=186022 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4']._serialized_end=186462 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER']._serialized_start=186464 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER']._serialized_end=186591 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG']._serialized_start=186594 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG']._serialized_end=186727 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5']._serialized_start=186730 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5']._serialized_end=187170 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER']._serialized_start=187172 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER']._serialized_end=187299 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG']._serialized_start=187302 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG']._serialized_end=187435 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6']._serialized_start=187438 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6']._serialized_end=187878 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER']._serialized_start=187880 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER']._serialized_end=188007 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG']._serialized_start=188010 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG']._serialized_end=188143 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7']._serialized_start=188146 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7']._serialized_end=188586 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSEDSTCOUNTER']._serialized_start=188588 + _globals['_PATTERNFLOWETHERNETPAUSEDSTCOUNTER']._serialized_end=188712 + _globals['_PATTERNFLOWETHERNETPAUSEDSTMETRICTAG']._serialized_start=188715 + _globals['_PATTERNFLOWETHERNETPAUSEDSTMETRICTAG']._serialized_end=188845 + _globals['_PATTERNFLOWETHERNETPAUSEDST']._serialized_start=188848 + _globals['_PATTERNFLOWETHERNETPAUSEDST']._serialized_end=189273 + _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSESRCCOUNTER']._serialized_start=189275 + _globals['_PATTERNFLOWETHERNETPAUSESRCCOUNTER']._serialized_end=189399 + _globals['_PATTERNFLOWETHERNETPAUSESRCMETRICTAG']._serialized_start=189402 + _globals['_PATTERNFLOWETHERNETPAUSESRCMETRICTAG']._serialized_end=189532 + _globals['_PATTERNFLOWETHERNETPAUSESRC']._serialized_start=189535 + _globals['_PATTERNFLOWETHERNETPAUSESRC']._serialized_end=189960 + _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER']._serialized_start=189963 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER']._serialized_end=190093 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG']._serialized_start=190096 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG']._serialized_end=190232 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE']._serialized_start=190235 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE']._serialized_end=190690 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER']._serialized_start=190693 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER']._serialized_end=190827 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG']._serialized_start=190830 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG']._serialized_end=190970 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE']._serialized_start=190973 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE']._serialized_end=191448 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSETIMECOUNTER']._serialized_start=191450 + _globals['_PATTERNFLOWETHERNETPAUSETIMECOUNTER']._serialized_end=191575 + _globals['_PATTERNFLOWETHERNETPAUSETIMEMETRICTAG']._serialized_start=191578 + _globals['_PATTERNFLOWETHERNETPAUSETIMEMETRICTAG']._serialized_end=191709 + _globals['_PATTERNFLOWETHERNETPAUSETIME']._serialized_start=191712 + _globals['_PATTERNFLOWETHERNETPAUSETIME']._serialized_end=192142 + _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPSRCPORTCOUNTER']._serialized_start=192144 + _globals['_PATTERNFLOWTCPSRCPORTCOUNTER']._serialized_end=192262 + _globals['_PATTERNFLOWTCPSRCPORTMETRICTAG']._serialized_start=192264 + _globals['_PATTERNFLOWTCPSRCPORTMETRICTAG']._serialized_end=192388 + _globals['_PATTERNFLOWTCPSRCPORTRANDOM']._serialized_start=192391 + _globals['_PATTERNFLOWTCPSRCPORTRANDOM']._serialized_end=192530 + _globals['_PATTERNFLOWTCPSRCPORT']._serialized_start=192533 + _globals['_PATTERNFLOWTCPSRCPORT']._serialized_end=192990 + _globals['_PATTERNFLOWTCPSRCPORT_CHOICE']._serialized_start=175900 + _globals['_PATTERNFLOWTCPSRCPORT_CHOICE']._serialized_end=175998 + _globals['_PATTERNFLOWTCPSRCPORT_CHOICE_ENUM']._serialized_start=175910 + _globals['_PATTERNFLOWTCPSRCPORT_CHOICE_ENUM']._serialized_end=175998 + _globals['_PATTERNFLOWTCPDSTPORTCOUNTER']._serialized_start=192992 + _globals['_PATTERNFLOWTCPDSTPORTCOUNTER']._serialized_end=193110 + _globals['_PATTERNFLOWTCPDSTPORTMETRICTAG']._serialized_start=193112 + _globals['_PATTERNFLOWTCPDSTPORTMETRICTAG']._serialized_end=193236 + _globals['_PATTERNFLOWTCPDSTPORTRANDOM']._serialized_start=193239 + _globals['_PATTERNFLOWTCPDSTPORTRANDOM']._serialized_end=193378 + _globals['_PATTERNFLOWTCPDSTPORT']._serialized_start=193381 + _globals['_PATTERNFLOWTCPDSTPORT']._serialized_end=193838 + _globals['_PATTERNFLOWTCPDSTPORT_CHOICE']._serialized_start=175900 + _globals['_PATTERNFLOWTCPDSTPORT_CHOICE']._serialized_end=175998 + _globals['_PATTERNFLOWTCPDSTPORT_CHOICE_ENUM']._serialized_start=175910 + _globals['_PATTERNFLOWTCPDSTPORT_CHOICE_ENUM']._serialized_end=175998 + _globals['_PATTERNFLOWTCPSEQNUMCOUNTER']._serialized_start=193840 + _globals['_PATTERNFLOWTCPSEQNUMCOUNTER']._serialized_end=193957 + _globals['_PATTERNFLOWTCPSEQNUMMETRICTAG']._serialized_start=193959 + _globals['_PATTERNFLOWTCPSEQNUMMETRICTAG']._serialized_end=194082 + _globals['_PATTERNFLOWTCPSEQNUM']._serialized_start=194085 + _globals['_PATTERNFLOWTCPSEQNUM']._serialized_end=194475 + _globals['_PATTERNFLOWTCPSEQNUM_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPSEQNUM_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPSEQNUM_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPSEQNUM_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPACKNUMCOUNTER']._serialized_start=194477 + _globals['_PATTERNFLOWTCPACKNUMCOUNTER']._serialized_end=194594 + _globals['_PATTERNFLOWTCPACKNUMMETRICTAG']._serialized_start=194596 + _globals['_PATTERNFLOWTCPACKNUMMETRICTAG']._serialized_end=194719 + _globals['_PATTERNFLOWTCPACKNUM']._serialized_start=194722 + _globals['_PATTERNFLOWTCPACKNUM']._serialized_end=195112 + _globals['_PATTERNFLOWTCPACKNUM_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPACKNUM_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPACKNUM_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPACKNUM_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPDATAOFFSETCOUNTER']._serialized_start=195114 + _globals['_PATTERNFLOWTCPDATAOFFSETCOUNTER']._serialized_end=195235 + _globals['_PATTERNFLOWTCPDATAOFFSETMETRICTAG']._serialized_start=195237 + _globals['_PATTERNFLOWTCPDATAOFFSETMETRICTAG']._serialized_end=195364 + _globals['_PATTERNFLOWTCPDATAOFFSET']._serialized_start=195367 + _globals['_PATTERNFLOWTCPDATAOFFSET']._serialized_end=195777 + _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNNSCOUNTER']._serialized_start=195779 + _globals['_PATTERNFLOWTCPECNNSCOUNTER']._serialized_end=195895 + _globals['_PATTERNFLOWTCPECNNSMETRICTAG']._serialized_start=195897 + _globals['_PATTERNFLOWTCPECNNSMETRICTAG']._serialized_end=196019 + _globals['_PATTERNFLOWTCPECNNS']._serialized_start=196022 + _globals['_PATTERNFLOWTCPECNNS']._serialized_end=196407 + _globals['_PATTERNFLOWTCPECNNS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPECNNS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNNS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPECNNS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNCWRCOUNTER']._serialized_start=196409 + _globals['_PATTERNFLOWTCPECNCWRCOUNTER']._serialized_end=196526 + _globals['_PATTERNFLOWTCPECNCWRMETRICTAG']._serialized_start=196528 + _globals['_PATTERNFLOWTCPECNCWRMETRICTAG']._serialized_end=196651 + _globals['_PATTERNFLOWTCPECNCWR']._serialized_start=196654 + _globals['_PATTERNFLOWTCPECNCWR']._serialized_end=197044 + _globals['_PATTERNFLOWTCPECNCWR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPECNCWR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNCWR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPECNCWR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNECHOCOUNTER']._serialized_start=197046 + _globals['_PATTERNFLOWTCPECNECHOCOUNTER']._serialized_end=197164 + _globals['_PATTERNFLOWTCPECNECHOMETRICTAG']._serialized_start=197166 + _globals['_PATTERNFLOWTCPECNECHOMETRICTAG']._serialized_end=197290 + _globals['_PATTERNFLOWTCPECNECHO']._serialized_start=197293 + _globals['_PATTERNFLOWTCPECNECHO']._serialized_end=197688 + _globals['_PATTERNFLOWTCPECNECHO_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPECNECHO_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPECNECHO_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPECNECHO_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLURGCOUNTER']._serialized_start=197690 + _globals['_PATTERNFLOWTCPCTLURGCOUNTER']._serialized_end=197807 + _globals['_PATTERNFLOWTCPCTLURGMETRICTAG']._serialized_start=197809 + _globals['_PATTERNFLOWTCPCTLURGMETRICTAG']._serialized_end=197932 + _globals['_PATTERNFLOWTCPCTLURG']._serialized_start=197935 + _globals['_PATTERNFLOWTCPCTLURG']._serialized_end=198325 + _globals['_PATTERNFLOWTCPCTLURG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLURG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLURG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLURG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLACKCOUNTER']._serialized_start=198327 + _globals['_PATTERNFLOWTCPCTLACKCOUNTER']._serialized_end=198444 + _globals['_PATTERNFLOWTCPCTLACKMETRICTAG']._serialized_start=198446 + _globals['_PATTERNFLOWTCPCTLACKMETRICTAG']._serialized_end=198569 + _globals['_PATTERNFLOWTCPCTLACK']._serialized_start=198572 + _globals['_PATTERNFLOWTCPCTLACK']._serialized_end=198962 + _globals['_PATTERNFLOWTCPCTLACK_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLACK_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLACK_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLACK_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLPSHCOUNTER']._serialized_start=198964 + _globals['_PATTERNFLOWTCPCTLPSHCOUNTER']._serialized_end=199081 + _globals['_PATTERNFLOWTCPCTLPSHMETRICTAG']._serialized_start=199083 + _globals['_PATTERNFLOWTCPCTLPSHMETRICTAG']._serialized_end=199206 + _globals['_PATTERNFLOWTCPCTLPSH']._serialized_start=199209 + _globals['_PATTERNFLOWTCPCTLPSH']._serialized_end=199599 + _globals['_PATTERNFLOWTCPCTLPSH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLPSH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLPSH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLPSH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLRSTCOUNTER']._serialized_start=199601 + _globals['_PATTERNFLOWTCPCTLRSTCOUNTER']._serialized_end=199718 + _globals['_PATTERNFLOWTCPCTLRSTMETRICTAG']._serialized_start=199720 + _globals['_PATTERNFLOWTCPCTLRSTMETRICTAG']._serialized_end=199843 + _globals['_PATTERNFLOWTCPCTLRST']._serialized_start=199846 + _globals['_PATTERNFLOWTCPCTLRST']._serialized_end=200236 + _globals['_PATTERNFLOWTCPCTLRST_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLRST_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLRST_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLRST_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLSYNCOUNTER']._serialized_start=200238 + _globals['_PATTERNFLOWTCPCTLSYNCOUNTER']._serialized_end=200355 + _globals['_PATTERNFLOWTCPCTLSYNMETRICTAG']._serialized_start=200357 + _globals['_PATTERNFLOWTCPCTLSYNMETRICTAG']._serialized_end=200480 + _globals['_PATTERNFLOWTCPCTLSYN']._serialized_start=200483 + _globals['_PATTERNFLOWTCPCTLSYN']._serialized_end=200873 + _globals['_PATTERNFLOWTCPCTLSYN_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLSYN_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLSYN_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLSYN_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLFINCOUNTER']._serialized_start=200875 + _globals['_PATTERNFLOWTCPCTLFINCOUNTER']._serialized_end=200992 + _globals['_PATTERNFLOWTCPCTLFINMETRICTAG']._serialized_start=200994 + _globals['_PATTERNFLOWTCPCTLFINMETRICTAG']._serialized_end=201117 + _globals['_PATTERNFLOWTCPCTLFIN']._serialized_start=201120 + _globals['_PATTERNFLOWTCPCTLFIN']._serialized_end=201510 + _globals['_PATTERNFLOWTCPCTLFIN_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPCTLFIN_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCTLFIN_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPCTLFIN_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPWINDOWCOUNTER']._serialized_start=201512 + _globals['_PATTERNFLOWTCPWINDOWCOUNTER']._serialized_end=201629 + _globals['_PATTERNFLOWTCPWINDOWMETRICTAG']._serialized_start=201631 + _globals['_PATTERNFLOWTCPWINDOWMETRICTAG']._serialized_end=201754 + _globals['_PATTERNFLOWTCPWINDOW']._serialized_start=201757 + _globals['_PATTERNFLOWTCPWINDOW']._serialized_end=202147 + _globals['_PATTERNFLOWTCPWINDOW_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWTCPWINDOW_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWTCPWINDOW_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWTCPWINDOW_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWTCPCHECKSUM']._serialized_start=202150 + _globals['_PATTERNFLOWTCPCHECKSUM']._serialized_end=202480 + _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWTCPCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWTCPCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWUDPSRCPORTCOUNTER']._serialized_start=202482 + _globals['_PATTERNFLOWUDPSRCPORTCOUNTER']._serialized_end=202600 + _globals['_PATTERNFLOWUDPSRCPORTMETRICTAG']._serialized_start=202602 + _globals['_PATTERNFLOWUDPSRCPORTMETRICTAG']._serialized_end=202726 + _globals['_PATTERNFLOWUDPSRCPORTRANDOM']._serialized_start=202729 + _globals['_PATTERNFLOWUDPSRCPORTRANDOM']._serialized_end=202868 + _globals['_PATTERNFLOWUDPSRCPORT']._serialized_start=202871 + _globals['_PATTERNFLOWUDPSRCPORT']._serialized_end=203328 + _globals['_PATTERNFLOWUDPSRCPORT_CHOICE']._serialized_start=175900 + _globals['_PATTERNFLOWUDPSRCPORT_CHOICE']._serialized_end=175998 + _globals['_PATTERNFLOWUDPSRCPORT_CHOICE_ENUM']._serialized_start=175910 + _globals['_PATTERNFLOWUDPSRCPORT_CHOICE_ENUM']._serialized_end=175998 + _globals['_PATTERNFLOWUDPDSTPORTCOUNTER']._serialized_start=203330 + _globals['_PATTERNFLOWUDPDSTPORTCOUNTER']._serialized_end=203448 + _globals['_PATTERNFLOWUDPDSTPORTMETRICTAG']._serialized_start=203450 + _globals['_PATTERNFLOWUDPDSTPORTMETRICTAG']._serialized_end=203574 + _globals['_PATTERNFLOWUDPDSTPORTRANDOM']._serialized_start=203577 + _globals['_PATTERNFLOWUDPDSTPORTRANDOM']._serialized_end=203716 + _globals['_PATTERNFLOWUDPDSTPORT']._serialized_start=203719 + _globals['_PATTERNFLOWUDPDSTPORT']._serialized_end=204176 + _globals['_PATTERNFLOWUDPDSTPORT_CHOICE']._serialized_start=175900 + _globals['_PATTERNFLOWUDPDSTPORT_CHOICE']._serialized_end=175998 + _globals['_PATTERNFLOWUDPDSTPORT_CHOICE_ENUM']._serialized_start=175910 + _globals['_PATTERNFLOWUDPDSTPORT_CHOICE_ENUM']._serialized_end=175998 + _globals['_PATTERNFLOWUDPLENGTHCOUNTER']._serialized_start=204178 + _globals['_PATTERNFLOWUDPLENGTHCOUNTER']._serialized_end=204295 + _globals['_PATTERNFLOWUDPLENGTHMETRICTAG']._serialized_start=204297 + _globals['_PATTERNFLOWUDPLENGTHMETRICTAG']._serialized_end=204420 + _globals['_PATTERNFLOWUDPLENGTH']._serialized_start=204423 + _globals['_PATTERNFLOWUDPLENGTH']._serialized_end=204813 + _globals['_PATTERNFLOWUDPLENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWUDPLENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWUDPLENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWUDPLENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWUDPCHECKSUM']._serialized_start=204816 + _globals['_PATTERNFLOWUDPCHECKSUM']._serialized_end=205146 + _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWGRECHECKSUMPRESENTCOUNTER']._serialized_start=205148 + _globals['_PATTERNFLOWGRECHECKSUMPRESENTCOUNTER']._serialized_end=205274 + _globals['_PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG']._serialized_start=205277 + _globals['_PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG']._serialized_end=205409 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT']._serialized_start=205412 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT']._serialized_end=205847 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGRERESERVED0COUNTER']._serialized_start=205849 + _globals['_PATTERNFLOWGRERESERVED0COUNTER']._serialized_end=205969 + _globals['_PATTERNFLOWGRERESERVED0METRICTAG']._serialized_start=205971 + _globals['_PATTERNFLOWGRERESERVED0METRICTAG']._serialized_end=206097 + _globals['_PATTERNFLOWGRERESERVED0']._serialized_start=206100 + _globals['_PATTERNFLOWGRERESERVED0']._serialized_end=206505 + _globals['_PATTERNFLOWGRERESERVED0_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGRERESERVED0_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGRERESERVED0_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGRERESERVED0_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGREVERSIONCOUNTER']._serialized_start=206507 + _globals['_PATTERNFLOWGREVERSIONCOUNTER']._serialized_end=206625 + _globals['_PATTERNFLOWGREVERSIONMETRICTAG']._serialized_start=206627 + _globals['_PATTERNFLOWGREVERSIONMETRICTAG']._serialized_end=206751 + _globals['_PATTERNFLOWGREVERSION']._serialized_start=206754 + _globals['_PATTERNFLOWGREVERSION']._serialized_end=207149 + _globals['_PATTERNFLOWGREVERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGREVERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGREVERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGREVERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGREPROTOCOLCOUNTER']._serialized_start=207151 + _globals['_PATTERNFLOWGREPROTOCOLCOUNTER']._serialized_end=207270 + _globals['_PATTERNFLOWGREPROTOCOLMETRICTAG']._serialized_start=207272 + _globals['_PATTERNFLOWGREPROTOCOLMETRICTAG']._serialized_end=207397 + _globals['_PATTERNFLOWGREPROTOCOL']._serialized_start=207400 + _globals['_PATTERNFLOWGREPROTOCOL']._serialized_end=207800 + _globals['_PATTERNFLOWGREPROTOCOL_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGREPROTOCOL_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGREPROTOCOL_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGREPROTOCOL_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGRECHECKSUM']._serialized_start=207803 + _globals['_PATTERNFLOWGRECHECKSUM']._serialized_end=208133 + _globals['_PATTERNFLOWGRECHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWGRECHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWGRECHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWGRECHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWGRECHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWGRECHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWGRECHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWGRECHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWGRERESERVED1COUNTER']._serialized_start=208135 + _globals['_PATTERNFLOWGRERESERVED1COUNTER']._serialized_end=208255 + _globals['_PATTERNFLOWGRERESERVED1METRICTAG']._serialized_start=208257 + _globals['_PATTERNFLOWGRERESERVED1METRICTAG']._serialized_end=208383 + _globals['_PATTERNFLOWGRERESERVED1']._serialized_start=208386 + _globals['_PATTERNFLOWGRERESERVED1']._serialized_end=208791 + _globals['_PATTERNFLOWGRERESERVED1_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGRERESERVED1_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGRERESERVED1_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGRERESERVED1_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1VERSIONCOUNTER']._serialized_start=208793 + _globals['_PATTERNFLOWGTPV1VERSIONCOUNTER']._serialized_end=208913 + _globals['_PATTERNFLOWGTPV1VERSIONMETRICTAG']._serialized_start=208915 + _globals['_PATTERNFLOWGTPV1VERSIONMETRICTAG']._serialized_end=209041 + _globals['_PATTERNFLOWGTPV1VERSION']._serialized_start=209044 + _globals['_PATTERNFLOWGTPV1VERSION']._serialized_end=209449 + _globals['_PATTERNFLOWGTPV1VERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1VERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1VERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1VERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER']._serialized_start=209451 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER']._serialized_end=209576 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG']._serialized_start=209579 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG']._serialized_end=209710 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE']._serialized_start=209713 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE']._serialized_end=210143 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1RESERVEDCOUNTER']._serialized_start=210145 + _globals['_PATTERNFLOWGTPV1RESERVEDCOUNTER']._serialized_end=210266 + _globals['_PATTERNFLOWGTPV1RESERVEDMETRICTAG']._serialized_start=210268 + _globals['_PATTERNFLOWGTPV1RESERVEDMETRICTAG']._serialized_end=210395 + _globals['_PATTERNFLOWGTPV1RESERVED']._serialized_start=210398 + _globals['_PATTERNFLOWGTPV1RESERVED']._serialized_end=210808 + _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1EFLAGCOUNTER']._serialized_start=210810 + _globals['_PATTERNFLOWGTPV1EFLAGCOUNTER']._serialized_end=210928 + _globals['_PATTERNFLOWGTPV1EFLAGMETRICTAG']._serialized_start=210930 + _globals['_PATTERNFLOWGTPV1EFLAGMETRICTAG']._serialized_end=211054 + _globals['_PATTERNFLOWGTPV1EFLAG']._serialized_start=211057 + _globals['_PATTERNFLOWGTPV1EFLAG']._serialized_end=211452 + _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1SFLAGCOUNTER']._serialized_start=211454 + _globals['_PATTERNFLOWGTPV1SFLAGCOUNTER']._serialized_end=211572 + _globals['_PATTERNFLOWGTPV1SFLAGMETRICTAG']._serialized_start=211574 + _globals['_PATTERNFLOWGTPV1SFLAGMETRICTAG']._serialized_end=211698 + _globals['_PATTERNFLOWGTPV1SFLAG']._serialized_start=211701 + _globals['_PATTERNFLOWGTPV1SFLAG']._serialized_end=212096 + _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1PNFLAGCOUNTER']._serialized_start=212098 + _globals['_PATTERNFLOWGTPV1PNFLAGCOUNTER']._serialized_end=212217 + _globals['_PATTERNFLOWGTPV1PNFLAGMETRICTAG']._serialized_start=212219 + _globals['_PATTERNFLOWGTPV1PNFLAGMETRICTAG']._serialized_end=212344 + _globals['_PATTERNFLOWGTPV1PNFLAG']._serialized_start=212347 + _globals['_PATTERNFLOWGTPV1PNFLAG']._serialized_end=212747 + _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1MESSAGETYPECOUNTER']._serialized_start=212749 + _globals['_PATTERNFLOWGTPV1MESSAGETYPECOUNTER']._serialized_end=212873 + _globals['_PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG']._serialized_start=212876 + _globals['_PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG']._serialized_end=213006 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE']._serialized_start=213009 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE']._serialized_end=213434 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER']._serialized_start=213436 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER']._serialized_end=213562 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG']._serialized_start=213565 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG']._serialized_end=213697 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH']._serialized_start=213700 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH']._serialized_end=214135 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1TEIDCOUNTER']._serialized_start=214137 + _globals['_PATTERNFLOWGTPV1TEIDCOUNTER']._serialized_end=214254 + _globals['_PATTERNFLOWGTPV1TEIDMETRICTAG']._serialized_start=214256 + _globals['_PATTERNFLOWGTPV1TEIDMETRICTAG']._serialized_end=214379 + _globals['_PATTERNFLOWGTPV1TEID']._serialized_start=214382 + _globals['_PATTERNFLOWGTPV1TEID']._serialized_end=214772 + _globals['_PATTERNFLOWGTPV1TEID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1TEID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1TEID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1TEID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER']._serialized_start=214774 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER']._serialized_end=214900 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG']._serialized_start=214903 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG']._serialized_end=215035 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER']._serialized_start=215038 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER']._serialized_end=215473 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1NPDUNUMBERCOUNTER']._serialized_start=215475 + _globals['_PATTERNFLOWGTPV1NPDUNUMBERCOUNTER']._serialized_end=215598 + _globals['_PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG']._serialized_start=215601 + _globals['_PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG']._serialized_end=215730 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER']._serialized_start=215733 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER']._serialized_end=216153 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER']._serialized_start=216156 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER']._serialized_end=216292 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG']._serialized_start=216295 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG']._serialized_end=216437 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE']._serialized_start=216440 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE']._serialized_end=216925 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER']._serialized_start=216928 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER']._serialized_end=217063 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG']._serialized_start=217066 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG']._serialized_end=217207 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH']._serialized_start=217210 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH']._serialized_end=217690 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER']._serialized_start=217693 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER']._serialized_end=217821 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG']._serialized_start=217824 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG']._serialized_end=217958 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS']._serialized_start=217961 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS']._serialized_end=218406 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER']._serialized_start=218409 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER']._serialized_end=218548 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG']._serialized_start=218551 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG']._serialized_end=218696 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER']._serialized_start=218699 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER']._serialized_end=219199 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2VERSIONCOUNTER']._serialized_start=219201 + _globals['_PATTERNFLOWGTPV2VERSIONCOUNTER']._serialized_end=219321 + _globals['_PATTERNFLOWGTPV2VERSIONMETRICTAG']._serialized_start=219323 + _globals['_PATTERNFLOWGTPV2VERSIONMETRICTAG']._serialized_end=219449 + _globals['_PATTERNFLOWGTPV2VERSION']._serialized_start=219452 + _globals['_PATTERNFLOWGTPV2VERSION']._serialized_end=219857 + _globals['_PATTERNFLOWGTPV2VERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2VERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2VERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2VERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER']._serialized_start=219860 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER']._serialized_end=219989 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG']._serialized_start=219992 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG']._serialized_end=220127 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG']._serialized_start=220130 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG']._serialized_end=220580 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2TEIDFLAGCOUNTER']._serialized_start=220582 + _globals['_PATTERNFLOWGTPV2TEIDFLAGCOUNTER']._serialized_end=220703 + _globals['_PATTERNFLOWGTPV2TEIDFLAGMETRICTAG']._serialized_start=220705 + _globals['_PATTERNFLOWGTPV2TEIDFLAGMETRICTAG']._serialized_end=220832 + _globals['_PATTERNFLOWGTPV2TEIDFLAG']._serialized_start=220835 + _globals['_PATTERNFLOWGTPV2TEIDFLAG']._serialized_end=221245 + _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SPARE1COUNTER']._serialized_start=221247 + _globals['_PATTERNFLOWGTPV2SPARE1COUNTER']._serialized_end=221366 + _globals['_PATTERNFLOWGTPV2SPARE1METRICTAG']._serialized_start=221368 + _globals['_PATTERNFLOWGTPV2SPARE1METRICTAG']._serialized_end=221493 + _globals['_PATTERNFLOWGTPV2SPARE1']._serialized_start=221496 + _globals['_PATTERNFLOWGTPV2SPARE1']._serialized_end=221896 + _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2MESSAGETYPECOUNTER']._serialized_start=221898 + _globals['_PATTERNFLOWGTPV2MESSAGETYPECOUNTER']._serialized_end=222022 + _globals['_PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG']._serialized_start=222025 + _globals['_PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG']._serialized_end=222155 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE']._serialized_start=222158 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE']._serialized_end=222583 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER']._serialized_start=222585 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER']._serialized_end=222711 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG']._serialized_start=222714 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG']._serialized_end=222846 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH']._serialized_start=222849 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH']._serialized_end=223284 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2TEIDCOUNTER']._serialized_start=223286 + _globals['_PATTERNFLOWGTPV2TEIDCOUNTER']._serialized_end=223403 + _globals['_PATTERNFLOWGTPV2TEIDMETRICTAG']._serialized_start=223405 + _globals['_PATTERNFLOWGTPV2TEIDMETRICTAG']._serialized_end=223528 + _globals['_PATTERNFLOWGTPV2TEID']._serialized_start=223531 + _globals['_PATTERNFLOWGTPV2TEID']._serialized_end=223921 + _globals['_PATTERNFLOWGTPV2TEID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2TEID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2TEID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2TEID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER']._serialized_start=223923 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER']._serialized_end=224050 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG']._serialized_start=224053 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG']._serialized_end=224186 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER']._serialized_start=224189 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER']._serialized_end=224629 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SPARE2COUNTER']._serialized_start=224631 + _globals['_PATTERNFLOWGTPV2SPARE2COUNTER']._serialized_end=224750 + _globals['_PATTERNFLOWGTPV2SPARE2METRICTAG']._serialized_start=224752 + _globals['_PATTERNFLOWGTPV2SPARE2METRICTAG']._serialized_end=224877 + _globals['_PATTERNFLOWGTPV2SPARE2']._serialized_start=224880 + _globals['_PATTERNFLOWGTPV2SPARE2']._serialized_end=225280 + _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPHARDWARETYPECOUNTER']._serialized_start=225282 + _globals['_PATTERNFLOWARPHARDWARETYPECOUNTER']._serialized_end=225405 + _globals['_PATTERNFLOWARPHARDWARETYPEMETRICTAG']._serialized_start=225408 + _globals['_PATTERNFLOWARPHARDWARETYPEMETRICTAG']._serialized_end=225537 + _globals['_PATTERNFLOWARPHARDWARETYPE']._serialized_start=225540 + _globals['_PATTERNFLOWARPHARDWARETYPE']._serialized_end=225960 + _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPPROTOCOLTYPECOUNTER']._serialized_start=225962 + _globals['_PATTERNFLOWARPPROTOCOLTYPECOUNTER']._serialized_end=226085 + _globals['_PATTERNFLOWARPPROTOCOLTYPEMETRICTAG']._serialized_start=226088 + _globals['_PATTERNFLOWARPPROTOCOLTYPEMETRICTAG']._serialized_end=226217 + _globals['_PATTERNFLOWARPPROTOCOLTYPE']._serialized_start=226220 + _globals['_PATTERNFLOWARPPROTOCOLTYPE']._serialized_end=226640 + _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPHARDWARELENGTHCOUNTER']._serialized_start=226642 + _globals['_PATTERNFLOWARPHARDWARELENGTHCOUNTER']._serialized_end=226767 + _globals['_PATTERNFLOWARPHARDWARELENGTHMETRICTAG']._serialized_start=226770 + _globals['_PATTERNFLOWARPHARDWARELENGTHMETRICTAG']._serialized_end=226901 + _globals['_PATTERNFLOWARPHARDWARELENGTH']._serialized_start=226904 + _globals['_PATTERNFLOWARPHARDWARELENGTH']._serialized_end=227334 + _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPPROTOCOLLENGTHCOUNTER']._serialized_start=227336 + _globals['_PATTERNFLOWARPPROTOCOLLENGTHCOUNTER']._serialized_end=227461 + _globals['_PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG']._serialized_start=227464 + _globals['_PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG']._serialized_end=227595 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH']._serialized_start=227598 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH']._serialized_end=228028 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPOPERATIONCOUNTER']._serialized_start=228030 + _globals['_PATTERNFLOWARPOPERATIONCOUNTER']._serialized_end=228150 + _globals['_PATTERNFLOWARPOPERATIONMETRICTAG']._serialized_start=228152 + _globals['_PATTERNFLOWARPOPERATIONMETRICTAG']._serialized_end=228278 + _globals['_PATTERNFLOWARPOPERATION']._serialized_start=228281 + _globals['_PATTERNFLOWARPOPERATION']._serialized_end=228686 + _globals['_PATTERNFLOWARPOPERATION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPOPERATION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPOPERATION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPOPERATION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER']._serialized_start=228689 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER']._serialized_end=228818 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG']._serialized_start=228821 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG']._serialized_end=228956 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR']._serialized_start=228959 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR']._serialized_end=229409 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER']._serialized_start=229412 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER']._serialized_end=229541 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG']._serialized_start=229544 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG']._serialized_end=229679 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR']._serialized_start=229682 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR']._serialized_end=230132 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER']._serialized_start=230135 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER']._serialized_end=230264 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG']._serialized_start=230267 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG']._serialized_end=230402 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR']._serialized_start=230405 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR']._serialized_end=230855 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER']._serialized_start=230858 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER']._serialized_end=230987 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG']._serialized_start=230990 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG']._serialized_end=231125 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR']._serialized_start=231128 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR']._serialized_end=231578 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOTYPECOUNTER']._serialized_start=231580 + _globals['_PATTERNFLOWICMPECHOTYPECOUNTER']._serialized_end=231700 + _globals['_PATTERNFLOWICMPECHOTYPEMETRICTAG']._serialized_start=231702 + _globals['_PATTERNFLOWICMPECHOTYPEMETRICTAG']._serialized_end=231828 + _globals['_PATTERNFLOWICMPECHOTYPE']._serialized_start=231831 + _globals['_PATTERNFLOWICMPECHOTYPE']._serialized_end=232236 + _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOCODECOUNTER']._serialized_start=232238 + _globals['_PATTERNFLOWICMPECHOCODECOUNTER']._serialized_end=232358 + _globals['_PATTERNFLOWICMPECHOCODEMETRICTAG']._serialized_start=232360 + _globals['_PATTERNFLOWICMPECHOCODEMETRICTAG']._serialized_end=232486 + _globals['_PATTERNFLOWICMPECHOCODE']._serialized_start=232489 + _globals['_PATTERNFLOWICMPECHOCODE']._serialized_end=232894 + _globals['_PATTERNFLOWICMPECHOCODE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPECHOCODE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOCODE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPECHOCODE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOCHECKSUM']._serialized_start=232897 + _globals['_PATTERNFLOWICMPECHOCHECKSUM']._serialized_end=233242 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWICMPECHOIDENTIFIERCOUNTER']._serialized_start=233244 + _globals['_PATTERNFLOWICMPECHOIDENTIFIERCOUNTER']._serialized_end=233370 + _globals['_PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG']._serialized_start=233373 + _globals['_PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG']._serialized_end=233505 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER']._serialized_start=233508 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER']._serialized_end=233943 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER']._serialized_start=233946 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER']._serialized_end=234076 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG']._serialized_start=234079 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG']._serialized_end=234215 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER']._serialized_start=234218 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER']._serialized_end=234673 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM']._serialized_start=234676 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM']._serialized_end=235027 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER']._serialized_start=235030 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER']._serialized_end=235162 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG']._serialized_start=235165 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG']._serialized_end=235303 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER']._serialized_start=235306 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER']._serialized_end=235771 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER']._serialized_start=235774 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER']._serialized_end=235910 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG']._serialized_start=235913 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG']._serialized_end=236055 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER']._serialized_start=236058 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER']._serialized_end=236543 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOTYPECOUNTER']._serialized_start=236545 + _globals['_PATTERNFLOWICMPV6ECHOTYPECOUNTER']._serialized_end=236667 + _globals['_PATTERNFLOWICMPV6ECHOTYPEMETRICTAG']._serialized_start=236670 + _globals['_PATTERNFLOWICMPV6ECHOTYPEMETRICTAG']._serialized_end=236798 + _globals['_PATTERNFLOWICMPV6ECHOTYPE']._serialized_start=236801 + _globals['_PATTERNFLOWICMPV6ECHOTYPE']._serialized_end=237216 + _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOCODECOUNTER']._serialized_start=237218 + _globals['_PATTERNFLOWICMPV6ECHOCODECOUNTER']._serialized_end=237340 + _globals['_PATTERNFLOWICMPV6ECHOCODEMETRICTAG']._serialized_start=237343 + _globals['_PATTERNFLOWICMPV6ECHOCODEMETRICTAG']._serialized_end=237471 + _globals['_PATTERNFLOWICMPV6ECHOCODE']._serialized_start=237474 + _globals['_PATTERNFLOWICMPV6ECHOCODE']._serialized_end=237889 + _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER']._serialized_start=237892 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER']._serialized_end=238020 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG']._serialized_start=238023 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG']._serialized_end=238157 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER']._serialized_start=238160 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER']._serialized_end=238605 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER']._serialized_start=238608 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER']._serialized_end=238740 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG']._serialized_start=238743 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG']._serialized_end=238881 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER']._serialized_start=238884 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER']._serialized_end=239349 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM']._serialized_start=239352 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM']._serialized_end=239703 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM']._serialized_start=239706 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM']._serialized_end=240063 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWPPPADDRESSCOUNTER']._serialized_start=240065 + _globals['_PATTERNFLOWPPPADDRESSCOUNTER']._serialized_end=240183 + _globals['_PATTERNFLOWPPPADDRESSMETRICTAG']._serialized_start=240185 + _globals['_PATTERNFLOWPPPADDRESSMETRICTAG']._serialized_end=240309 + _globals['_PATTERNFLOWPPPADDRESS']._serialized_start=240312 + _globals['_PATTERNFLOWPPPADDRESS']._serialized_end=240707 + _globals['_PATTERNFLOWPPPADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPPPADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPPPADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPPPADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPPPCONTROLCOUNTER']._serialized_start=240709 + _globals['_PATTERNFLOWPPPCONTROLCOUNTER']._serialized_end=240827 + _globals['_PATTERNFLOWPPPCONTROLMETRICTAG']._serialized_start=240829 + _globals['_PATTERNFLOWPPPCONTROLMETRICTAG']._serialized_end=240953 + _globals['_PATTERNFLOWPPPCONTROL']._serialized_start=240956 + _globals['_PATTERNFLOWPPPCONTROL']._serialized_end=241351 + _globals['_PATTERNFLOWPPPCONTROL_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWPPPCONTROL_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWPPPCONTROL_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWPPPCONTROL_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWPPPPROTOCOLTYPECOUNTER']._serialized_start=241353 + _globals['_PATTERNFLOWPPPPROTOCOLTYPECOUNTER']._serialized_end=241476 + _globals['_PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG']._serialized_start=241479 + _globals['_PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG']._serialized_end=241608 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE']._serialized_start=241611 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE']._serialized_end=242069 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWIGMPV1VERSIONCOUNTER']._serialized_start=242071 + _globals['_PATTERNFLOWIGMPV1VERSIONCOUNTER']._serialized_end=242192 + _globals['_PATTERNFLOWIGMPV1VERSIONMETRICTAG']._serialized_start=242194 + _globals['_PATTERNFLOWIGMPV1VERSIONMETRICTAG']._serialized_end=242321 + _globals['_PATTERNFLOWIGMPV1VERSION']._serialized_start=242324 + _globals['_PATTERNFLOWIGMPV1VERSION']._serialized_end=242734 + _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1TYPECOUNTER']._serialized_start=242736 + _globals['_PATTERNFLOWIGMPV1TYPECOUNTER']._serialized_end=242854 + _globals['_PATTERNFLOWIGMPV1TYPEMETRICTAG']._serialized_start=242856 + _globals['_PATTERNFLOWIGMPV1TYPEMETRICTAG']._serialized_end=242980 + _globals['_PATTERNFLOWIGMPV1TYPE']._serialized_start=242983 + _globals['_PATTERNFLOWIGMPV1TYPE']._serialized_end=243378 + _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1UNUSEDCOUNTER']._serialized_start=243380 + _globals['_PATTERNFLOWIGMPV1UNUSEDCOUNTER']._serialized_end=243500 + _globals['_PATTERNFLOWIGMPV1UNUSEDMETRICTAG']._serialized_start=243502 + _globals['_PATTERNFLOWIGMPV1UNUSEDMETRICTAG']._serialized_end=243628 + _globals['_PATTERNFLOWIGMPV1UNUSED']._serialized_start=243631 + _globals['_PATTERNFLOWIGMPV1UNUSED']._serialized_end=244036 + _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1CHECKSUM']._serialized_start=244039 + _globals['_PATTERNFLOWIGMPV1CHECKSUM']._serialized_end=244378 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER']._serialized_start=244380 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER']._serialized_end=244506 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG']._serialized_start=244509 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG']._serialized_end=244641 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS']._serialized_start=244644 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS']._serialized_end=245079 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWMPLSLABELCOUNTER']._serialized_start=245081 + _globals['_PATTERNFLOWMPLSLABELCOUNTER']._serialized_end=245198 + _globals['_PATTERNFLOWMPLSLABELMETRICTAG']._serialized_start=245200 + _globals['_PATTERNFLOWMPLSLABELMETRICTAG']._serialized_end=245323 + _globals['_PATTERNFLOWMPLSLABEL']._serialized_start=245326 + _globals['_PATTERNFLOWMPLSLABEL']._serialized_end=245754 + _globals['_PATTERNFLOWMPLSLABEL_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWMPLSLABEL_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWMPLSLABEL_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWMPLSLABEL_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWMPLSTRAFFICCLASSCOUNTER']._serialized_start=245756 + _globals['_PATTERNFLOWMPLSTRAFFICCLASSCOUNTER']._serialized_end=245880 + _globals['_PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG']._serialized_start=245883 + _globals['_PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG']._serialized_end=246013 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS']._serialized_start=246016 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS']._serialized_end=246441 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER']._serialized_start=246443 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER']._serialized_end=246568 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG']._serialized_start=246571 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG']._serialized_end=246702 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK']._serialized_start=246705 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK']._serialized_end=247173 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE']._serialized_start=149652 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE']._serialized_end=149748 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM']._serialized_end=149748 + _globals['_PATTERNFLOWMPLSTIMETOLIVECOUNTER']._serialized_start=247175 + _globals['_PATTERNFLOWMPLSTIMETOLIVECOUNTER']._serialized_end=247297 + _globals['_PATTERNFLOWMPLSTIMETOLIVEMETRICTAG']._serialized_start=247300 + _globals['_PATTERNFLOWMPLSTIMETOLIVEMETRICTAG']._serialized_end=247428 + _globals['_PATTERNFLOWMPLSTIMETOLIVE']._serialized_start=247431 + _globals['_PATTERNFLOWMPLSTIMETOLIVE']._serialized_end=247846 + _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVERSIONCOUNTER']._serialized_start=247848 + _globals['_PATTERNFLOWSNMPV2CVERSIONCOUNTER']._serialized_end=247970 + _globals['_PATTERNFLOWSNMPV2CVERSION']._serialized_start=247973 + _globals['_PATTERNFLOWSNMPV2CVERSION']._serialized_end=248326 + _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER']._serialized_start=248328 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTIDCOUNTER']._serialized_end=248455 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID']._serialized_start=248458 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID']._serialized_end=248831 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CPDUREQUESTID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER']._serialized_start=248834 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEXCOUNTER']._serialized_end=248962 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX']._serialized_start=248965 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX']._serialized_end=249342 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CPDUERRORINDEX_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER']._serialized_start=249345 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTIDCOUNTER']._serialized_end=249476 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID']._serialized_start=249479 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID']._serialized_end=249868 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CBULKPDUREQUESTID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS']._serialized_start=249871 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS']._serialized_end=250102 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE']._serialized_start=250025 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE']._serialized_end=250081 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWSNMPV2CBULKPDUNONREPEATERS_CHOICE_ENUM']._serialized_end=149708 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER']._serialized_start=250105 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONSCOUNTER']._serialized_end=250241 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS']._serialized_start=250244 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS']._serialized_end=250653 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CBULKPDUMAXREPETITIONS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER']._serialized_start=250656 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUECOUNTER']._serialized_end=250803 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE']._serialized_start=250806 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE']._serialized_end=251259 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEINTEGERVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER']._serialized_start=251262 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUECOUNTER']._serialized_end=251411 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE']._serialized_start=251414 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE']._serialized_end=251875 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEIPADDRESSVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER']._serialized_start=251878 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUECOUNTER']._serialized_end=252025 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE']._serialized_start=252028 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE']._serialized_end=252481 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUECOUNTERVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER']._serialized_start=252484 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUECOUNTER']._serialized_end=252633 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE']._serialized_start=252636 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE']._serialized_end=253097 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUETIMETICKSVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER']._serialized_start=253100 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUECOUNTER']._serialized_end=253250 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE']._serialized_start=253253 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE']._serialized_end=253718 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEBIGCOUNTERVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER']._serialized_start=253721 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUECOUNTER']._serialized_end=253876 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE']._serialized_start=253879 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE']._serialized_end=254364 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CVARIABLEBINDINGVALUEUNSIGNEDINTEGERVALUE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER']._serialized_start=254367 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTIDCOUNTER']._serialized_end=254497 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID']._serialized_start=254500 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID']._serialized_end=254885 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWSNMPV2CCOMMONREQUESTID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM']._serialized_start=254888 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM']._serialized_end=255233 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE']._serialized_start=164138 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE']._serialized_end=164198 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE_ENUM']._serialized_start=164148 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_CHOICE_ENUM']._serialized_end=164198 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED']._serialized_start=164200 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED']._serialized_end=164255 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED_ENUM']._serialized_start=164213 + _globals['_PATTERNFLOWRSVPRSVPCHECKSUM_GENERATED_ENUM']._serialized_end=164255 + _globals['_PATTERNFLOWRSVPTIMETOLIVECOUNTER']._serialized_start=255235 + _globals['_PATTERNFLOWRSVPTIMETOLIVECOUNTER']._serialized_end=255357 + _globals['_PATTERNFLOWRSVPTIMETOLIVE']._serialized_start=255360 + _globals['_PATTERNFLOWRSVPTIMETOLIVE']._serialized_end=255713 + _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPTIMETOLIVE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPRESERVEDCOUNTER']._serialized_start=255715 + _globals['_PATTERNFLOWRSVPRESERVEDCOUNTER']._serialized_end=255835 + _globals['_PATTERNFLOWRSVPRESERVED']._serialized_start=255838 + _globals['_PATTERNFLOWRSVPRESERVED']._serialized_end=256183 + _globals['_PATTERNFLOWRSVPRESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPRESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPRESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPRESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESSCOUNTER']._serialized_start=256186 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESSCOUNTER']._serialized_end=256347 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS']._serialized_start=256350 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS']._serialized_end=256859 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4IPV4TUNNELENDPOINTADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVEDCOUNTER']._serialized_start=256862 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVEDCOUNTER']._serialized_end=257006 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED']._serialized_start=257009 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED']._serialized_end=257450 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELIDCOUNTER']._serialized_start=257453 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELIDCOUNTER']._serialized_end=257597 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID']._serialized_start=257600 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID']._serialized_end=258041 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSESSIONLSPTUNNELIPV4TUNNELID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGERCOUNTER']._serialized_start=258044 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGERCOUNTER']._serialized_end=258187 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER']._serialized_start=258190 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER']._serialized_end=258627 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASINTEGER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4COUNTER']._serialized_start=258630 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4COUNTER']._serialized_end=258770 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4']._serialized_start=258773 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4']._serialized_end=259198 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSESSIONEXTTUNNELIDASIPV4_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESSCOUNTER']._serialized_start=259201 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESSCOUNTER']._serialized_end=259339 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS']._serialized_start=259342 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS']._serialized_end=259759 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4IPV4ADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLECOUNTER']._serialized_start=259762 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLECOUNTER']._serialized_end=259911 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE']._serialized_start=259914 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE']._serialized_end=260375 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHRSVPHOPIPV4LOGICALINTERFACEHANDLE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODRCOUNTER']._serialized_start=260378 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODRCOUNTER']._serialized_end=260523 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR']._serialized_start=260526 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR']._serialized_end=260971 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHTIMEVALUESTYPE1REFRESHPERIODR_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBITCOUNTER']._serialized_start=260974 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBITCOUNTER']._serialized_end=261122 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT']._serialized_start=261125 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT']._serialized_end=261582 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXLBIT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESSCOUNTER']._serialized_start=261585 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESSCOUNTER']._serialized_end=261740 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS']._serialized_start=261743 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS']._serialized_end=262228 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1IPV4PREFIXIPV4ADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBITCOUNTER']._serialized_start=262231 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBITCOUNTER']._serialized_end=262377 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT']._serialized_start=262380 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT']._serialized_end=262829 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHEXPLICITROUTETYPE1ASNUMBERLBIT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVEDCOUNTER']._serialized_start=262832 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVEDCOUNTER']._serialized_end=262985 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED']._serialized_start=262988 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED']._serialized_end=263465 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGERESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PIDCOUNTER']._serialized_start=263468 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PIDCOUNTER']._serialized_end=263618 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID']._serialized_start=263621 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID']._serialized_end=264086 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHLABELREQUESTWITHOUTLABELRANGEL3PID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESSCOUNTER']._serialized_start=264089 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESSCOUNTER']._serialized_end=264255 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS']._serialized_start=264258 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS']._serialized_end=264787 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4IPV4TUNNELSENDERADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVEDCOUNTER']._serialized_start=264790 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVEDCOUNTER']._serialized_end=264941 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED']._serialized_start=264944 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED']._serialized_end=265413 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4RESERVED_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPIDCOUNTER']._serialized_start=265416 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPIDCOUNTER']._serialized_end=265564 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID']._serialized_start=265567 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID']._serialized_end=266024 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTEMPLATELSPTUNNELIPV4LSPID_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSIONCOUNTER']._serialized_start=266027 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSIONCOUNTER']._serialized_end=266168 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION']._serialized_start=266171 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION']._serialized_end=266600 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVVERSION_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1COUNTER']._serialized_start=266603 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1COUNTER']._serialized_end=266746 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1']._serialized_start=266749 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1']._serialized_end=267186 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED1_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTHCOUNTER']._serialized_start=267189 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTHCOUNTER']._serialized_end=267336 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH']._serialized_start=267339 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH']._serialized_end=267792 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVOVERALLLENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADERCOUNTER']._serialized_start=267795 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADERCOUNTER']._serialized_end=267942 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER']._serialized_start=267945 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER']._serialized_end=268398 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVSERVICEHEADER_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBITCOUNTER']._serialized_start=268401 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBITCOUNTER']._serialized_end=268542 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT']._serialized_start=268545 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT']._serialized_end=268974 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVZEROBIT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2COUNTER']._serialized_start=268977 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2COUNTER']._serialized_end=269120 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2']._serialized_start=269123 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2']._serialized_end=269560 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVRESERVED2_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATACOUNTER']._serialized_start=269563 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATACOUNTER']._serialized_end=269716 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA']._serialized_start=269719 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA']._serialized_end=270196 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVLENGTHOFSERVICEDATA_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPECCOUNTER']._serialized_start=270199 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPECCOUNTER']._serialized_end=270360 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC']._serialized_start=270363 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC']._serialized_end=270872 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETERIDTOKENBUCKETTSPEC_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAGCOUNTER']._serialized_start=270875 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAGCOUNTER']._serialized_end=271025 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG']._serialized_start=271028 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG']._serialized_end=271493 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127FLAG_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTHCOUNTER']._serialized_start=271496 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTHCOUNTER']._serialized_end=271648 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH']._serialized_start=271651 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH']._serialized_end=272124 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVPARAMETER127LENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNITCOUNTER']._serialized_start=272127 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNITCOUNTER']._serialized_end=272279 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT']._serialized_start=272282 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT']._serialized_end=272755 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMINIMUMPOLICEDUNIT_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZECOUNTER']._serialized_start=272758 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZECOUNTER']._serialized_end=272909 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE']._serialized_start=272912 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE']._serialized_end=273381 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHSENDERTSPECINTSERVMAXIMUMPACKETSIZE_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESSCOUNTER']._serialized_start=273384 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESSCOUNTER']._serialized_end=273538 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS']._serialized_start=273541 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS']._serialized_end=274022 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSIPV4ADDRESS_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTHCOUNTER']._serialized_start=274025 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTHCOUNTER']._serialized_end=274180 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH']._serialized_start=274183 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH']._serialized_end=274668 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1IPV4ADDRESSPREFIXLENGTH_CHOICE_ENUM']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS']._serialized_start=274671 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS']._serialized_end=274918 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE']._serialized_start=250025 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE']._serialized_end=250081 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELFLAGS_CHOICE_ENUM']._serialized_end=149708 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE']._serialized_start=274921 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE']._serialized_end=275168 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE']._serialized_start=250025 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE']._serialized_end=250081 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE_ENUM']._serialized_start=149662 + _globals['_PATTERNFLOWRSVPPATHRECORDROUTETYPE1LABELCTYPE_CHOICE_ENUM']._serialized_end=149708 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPECOUNTER']._serialized_start=275171 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPECOUNTER']._serialized_end=275304 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE']._serialized_start=275307 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE']._serialized_end=275704 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE']._serialized_start=150322 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE']._serialized_end=150408 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE_ENUM']._serialized_start=150332 + _globals['_PATTERNFLOWRSVPPATHOBJECTSCUSTOMTYPE_CHOICE_ENUM']._serialized_end=150408 + _globals['_VERSION']._serialized_start=275707 + _globals['_VERSION']._serialized_end=275852 + _globals['_SUCCESS']._serialized_start=275854 + _globals['_SUCCESS']._serialized_end=275894 + _globals['_FAILURE']._serialized_start=275896 + _globals['_FAILURE']._serialized_end=275932 + _globals['_SETCONFIGREQUEST']._serialized_start=275934 + _globals['_SETCONFIGREQUEST']._serialized_end=275981 + _globals['_UPDATECONFIGREQUEST']._serialized_start=275983 + _globals['_UPDATECONFIGREQUEST']._serialized_end=276046 + _globals['_SETCONFIGRESPONSE']._serialized_start=276048 + _globals['_SETCONFIGRESPONSE']._serialized_end=276098 + _globals['_GETCONFIGRESPONSE']._serialized_start=276100 + _globals['_GETCONFIGRESPONSE']._serialized_end=276148 + _globals['_UPDATECONFIGRESPONSE']._serialized_start=276150 + _globals['_UPDATECONFIGRESPONSE']._serialized_end=276203 + _globals['_SETCONTROLSTATEREQUEST']._serialized_start=276205 + _globals['_SETCONTROLSTATEREQUEST']._serialized_end=276271 + _globals['_SETCONTROLSTATERESPONSE']._serialized_start=276273 + _globals['_SETCONTROLSTATERESPONSE']._serialized_end=276329 + _globals['_SETCONTROLACTIONREQUEST']._serialized_start=276331 + _globals['_SETCONTROLACTIONREQUEST']._serialized_end=276400 + _globals['_SETCONTROLACTIONRESPONSE']._serialized_start=276402 + _globals['_SETCONTROLACTIONRESPONSE']._serialized_end=276489 + _globals['_GETMETRICSREQUEST']._serialized_start=276491 + _globals['_GETMETRICSREQUEST']._serialized_end=276556 + _globals['_GETMETRICSRESPONSE']._serialized_start=276558 + _globals['_GETMETRICSRESPONSE']._serialized_end=276626 + _globals['_GETSTATESREQUEST']._serialized_start=276628 + _globals['_GETSTATESREQUEST']._serialized_end=276690 + _globals['_GETSTATESRESPONSE']._serialized_start=276692 + _globals['_GETSTATESRESPONSE']._serialized_end=276757 + _globals['_GETCAPTUREREQUEST']._serialized_start=276759 + _globals['_GETCAPTUREREQUEST']._serialized_end=276824 + _globals['_GETCAPTURERESPONSE']._serialized_start=276826 + _globals['_GETCAPTURERESPONSE']._serialized_end=276870 + _globals['_GETVERSIONRESPONSE']._serialized_start=276872 + _globals['_GETVERSIONRESPONSE']._serialized_end=276923 + _globals['_OPENAPI']._serialized_start=276926 + _globals['_OPENAPI']._serialized_end=277533 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index 466b1630..75a4c4e3 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 1.7.1 +# Open Traffic Generator API 1.8.0 # License: MIT import importlib @@ -4823,6 +4823,7 @@ class DeviceEthernet(OpenApiObject): "vlans": {"type": "DeviceVlanIter"}, "name": {"type": str}, "dhcpv4_interfaces": {"type": "DeviceDhcpv4clientIter"}, + "dhcpv6_interfaces": {"type": "DeviceDhcpv6clientIter"}, } # type: Dict[str, str] _REQUIRED = ("mac", "name") # type: tuple(str) @@ -4973,6 +4974,19 @@ def dhcpv4_interfaces(self): "dhcpv4_interfaces", DeviceDhcpv4clientIter, self._parent, self._choice ) + @property + def dhcpv6_interfaces(self): + # type: () -> DeviceDhcpv6clientIter + """dhcpv6_interfaces getter + + List of DHCPv6 Clients Configuration. + + Returns: DeviceDhcpv6clientIter + """ + return self._get_property( + "dhcpv6_interfaces", DeviceDhcpv6clientIter, self._parent, self._choice + ) + class EthernetConnection(OpenApiObject): __slots__ = ("_parent", "_choice") @@ -6105,6 +6119,2293 @@ def add(self, name=None, server_address=None, broadcast=False): return item +class DeviceDhcpv6client(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "rapid_commit": {"type": bool}, + "ia_type": {"type": "DeviceDhcpv6clientIaType"}, + "duid_type": {"type": "DeviceDhcpv6clientDuidType"}, + "options_request": {"type": "DeviceDhcpv6ClientOptionsRequest"}, + "options": {"type": "DeviceDhcpv6ClientOptions"}, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "rapid_commit": False, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, rapid_commit=False): + super(DeviceDhcpv6client, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("rapid_commit", rapid_commit) + + def set(self, name=None, rapid_commit=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 name(self): + # type: () -> str + """name getter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def rapid_commit(self): + # type: () -> bool + """rapid_commit getter + + If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. + + Returns: bool + """ + return self._get_property("rapid_commit") + + @rapid_commit.setter + def rapid_commit(self, value): + """rapid_commit setter + + If Rapid Commit is set, client initiates Rapid Commit two-message exchange by including Rapid Commit option in Solicit message. + + value: bool + """ + self._set_property("rapid_commit", value) + + @property + def ia_type(self): + # type: () -> DeviceDhcpv6clientIaType + """ia_type getter + + Each IA has an associated IAID. Differnet IA options represent different types of IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. + + Returns: DeviceDhcpv6clientIaType + """ + return self._get_property("ia_type", DeviceDhcpv6clientIaType) + + @property + def duid_type(self): + # type: () -> DeviceDhcpv6clientDuidType + """duid_type getter + + Each DHCP client and server has DUID. DHCP clients and servers use DUIDs to identify each other. + + Returns: DeviceDhcpv6clientDuidType + """ + return self._get_property("duid_type", DeviceDhcpv6clientDuidType) + + @property + def options_request(self): + # type: () -> DeviceDhcpv6ClientOptionsRequest + """options_request getter + + DHCP client options, these configured options are sent in Dhcp client messages.DHCP client options, these configured options are sent in Dhcp client messages.DHCP client options, these configured options are sent in Dhcp client messages.The options requested by client from server in the options request option. + + Returns: DeviceDhcpv6ClientOptionsRequest + """ + return self._get_property("options_request", DeviceDhcpv6ClientOptionsRequest) + + @property + def options(self): + # type: () -> DeviceDhcpv6ClientOptions + """options getter + + DHCP client options, these configured options are sent in Dhcp client messages.DHCP client options, these configured options are sent in Dhcp client messages.DHCP client options, these configured options are sent in Dhcp client messages.Optional DHCPv4 Client options that are sent in Dhcp client messages. + + Returns: DeviceDhcpv6ClientOptions + """ + return self._get_property("options", DeviceDhcpv6ClientOptions) + + +class DeviceDhcpv6clientIaType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "iana", + "iata", + "iapd", + "ianapd", + ], + }, + "iana": {"type": "DeviceDhcpv6clientIaTimeValue"}, + "iapd": {"type": "DeviceDhcpv6clientIaTimeValue"}, + "ianapd": {"type": "DeviceDhcpv6clientIaTimeValue"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "iana", + } # type: Dict[str, Union(type)] + + IANA = "iana" # type: str + IATA = "iata" # type: str + IAPD = "iapd" # type: str + IANAPD = "ianapd" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(DeviceDhcpv6clientIaType, 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 iana(self): + # type: () -> DeviceDhcpv6clientIaTimeValue + """Factory property that returns an instance of the DeviceDhcpv6clientIaTimeValue class + + The container for the suggested times at which the client contacts the server or any available server. + + Returns: DeviceDhcpv6clientIaTimeValue + """ + return self._get_property("iana", DeviceDhcpv6clientIaTimeValue, self, "iana") + + @property + def iapd(self): + # type: () -> DeviceDhcpv6clientIaTimeValue + """Factory property that returns an instance of the DeviceDhcpv6clientIaTimeValue class + + The container for the suggested times at which the client contacts the server or any available server. + + Returns: DeviceDhcpv6clientIaTimeValue + """ + return self._get_property("iapd", DeviceDhcpv6clientIaTimeValue, self, "iapd") + + @property + def ianapd(self): + # type: () -> DeviceDhcpv6clientIaTimeValue + """Factory property that returns an instance of the DeviceDhcpv6clientIaTimeValue class + + The container for the suggested times at which the client contacts the server or any available server. + + Returns: DeviceDhcpv6clientIaTimeValue + """ + return self._get_property( + "ianapd", DeviceDhcpv6clientIaTimeValue, self, "ianapd" + ) + + @property + def choice(self): + # type: () -> Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """choice getter + + Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent different types of IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. IA_NA is the Identity Association for Non-temporary Addresses option. IA_TA is the Identity Association for Temporary Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD the Identity Association for Temporary Prefix Delegation. + + Returns: Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + Identity Association: Each IA has an associated IAID. IA_NA and IA_TA options represent different types of IPv6 addresses and parameters accepted by DHCPv6 clients each used in different context by an IPv6 node. IA_NA is the Identity Association for Non-temporary Addresses option. IA_TA is the Identity Association for Temporary Addresses option. IA_PD and IA_NAPD options represent one or more IPv6 prefix and parameters. IA_PD is the Identity Association for Prefix Delegation and IA_NAPD the Identity Association for Temporary Prefix Delegation. + + value: Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """ + self._set_property("choice", value) + + +class DeviceDhcpv6clientIaTimeValue(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "t1": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + "t2": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "t1": 302400, + "t2": 483840, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, t1=302400, t2=483840): + super(DeviceDhcpv6clientIaTimeValue, self).__init__() + self._parent = parent + self._set_property("t1", t1) + self._set_property("t2", t2) + + def set(self, t1=None, t2=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 t1(self): + # type: () -> int + """t1 getter + + The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is time duration relative to the current time expressed in units of seconds. If set to server will ignore it. If the maximum value is specified it means infinite time. + + Returns: int + """ + return self._get_property("t1") + + @t1.setter + def t1(self, value): + """t1 setter + + The suggested time at which the client contacts the server from which the addresses were obtained to extend the lifetimes of the addresses assigned. T1 is time duration relative to the current time expressed in units of seconds. If set to server will ignore it. If the maximum value is specified it means infinite time. + + value: int + """ + self._set_property("t1", value) + + @property + def t2(self): + # type: () -> int + """t2 getter + + The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is time duration relative to the current time expressed in units of seconds. If set to server will ignore it. If the maximum value is specified it means infinite time + + Returns: int + """ + return self._get_property("t2") + + @t2.setter + def t2(self, value): + """t2 setter + + The suggested time at which the client contacts any available server to extend the lifetimes of the addresses assigned. T2 is time duration relative to the current time expressed in units of seconds. If set to server will ignore it. If the maximum value is specified it means infinite time + + value: int + """ + self._set_property("t2", value) + + +class DeviceDhcpv6clientDuidType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "llt", + "en", + "ll", + ], + }, + "llt": {"type": "DeviceDhcpv6clientNoDuid"}, + "en": {"type": "DeviceDhcpv6clientDuidValue"}, + "ll": {"type": "DeviceDhcpv6clientNoDuid"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "llt", + } # type: Dict[str, Union(type)] + + LLT = "llt" # type: str + EN = "en" # type: str + LL = "ll" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(DeviceDhcpv6clientDuidType, 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 llt(self): + # type: () -> DeviceDhcpv6clientNoDuid + """Factory property that returns an instance of the DeviceDhcpv6clientNoDuid class + + The container for DUID-LL and DUID-LLT. + + Returns: DeviceDhcpv6clientNoDuid + """ + return self._get_property("llt", DeviceDhcpv6clientNoDuid, self, "llt") + + @property + def en(self): + # type: () -> DeviceDhcpv6clientDuidValue + """Factory property that returns an instance of the DeviceDhcpv6clientDuidValue class + + The container for the DUID-EN. This consists of the 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN] followed by unique identifier assigned by the vendor. + + Returns: DeviceDhcpv6clientDuidValue + """ + return self._get_property("en", DeviceDhcpv6clientDuidValue, self, "en") + + @property + def ll(self): + # type: () -> DeviceDhcpv6clientNoDuid + """Factory property that returns an instance of the DeviceDhcpv6clientNoDuid class + + The container for DUID-LL and DUID-LLT. + + Returns: DeviceDhcpv6clientNoDuid + """ + return self._get_property("ll", DeviceDhcpv6clientNoDuid, self, "ll") + + @property + def choice(self): + # type: () -> Union[Literal["en"], Literal["ll"], Literal["llt"]] + """choice getter + + Each DHCP client and server has DUID. DHCP clients use DUIDs to identify server in messages where server needs to be identified. + + Returns: Union[Literal["en"], Literal["ll"], Literal["llt"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + Each DHCP client and server has DUID. DHCP clients use DUIDs to identify server in messages where server needs to be identified. + + value: Union[Literal["en"], Literal["ll"], Literal["llt"]] + """ + self._set_property("choice", value) + + +class DeviceDhcpv6clientNoDuid(OpenApiObject): + __slots__ = "_parent" + + _TYPES = {} # 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(DeviceDhcpv6clientNoDuid, self).__init__() + self._parent = parent + + +class DeviceDhcpv6clientDuidValue(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "enterprise_id": { + "type": int, + "format": "uint32", + "minimum": 1, + "maximum": 2147483647, + }, + "vendor_id": { + "type": int, + "format": "uint32", + "minimum": 1, + "maximum": 2147483647, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "enterprise_id": 10, + "vendor_id": 10, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, enterprise_id=10, vendor_id=10): + super(DeviceDhcpv6clientDuidValue, self).__init__() + self._parent = parent + self._set_property("enterprise_id", enterprise_id) + self._set_property("vendor_id", vendor_id) + + def set(self, enterprise_id=None, vendor_id=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 enterprise_id(self): + # type: () -> int + """enterprise_id getter + + 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. + + Returns: int + """ + return self._get_property("enterprise_id") + + @enterprise_id.setter + def enterprise_id(self, value): + """enterprise_id setter + + 4-octet vendor's registered Private Enterprise Number as maintained by IANA [IANA-PEN]. + + value: int + """ + self._set_property("enterprise_id", value) + + @property + def vendor_id(self): + # type: () -> int + """vendor_id getter + + Unique identifier assigned by the vendor. + + Returns: int + """ + return self._get_property("vendor_id") + + @vendor_id.setter + def vendor_id(self, value): + """vendor_id setter + + Unique identifier assigned by the vendor. + + value: int + """ + self._set_property("vendor_id", value) + + +class DeviceDhcpv6ClientOptionsRequest(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "request": {"type": "Dhcpv6ClientOptionsOptionsRequestIter"}, + "associated_dhcp_messages": { + "type": "Dhcpv6ClientOptionsOptionsRequestIncludedMessages" + }, + } # type: Dict[str, str] + + _REQUIRED = ("request", "associated_dhcp_messages") # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None): + super(DeviceDhcpv6ClientOptionsRequest, self).__init__() + self._parent = parent + + @property + def request(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequestIter + """request getter + + List of options requested by client from server. + + Returns: Dhcpv6ClientOptionsOptionsRequestIter + """ + return self._get_property( + "request", Dhcpv6ClientOptionsOptionsRequestIter, self._parent, self._choice + ) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequestIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The list of dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ClientOptionsOptionsRequestIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", + Dhcpv6ClientOptionsOptionsRequestIncludedMessages, + ) + + +class Dhcpv6ClientOptionsOptionsRequest(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "vendor_information", + "name_servers", + "fqdn", + "bootfile_url", + "sztp", + "custom", + ], + }, + "custom": {"type": "Dhcpv6ClientOptionsCustom"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "vendor_information", + } # type: Dict[str, Union(type)] + + VENDOR_INFORMATION = "vendor_information" # type: str + NAME_SERVERS = "name_servers" # type: str + FQDN = "fqdn" # type: str + BOOTFILE_URL = "bootfile_url" # type: str + SZTP = "sztp" # type: str + CUSTOM = "custom" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsOptionsRequest, 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 custom(self): + # type: () -> Dhcpv6ClientOptionsCustom + """Factory property that returns an instance of the Dhcpv6ClientOptionsCustom class + + The Custom option is used to provide not so well known option in the message between client and server. + + Returns: Dhcpv6ClientOptionsCustom + """ + return self._get_property("custom", Dhcpv6ClientOptionsCustom, self, "custom") + + @property + def choice(self): + # type: () -> Union[Literal["bootfile_url"], Literal["custom"], Literal["fqdn"], Literal["name_servers"], Literal["sztp"], Literal["vendor_information"]] + """choice getter + + The Option Request option is used to identify list of options in message between client and server. The option code is 6. Vendor_specific information option, requested by clients for vendor-specific informations from servers. DNS Recursive Name Server Option, requested by clients to get the list ofIPv6 addresses of DNS recursive name servers to which DNS queries may be sent by the client resolver in order of preference.. Client FQDN option indicates whether the client or the DHCP server should update DNS with the AAAA record corresponding to the assigned IPv6 address and the FQDN provided in this option. The DHCP server always updates the PTR record.. bootfile_url, if client is configured for network booting then the client must use this option to obtain the boot file url from the server.. sztp. Securely provision networking device when it is booting in factory-default state. + + Returns: Union[Literal["bootfile_url"], Literal["custom"], Literal["fqdn"], Literal["name_servers"], Literal["sztp"], Literal["vendor_information"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The Option Request option is used to identify list of options in message between client and server. The option code is 6. Vendor_specific information option, requested by clients for vendor-specific informations from servers. DNS Recursive Name Server Option, requested by clients to get the list ofIPv6 addresses of DNS recursive name servers to which DNS queries may be sent by the client resolver in order of preference.. Client FQDN option indicates whether the client or the DHCP server should update DNS with the AAAA record corresponding to the assigned IPv6 address and the FQDN provided in this option. The DHCP server always updates the PTR record.. bootfile_url, if client is configured for network booting then the client must use this option to obtain the boot file url from the server.. sztp. Securely provision networking device when it is booting in factory-default state. + + value: Union[Literal["bootfile_url"], Literal["custom"], Literal["fqdn"], Literal["name_servers"], Literal["sztp"], Literal["vendor_information"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ClientOptionsCustom(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "type": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + } # type: Dict[str, str] + + _REQUIRED = ("type",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, type=None): + super(Dhcpv6ClientOptionsCustom, self).__init__() + self._parent = parent + self._set_property("type", type) + + def set(self, type=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 type(self): + # type: () -> int + """type getter + + The type of the Custom option TLV. + + Returns: int + """ + return self._get_property("type") + + @type.setter + def type(self, value): + """type setter + + The type of the Custom option TLV. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property type as None") + self._set_property("type", value) + + +class Dhcpv6ClientOptionsOptionsRequestIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsOptionsRequestIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6ClientOptionsCustom, Dhcpv6ClientOptionsOptionsRequest] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequestIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequest + return self._next() + + def next(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequest + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6ClientOptionsOptionsRequest): + raise Exception( + "Item is not an instance of Dhcpv6ClientOptionsOptionsRequest" + ) + + def optionsrequest(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequestIter + """Factory method that creates an instance of the Dhcpv6ClientOptionsOptionsRequest class + + TBD + + Returns: Dhcpv6ClientOptionsOptionsRequestIter + """ + item = Dhcpv6ClientOptionsOptionsRequest( + parent=self._parent, choice=self._choice + ) + self._add(item) + return self + + def add(self): + # type: () -> Dhcpv6ClientOptionsOptionsRequest + """Add method that creates and returns an instance of the Dhcpv6ClientOptionsOptionsRequest class + + TBD + + Returns: Dhcpv6ClientOptionsOptionsRequest + """ + item = Dhcpv6ClientOptionsOptionsRequest( + parent=self._parent, choice=self._choice + ) + self._add(item) + return item + + def custom(self, type=None): + # type: (int) -> Dhcpv6ClientOptionsOptionsRequestIter + """Factory method that creates an instance of the Dhcpv6ClientOptionsCustom class + + The Custom option is used to provide not so well known option in the message between client and server. + + Returns: Dhcpv6ClientOptionsOptionsRequestIter + """ + item = Dhcpv6ClientOptionsOptionsRequest() + item.custom + item.choice = "custom" + self._add(item) + return self + + +class Dhcpv6ClientOptionsOptionsRequestIncludedMessages(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "all", + "msg_types", + ], + }, + "msg_types": {"type": "Dhcpv6ClientOptionsMessageType"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "all", + } # type: Dict[str, Union(type)] + + ALL = "all" # type: str + MSG_TYPES = "msg_types" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsOptionsRequestIncludedMessages, 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 msg_types(self): + # type: () -> Dhcpv6ClientOptionsMessageType + """Factory property that returns an instance of the Dhcpv6ClientOptionsMessageType class + + The dhcpv6 client messages where the option will be included. + + Returns: Dhcpv6ClientOptionsMessageType + """ + return self._get_property( + "msg_types", Dhcpv6ClientOptionsMessageType, self, "msg_types" + ) + + @property + def choice(self): + # type: () -> Union[Literal["all"], Literal["msg_types"]] + """choice getter + + The client message name where the option is included, by default it is all. + + Returns: Union[Literal["all"], Literal["msg_types"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The client message name where the option is included, by default it is all. + + value: Union[Literal["all"], Literal["msg_types"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ClientOptionsMessageType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "solicit", + "request", + "inform_request", + "release", + "renew", + "rebind", + ], + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "solicit", + } # type: Dict[str, Union(type)] + + SOLICIT = "solicit" # type: str + REQUEST = "request" # type: str + INFORM_REQUEST = "inform_request" # type: str + RELEASE = "release" # type: str + RENEW = "renew" # type: str + REBIND = "rebind" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsMessageType, 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 choice(self): + # type: () -> Union[Literal["inform_request"], Literal["rebind"], Literal["release"], Literal["renew"], Literal["request"], Literal["solicit"]] + """choice getter + + The client message name where the option is included, by default it is all. + + Returns: Union[Literal["inform_request"], Literal["rebind"], Literal["release"], Literal["renew"], Literal["request"], Literal["solicit"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The client message name where the option is included, by default it is all. + + value: Union[Literal["inform_request"], Literal["rebind"], Literal["release"], Literal["renew"], Literal["request"], Literal["solicit"]] + """ + self._set_property("choice", value) + + +class DeviceDhcpv6ClientOptions(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "server_identifier": {"type": "Dhcpv6ClientOptionsServerIdentifier"}, + "vendor_class": {"type": "Dhcpv6ClientOptionsVendorClass"}, + "vendor_info": {"type": "Dhcpv6ClientOptionsVendorInfo"}, + "fqdn": {"type": "Dhcpv6ClientOptionsFqdn"}, + } # 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(DeviceDhcpv6ClientOptions, self).__init__() + self._parent = parent + + @property + def server_identifier(self): + # type: () -> Dhcpv6ClientOptionsServerIdentifier + """server_identifier getter + + A client uses multicast to reach all servers or an individual server. An individual server is indicated by specifying that server's DUID in Server Identifier option in the client's message (all servers will receive this message but only the indicated server will respond). All servers are indicated by not supplying this option. + + Returns: Dhcpv6ClientOptionsServerIdentifier + """ + return self._get_property( + "server_identifier", Dhcpv6ClientOptionsServerIdentifier + ) + + @property + def vendor_class(self): + # type: () -> Dhcpv6ClientOptionsVendorClass + """vendor_class getter + + This option is used by client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16.This option is used by client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16.This option is used by client to identify the vendor that manufactured the hardware on which the client is running. The option code is 16.The vendor class option is used by client to identify the vendor that manufactured the hardware on which the client is running. The information contained in the data area of this option is contained in one or more opaque fields that identify details of the hardware configuration. + + Returns: Dhcpv6ClientOptionsVendorClass + """ + return self._get_property("vendor_class", Dhcpv6ClientOptionsVendorClass) + + @property + def vendor_info(self): + # type: () -> Dhcpv6ClientOptionsVendorInfo + """vendor_info getter + + This option is used by clients to exchange vendor-specific information. The option code is 17.This option is used by clients to exchange vendor-specific information. The option code is 17.This option is used by clients to exchange vendor-specific information. The option code is 17.This option is used by clients to exchange vendor-specific information with servers. + + Returns: Dhcpv6ClientOptionsVendorInfo + """ + return self._get_property("vendor_info", Dhcpv6ClientOptionsVendorInfo) + + @property + def fqdn(self): + # type: () -> Dhcpv6ClientOptionsFqdn + """fqdn getter + + DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39.DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39.DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which updates. The option code is 39.DHCPv6 server needs to know the FQDN of the client for the addresses for the client's IA_NA bindings in order to update the IPv6-address-to-FQDN mapping. This option allows the client to convey its FQDN to the server. The Client FQDN option also contains Flags that DHCPv6 clients and servers use to negotiate who does which update. + + Returns: Dhcpv6ClientOptionsFqdn + """ + return self._get_property("fqdn", Dhcpv6ClientOptionsFqdn) + + +class Dhcpv6ClientOptionsServerIdentifier(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "duid_llt", + "duid_en", + "duid_ll", + "duid_uuid", + ], + }, + "duid_llt": {"type": "Dhcpv6ClientOptionsDuidLlt"}, + "duid_en": {"type": "Dhcpv6ClientOptionsDuidEn"}, + "duid_ll": {"type": "Dhcpv6ClientOptionsDuidLl"}, + "duid_uuid": {"type": "Dhcpv6ClientOptionsDuidUuid"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "duid_ll", + } # type: Dict[str, Union(type)] + + DUID_LLT = "duid_llt" # type: str + DUID_EN = "duid_en" # type: str + DUID_LL = "duid_ll" # type: str + DUID_UUID = "duid_uuid" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsServerIdentifier, 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 duid_llt(self): + # type: () -> Dhcpv6ClientOptionsDuidLlt + """Factory property that returns an instance of the Dhcpv6ClientOptionsDuidLlt class + + DUID based on Link Layer address plus time. Hardware Type will be auto assigned to ethernet type. + + Returns: Dhcpv6ClientOptionsDuidLlt + """ + return self._get_property( + "duid_llt", Dhcpv6ClientOptionsDuidLlt, self, "duid_llt" + ) + + @property + def duid_en(self): + # type: () -> Dhcpv6ClientOptionsDuidEn + """Factory property that returns an instance of the Dhcpv6ClientOptionsDuidEn class + + DUID assigned by vendor based on enterprise number. + + Returns: Dhcpv6ClientOptionsDuidEn + """ + return self._get_property("duid_en", Dhcpv6ClientOptionsDuidEn, self, "duid_en") + + @property + def duid_ll(self): + # type: () -> Dhcpv6ClientOptionsDuidLl + """Factory property that returns an instance of the Dhcpv6ClientOptionsDuidLl class + + DUID based on Link Layer address. Hardware Type will be auto assigned to ethernet type. + + Returns: Dhcpv6ClientOptionsDuidLl + """ + return self._get_property("duid_ll", Dhcpv6ClientOptionsDuidLl, self, "duid_ll") + + @property + def duid_uuid(self): + # type: () -> Dhcpv6ClientOptionsDuidUuid + """Factory property that returns an instance of the Dhcpv6ClientOptionsDuidUuid class + + DUID embedded Universally Unique IDentifier (UUID). UUID is an identifier that is unique across both space and time, with respect to the space of all UUIDs. + + Returns: Dhcpv6ClientOptionsDuidUuid + """ + return self._get_property( + "duid_uuid", Dhcpv6ClientOptionsDuidUuid, self, "duid_uuid" + ) + + @property + def choice(self): + # type: () -> Union[Literal["duid_en"], Literal["duid_ll"], Literal["duid_llt"], Literal["duid_uuid"]] + """choice getter + + The Identifier option is used to carry DUID. The option code is 2. The server identifier identifies server. This option is used when client wants to contact particular server. + + Returns: Union[Literal["duid_en"], Literal["duid_ll"], Literal["duid_llt"], Literal["duid_uuid"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The Identifier option is used to carry DUID. The option code is 2. The server identifier identifies server. This option is used when client wants to contact particular server. + + value: Union[Literal["duid_en"], Literal["duid_ll"], Literal["duid_llt"], Literal["duid_uuid"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ClientOptionsDuidLlt(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "time": { + "type": int, + "format": "uint32", + }, + "link_layer_address": {"type": "Dhcpv6ClientOptionsLinkLayerAddress"}, + } # type: Dict[str, str] + + _REQUIRED = ("time", "link_layer_address") # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, time=None): + super(Dhcpv6ClientOptionsDuidLlt, self).__init__() + self._parent = parent + self._set_property("time", time) + + def set(self, time=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 time(self): + # type: () -> int + """time getter + + The time value is the time that the DUID is generated represented in seconds since midnight (UTC), January 1, 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client contacts the server. + + Returns: int + """ + return self._get_property("time") + + @time.setter + def time(self, value): + """time setter + + The time value is the time that the DUID is generated represented in seconds since midnight (UTC), January 1, 2000, modulo 2^32. The DUID generatation time will the current time when dhcpv6 client contacts the server. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property time as None") + self._set_property("time", value) + + @property + def link_layer_address(self): + # type: () -> Dhcpv6ClientOptionsLinkLayerAddress + """link_layer_address getter + + The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address is stored in canonical form, as described in RFC 2464. + + Returns: Dhcpv6ClientOptionsLinkLayerAddress + """ + return self._get_property( + "link_layer_address", Dhcpv6ClientOptionsLinkLayerAddress + ) + + +class Dhcpv6ClientOptionsLinkLayerAddress(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "value": { + "type": str, + "format": "mac", + }, + } # type: Dict[str, str] + + _REQUIRED = ("value",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, value=None): + super(Dhcpv6ClientOptionsLinkLayerAddress, self).__init__() + self._parent = parent + self._set_property("value", value) + + def set(self, 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 value(self): + # type: () -> str + """value getter + + The MAC address that becomes part of DUID llt or DUID ll. + + Returns: str + """ + return self._get_property("value") + + @value.setter + def value(self, value): + """value setter + + The MAC address that becomes part of DUID llt or DUID ll. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property value as None") + self._set_property("value", value) + + +class Dhcpv6ClientOptionsDuidEn(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "enterprise_number": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + "identifier": { + "type": str, + "format": "hex", + "minLength": 1, + "maxLength": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("enterprise_number", "identifier") # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, enterprise_number=None, identifier=None): + super(Dhcpv6ClientOptionsDuidEn, self).__init__() + self._parent = parent + self._set_property("enterprise_number", enterprise_number) + self._set_property("identifier", identifier) + + def set(self, enterprise_number=None, 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 enterprise_number(self): + # type: () -> int + """enterprise_number getter + + Vendor's registered private enterprise number as maintained by IANA. + + Returns: int + """ + return self._get_property("enterprise_number") + + @enterprise_number.setter + def enterprise_number(self, value): + """enterprise_number setter + + Vendor's registered private enterprise number as maintained by IANA. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property enterprise_number as None") + self._set_property("enterprise_number", value) + + @property + def identifier(self): + # type: () -> str + """identifier getter + + The unique identifier assigned by the vendor. + + Returns: str + """ + return self._get_property("identifier") + + @identifier.setter + def identifier(self, value): + """identifier setter + + The unique identifier assigned by the vendor. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property identifier as None") + self._set_property("identifier", value) + + +class Dhcpv6ClientOptionsDuidLl(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "link_layer_address": {"type": "Dhcpv6ClientOptionsLinkLayerAddress"}, + } # type: Dict[str, str] + + _REQUIRED = ("link_layer_address",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None): + super(Dhcpv6ClientOptionsDuidLl, self).__init__() + self._parent = parent + + @property + def link_layer_address(self): + # type: () -> Dhcpv6ClientOptionsLinkLayerAddress + """link_layer_address getter + + The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address configured in DUID llt or DUID ll.The link-layer address is stored in canonical form, as described in RFC 2464. + + Returns: Dhcpv6ClientOptionsLinkLayerAddress + """ + return self._get_property( + "link_layer_address", Dhcpv6ClientOptionsLinkLayerAddress + ) + + +class Dhcpv6ClientOptionsDuidUuid(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "version": {"type": "Dhcpv6ClientOptionsDuidUuidVersion"}, + "variant": {"type": "Dhcpv6ClientOptionsDuidUuidVariant"}, + "time_low": { + "type": int, + "format": "uint32", + }, + "time_mid": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "time_hi_and_version": { + "type": int, + "format": "uint32", + "maximum": 4095, + }, + "clock_seq_hi_and_reserved": { + "type": int, + "format": "uint32", + "maximum": 31, + }, + "clock_seq_low": { + "type": int, + "format": "uint32", + "maximum": 127, + }, + "node": { + "type": str, + "format": "mac", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "time_low": 0, + "time_mid": 0, + "time_hi_and_version": 0, + "clock_seq_hi_and_reserved": 0, + "clock_seq_low": 0, + "node": "00:00:00:00:00:00", + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + time_low=0, + time_mid=0, + time_hi_and_version=0, + clock_seq_hi_and_reserved=0, + clock_seq_low=0, + node="00:00:00:00:00:00", + ): + super(Dhcpv6ClientOptionsDuidUuid, self).__init__() + self._parent = parent + self._set_property("time_low", time_low) + self._set_property("time_mid", time_mid) + self._set_property("time_hi_and_version", time_hi_and_version) + self._set_property("clock_seq_hi_and_reserved", clock_seq_hi_and_reserved) + self._set_property("clock_seq_low", clock_seq_low) + self._set_property("node", node) + + def set( + self, + time_low=None, + time_mid=None, + time_hi_and_version=None, + clock_seq_hi_and_reserved=None, + clock_seq_low=None, + node=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: () -> Dhcpv6ClientOptionsDuidUuidVersion + """version getter + + The version number is in the most significant bits of the timestamp (bits through of the time_hi_and_version field).The version number is in the most significant bits of the timestamp (bits through of the time_hi_and_version field).The version number is in the most significant bits of the timestamp (bits through of the time_hi_and_version field).The version number is in the most significant bits of the timestamp (bits through of the time_hi_and_version field).The version number is in the most significant bits of the timestamp (bits through of the time_hi_and_version field). + + Returns: Dhcpv6ClientOptionsDuidUuidVersion + """ + return self._get_property("version", Dhcpv6ClientOptionsDuidUuidVersion) + + @property + def variant(self): + # type: () -> Dhcpv6ClientOptionsDuidUuidVariant + """variant getter + + The variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field).The variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field).The variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field).The variant field determines the layout of the UUID. That is, the interpretation of all other bits in the UUID depends on the setting of the bits in the variant field).The variant field determines the layout of the UUID. It is multiplexed with clock_seq_hi_and_reserved. + + Returns: Dhcpv6ClientOptionsDuidUuidVariant + """ + return self._get_property("variant", Dhcpv6ClientOptionsDuidUuidVariant) + + @property + def time_low(self): + # type: () -> int + """time_low getter + + The low field of the timestamp. + + Returns: int + """ + return self._get_property("time_low") + + @time_low.setter + def time_low(self, value): + """time_low setter + + The low field of the timestamp. + + value: int + """ + self._set_property("time_low", value) + + @property + def time_mid(self): + # type: () -> int + """time_mid getter + + The middle field of the timestamp. + + Returns: int + """ + return self._get_property("time_mid") + + @time_mid.setter + def time_mid(self, value): + """time_mid setter + + The middle field of the timestamp. + + value: int + """ + self._set_property("time_mid", value) + + @property + def time_hi_and_version(self): + # type: () -> int + """time_hi_and_version getter + + The high field of the timestamp multiplexed with the version number. + + Returns: int + """ + return self._get_property("time_hi_and_version") + + @time_hi_and_version.setter + def time_hi_and_version(self, value): + """time_hi_and_version setter + + The high field of the timestamp multiplexed with the version number. + + value: int + """ + self._set_property("time_hi_and_version", value) + + @property + def clock_seq_hi_and_reserved(self): + # type: () -> int + """clock_seq_hi_and_reserved getter + + The high field of the clock sequence multiplexed with the variant. + + Returns: int + """ + return self._get_property("clock_seq_hi_and_reserved") + + @clock_seq_hi_and_reserved.setter + def clock_seq_hi_and_reserved(self, value): + """clock_seq_hi_and_reserved setter + + The high field of the clock sequence multiplexed with the variant. + + value: int + """ + self._set_property("clock_seq_hi_and_reserved", value) + + @property + def clock_seq_low(self): + # type: () -> int + """clock_seq_low getter + + The low field of the clock sequence. + + Returns: int + """ + return self._get_property("clock_seq_low") + + @clock_seq_low.setter + def clock_seq_low(self, value): + """clock_seq_low setter + + The low field of the clock sequence. + + value: int + """ + self._set_property("clock_seq_low", value) + + @property + def node(self): + # type: () -> str + """node getter + + The spatially unique node identifier. + + Returns: str + """ + return self._get_property("node") + + @node.setter + def node(self, value): + """node setter + + The spatially unique node identifier. + + value: str + """ + self._set_property("node", value) + + +class Dhcpv6ClientOptionsDuidUuidVersion(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "v_1", + "v_2", + "v_3", + "v_4", + "v_5", + ], + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "v_1", + } # type: Dict[str, Union(type)] + + V_1 = "v_1" # type: str + V_2 = "v_2" # type: str + V_3 = "v_3" # type: str + V_4 = "v_4" # type: str + V_5 = "v_5" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsDuidUuidVersion, 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 choice(self): + # type: () -> Union[Literal["v_1"], Literal["v_2"], Literal["v_3"], Literal["v_4"], Literal["v_5"]] + """choice getter + + The version values are from to in the most significant bits of the timestamp (bits through of the time_hi_and_version field). + + Returns: Union[Literal["v_1"], Literal["v_2"], Literal["v_3"], Literal["v_4"], Literal["v_5"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The version values are from to in the most significant bits of the timestamp (bits through of the time_hi_and_version field). + + value: Union[Literal["v_1"], Literal["v_2"], Literal["v_3"], Literal["v_4"], Literal["v_5"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ClientOptionsDuidUuidVariant(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "ncs", + "dce", + "guid", + "var_reserved", + ], + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "ncs", + } # type: Dict[str, Union(type)] + + NCS = "ncs" # type: str + DCE = "dce" # type: str + GUID = "guid" # type: str + VAR_RESERVED = "var_reserved" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsDuidUuidVariant, 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 choice(self): + # type: () -> Union[Literal["dce"], Literal["guid"], Literal["ncs"], Literal["var_reserved"]] + """choice getter + + The current variants are ncs, dce,microsoft guid and reserved. + + Returns: Union[Literal["dce"], Literal["guid"], Literal["ncs"], Literal["var_reserved"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The current variants are ncs, dce,microsoft guid and reserved. + + value: Union[Literal["dce"], Literal["guid"], Literal["ncs"], Literal["var_reserved"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ClientOptionsVendorClass(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "enterprise_number": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + "class_data": { + "type": list, + "itemtype": str, + }, + "associated_dhcp_messages": {"type": "Dhcpv6ClientOptionsIncludedMessages"}, + } # type: Dict[str, str] + + _REQUIRED = ( + "enterprise_number", + "class_data", + "associated_dhcp_messages", + ) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, enterprise_number=None, class_data=None): + super(Dhcpv6ClientOptionsVendorClass, self).__init__() + self._parent = parent + self._set_property("enterprise_number", enterprise_number) + self._set_property("class_data", class_data) + + def set(self, enterprise_number=None, class_data=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 enterprise_number(self): + # type: () -> int + """enterprise_number getter + + The vendor's registered Enterprise Number as registered with IANA. + + Returns: int + """ + return self._get_property("enterprise_number") + + @enterprise_number.setter + def enterprise_number(self, value): + """enterprise_number setter + + The vendor's registered Enterprise Number as registered with IANA. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property enterprise_number as None") + self._set_property("enterprise_number", value) + + @property + def class_data(self): + # type: () -> List[str] + """class_data getter + + The opaque data representing the hardware configuration of the host on which the client is running. Examples of class data instances might include the version of the operating system the client is running or the amount of memory installed on the client. + + Returns: List[str] + """ + return self._get_property("class_data") + + @class_data.setter + def class_data(self, value): + """class_data setter + + The opaque data representing the hardware configuration of the host on which the client is running. Examples of class data instances might include the version of the operating system the client is running or the amount of memory installed on the client. + + value: List[str] + """ + if value is None: + raise TypeError("Cannot set required property class_data as None") + self._set_property("class_data", value) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ClientOptionsIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ClientOptionsIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", Dhcpv6ClientOptionsIncludedMessages + ) + + +class Dhcpv6ClientOptionsIncludedMessages(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "all", + "msg_types", + ], + }, + "msg_types": {"type": "Dhcpv6ClientOptionsMessageTypeIter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "all", + } # type: Dict[str, Union(type)] + + ALL = "all" # type: str + MSG_TYPES = "msg_types" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsIncludedMessages, 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 choice(self): + # type: () -> Union[Literal["all"], Literal["msg_types"]] + """choice getter + + The client message name where the option is included, by default it is all. + + Returns: Union[Literal["all"], Literal["msg_types"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The client message name where the option is included, by default it is all. + + value: Union[Literal["all"], Literal["msg_types"]] + """ + self._set_property("choice", value) + + @property + def msg_types(self): + # type: () -> Dhcpv6ClientOptionsMessageTypeIter + """msg_types getter + + User must specify the Dhcpv6 message type. + + Returns: Dhcpv6ClientOptionsMessageTypeIter + """ + return self._get_property( + "msg_types", Dhcpv6ClientOptionsMessageTypeIter, self._parent, self._choice + ) + + +class Dhcpv6ClientOptionsMessageTypeIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ClientOptionsMessageTypeIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6ClientOptionsMessageType] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6ClientOptionsMessageTypeIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6ClientOptionsMessageType + return self._next() + + def next(self): + # type: () -> Dhcpv6ClientOptionsMessageType + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6ClientOptionsMessageType): + raise Exception("Item is not an instance of Dhcpv6ClientOptionsMessageType") + + def messagetype(self): + # type: () -> Dhcpv6ClientOptionsMessageTypeIter + """Factory method that creates an instance of the Dhcpv6ClientOptionsMessageType class + + The dhcpv6 client messages where the option will be included. + + Returns: Dhcpv6ClientOptionsMessageTypeIter + """ + item = Dhcpv6ClientOptionsMessageType(parent=self._parent, choice=self._choice) + self._add(item) + return self + + def add(self): + # type: () -> Dhcpv6ClientOptionsMessageType + """Add method that creates and returns an instance of the Dhcpv6ClientOptionsMessageType class + + The dhcpv6 client messages where the option will be included. + + Returns: Dhcpv6ClientOptionsMessageType + """ + item = Dhcpv6ClientOptionsMessageType(parent=self._parent, choice=self._choice) + self._add(item) + return item + + +class Dhcpv6ClientOptionsVendorInfo(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "enterprise_number": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + "option_data": {"type": "Dhcpv6OptionsVendorSpecificOptionsIter"}, + "associated_dhcp_messages": {"type": "Dhcpv6ClientOptionsIncludedMessages"}, + } # type: Dict[str, str] + + _REQUIRED = ( + "enterprise_number", + "option_data", + "associated_dhcp_messages", + ) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, enterprise_number=None): + super(Dhcpv6ClientOptionsVendorInfo, self).__init__() + self._parent = parent + self._set_property("enterprise_number", enterprise_number) + + def set(self, enterprise_number=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 enterprise_number(self): + # type: () -> int + """enterprise_number getter + + The vendor's registered Enterprise Number as registered with IANA. + + Returns: int + """ + return self._get_property("enterprise_number") + + @enterprise_number.setter + def enterprise_number(self, value): + """enterprise_number setter + + The vendor's registered Enterprise Number as registered with IANA. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property enterprise_number as None") + self._set_property("enterprise_number", value) + + @property + def option_data(self): + # type: () -> Dhcpv6OptionsVendorSpecificOptionsIter + """option_data getter + + An opaque object of octets,interpreted by vendor-specific code on the clients and servers. + + Returns: Dhcpv6OptionsVendorSpecificOptionsIter + """ + return self._get_property( + "option_data", + Dhcpv6OptionsVendorSpecificOptionsIter, + self._parent, + self._choice, + ) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ClientOptionsIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The list of dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ClientOptionsIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", Dhcpv6ClientOptionsIncludedMessages + ) + + +class Dhcpv6OptionsVendorSpecificOptions(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "code": { + "type": int, + "format": "uint32", + "maximum": 65535, + }, + "data": {"type": str}, + } # type: Dict[str, str] + + _REQUIRED = ("code", "data") # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, code=None, data=None): + super(Dhcpv6OptionsVendorSpecificOptions, self).__init__() + self._parent = parent + self._set_property("code", code) + self._set_property("data", data) + + def set(self, code=None, data=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 code(self): + # type: () -> int + """code getter + + The code for the encapsulated option. + + Returns: int + """ + return self._get_property("code") + + @code.setter + def code(self, value): + """code setter + + The code for the encapsulated option. + + value: int + """ + if value is None: + raise TypeError("Cannot set required property code as None") + self._set_property("code", value) + + @property + def data(self): + # type: () -> str + """data getter + + The data for the encapsulated option. + + Returns: str + """ + return self._get_property("data") + + @data.setter + def data(self, value): + """data setter + + The data for the encapsulated option. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property data as None") + self._set_property("data", value) + + +class Dhcpv6OptionsVendorSpecificOptionsIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv6OptionsVendorSpecificOptionsIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6OptionsVendorSpecificOptions] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6OptionsVendorSpecificOptionsIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6OptionsVendorSpecificOptions + return self._next() + + def next(self): + # type: () -> Dhcpv6OptionsVendorSpecificOptions + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6OptionsVendorSpecificOptions): + raise Exception( + "Item is not an instance of Dhcpv6OptionsVendorSpecificOptions" + ) + + def vendorspecificoptions(self, code=None, data=None): + # type: (int,str) -> Dhcpv6OptionsVendorSpecificOptionsIter + """Factory method that creates an instance of the Dhcpv6OptionsVendorSpecificOptions class + + The encapsulated vendor-specific options field is encoded as sequence of code/length/value fields of identical format to the DHCP options field. The option codes are defined by the vendor identified in the enterprise-number field and are not managed by IANA. + + Returns: Dhcpv6OptionsVendorSpecificOptionsIter + """ + item = Dhcpv6OptionsVendorSpecificOptions( + parent=self._parent, code=code, data=data + ) + self._add(item) + return self + + def add(self, code=None, data=None): + # type: (int,str) -> Dhcpv6OptionsVendorSpecificOptions + """Add method that creates and returns an instance of the Dhcpv6OptionsVendorSpecificOptions class + + The encapsulated vendor-specific options field is encoded as sequence of code/length/value fields of identical format to the DHCP options field. The option codes are defined by the vendor identified in the enterprise-number field and are not managed by IANA. + + Returns: Dhcpv6OptionsVendorSpecificOptions + """ + item = Dhcpv6OptionsVendorSpecificOptions( + parent=self._parent, code=code, data=data + ) + self._add(item) + return item + + +class Dhcpv6ClientOptionsFqdn(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "flag_s": {"type": bool}, + "flag_o": {"type": bool}, + "flag_n": {"type": bool}, + "domain_name": {"type": str}, + "associated_dhcp_messages": {"type": "Dhcpv6ClientOptionsIncludedMessages"}, + } # type: Dict[str, str] + + _REQUIRED = ("domain_name",) # type: tuple(str) + + _DEFAULTS = { + "flag_s": True, + "flag_o": False, + "flag_n": False, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, parent=None, flag_s=True, flag_o=False, flag_n=False, domain_name=None + ): + super(Dhcpv6ClientOptionsFqdn, self).__init__() + self._parent = parent + self._set_property("flag_s", flag_s) + self._set_property("flag_o", flag_o) + self._set_property("flag_n", flag_n) + self._set_property("domain_name", domain_name) + + def set(self, flag_s=None, flag_o=None, flag_n=None, domain_name=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 flag_s(self): + # type: () -> bool + """flag_s getter + + The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. client sets the bit to to indicate that the server should not perform the updates and to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. + + Returns: bool + """ + return self._get_property("flag_s") + + @flag_s.setter + def flag_s(self, value): + """flag_s setter + + The "S" bit indicates whether the server should or should not perform the AAAA RR (FQDN-to-address) DNS updates. client sets the bit to to indicate that the server should not perform the updates and to indicate that the server should perform the updates. The state of the bit in the reply from the server indicates the action to be taken by the server. If it is 1, the server has taken responsibility for AAAA RR updates for the FQDN. + + value: bool + """ + self._set_property("flag_s", value) + + @property + def flag_o(self): + # type: () -> bool + """flag_o getter + + The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. client must set this bit to 0. server must set this bit to if the "S" bit in its reply to the client does not match the "S" bit received from the client. + + Returns: bool + """ + return self._get_property("flag_o") + + @flag_o.setter + def flag_o(self, value): + """flag_o setter + + The "O" bit indicates whether the server has overridden the client's preference for the "S" bit. client must set this bit to 0. server must set this bit to if the "S" bit in its reply to the client does not match the "S" bit received from the client. + + value: bool + """ + self._set_property("flag_o", value) + + @property + def flag_n(self): + # type: () -> bool + """flag_n getter + + The "N" bit indicates whether the server should not perform any DNS updates. client sets this bit to to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to to request that the server should not perform any DNS updates. server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. + + Returns: bool + """ + return self._get_property("flag_n") + + @flag_n.setter + def flag_n(self, value): + """flag_n setter + + The "N" bit indicates whether the server should not perform any DNS updates. client sets this bit to to request that the server should perform updates (the PTR RR and possibly the AAAA RR based on the "S" bit) or to to request that the server should not perform any DNS updates. server sets the "N" bit to indicate whether the server shall (0) or shall not (1) perform DNS updates. If the "N" bit is 1, the "S" bit MUST be 0. + + value: bool + """ + self._set_property("flag_n", value) + + @property + def domain_name(self): + # type: () -> str + """domain_name getter + + The Domain Name part of the option carries all or part of the FQDN of DHCPv6 client. client MAY also leave the Domain Name field empty if it desires the server to provide name. fully qualified domain name (FQDN) is the complete address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as URL but rather is part of it that fully identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of URL. Therefore, adding the prefix http:// or https:// to the FQDN turns it into full URL. One example can be microsoft.com. + + Returns: str + """ + return self._get_property("domain_name") + + @domain_name.setter + def domain_name(self, value): + """domain_name setter + + The Domain Name part of the option carries all or part of the FQDN of DHCPv6 client. client MAY also leave the Domain Name field empty if it desires the server to provide name. fully qualified domain name (FQDN) is the complete address of an internet host or computer. It provides its exact location within the domain name system (DNS) by specifying the hostname, domain name and top-level domain (TLD). An FQDN isn't the same as URL but rather is part of it that fully identifies the server to which the request is addressed. An FQDN doesn't carry the TCP/IP protocol information, such as Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS), which is always used at the beginning of URL. Therefore, adding the prefix http:// or https:// to the FQDN turns it into full URL. One example can be microsoft.com. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property domain_name as None") + self._set_property("domain_name", value) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ClientOptionsIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The dhcpv6 client messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 client messages, else based on the selection in particular Dhcpv6 client messages the option will be included.The list of dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ClientOptionsIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", Dhcpv6ClientOptionsIncludedMessages + ) + + +class DeviceDhcpv6clientIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(DeviceDhcpv6clientIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[DeviceDhcpv6client] + return self._getitem(key) + + def __iter__(self): + # type: () -> DeviceDhcpv6clientIter + return self._iter() + + def __next__(self): + # type: () -> DeviceDhcpv6client + return self._next() + + def next(self): + # type: () -> DeviceDhcpv6client + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, DeviceDhcpv6client): + raise Exception("Item is not an instance of DeviceDhcpv6client") + + def dhcpv6client(self, name=None, rapid_commit=False): + # type: (str,bool) -> DeviceDhcpv6clientIter + """Factory method that creates an instance of the DeviceDhcpv6client class + + Configuration for emulated DHCPv6 Client on single Interface. If the DHCPv6 Client receives one or more DHCPv6 ADVERTISE messages from one or more servers then the client chooses one server from which to request configuration parameters, based on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html + + Returns: DeviceDhcpv6clientIter + """ + item = DeviceDhcpv6client( + parent=self._parent, name=name, rapid_commit=rapid_commit + ) + self._add(item) + return self + + def add(self, name=None, rapid_commit=False): + # type: (str,bool) -> DeviceDhcpv6client + """Add method that creates and returns an instance of the DeviceDhcpv6client class + + Configuration for emulated DHCPv6 Client on single Interface. If the DHCPv6 Client receives one or more DHCPv6 ADVERTISE messages from one or more servers then the client chooses one server from which to request configuration parameters, based on the configuration parameters offered by the server in the DHCPv6 ADVERTISE messages. If all configuration parameters match then the first server will be chosen. https://www.rfc-editor.org/rfc/rfc8415.html + + Returns: DeviceDhcpv6client + """ + item = DeviceDhcpv6client( + parent=self._parent, name=name, rapid_commit=rapid_commit + ) + self._add(item) + return item + + class DeviceEthernetIter(OpenApiIter): __slots__ = ("_parent", "_choice") @@ -10221,7 +12522,7 @@ def ipv4_name(self): # type: () -> str """ipv4_name getter - The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/DhcpClient.V4/properties/name. . x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/DhcpClient.V4/properties/name. + The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. Returns: str """ @@ -10231,7 +12532,7 @@ def ipv4_name(self): def ipv4_name(self, value): """ipv4_name setter - The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/DhcpClient.V4/properties/name. . x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/DhcpClient.V4/properties/name. + The unique name of the IPv4, Loopback IPv4 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv4Loopback/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. value: str """ @@ -27641,7 +29942,7 @@ def ipv6_name(self): # type: () -> str """ipv6_name getter - The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/DhcpClient.V6/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/DhcpClient.V6/properties/name. + The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. Returns: str """ @@ -27651,7 +29952,7 @@ def ipv6_name(self): def ipv6_name(self, value): """ipv6_name setter - The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/DhcpClient.V6/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/DhcpClient.V6/properties/name. + The unique name of IPv6 Loopback IPv6 interface or DHCPv4 client used as the source IP for this list of BGP peers.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Device.Ipv6Loopback/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. value: str """ @@ -32830,6 +35131,7 @@ class DeviceDhcpServer(OpenApiObject): _TYPES = { "ipv4_interfaces": {"type": "DhcpServerV4Iter"}, + "ipv6_interfaces": {"type": "DhcpServerV6Iter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -32855,6 +35157,19 @@ def ipv4_interfaces(self): "ipv4_interfaces", DhcpServerV4Iter, self._parent, self._choice ) + @property + def ipv6_interfaces(self): + # type: () -> DhcpServerV6Iter + """ipv6_interfaces getter + + This contains an array of references to IPv6 interfaces, each of which will contain one DHCPv6 server. + + Returns: DhcpServerV6Iter + """ + return self._get_property( + "ipv6_interfaces", DhcpServerV6Iter, self._parent, self._choice + ) + class DhcpServerV4(OpenApiObject): __slots__ = "_parent" @@ -32965,6 +35280,7 @@ class DhcpServerV4Pool(OpenApiObject): "type": int, "format": "uint32", "minimum": 1, + "maximum": 1000000, }, "step": { "type": int, @@ -33043,7 +35359,600 @@ def lease_time(self): # type: () -> int """lease_time getter - The duration of time in seconds that is assigned to lease. + The duration of time in seconds that is assigned to lease. + + Returns: int + """ + return self._get_property("lease_time") + + @lease_time.setter + def lease_time(self, value): + """lease_time setter + + The duration of time in seconds that is assigned to lease. + + value: int + """ + self._set_property("lease_time", value) + + @property + def start_address(self): + # type: () -> str + """start_address getter + + The IPv4 address of the first lease pool. + + Returns: str + """ + return self._get_property("start_address") + + @start_address.setter + def start_address(self, value): + """start_address setter + + The IPv4 address of the first lease pool. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property start_address as None") + self._set_property("start_address", value) + + @property + def prefix_length(self): + # type: () -> int + """prefix_length getter + + The IPv4 network prefix length to be applied to the address. + + Returns: int + """ + return self._get_property("prefix_length") + + @prefix_length.setter + def prefix_length(self, value): + """prefix_length setter + + The IPv4 network prefix length to be applied to the address. + + value: int + """ + self._set_property("prefix_length", value) + + @property + def count(self): + # type: () -> int + """count getter + + The total number of addresses in the pool. + + Returns: int + """ + return self._get_property("count") + + @count.setter + def count(self, value): + """count setter + + The total number of addresses in the pool. + + value: int + """ + self._set_property("count", value) + + @property + def step(self): + # type: () -> int + """step getter + + The increment value for the lease address within the lease pool. The value is incremented according to the prefix_length and step. + + Returns: int + """ + return self._get_property("step") + + @step.setter + def step(self, value): + """step setter + + The increment value for the lease address within the lease pool. The value is incremented according to the prefix_length and step. + + value: int + """ + self._set_property("step", value) + + @property + def options(self): + # type: () -> DhcpServerV4PoolOption + """options getter + + Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease. + + Returns: DhcpServerV4PoolOption + """ + return self._get_property("options", DhcpServerV4PoolOption) + + +class DhcpServerV4PoolOption(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "router_address": { + "type": str, + "format": "ipv4", + }, + "primary_dns_server": { + "type": str, + "format": "ipv4", + }, + "secondary_dns_server": { + "type": str, + "format": "ipv4", + }, + "echo_relay_with_tlv_82": {"type": bool}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "router_address": "0.0.0.0", + "primary_dns_server": "0.0.0.0", + "secondary_dns_server": "0.0.0.0", + "echo_relay_with_tlv_82": True, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + router_address="0.0.0.0", + primary_dns_server="0.0.0.0", + secondary_dns_server="0.0.0.0", + echo_relay_with_tlv_82=True, + ): + super(DhcpServerV4PoolOption, self).__init__() + self._parent = parent + self._set_property("router_address", router_address) + self._set_property("primary_dns_server", primary_dns_server) + self._set_property("secondary_dns_server", secondary_dns_server) + self._set_property("echo_relay_with_tlv_82", echo_relay_with_tlv_82) + + def set( + self, + router_address=None, + primary_dns_server=None, + secondary_dns_server=None, + echo_relay_with_tlv_82=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 router_address(self): + # type: () -> str + """router_address getter + + The Router address advertised by the DHCPv4 server in Offer and Ack messages. + + Returns: str + """ + return self._get_property("router_address") + + @router_address.setter + def router_address(self, value): + """router_address setter + + The Router address advertised by the DHCPv4 server in Offer and Ack messages. + + value: str + """ + self._set_property("router_address", value) + + @property + def primary_dns_server(self): + # type: () -> str + """primary_dns_server getter + + The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + + Returns: str + """ + return self._get_property("primary_dns_server") + + @primary_dns_server.setter + def primary_dns_server(self, value): + """primary_dns_server setter + + The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + + value: str + """ + self._set_property("primary_dns_server", value) + + @property + def secondary_dns_server(self): + # type: () -> str + """secondary_dns_server getter + + The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + + Returns: str + """ + return self._get_property("secondary_dns_server") + + @secondary_dns_server.setter + def secondary_dns_server(self, value): + """secondary_dns_server setter + + The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + + value: str + """ + self._set_property("secondary_dns_server", value) + + @property + def echo_relay_with_tlv_82(self): + # type: () -> bool + """echo_relay_with_tlv_82 getter + + If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from DHCP relay agent, otherwise it replies without including this TLV. + + Returns: bool + """ + return self._get_property("echo_relay_with_tlv_82") + + @echo_relay_with_tlv_82.setter + def echo_relay_with_tlv_82(self, value): + """echo_relay_with_tlv_82 setter + + If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from DHCP relay agent, otherwise it replies without including this TLV. + + value: bool + """ + self._set_property("echo_relay_with_tlv_82", value) + + +class DhcpServerV4PoolIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(DhcpServerV4PoolIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[DhcpServerV4Pool] + return self._getitem(key) + + def __iter__(self): + # type: () -> DhcpServerV4PoolIter + return self._iter() + + def __next__(self): + # type: () -> DhcpServerV4Pool + return self._next() + + def next(self): + # type: () -> DhcpServerV4Pool + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, DhcpServerV4Pool): + raise Exception("Item is not an instance of DhcpServerV4Pool") + + def pool( + self, + name=None, + lease_time=86400, + start_address=None, + prefix_length=24, + count=1, + step=1, + ): + # type: (str,int,str,int,int,int) -> DhcpServerV4PoolIter + """Factory method that creates an instance of the DhcpServerV4Pool class + + Configuration for DHCPv4 address pool for lease. + + Returns: DhcpServerV4PoolIter + """ + item = DhcpServerV4Pool( + parent=self._parent, + name=name, + lease_time=lease_time, + start_address=start_address, + prefix_length=prefix_length, + count=count, + step=step, + ) + self._add(item) + return self + + def add( + self, + name=None, + lease_time=86400, + start_address=None, + prefix_length=24, + count=1, + step=1, + ): + # type: (str,int,str,int,int,int) -> DhcpServerV4Pool + """Add method that creates and returns an instance of the DhcpServerV4Pool class + + Configuration for DHCPv4 address pool for lease. + + Returns: DhcpServerV4Pool + """ + item = DhcpServerV4Pool( + parent=self._parent, + name=name, + lease_time=lease_time, + start_address=start_address, + prefix_length=prefix_length, + count=count, + step=step, + ) + self._add(item) + return item + + +class DhcpServerV4Iter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(DhcpServerV4Iter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[DhcpServerV4] + return self._getitem(key) + + def __iter__(self): + # type: () -> DhcpServerV4Iter + return self._iter() + + def __next__(self): + # type: () -> DhcpServerV4 + return self._next() + + def next(self): + # type: () -> DhcpServerV4 + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, DhcpServerV4): + raise Exception("Item is not an instance of DhcpServerV4") + + def v4(self, name=None, ipv4_name=None): + # type: (str,str) -> DhcpServerV4Iter + """Factory method that creates an instance of the DhcpServerV4 class + + Configuration for emulated DHCPv4 Server. + + Returns: DhcpServerV4Iter + """ + item = DhcpServerV4(parent=self._parent, name=name, ipv4_name=ipv4_name) + self._add(item) + return self + + def add(self, name=None, ipv4_name=None): + # type: (str,str) -> DhcpServerV4 + """Add method that creates and returns an instance of the DhcpServerV4 class + + Configuration for emulated DHCPv4 Server. + + Returns: DhcpServerV4 + """ + item = DhcpServerV4(parent=self._parent, name=name, ipv4_name=ipv4_name) + self._add(item) + return item + + +class DhcpServerV6(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "ipv6_name": {"type": str}, + "rapid_commit": {"type": bool}, + "reconfigure_via_relay_agent": {"type": bool}, + "leases": {"type": "DhcpV6ServerLeaseIter"}, + "options": {"type": "Dhcpv6ServerOptions"}, + } # type: Dict[str, str] + + _REQUIRED = ("name", "ipv6_name", "leases") # type: tuple(str) + + _DEFAULTS = { + "rapid_commit": False, + "reconfigure_via_relay_agent": False, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + name=None, + ipv6_name=None, + rapid_commit=False, + reconfigure_via_relay_agent=False, + ): + super(DhcpServerV6, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("ipv6_name", ipv6_name) + self._set_property("rapid_commit", rapid_commit) + self._set_property("reconfigure_via_relay_agent", reconfigure_via_relay_agent) + + def set( + self, + name=None, + ipv6_name=None, + rapid_commit=None, + reconfigure_via_relay_agent=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 name(self): + # type: () -> str + """name getter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Globally unique name of an object. It also serves as the primary key for arrays of objects. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def ipv6_name(self): + # type: () -> str + """ipv6_name getter + + The unique name of the IPv6 on which DHCPv6 server will run.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. + + Returns: str + """ + return self._get_property("ipv6_name") + + @ipv6_name.setter + def ipv6_name(self, value): + """ipv6_name setter + + The unique name of the IPv6 on which DHCPv6 server will run.. x-constraint:. /components/schemas/Device.Ipv6/properties/name. . x-constraint:. /components/schemas/Device.Ipv6/properties/name. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property ipv6_name as None") + self._set_property("ipv6_name", value) + + @property + def rapid_commit(self): + # type: () -> bool + """rapid_commit getter + + If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. + + Returns: bool + """ + return self._get_property("rapid_commit") + + @rapid_commit.setter + def rapid_commit(self, value): + """rapid_commit setter + + If Rapid Commit is set, server responds to client initiated Rapid Commit two-message exchanges. + + value: bool + """ + self._set_property("rapid_commit", value) + + @property + def reconfigure_via_relay_agent(self): + # type: () -> bool + """reconfigure_via_relay_agent getter + + If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses Relay-reply message to send the Reconfigure message to relay agent that will relay the message to the client. + + Returns: bool + """ + return self._get_property("reconfigure_via_relay_agent") + + @reconfigure_via_relay_agent.setter + def reconfigure_via_relay_agent(self, value): + """reconfigure_via_relay_agent setter + + If the server does not have an address to which it can send the Reconfigure message directly to the client, the server uses Relay-reply message to send the Reconfigure message to relay agent that will relay the message to the client. + + value: bool + """ + self._set_property("reconfigure_via_relay_agent", value) + + @property + def leases(self): + # type: () -> DhcpV6ServerLeaseIter + """leases getter + + Array of DHCP pools configured on server. + + Returns: DhcpV6ServerLeaseIter + """ + return self._get_property( + "leases", DhcpV6ServerLeaseIter, self._parent, self._choice + ) + + @property + def options(self): + # type: () -> Dhcpv6ServerOptions + """options getter + + DHCP server options, these configured options are sent in Dhcp server messages.DHCP server options, these configured options are sent in Dhcp server messages.DHCP server options, these configured options are sent in Dhcp server messages.Optional DHCPv4 Server options that are sent in Dhcp server messages. + + Returns: Dhcpv6ServerOptions + """ + return self._get_property("options", Dhcpv6ServerOptions) + + +class DhcpV6ServerLease(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "lease_time": { + "type": int, + "format": "uint32", + "minimum": 300, + "maximum": 30000000, + }, + "ia_type": {"type": "Dhcpv6ServerIaType"}, + } # type: Dict[str, str] + + _REQUIRED = ("ia_type",) # type: tuple(str) + + _DEFAULTS = { + "lease_time": 86400, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, lease_time=86400): + super(DhcpV6ServerLease, self).__init__() + self._parent = parent + self._set_property("lease_time", lease_time) + + def set(self, lease_time=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 lease_time(self): + # type: () -> int + """lease_time getter + + The Life Time length in seconds that is assigned to lease if the requesting DHCP client does not specify specific expiration time. Returns: int """ @@ -33053,18 +35962,189 @@ def lease_time(self): def lease_time(self, value): """lease_time setter - The duration of time in seconds that is assigned to lease. + The Life Time length in seconds that is assigned to lease if the requesting DHCP client does not specify specific expiration time. value: int """ self._set_property("lease_time", value) + @property + def ia_type(self): + # type: () -> Dhcpv6ServerIaType + """ia_type getter + + + + Returns: Dhcpv6ServerIaType + """ + return self._get_property("ia_type", Dhcpv6ServerIaType) + + +class Dhcpv6ServerIaType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "iana", + "iata", + "iapd", + "ianapd", + ], + }, + "iana": {"type": "Dhcpv6ServerPoolInfo"}, + "iata": {"type": "Dhcpv6ServerPoolInfo"}, + "iapd": {"type": "Dhcpv6ServerIapdPoolInfo"}, + "ianapd": {"type": "Dhcpv6ServerIanapdPoolInfo"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "iana", + } # type: Dict[str, Union(type)] + + IANA = "iana" # type: str + IATA = "iata" # type: str + IAPD = "iapd" # type: str + IANAPD = "ianapd" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ServerIaType, 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 iana(self): + # type: () -> Dhcpv6ServerPoolInfo + """Factory property that returns an instance of the Dhcpv6ServerPoolInfo class + + The container for pool configurations for IA types iana and iata. + + Returns: Dhcpv6ServerPoolInfo + """ + return self._get_property("iana", Dhcpv6ServerPoolInfo, self, "iana") + + @property + def iata(self): + # type: () -> Dhcpv6ServerPoolInfo + """Factory property that returns an instance of the Dhcpv6ServerPoolInfo class + + The container for pool configurations for IA types iana and iata. + + Returns: Dhcpv6ServerPoolInfo + """ + return self._get_property("iata", Dhcpv6ServerPoolInfo, self, "iata") + + @property + def iapd(self): + # type: () -> Dhcpv6ServerIapdPoolInfo + """Factory property that returns an instance of the Dhcpv6ServerIapdPoolInfo class + + The container for prefix pool configurations for IA type iapd. + + Returns: Dhcpv6ServerIapdPoolInfo + """ + return self._get_property("iapd", Dhcpv6ServerIapdPoolInfo, self, "iapd") + + @property + def ianapd(self): + # type: () -> Dhcpv6ServerIanapdPoolInfo + """Factory property that returns an instance of the Dhcpv6ServerIanapdPoolInfo class + + The container for pool configurations for IA type ianapd. + + Returns: Dhcpv6ServerIanapdPoolInfo + """ + return self._get_property("ianapd", Dhcpv6ServerIanapdPoolInfo, self, "ianapd") + + @property + def choice(self): + # type: () -> Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """choice getter + + Identity Association: collection of leases assigned to client. Each IA has an associated IAID. Each IA holds one type of lease, like an identity association for temporary addresses (IA_TA) holds temporary addresses, and an identity association for prefix delegation (IA_PD). + + Returns: Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + Identity Association: collection of leases assigned to client. Each IA has an associated IAID. Each IA holds one type of lease, like an identity association for temporary addresses (IA_TA) holds temporary addresses, and an identity association for prefix delegation (IA_PD). + + value: Union[Literal["iana"], Literal["ianapd"], Literal["iapd"], Literal["iata"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ServerPoolInfo(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "start_address": { + "type": str, + "format": "ipv6", + }, + "prefix_len": { + "type": int, + "format": "uint32", + "maximum": 128, + }, + "size": { + "type": int, + "format": "uint32", + "minimum": 1, + "maximum": 1000000, + }, + "step": { + "type": int, + "format": "uint32", + "minimum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "prefix_len": 64, + "size": 1, + "step": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, start_address=None, prefix_len=64, size=1, step=1): + super(Dhcpv6ServerPoolInfo, self).__init__() + self._parent = parent + self._set_property("start_address", start_address) + self._set_property("prefix_len", prefix_len) + self._set_property("size", size) + self._set_property("step", step) + + def set(self, start_address=None, prefix_len=None, size=None, step=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_address(self): # type: () -> str """start_address getter - The IPv4 address of the first lease pool. + The first IP address of the lease pool. Returns: str """ @@ -33074,62 +36154,60 @@ def start_address(self): def start_address(self, value): """start_address setter - The IPv4 address of the first lease pool. + The first IP address of the lease pool. value: str """ - if value is None: - raise TypeError("Cannot set required property start_address as None") self._set_property("start_address", value) @property - def prefix_length(self): + def prefix_len(self): # type: () -> int - """prefix_length getter + """prefix_len getter - The IPv4 network prefix length to be applied to the address. + The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. Returns: int """ - return self._get_property("prefix_length") + return self._get_property("prefix_len") - @prefix_length.setter - def prefix_length(self, value): - """prefix_length setter + @prefix_len.setter + def prefix_len(self, value): + """prefix_len setter - The IPv4 network prefix length to be applied to the address. + The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. value: int """ - self._set_property("prefix_length", value) + self._set_property("prefix_len", value) @property - def count(self): + def size(self): # type: () -> int - """count getter + """size getter The total number of addresses in the pool. Returns: int """ - return self._get_property("count") + return self._get_property("size") - @count.setter - def count(self, value): - """count setter + @size.setter + def size(self, value): + """size setter The total number of addresses in the pool. value: int """ - self._set_property("count", value) + self._set_property("size", value) @property def step(self): # type: () -> int """step getter - The increment value for the lease address within the lease pool. The value is incremented according to the prefix_length and step. + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. Returns: int """ @@ -33139,50 +36217,51 @@ def step(self): def step(self, value): """step setter - The increment value for the lease address within the lease pool. The value is incremented according to the prefix_length and step. + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the configured Prefix Length and Step. value: int """ self._set_property("step", value) - @property - def options(self): - # type: () -> DhcpServerV4PoolOption - """options getter - - Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease.Optional configuration for DHCPv4 address pool for the lease. - Returns: DhcpServerV4PoolOption - """ - return self._get_property("options", DhcpServerV4PoolOption) - - -class DhcpServerV4PoolOption(OpenApiObject): +class Dhcpv6ServerIapdPoolInfo(OpenApiObject): __slots__ = "_parent" _TYPES = { - "router_address": { + "start_prefix_address": { "type": str, - "format": "ipv4", + "format": "ipv6", }, - "primary_dns_server": { - "type": str, - "format": "ipv4", + "configured_prefix_len": { + "type": int, + "format": "uint32", + "maximum": 128, }, - "secondary_dns_server": { - "type": str, - "format": "ipv4", + "prefix_size": { + "type": int, + "format": "uint32", + "minimum": 1, + "maximum": 1000000, + }, + "prefix_step": { + "type": int, + "format": "uint32", + "minimum": 1, + }, + "advertised_prefix_len": { + "type": int, + "format": "uint32", + "maximum": 128, }, - "echo_relay_with_tlv_82": {"type": bool}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) _DEFAULTS = { - "router_address": "0.0.0.0", - "primary_dns_server": "0.0.0.0", - "secondary_dns_server": "0.0.0.0", - "echo_relay_with_tlv_82": True, + "configured_prefix_len": 64, + "prefix_size": 10, + "prefix_step": 1, + "advertised_prefix_len": 64, } # type: Dict[str, Union(type)] _STATUS = {} # type: Dict[str, Union(type)] @@ -33190,252 +36269,988 @@ class DhcpServerV4PoolOption(OpenApiObject): def __init__( self, parent=None, - router_address="0.0.0.0", - primary_dns_server="0.0.0.0", - secondary_dns_server="0.0.0.0", - echo_relay_with_tlv_82=True, + start_prefix_address=None, + configured_prefix_len=64, + prefix_size=10, + prefix_step=1, + advertised_prefix_len=64, ): - super(DhcpServerV4PoolOption, self).__init__() + super(Dhcpv6ServerIapdPoolInfo, self).__init__() self._parent = parent - self._set_property("router_address", router_address) - self._set_property("primary_dns_server", primary_dns_server) - self._set_property("secondary_dns_server", secondary_dns_server) - self._set_property("echo_relay_with_tlv_82", echo_relay_with_tlv_82) + self._set_property("start_prefix_address", start_prefix_address) + self._set_property("configured_prefix_len", configured_prefix_len) + self._set_property("prefix_size", prefix_size) + self._set_property("prefix_step", prefix_step) + self._set_property("advertised_prefix_len", advertised_prefix_len) def set( self, - router_address=None, - primary_dns_server=None, - secondary_dns_server=None, - echo_relay_with_tlv_82=None, + start_prefix_address=None, + configured_prefix_len=None, + prefix_size=None, + prefix_step=None, + advertised_prefix_len=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 router_address(self): + def start_prefix_address(self): # type: () -> str - """router_address getter + """start_prefix_address getter - The Router address advertised by the DHCPv4 server in Offer and Ack messages. + The first IP address of the prefix pool. Returns: str """ - return self._get_property("router_address") + return self._get_property("start_prefix_address") - @router_address.setter - def router_address(self, value): - """router_address setter + @start_prefix_address.setter + def start_prefix_address(self, value): + """start_prefix_address setter - The Router address advertised by the DHCPv4 server in Offer and Ack messages. + The first IP address of the prefix pool. value: str """ - self._set_property("router_address", value) + self._set_property("start_prefix_address", value) @property - def primary_dns_server(self): + def configured_prefix_len(self): + # type: () -> int + """configured_prefix_len getter + + The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. + + Returns: int + """ + return self._get_property("configured_prefix_len") + + @configured_prefix_len.setter + def configured_prefix_len(self, value): + """configured_prefix_len setter + + The IPv6 network prefix length is used for incrementing the lease address within the lease pool where multiple addresses are configured by using the size field. The address is incremented using the configured Prefix Length and Step. + + value: int + """ + self._set_property("configured_prefix_len", value) + + @property + def prefix_size(self): + # type: () -> int + """prefix_size getter + + The total number of addresses in the pool. + + Returns: int + """ + return self._get_property("prefix_size") + + @prefix_size.setter + def prefix_size(self, value): + """prefix_size setter + + The total number of addresses in the pool. + + value: int + """ + self._set_property("prefix_size", value) + + @property + def prefix_step(self): + # type: () -> int + """prefix_step getter + + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. + + Returns: int + """ + return self._get_property("prefix_step") + + @prefix_step.setter + def prefix_step(self, value): + """prefix_step setter + + The increment value for the lease address within the lease pool where multiple addresses are present. The value is incremented according to the Prefix Length and Step. + + value: int + """ + self._set_property("prefix_step", value) + + @property + def advertised_prefix_len(self): + # type: () -> int + """advertised_prefix_len getter + + The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 client. + + Returns: int + """ + return self._get_property("advertised_prefix_len") + + @advertised_prefix_len.setter + def advertised_prefix_len(self, value): + """advertised_prefix_len setter + + The prefix length of the IPv6 prefix that the Dhcpv6 server offers to the Dhcpv6 client. + + value: int + """ + self._set_property("advertised_prefix_len", value) + + +class Dhcpv6ServerIanapdPoolInfo(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "iana": {"type": "Dhcpv6ServerPoolInfo"}, + "iapd": {"type": "Dhcpv6ServerIapdPoolInfo"}, + } # 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(Dhcpv6ServerIanapdPoolInfo, self).__init__() + self._parent = parent + + @property + def iana(self): + # type: () -> Dhcpv6ServerPoolInfo + """iana getter + + The container for pool configurations for IA types iana and iata.The container for pool configurations for IA types iana and iata.The container for pool configurations for IA types iana and iata.The container for pool configurations for IA types iana and iata.The pool configurations for IA types iana in ianapd. + + Returns: Dhcpv6ServerPoolInfo + """ + return self._get_property("iana", Dhcpv6ServerPoolInfo) + + @property + def iapd(self): + # type: () -> Dhcpv6ServerIapdPoolInfo + """iapd getter + + The container for prefix pool configurations for IA type iapd.The container for prefix pool configurations for IA type iapd.The container for prefix pool configurations for IA type iapd.The container for prefix pool configurations for IA type iapd.The pool configurations for IA types iapd in ianapd. + + Returns: Dhcpv6ServerIapdPoolInfo + """ + return self._get_property("iapd", Dhcpv6ServerIapdPoolInfo) + + +class DhcpV6ServerLeaseIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(DhcpV6ServerLeaseIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[DhcpV6ServerLease] + return self._getitem(key) + + def __iter__(self): + # type: () -> DhcpV6ServerLeaseIter + return self._iter() + + def __next__(self): + # type: () -> DhcpV6ServerLease + return self._next() + + def next(self): + # type: () -> DhcpV6ServerLease + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, DhcpV6ServerLease): + raise Exception("Item is not an instance of DhcpV6ServerLease") + + def lease(self, lease_time=86400): + # type: (int) -> DhcpV6ServerLeaseIter + """Factory method that creates an instance of the DhcpV6ServerLease class + + One DHCP pool configuration on server. + + Returns: DhcpV6ServerLeaseIter + """ + item = DhcpV6ServerLease(parent=self._parent, lease_time=lease_time) + self._add(item) + return self + + def add(self, lease_time=86400): + # type: (int) -> DhcpV6ServerLease + """Add method that creates and returns an instance of the DhcpV6ServerLease class + + One DHCP pool configuration on server. + + Returns: DhcpV6ServerLease + """ + item = DhcpV6ServerLease(parent=self._parent, lease_time=lease_time) + self._add(item) + return item + + +class Dhcpv6ServerOptions(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "dns": {"type": "DhcpV6ServerDns"}, + "vendor_info": {"type": "Dhcpv6ServerOptionsVendorInfo"}, + "bootfile_url": {"type": "Dhcpv6ServerOptionsBootfileUrl"}, + } # 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(Dhcpv6ServerOptions, self).__init__() + self._parent = parent + + @property + def dns(self): + # type: () -> DhcpV6ServerDns + """dns getter + + Optional Dns configuration for DHCPv6 server.Optional Dns configuration for DHCPv6 server.Optional Dns configuration for DHCPv6 server.Additional DHCP server primary dns and other configuration options. + + Returns: DhcpV6ServerDns + """ + return self._get_property("dns", DhcpV6ServerDns) + + @property + def vendor_info(self): + # type: () -> Dhcpv6ServerOptionsVendorInfo + """vendor_info getter + + This option is used by servers to exchange vendor-specific information. The option code is 17.This option is used by servers to exchange vendor-specific information. The option code is 17.This option is used by servers to exchange vendor-specific information. The option code is 17.This option is used by servers to exchange vendor-specific information with clients. + + Returns: Dhcpv6ServerOptionsVendorInfo + """ + return self._get_property("vendor_info", Dhcpv6ServerOptionsVendorInfo) + + @property + def bootfile_url(self): + # type: () -> Dhcpv6ServerOptionsBootfileUrl + """bootfile_url getter + + The server sends this option to inform the client about URL to boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, subdomain, domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi".The server sends this option to inform the client about URL to boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, subdomain, domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi".The server sends this option to inform the client about URL to boot file. This information is required for booting over the network includes the details about the server on which the boot files can be found, the protocol to be used for the download (for example,HTTP or TFTP, and the path and name of the boot file on the server. The option code is 59. The URL will contain the network communication protocol, subdomain, domain name, and its extension. If the host in the URL is expressed using an IPv6 address rather than domain name, the address in the URL then must be enclosed in "[" and "]" characters, conforming to [RFC3986]. Eg of boot file url can be "tftp://[xxxx:xxxx:xxxx:xxxx::xxxx]/mboot.efi".The server sends this option to inform the client about URL to boot file which client will use for. network boots. + + Returns: Dhcpv6ServerOptionsBootfileUrl + """ + return self._get_property("bootfile_url", Dhcpv6ServerOptionsBootfileUrl) + + +class DhcpV6ServerDns(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "primary": { + "type": str, + "format": "ipv6", + }, + "secondary_dns": {"type": "DhcpV6ServerSecondaryDnsIter"}, + } # type: Dict[str, str] + + _REQUIRED = ("primary",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, primary=None): + super(DhcpV6ServerDns, self).__init__() + self._parent = parent + self._set_property("primary", primary) + + def set(self, primary=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 primary(self): # type: () -> str - """primary_dns_server getter + """primary getter The primary DNS server address that is offered to DHCP clients that request this information through TLV option. Returns: str """ - return self._get_property("primary_dns_server") + return self._get_property("primary") - @primary_dns_server.setter - def primary_dns_server(self, value): - """primary_dns_server setter + @primary.setter + def primary(self, value): + """primary setter The primary DNS server address that is offered to DHCP clients that request this information through TLV option. value: str """ - self._set_property("primary_dns_server", value) + if value is None: + raise TypeError("Cannot set required property primary as None") + self._set_property("primary", value) @property - def secondary_dns_server(self): + def secondary_dns(self): + # type: () -> DhcpV6ServerSecondaryDnsIter + """secondary_dns getter + + DHCP server secondary dns configuration options. If included secondary DNS server address will be offered to DHCP clients that request this information through TLV option. + + Returns: DhcpV6ServerSecondaryDnsIter + """ + return self._get_property( + "secondary_dns", DhcpV6ServerSecondaryDnsIter, self._parent, self._choice + ) + + +class DhcpV6ServerSecondaryDns(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "ip": { + "type": str, + "format": "ipv6", + }, + } # 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, ip=None): + super(DhcpV6ServerSecondaryDns, self).__init__() + self._parent = parent + self._set_property("ip", ip) + + def set(self, ip=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 ip(self): # type: () -> str - """secondary_dns_server getter + """ip getter - The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + The secondary DNS server address that is offered to DHCP clients that request this information through TLV option. Returns: str """ - return self._get_property("secondary_dns_server") + return self._get_property("ip") - @secondary_dns_server.setter - def secondary_dns_server(self, value): - """secondary_dns_server setter + @ip.setter + def ip(self, value): + """ip setter - The primary DNS server address that is offered to DHCP clients that request this information through TLV option. + The secondary DNS server address that is offered to DHCP clients that request this information through TLV option. value: str """ - self._set_property("secondary_dns_server", value) + self._set_property("ip", value) + + +class DhcpV6ServerSecondaryDnsIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(DhcpV6ServerSecondaryDnsIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[DhcpV6ServerSecondaryDns] + return self._getitem(key) + + def __iter__(self): + # type: () -> DhcpV6ServerSecondaryDnsIter + return self._iter() + + def __next__(self): + # type: () -> DhcpV6ServerSecondaryDns + return self._next() + + def next(self): + # type: () -> DhcpV6ServerSecondaryDns + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, DhcpV6ServerSecondaryDns): + raise Exception("Item is not an instance of DhcpV6ServerSecondaryDns") + + def secondarydns(self, ip=None): + # type: (str) -> DhcpV6ServerSecondaryDnsIter + """Factory method that creates an instance of the DhcpV6ServerSecondaryDns class + + Advanced Dns configuration for DHCPv6 server. + + Returns: DhcpV6ServerSecondaryDnsIter + """ + item = DhcpV6ServerSecondaryDns(parent=self._parent, ip=ip) + self._add(item) + return self + + def add(self, ip=None): + # type: (str) -> DhcpV6ServerSecondaryDns + """Add method that creates and returns an instance of the DhcpV6ServerSecondaryDns class + + Advanced Dns configuration for DHCPv6 server. + + Returns: DhcpV6ServerSecondaryDns + """ + item = DhcpV6ServerSecondaryDns(parent=self._parent, ip=ip) + self._add(item) + return item + + +class Dhcpv6ServerOptionsVendorInfo(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "enterprise_number": { + "type": int, + "format": "uint32", + "maximum": 4294967295, + }, + "option_data": {"type": "Dhcpv6OptionsVendorSpecificOptionsIter"}, + "associated_dhcp_messages": {"type": "Dhcpv6ServerOptionsIncludedMessages"}, + } # type: Dict[str, str] + + _REQUIRED = ( + "enterprise_number", + "option_data", + "associated_dhcp_messages", + ) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, enterprise_number=None): + super(Dhcpv6ServerOptionsVendorInfo, self).__init__() + self._parent = parent + self._set_property("enterprise_number", enterprise_number) + + def set(self, enterprise_number=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 echo_relay_with_tlv_82(self): - # type: () -> bool - """echo_relay_with_tlv_82 getter + def enterprise_number(self): + # type: () -> int + """enterprise_number getter - If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from DHCP relay agent, otherwise it replies without including this TLV. + The vendor's registered Enterprise Number as registered with IANA. - Returns: bool + Returns: int """ - return self._get_property("echo_relay_with_tlv_82") + return self._get_property("enterprise_number") - @echo_relay_with_tlv_82.setter - def echo_relay_with_tlv_82(self, value): - """echo_relay_with_tlv_82 setter + @enterprise_number.setter + def enterprise_number(self, value): + """enterprise_number setter - If selected, the DHCP server includes in its replies the TLV information for the DHCPv4 Relay Agent Option 82 and the corresponding sub-TLVs that it receives from DHCP relay agent, otherwise it replies without including this TLV. + The vendor's registered Enterprise Number as registered with IANA. - value: bool + value: int """ - self._set_property("echo_relay_with_tlv_82", value) + if value is None: + raise TypeError("Cannot set required property enterprise_number as None") + self._set_property("enterprise_number", value) + @property + def option_data(self): + # type: () -> Dhcpv6OptionsVendorSpecificOptionsIter + """option_data getter -class DhcpServerV4PoolIter(OpenApiIter): + An opaque object of octets,interpreted by vendor-specific code on the clients and servers. + + Returns: Dhcpv6OptionsVendorSpecificOptionsIter + """ + return self._get_property( + "option_data", + Dhcpv6OptionsVendorSpecificOptionsIter, + self._parent, + self._choice, + ) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ServerOptionsIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The list of dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ServerOptionsIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", Dhcpv6ServerOptionsIncludedMessages + ) + + +class Dhcpv6ServerOptionsIncludedMessages(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "all", + "msg_types", + ], + }, + "msg_types": {"type": "Dhcpv6ServerOptionsMessageTypeIter"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "all", + } # type: Dict[str, Union(type)] + + ALL = "all" # type: str + MSG_TYPES = "msg_types" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ServerOptionsIncludedMessages, 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 choice(self): + # type: () -> Union[Literal["all"], Literal["msg_types"]] + """choice getter + + The server message name where the option is included, by default it is all. + + Returns: Union[Literal["all"], Literal["msg_types"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The server message name where the option is included, by default it is all. + + value: Union[Literal["all"], Literal["msg_types"]] + """ + self._set_property("choice", value) + + @property + def msg_types(self): + # type: () -> Dhcpv6ServerOptionsMessageTypeIter + """msg_types getter + + User must specify the Dhcpv6 message type. + + Returns: Dhcpv6ServerOptionsMessageTypeIter + """ + return self._get_property( + "msg_types", Dhcpv6ServerOptionsMessageTypeIter, self._parent, self._choice + ) + + +class Dhcpv6ServerOptionsMessageType(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "advertise", + "reply", + "re_configure", + ], + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "advertise", + } # type: Dict[str, Union(type)] + + ADVERTISE = "advertise" # type: str + REPLY = "reply" # type: str + RE_CONFIGURE = "re_configure" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ServerOptionsMessageType, 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 choice(self): + # type: () -> Union[Literal["advertise"], Literal["re_configure"], Literal["reply"]] + """choice getter + + The server message name where the option is included, by default it is all. + + Returns: Union[Literal["advertise"], Literal["re_configure"], Literal["reply"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The server message name where the option is included, by default it is all. + + value: Union[Literal["advertise"], Literal["re_configure"], Literal["reply"]] + """ + self._set_property("choice", value) + + +class Dhcpv6ServerOptionsMessageTypeIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = True + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ServerOptionsMessageTypeIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6ServerOptionsMessageType] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6ServerOptionsMessageTypeIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6ServerOptionsMessageType + return self._next() + + def next(self): + # type: () -> Dhcpv6ServerOptionsMessageType + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6ServerOptionsMessageType): + raise Exception("Item is not an instance of Dhcpv6ServerOptionsMessageType") + + def messagetype(self): + # type: () -> Dhcpv6ServerOptionsMessageTypeIter + """Factory method that creates an instance of the Dhcpv6ServerOptionsMessageType class + + The dhcpv6 server messages where the option will be included. + + Returns: Dhcpv6ServerOptionsMessageTypeIter + """ + item = Dhcpv6ServerOptionsMessageType(parent=self._parent, choice=self._choice) + self._add(item) + return self + + def add(self): + # type: () -> Dhcpv6ServerOptionsMessageType + """Add method that creates and returns an instance of the Dhcpv6ServerOptionsMessageType class + + The dhcpv6 server messages where the option will be included. + + Returns: Dhcpv6ServerOptionsMessageType + """ + item = Dhcpv6ServerOptionsMessageType(parent=self._parent, choice=self._choice) + self._add(item) + return item + + +class Dhcpv6ServerOptionsBootfileUrl(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "url": {"type": str}, + "bootfile_params": {"type": "Dhcpv6ServerOptionsBootFileParamsIter"}, + "associated_dhcp_messages": {"type": "Dhcpv6ServerOptionsIncludedMessages"}, + } # type: Dict[str, str] + + _REQUIRED = ("url",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, url=None): + super(Dhcpv6ServerOptionsBootfileUrl, self).__init__() + self._parent = parent + self._set_property("url", url) + + def set(self, url=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 url(self): + # type: () -> str + """url getter + + The URL for the boot file. It must comply with STD 66 format. + + Returns: str + """ + return self._get_property("url") + + @url.setter + def url(self, value): + """url setter + + The URL for the boot file. It must comply with STD 66 format. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property url as None") + self._set_property("url", value) + + @property + def bootfile_params(self): + # type: () -> Dhcpv6ServerOptionsBootFileParamsIter + """bootfile_params getter + + They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which second-stage boot-loader program can download its configuration file. + + Returns: Dhcpv6ServerOptionsBootFileParamsIter + """ + return self._get_property( + "bootfile_params", + Dhcpv6ServerOptionsBootFileParamsIter, + self._parent, + self._choice, + ) + + @property + def associated_dhcp_messages(self): + # type: () -> Dhcpv6ServerOptionsIncludedMessages + """associated_dhcp_messages getter + + The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The dhcpv6 server messages where the option will be included. If all is selected the selected option will be added in the all the Dhcpv6 server messages, else based on the selection in particular Dhcpv6 server messages the option will be included.The list of dhcpv6 client messages where this option is included. + + Returns: Dhcpv6ServerOptionsIncludedMessages + """ + return self._get_property( + "associated_dhcp_messages", Dhcpv6ServerOptionsIncludedMessages + ) + + +class Dhcpv6ServerOptionsBootFileParams(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "parameter": {"type": str}, + } # type: Dict[str, str] + + _REQUIRED = ("parameter",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, parameter=None): + super(Dhcpv6ServerOptionsBootFileParams, self).__init__() + self._parent = parent + self._set_property("parameter", parameter) + + def set(self, parameter=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 parameter(self): + # type: () -> str + """parameter getter + + UTF-8 strings are parameters needed for booting, e.g., kernel parameters. + + Returns: str + """ + return self._get_property("parameter") + + @parameter.setter + def parameter(self, value): + """parameter setter + + UTF-8 strings are parameters needed for booting, e.g., kernel parameters. + + value: str + """ + if value is None: + raise TypeError("Cannot set required property parameter as None") + self._set_property("parameter", value) + + +class Dhcpv6ServerOptionsBootFileParamsIter(OpenApiIter): __slots__ = ("_parent", "_choice") _GETITEM_RETURNS_CHOICE_OBJECT = False def __init__(self, parent=None, choice=None): - super(DhcpServerV4PoolIter, self).__init__() + super(Dhcpv6ServerOptionsBootFileParamsIter, self).__init__() self._parent = parent self._choice = choice def __getitem__(self, key): - # type: (str) -> Union[DhcpServerV4Pool] + # type: (str) -> Union[Dhcpv6ServerOptionsBootFileParams] return self._getitem(key) def __iter__(self): - # type: () -> DhcpServerV4PoolIter + # type: () -> Dhcpv6ServerOptionsBootFileParamsIter return self._iter() def __next__(self): - # type: () -> DhcpServerV4Pool + # type: () -> Dhcpv6ServerOptionsBootFileParams return self._next() def next(self): - # type: () -> DhcpServerV4Pool + # type: () -> Dhcpv6ServerOptionsBootFileParams return self._next() def _instanceOf(self, item): - if not isinstance(item, DhcpServerV4Pool): - raise Exception("Item is not an instance of DhcpServerV4Pool") + if not isinstance(item, Dhcpv6ServerOptionsBootFileParams): + raise Exception( + "Item is not an instance of Dhcpv6ServerOptionsBootFileParams" + ) - def pool( - self, - name=None, - lease_time=86400, - start_address=None, - prefix_length=24, - count=1, - step=1, - ): - # type: (str,int,str,int,int,int) -> DhcpServerV4PoolIter - """Factory method that creates an instance of the DhcpServerV4Pool class + def bootfileparams(self, parameter=None): + # type: (str) -> Dhcpv6ServerOptionsBootFileParamsIter + """Factory method that creates an instance of the Dhcpv6ServerOptionsBootFileParams class - Configuration for DHCPv4 address pool for lease. + The option code is 60. They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which second-stage boot-loader program can download its configuration file. - Returns: DhcpServerV4PoolIter + Returns: Dhcpv6ServerOptionsBootFileParamsIter """ - item = DhcpServerV4Pool( - parent=self._parent, - name=name, - lease_time=lease_time, - start_address=start_address, - prefix_length=prefix_length, - count=count, - step=step, + item = Dhcpv6ServerOptionsBootFileParams( + parent=self._parent, parameter=parameter ) self._add(item) return self - def add( - self, - name=None, - lease_time=86400, - start_address=None, - prefix_length=24, - count=1, - step=1, - ): - # type: (str,int,str,int,int,int) -> DhcpServerV4Pool - """Add method that creates and returns an instance of the DhcpServerV4Pool class + def add(self, parameter=None): + # type: (str) -> Dhcpv6ServerOptionsBootFileParams + """Add method that creates and returns an instance of the Dhcpv6ServerOptionsBootFileParams class - Configuration for DHCPv4 address pool for lease. + The option code is 60. They are used to specify parameters for the boot file (similar to the command line arguments in most modern operating systems). For example, these parameters could be used to specify the root file system of the OS kernel, or the location from which second-stage boot-loader program can download its configuration file. - Returns: DhcpServerV4Pool + Returns: Dhcpv6ServerOptionsBootFileParams """ - item = DhcpServerV4Pool( - parent=self._parent, - name=name, - lease_time=lease_time, - start_address=start_address, - prefix_length=prefix_length, - count=count, - step=step, + item = Dhcpv6ServerOptionsBootFileParams( + parent=self._parent, parameter=parameter ) self._add(item) return item -class DhcpServerV4Iter(OpenApiIter): +class DhcpServerV6Iter(OpenApiIter): __slots__ = ("_parent", "_choice") _GETITEM_RETURNS_CHOICE_OBJECT = False def __init__(self, parent=None, choice=None): - super(DhcpServerV4Iter, self).__init__() + super(DhcpServerV6Iter, self).__init__() self._parent = parent self._choice = choice def __getitem__(self, key): - # type: (str) -> Union[DhcpServerV4] + # type: (str) -> Union[DhcpServerV6] return self._getitem(key) def __iter__(self): - # type: () -> DhcpServerV4Iter + # type: () -> DhcpServerV6Iter return self._iter() def __next__(self): - # type: () -> DhcpServerV4 + # type: () -> DhcpServerV6 return self._next() def next(self): - # type: () -> DhcpServerV4 + # type: () -> DhcpServerV6 return self._next() def _instanceOf(self, item): - if not isinstance(item, DhcpServerV4): - raise Exception("Item is not an instance of DhcpServerV4") + if not isinstance(item, DhcpServerV6): + raise Exception("Item is not an instance of DhcpServerV6") - def v4(self, name=None, ipv4_name=None): - # type: (str,str) -> DhcpServerV4Iter - """Factory method that creates an instance of the DhcpServerV4 class + def v6( + self, + name=None, + ipv6_name=None, + rapid_commit=False, + reconfigure_via_relay_agent=False, + ): + # type: (str,str,bool,bool) -> DhcpServerV6Iter + """Factory method that creates an instance of the DhcpServerV6 class - Configuration for emulated DHCPv4 Server. + Configuration for emulated DHCPv6 Server. - Returns: DhcpServerV4Iter + Returns: DhcpServerV6Iter """ - item = DhcpServerV4(parent=self._parent, name=name, ipv4_name=ipv4_name) + item = DhcpServerV6( + parent=self._parent, + name=name, + ipv6_name=ipv6_name, + rapid_commit=rapid_commit, + reconfigure_via_relay_agent=reconfigure_via_relay_agent, + ) self._add(item) return self - def add(self, name=None, ipv4_name=None): - # type: (str,str) -> DhcpServerV4 - """Add method that creates and returns an instance of the DhcpServerV4 class + def add( + self, + name=None, + ipv6_name=None, + rapid_commit=False, + reconfigure_via_relay_agent=False, + ): + # type: (str,str,bool,bool) -> DhcpServerV6 + """Add method that creates and returns an instance of the DhcpServerV6 class - Configuration for emulated DHCPv4 Server. + Configuration for emulated DHCPv6 Server. - Returns: DhcpServerV4 + Returns: DhcpServerV6 """ - item = DhcpServerV4(parent=self._parent, name=name, ipv4_name=ipv4_name) + item = DhcpServerV6( + parent=self._parent, + name=name, + ipv6_name=ipv6_name, + rapid_commit=rapid_commit, + reconfigure_via_relay_agent=reconfigure_via_relay_agent, + ) self._add(item) return item @@ -33880,7 +37695,7 @@ def tx_names(self): # type: () -> List[str] """tx_names getter - TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. + TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. Returns: List[str] """ @@ -33890,7 +37705,7 @@ def tx_names(self): def tx_names(self, value): """tx_names setter - TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. + TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. value: List[str] """ @@ -33903,7 +37718,7 @@ def rx_names(self): # type: () -> List[str] """rx_names getter - TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. + TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. Returns: List[str] """ @@ -33913,7 +37728,7 @@ def rx_names(self): def rx_names(self, value): """rx_names setter - TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. + TBD. x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Ethernet/properties/name. /components/schemas/Device.Ipv4/properties/name. /components/schemas/Device.Ipv6/properties/name. /components/schemas/Bgp.V4RouteRange/properties/name. /components/schemas/Bgp.V6RouteRange/properties/name. /components/schemas/Bgp.CMacIpRange/properties/name. /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name. /components/schemas/Isis.V4RouteRange/properties/name. /components/schemas/Isis.V6RouteRange/properties/name. /components/schemas/Device.Dhcpv4client/properties/name. /components/schemas/Device.Dhcpv6client/properties/name. value: List[str] """ @@ -54587,6 +58402,7 @@ class PatternFlowIpv6Src(OpenApiObject): "values", "increment", "decrement", + "auto", ], }, "value": { @@ -54601,6 +58417,7 @@ class PatternFlowIpv6Src(OpenApiObject): "increment": {"type": "PatternFlowIpv6SrcCounter"}, "decrement": {"type": "PatternFlowIpv6SrcCounter"}, "metric_tags": {"type": "PatternFlowIpv6SrcMetricTagIter"}, + "auto": {"type": "FlowIpv6Auto"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -54615,6 +58432,7 @@ class PatternFlowIpv6Src(OpenApiObject): VALUES = "values" # type: str INCREMENT = "increment" # type: str DECREMENT = "decrement" # type: str + AUTO = "auto" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -54663,14 +58481,25 @@ def decrement(self): "decrement", PatternFlowIpv6SrcCounter, self, "decrement" ) + @property + def auto(self): + # type: () -> FlowIpv6Auto + """Factory property that returns an instance of the FlowIpv6Auto class + + The OTG implementation can provide system generated, value for this property. + + Returns: FlowIpv6Auto + """ + return self._get_property("auto", FlowIpv6Auto, self, "auto") + @property def choice(self): - # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + # type: () -> Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """choice getter TBD - Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + Returns: Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ return self._get_property("choice") @@ -54680,7 +58509,7 @@ def choice(self, value): TBD - value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + value: Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ self._set_property("choice", value) @@ -55008,6 +58837,62 @@ def add(self, name=None, offset=0, length=128): return item +class FlowIpv6Auto(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "dhcp", + ], + }, + } # type: Dict[str, str] + + _REQUIRED = ("choice",) # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + DHCP = "dhcp" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None): + super(FlowIpv6Auto, 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 choice(self): + # type: () -> Union[Literal["dhcp"]] + """choice getter + + The method to be used to provide the system generated value.. The dhcp option populates the field based on the dynamic IPv6 address that has been assigned to the DHCPv6 client by DHCPv6 server. + + Returns: Union[Literal["dhcp"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + The method to be used to provide the system generated value.. The dhcp option populates the field based on the dynamic IPv6 address that has been assigned to the DHCPv6 client by DHCPv6 server. + + value: Union[Literal["dhcp"]] + """ + if value is None: + raise TypeError("Cannot set required property choice as None") + self._set_property("choice", value) + + class PatternFlowIpv6Dst(OpenApiObject): __slots__ = ("_parent", "_choice") @@ -55019,6 +58904,7 @@ class PatternFlowIpv6Dst(OpenApiObject): "values", "increment", "decrement", + "auto", ], }, "value": { @@ -55033,6 +58919,7 @@ class PatternFlowIpv6Dst(OpenApiObject): "increment": {"type": "PatternFlowIpv6DstCounter"}, "decrement": {"type": "PatternFlowIpv6DstCounter"}, "metric_tags": {"type": "PatternFlowIpv6DstMetricTagIter"}, + "auto": {"type": "FlowIpv6Auto"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -55047,6 +58934,7 @@ class PatternFlowIpv6Dst(OpenApiObject): VALUES = "values" # type: str INCREMENT = "increment" # type: str DECREMENT = "decrement" # type: str + AUTO = "auto" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -55095,14 +58983,25 @@ def decrement(self): "decrement", PatternFlowIpv6DstCounter, self, "decrement" ) + @property + def auto(self): + # type: () -> FlowIpv6Auto + """Factory property that returns an instance of the FlowIpv6Auto class + + The OTG implementation can provide system generated, value for this property. + + Returns: FlowIpv6Auto + """ + return self._get_property("auto", FlowIpv6Auto, self, "auto") + @property def choice(self): - # type: () -> Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + # type: () -> Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """choice getter TBD - Returns: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + Returns: Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ return self._get_property("choice") @@ -55112,7 +59011,7 @@ def choice(self, value): TBD - value: Union[Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] + value: Union[Literal["auto"], Literal["decrement"], Literal["increment"], Literal["value"], Literal["values"]] """ self._set_property("choice", value) @@ -124353,6 +128252,8 @@ class MetricsRequest(OpenApiObject): "rsvp", "dhcpv4_client", "dhcpv4_server", + "dhcpv6_client", + "dhcpv6_server", ], }, "port": {"type": "PortMetricsRequest"}, @@ -124366,6 +128267,8 @@ class MetricsRequest(OpenApiObject): "rsvp": {"type": "RsvpMetricsRequest"}, "dhcpv4_client": {"type": "Dhcpv4ClientMetricsRequest"}, "dhcpv4_server": {"type": "Dhcpv4ServerMetricsRequest"}, + "dhcpv6_client": {"type": "Dhcpv6ClientMetricsRequest"}, + "dhcpv6_server": {"type": "Dhcpv6ServerMetricsRequest"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -124385,6 +128288,8 @@ class MetricsRequest(OpenApiObject): RSVP = "rsvp" # type: str DHCPV4_CLIENT = "dhcpv4_client" # type: str DHCPV4_SERVER = "dhcpv4_server" # type: str + DHCPV6_CLIENT = "dhcpv6_client" # type: str + DHCPV6_SERVER = "dhcpv6_server" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -124525,14 +128430,40 @@ def dhcpv4_server(self): "dhcpv4_server", Dhcpv4ServerMetricsRequest, self, "dhcpv4_server" ) + @property + def dhcpv6_client(self): + # type: () -> Dhcpv6ClientMetricsRequest + """Factory property that returns an instance of the Dhcpv6ClientMetricsRequest class + + The request to retrieve DHCPv6 per client metrics/statistics. + + Returns: Dhcpv6ClientMetricsRequest + """ + return self._get_property( + "dhcpv6_client", Dhcpv6ClientMetricsRequest, self, "dhcpv6_client" + ) + + @property + def dhcpv6_server(self): + # type: () -> Dhcpv6ServerMetricsRequest + """Factory property that returns an instance of the Dhcpv6ServerMetricsRequest class + + The request to retrieve DHCPv6 per Server metrics/statistics. + + Returns: Dhcpv6ServerMetricsRequest + """ + return self._get_property( + "dhcpv6_server", Dhcpv6ServerMetricsRequest, self, "dhcpv6_server" + ) + @property def choice(self): - # type: () -> Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] + # type: () -> Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] """choice getter TBD - Returns: Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] + Returns: Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] """ return self._get_property("choice") @@ -124542,7 +128473,7 @@ def choice(self, value): TBD - value: Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] + value: Union[Literal["bgpv4"], Literal["bgpv6"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow"], Literal["isis"], Literal["lacp"], Literal["lag"], Literal["lldp"], Literal["port"], Literal["rsvp"]] """ self._set_property("choice", value) @@ -125992,6 +129923,216 @@ def column_names(self, value): self._set_property("column_names", value) +class Dhcpv6ClientMetricsRequest(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "client_names": { + "type": list, + "itemtype": str, + }, + "column_names": { + "type": list, + "enum": [ + "advertisements_ignored", + "advertisements_received", + "information_requests_sent", + "nacks_received", + "rapid_commit_replies_received", + "rapid_commit_solicits_sent", + "rebinds_sent", + "reconfigures_received", + "releases_sent", + "renews_sent", + "replies_received", + "requests_sent", + "solicits_sent", + ], + "itemtype": str, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + ADVERTISEMENTS_IGNORED = "advertisements_ignored" # type: str + ADVERTISEMENTS_RECEIVED = "advertisements_received" # type: str + INFORMATION_REQUESTS_SENT = "information_requests_sent" # type: str + NACKS_RECEIVED = "nacks_received" # type: str + RAPID_COMMIT_REPLIES_RECEIVED = "rapid_commit_replies_received" # type: str + RAPID_COMMIT_SOLICITS_SENT = "rapid_commit_solicits_sent" # type: str + REBINDS_SENT = "rebinds_sent" # type: str + RECONFIGURES_RECEIVED = "reconfigures_received" # type: str + RELEASES_SENT = "releases_sent" # type: str + RENEWS_SENT = "renews_sent" # type: str + REPLIES_RECEIVED = "replies_received" # type: str + REQUESTS_SENT = "requests_sent" # type: str + SOLICITS_SENT = "solicits_sent" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, client_names=None, column_names=None): + super(Dhcpv6ClientMetricsRequest, self).__init__() + self._parent = parent + self._set_property("client_names", client_names) + self._set_property("column_names", column_names) + + def set(self, client_names=None, column_names=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 client_names(self): + # type: () -> List[str] + """client_names getter + + The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client.. x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. + + Returns: List[str] + """ + return self._get_property("client_names") + + @client_names.setter + def client_names(self, value): + """client_names setter + + The names of DHCPv6 clients to return results for. An empty list will return results for all DHCPv6 client.. x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. + + value: List[str] + """ + self._set_property("client_names", value) + + @property + def column_names(self): + # type: () -> List[Union[Literal["advertisements_ignored"], Literal["advertisements_received"], Literal["information_requests_sent"], Literal["nacks_received"], Literal["rapid_commit_replies_received"], Literal["rapid_commit_solicits_sent"], Literal["rebinds_sent"], Literal["reconfigures_received"], Literal["releases_sent"], Literal["renews_sent"], Literal["replies_received"], Literal["requests_sent"], Literal["solicits_sent"]]] + """column_names getter + + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 client cannot be excluded. + + Returns: List[Union[Literal["advertisements_ignored"], Literal["advertisements_received"], Literal["information_requests_sent"], Literal["nacks_received"], Literal["rapid_commit_replies_received"], Literal["rapid_commit_solicits_sent"], Literal["rebinds_sent"], Literal["reconfigures_received"], Literal["releases_sent"], Literal["renews_sent"], Literal["replies_received"], Literal["requests_sent"], Literal["solicits_sent"]]] + """ + return self._get_property("column_names") + + @column_names.setter + def column_names(self, value): + """column_names setter + + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 client cannot be excluded. + + value: List[Union[Literal["advertisements_ignored"], Literal["advertisements_received"], Literal["information_requests_sent"], Literal["nacks_received"], Literal["rapid_commit_replies_received"], Literal["rapid_commit_solicits_sent"], Literal["rebinds_sent"], Literal["reconfigures_received"], Literal["releases_sent"], Literal["renews_sent"], Literal["replies_received"], Literal["requests_sent"], Literal["solicits_sent"]]] + """ + self._set_property("column_names", value) + + +class Dhcpv6ServerMetricsRequest(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "server_names": { + "type": list, + "itemtype": str, + }, + "column_names": { + "type": list, + "enum": [ + "advertisements_sent", + "confirms_received", + "declines_received", + "information_requests_received", + "nacks_sent", + "rebinds_received", + "reconfigures_sent", + "relay_forwards_received", + "relay_replies_sent", + "releases_received", + "renewals_received", + "replies_sent", + "requests_received", + "solicits_ignored", + "solicits_received", + ], + "itemtype": str, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + ADVERTISEMENTS_SENT = "advertisements_sent" # type: str + CONFIRMS_RECEIVED = "confirms_received" # type: str + DECLINES_RECEIVED = "declines_received" # type: str + INFORMATION_REQUESTS_RECEIVED = "information_requests_received" # type: str + NACKS_SENT = "nacks_sent" # type: str + REBINDS_RECEIVED = "rebinds_received" # type: str + RECONFIGURES_SENT = "reconfigures_sent" # type: str + RELAY_FORWARDS_RECEIVED = "relay_forwards_received" # type: str + RELAY_REPLIES_SENT = "relay_replies_sent" # type: str + RELEASES_RECEIVED = "releases_received" # type: str + RENEWALS_RECEIVED = "renewals_received" # type: str + REPLIES_SENT = "replies_sent" # type: str + REQUESTS_RECEIVED = "requests_received" # type: str + SOLICITS_IGNORED = "solicits_ignored" # type: str + SOLICITS_RECEIVED = "solicits_received" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, server_names=None, column_names=None): + super(Dhcpv6ServerMetricsRequest, self).__init__() + self._parent = parent + self._set_property("server_names", server_names) + self._set_property("column_names", column_names) + + def set(self, server_names=None, column_names=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 server_names(self): + # type: () -> List[str] + """server_names getter + + The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server.. x-constraint:. /components/schemas/Device.Dhcpv6Server/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6Server/properties/name. + + Returns: List[str] + """ + return self._get_property("server_names") + + @server_names.setter + def server_names(self, value): + """server_names setter + + The names of DHCPv6 Servers to return results for. An empty list will return results for all DHCPv6 Server.. x-constraint:. /components/schemas/Device.Dhcpv6Server/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6Server/properties/name. + + value: List[str] + """ + self._set_property("server_names", value) + + @property + def column_names(self): + # type: () -> List[Union[Literal["advertisements_sent"], Literal["confirms_received"], Literal["declines_received"], Literal["information_requests_received"], Literal["nacks_sent"], Literal["rebinds_received"], Literal["reconfigures_sent"], Literal["relay_forwards_received"], Literal["relay_replies_sent"], Literal["releases_received"], Literal["renewals_received"], Literal["replies_sent"], Literal["requests_received"], Literal["solicits_ignored"], Literal["solicits_received"]]] + """column_names getter + + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 server cannot be excluded. + + Returns: List[Union[Literal["advertisements_sent"], Literal["confirms_received"], Literal["declines_received"], Literal["information_requests_received"], Literal["nacks_sent"], Literal["rebinds_received"], Literal["reconfigures_sent"], Literal["relay_forwards_received"], Literal["relay_replies_sent"], Literal["releases_received"], Literal["renewals_received"], Literal["replies_sent"], Literal["requests_received"], Literal["solicits_ignored"], Literal["solicits_received"]]] + """ + return self._get_property("column_names") + + @column_names.setter + def column_names(self, value): + """column_names setter + + The list of column names that the returned result set will contain. If the list is empty then all columns will be returned except for any result_groups. The name of the DHCPv6 server cannot be excluded. + + value: List[Union[Literal["advertisements_sent"], Literal["confirms_received"], Literal["declines_received"], Literal["information_requests_received"], Literal["nacks_sent"], Literal["rebinds_received"], Literal["reconfigures_sent"], Literal["relay_forwards_received"], Literal["relay_replies_sent"], Literal["releases_received"], Literal["renewals_received"], Literal["replies_sent"], Literal["requests_received"], Literal["solicits_ignored"], Literal["solicits_received"]]] + """ + self._set_property("column_names", value) + + class MetricsResponse(OpenApiObject): __slots__ = ("_parent", "_choice") @@ -126010,6 +130151,8 @@ class MetricsResponse(OpenApiObject): "rsvp_metrics", "dhcpv4_client", "dhcpv4_server", + "dhcpv6_client", + "dhcpv6_server", ], }, "port_metrics": {"type": "PortMetricIter"}, @@ -126023,6 +130166,8 @@ class MetricsResponse(OpenApiObject): "rsvp_metrics": {"type": "RsvpMetricIter"}, "dhcpv4client_metrics": {"type": "Dhcpv4ClientMetricIter"}, "dhcpv4server_metrics": {"type": "Dhcpv4ServerMetricIter"}, + "dhcpv6client_metrics": {"type": "Dhcpv6ClientMetricIter"}, + "dhcpv6server_metrics": {"type": "Dhcpv6ServerMetricIter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -126042,6 +130187,8 @@ class MetricsResponse(OpenApiObject): RSVP_METRICS = "rsvp_metrics" # type: str DHCPV4_CLIENT = "dhcpv4_client" # type: str DHCPV4_SERVER = "dhcpv4_server" # type: str + DHCPV6_CLIENT = "dhcpv6_client" # type: str + DHCPV6_SERVER = "dhcpv6_server" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -126059,12 +130206,12 @@ def __init__(self, parent=None, choice=None): @property def choice(self): - # type: () -> Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] + # type: () -> Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] """choice getter TBD - Returns: Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] + Returns: Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] """ return self._get_property("choice") @@ -126074,7 +130221,7 @@ def choice(self, value): TBD - value: Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] + value: Union[Literal["bgpv4_metrics"], Literal["bgpv6_metrics"], Literal["dhcpv4_client"], Literal["dhcpv4_server"], Literal["dhcpv6_client"], Literal["dhcpv6_server"], Literal["flow_metrics"], Literal["isis_metrics"], Literal["lacp_metrics"], Literal["lag_metrics"], Literal["lldp_metrics"], Literal["port_metrics"], Literal["rsvp_metrics"]] """ self._set_property("choice", value) @@ -126221,6 +130368,32 @@ def dhcpv4server_metrics(self): "dhcpv4server_metrics", Dhcpv4ServerMetricIter, self._parent, self._choice ) + @property + def dhcpv6client_metrics(self): + # type: () -> Dhcpv6ClientMetricIter + """dhcpv6client_metrics getter + + TBD + + Returns: Dhcpv6ClientMetricIter + """ + return self._get_property( + "dhcpv6client_metrics", Dhcpv6ClientMetricIter, self._parent, self._choice + ) + + @property + def dhcpv6server_metrics(self): + # type: () -> Dhcpv6ServerMetricIter + """dhcpv6server_metrics getter + + TBD + + Returns: Dhcpv6ServerMetricIter + """ + return self._get_property( + "dhcpv6server_metrics", Dhcpv6ServerMetricIter, self._parent, self._choice + ) + class PortMetric(OpenApiObject): __slots__ = "_parent" @@ -132869,7 +137042,821 @@ def releases_sent(self): # type: () -> int """releases_sent getter - Number of DHCPRELEASE messages sent. + Number of DHCPRELEASE messages sent. + + Returns: int + """ + return self._get_property("releases_sent") + + @releases_sent.setter + def releases_sent(self, value): + """releases_sent setter + + Number of DHCPRELEASE messages sent. + + value: int + """ + self._set_property("releases_sent", value) + + @property + def declines_sent(self): + # type: () -> int + """declines_sent getter + + Number of DHCPDECLINE messages sent. + + Returns: int + """ + return self._get_property("declines_sent") + + @declines_sent.setter + def declines_sent(self, value): + """declines_sent setter + + Number of DHCPDECLINE messages sent. + + value: int + """ + self._set_property("declines_sent", value) + + +class Dhcpv4ClientMetricIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv4ClientMetricIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv4ClientMetric] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv4ClientMetricIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv4ClientMetric + return self._next() + + def next(self): + # type: () -> Dhcpv4ClientMetric + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv4ClientMetric): + raise Exception("Item is not an instance of Dhcpv4ClientMetric") + + def metric( + self, + name=None, + discovers_sent=None, + offers_received=None, + requests_sent=None, + acks_received=None, + nacks_received=None, + releases_sent=None, + declines_sent=None, + ): + # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ClientMetricIter + """Factory method that creates an instance of the Dhcpv4ClientMetric class + + DHCPv4 per peer statistics information. + + Returns: Dhcpv4ClientMetricIter + """ + item = Dhcpv4ClientMetric( + parent=self._parent, + name=name, + discovers_sent=discovers_sent, + offers_received=offers_received, + requests_sent=requests_sent, + acks_received=acks_received, + nacks_received=nacks_received, + releases_sent=releases_sent, + declines_sent=declines_sent, + ) + self._add(item) + return self + + def add( + self, + name=None, + discovers_sent=None, + offers_received=None, + requests_sent=None, + acks_received=None, + nacks_received=None, + releases_sent=None, + declines_sent=None, + ): + # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ClientMetric + """Add method that creates and returns an instance of the Dhcpv4ClientMetric class + + DHCPv4 per peer statistics information. + + Returns: Dhcpv4ClientMetric + """ + item = Dhcpv4ClientMetric( + parent=self._parent, + name=name, + discovers_sent=discovers_sent, + offers_received=offers_received, + requests_sent=requests_sent, + acks_received=acks_received, + nacks_received=nacks_received, + releases_sent=releases_sent, + declines_sent=declines_sent, + ) + self._add(item) + return item + + +class Dhcpv4ServerMetric(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "discovers_received": { + "type": int, + "format": "uint64", + }, + "offers_sent": { + "type": int, + "format": "uint64", + }, + "requests_received": { + "type": int, + "format": "uint64", + }, + "acks_sent": { + "type": int, + "format": "uint64", + }, + "nacks_sent": { + "type": int, + "format": "uint64", + }, + "releases_received": { + "type": int, + "format": "uint64", + }, + "declines_received": { + "type": int, + "format": "uint64", + }, + } # 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, + name=None, + discovers_received=None, + offers_sent=None, + requests_received=None, + acks_sent=None, + nacks_sent=None, + releases_received=None, + declines_received=None, + ): + super(Dhcpv4ServerMetric, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("discovers_received", discovers_received) + self._set_property("offers_sent", offers_sent) + self._set_property("requests_received", requests_received) + self._set_property("acks_sent", acks_sent) + self._set_property("nacks_sent", nacks_sent) + self._set_property("releases_received", releases_received) + self._set_property("declines_received", declines_received) + + def set( + self, + name=None, + discovers_received=None, + offers_sent=None, + requests_received=None, + acks_sent=None, + nacks_sent=None, + releases_received=None, + declines_received=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 name(self): + # type: () -> str + """name getter + + The name of configured DHCPv4 Server. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + The name of configured DHCPv4 Server. + + value: str + """ + self._set_property("name", value) + + @property + def discovers_received(self): + # type: () -> int + """discovers_received getter + + Number of DHCPDISCOVER messages received. + + Returns: int + """ + return self._get_property("discovers_received") + + @discovers_received.setter + def discovers_received(self, value): + """discovers_received setter + + Number of DHCPDISCOVER messages received. + + value: int + """ + self._set_property("discovers_received", value) + + @property + def offers_sent(self): + # type: () -> int + """offers_sent getter + + Number of DHCPOFFER messages sent. + + Returns: int + """ + return self._get_property("offers_sent") + + @offers_sent.setter + def offers_sent(self, value): + """offers_sent setter + + Number of DHCPOFFER messages sent. + + value: int + """ + self._set_property("offers_sent", value) + + @property + def requests_received(self): + # type: () -> int + """requests_received getter + + Number of DHCPOFFER messages received. + + Returns: int + """ + return self._get_property("requests_received") + + @requests_received.setter + def requests_received(self, value): + """requests_received setter + + Number of DHCPOFFER messages received. + + value: int + """ + self._set_property("requests_received", value) + + @property + def acks_sent(self): + # type: () -> int + """acks_sent getter + + Number of lease DHCPACK messages sent. + + Returns: int + """ + return self._get_property("acks_sent") + + @acks_sent.setter + def acks_sent(self, value): + """acks_sent setter + + Number of lease DHCPACK messages sent. + + value: int + """ + self._set_property("acks_sent", value) + + @property + def nacks_sent(self): + # type: () -> int + """nacks_sent getter + + Number of negative lease DHCPNACK messages sent. + + Returns: int + """ + return self._get_property("nacks_sent") + + @nacks_sent.setter + def nacks_sent(self, value): + """nacks_sent setter + + Number of negative lease DHCPNACK messages sent. + + value: int + """ + self._set_property("nacks_sent", value) + + @property + def releases_received(self): + # type: () -> int + """releases_received getter + + Number of DHCPRELEASE messages received. + + Returns: int + """ + return self._get_property("releases_received") + + @releases_received.setter + def releases_received(self, value): + """releases_received setter + + Number of DHCPRELEASE messages received. + + value: int + """ + self._set_property("releases_received", value) + + @property + def declines_received(self): + # type: () -> int + """declines_received getter + + Number of DHCPDECLINE messages received. + + Returns: int + """ + return self._get_property("declines_received") + + @declines_received.setter + def declines_received(self, value): + """declines_received setter + + Number of DHCPDECLINE messages received. + + value: int + """ + self._set_property("declines_received", value) + + +class Dhcpv4ServerMetricIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv4ServerMetricIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv4ServerMetric] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv4ServerMetricIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv4ServerMetric + return self._next() + + def next(self): + # type: () -> Dhcpv4ServerMetric + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv4ServerMetric): + raise Exception("Item is not an instance of Dhcpv4ServerMetric") + + def metric( + self, + name=None, + discovers_received=None, + offers_sent=None, + requests_received=None, + acks_sent=None, + nacks_sent=None, + releases_received=None, + declines_received=None, + ): + # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ServerMetricIter + """Factory method that creates an instance of the Dhcpv4ServerMetric class + + DHCPv4 per peer statistics information. + + Returns: Dhcpv4ServerMetricIter + """ + item = Dhcpv4ServerMetric( + parent=self._parent, + name=name, + discovers_received=discovers_received, + offers_sent=offers_sent, + requests_received=requests_received, + acks_sent=acks_sent, + nacks_sent=nacks_sent, + releases_received=releases_received, + declines_received=declines_received, + ) + self._add(item) + return self + + def add( + self, + name=None, + discovers_received=None, + offers_sent=None, + requests_received=None, + acks_sent=None, + nacks_sent=None, + releases_received=None, + declines_received=None, + ): + # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ServerMetric + """Add method that creates and returns an instance of the Dhcpv4ServerMetric class + + DHCPv4 per peer statistics information. + + Returns: Dhcpv4ServerMetric + """ + item = Dhcpv4ServerMetric( + parent=self._parent, + name=name, + discovers_received=discovers_received, + offers_sent=offers_sent, + requests_received=requests_received, + acks_sent=acks_sent, + nacks_sent=nacks_sent, + releases_received=releases_received, + declines_received=declines_received, + ) + self._add(item) + return item + + +class Dhcpv6ClientMetric(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "solicits_sent": { + "type": int, + "format": "uint64", + }, + "advertisements_received": { + "type": int, + "format": "uint64", + }, + "advertisements_ignored": { + "type": int, + "format": "uint64", + }, + "requests_sent": { + "type": int, + "format": "uint64", + }, + "nacks_received": { + "type": int, + "format": "uint64", + }, + "replies_received": { + "type": int, + "format": "uint64", + }, + "information_requests_sent": { + "type": int, + "format": "uint64", + }, + "renews_sent": { + "type": int, + "format": "uint64", + }, + "rebinds_sent": { + "type": int, + "format": "uint64", + }, + "releases_sent": { + "type": int, + "format": "uint64", + }, + "reconfigures_received": { + "type": int, + "format": "uint64", + }, + "rapid_commit_solicits_sent": { + "type": int, + "format": "uint64", + }, + "rapid_commit_replies_received": { + "type": int, + "format": "uint64", + }, + } # 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, + name=None, + solicits_sent=None, + advertisements_received=None, + advertisements_ignored=None, + requests_sent=None, + nacks_received=None, + replies_received=None, + information_requests_sent=None, + renews_sent=None, + rebinds_sent=None, + releases_sent=None, + reconfigures_received=None, + rapid_commit_solicits_sent=None, + rapid_commit_replies_received=None, + ): + super(Dhcpv6ClientMetric, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("solicits_sent", solicits_sent) + self._set_property("advertisements_received", advertisements_received) + self._set_property("advertisements_ignored", advertisements_ignored) + self._set_property("requests_sent", requests_sent) + self._set_property("nacks_received", nacks_received) + self._set_property("replies_received", replies_received) + self._set_property("information_requests_sent", information_requests_sent) + self._set_property("renews_sent", renews_sent) + self._set_property("rebinds_sent", rebinds_sent) + self._set_property("releases_sent", releases_sent) + self._set_property("reconfigures_received", reconfigures_received) + self._set_property("rapid_commit_solicits_sent", rapid_commit_solicits_sent) + self._set_property( + "rapid_commit_replies_received", rapid_commit_replies_received + ) + + def set( + self, + name=None, + solicits_sent=None, + advertisements_received=None, + advertisements_ignored=None, + requests_sent=None, + nacks_received=None, + replies_received=None, + information_requests_sent=None, + renews_sent=None, + rebinds_sent=None, + releases_sent=None, + reconfigures_received=None, + rapid_commit_solicits_sent=None, + rapid_commit_replies_received=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 name(self): + # type: () -> str + """name getter + + The name of configured DHCPv6 client. + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + The name of configured DHCPv6 client. + + value: str + """ + self._set_property("name", value) + + @property + def solicits_sent(self): + # type: () -> int + """solicits_sent getter + + Number of DHCPSOLICIT messages sent. + + Returns: int + """ + return self._get_property("solicits_sent") + + @solicits_sent.setter + def solicits_sent(self, value): + """solicits_sent setter + + Number of DHCPSOLICIT messages sent. + + value: int + """ + self._set_property("solicits_sent", value) + + @property + def advertisements_received(self): + # type: () -> int + """advertisements_received getter + + Number of DHCPADVERTISE messages received. + + Returns: int + """ + return self._get_property("advertisements_received") + + @advertisements_received.setter + def advertisements_received(self, value): + """advertisements_received setter + + Number of DHCPADVERTISE messages received. + + value: int + """ + self._set_property("advertisements_received", value) + + @property + def advertisements_ignored(self): + # type: () -> int + """advertisements_ignored getter + + Number of DHCPADVERTISE messages ignored. + + Returns: int + """ + return self._get_property("advertisements_ignored") + + @advertisements_ignored.setter + def advertisements_ignored(self, value): + """advertisements_ignored setter + + Number of DHCPADVERTISE messages ignored. + + value: int + """ + self._set_property("advertisements_ignored", value) + + @property + def requests_sent(self): + # type: () -> int + """requests_sent getter + + Number of DHCPREQUEST messages sent. + + Returns: int + """ + return self._get_property("requests_sent") + + @requests_sent.setter + def requests_sent(self, value): + """requests_sent setter + + Number of DHCPREQUEST messages sent. + + value: int + """ + self._set_property("requests_sent", value) + + @property + def nacks_received(self): + # type: () -> int + """nacks_received getter + + Number of negative lease DHCPNACK messages received. + + Returns: int + """ + return self._get_property("nacks_received") + + @nacks_received.setter + def nacks_received(self, value): + """nacks_received setter + + Number of negative lease DHCPNACK messages received. + + value: int + """ + self._set_property("nacks_received", value) + + @property + def replies_received(self): + # type: () -> int + """replies_received getter + + Number of DHCPOFFER messages received. + + Returns: int + """ + return self._get_property("replies_received") + + @replies_received.setter + def replies_received(self, value): + """replies_received setter + + Number of DHCPOFFER messages received. + + value: int + """ + self._set_property("replies_received", value) + + @property + def information_requests_sent(self): + # type: () -> int + """information_requests_sent getter + + Number of DHCP Inform requests sent. + + Returns: int + """ + return self._get_property("information_requests_sent") + + @information_requests_sent.setter + def information_requests_sent(self, value): + """information_requests_sent setter + + Number of DHCP Inform requests sent. + + value: int + """ + self._set_property("information_requests_sent", value) + + @property + def renews_sent(self): + # type: () -> int + """renews_sent getter + + Number of DHCP renew messages sent. + + Returns: int + """ + return self._get_property("renews_sent") + + @renews_sent.setter + def renews_sent(self, value): + """renews_sent setter + + Number of DHCP renew messages sent. + + value: int + """ + self._set_property("renews_sent", value) + + @property + def rebinds_sent(self): + # type: () -> int + """rebinds_sent getter + + Number of DHCP rebind messages sent. + + Returns: int + """ + return self._get_property("rebinds_sent") + + @rebinds_sent.setter + def rebinds_sent(self, value): + """rebinds_sent setter + + Number of DHCP rebind messages sent. + + value: int + """ + self._set_property("rebinds_sent", value) + + @property + def releases_sent(self): + # type: () -> int + """releases_sent getter + + Number of DHCP Release messages sent. Returns: int """ @@ -132879,92 +137866,146 @@ def releases_sent(self): def releases_sent(self, value): """releases_sent setter - Number of DHCPRELEASE messages sent. + Number of DHCP Release messages sent. value: int """ self._set_property("releases_sent", value) @property - def declines_sent(self): + def reconfigures_received(self): # type: () -> int - """declines_sent getter + """reconfigures_received getter - Number of DHCPDECLINE messages sent. + Number of DHCP Reconfigure messages received. Returns: int """ - return self._get_property("declines_sent") + return self._get_property("reconfigures_received") - @declines_sent.setter - def declines_sent(self, value): - """declines_sent setter + @reconfigures_received.setter + def reconfigures_received(self, value): + """reconfigures_received setter - Number of DHCPDECLINE messages sent. + Number of DHCP Reconfigure messages received. value: int """ - self._set_property("declines_sent", value) + self._set_property("reconfigures_received", value) + + @property + def rapid_commit_solicits_sent(self): + # type: () -> int + """rapid_commit_solicits_sent getter + Number of rapid commit DHCPSOLICIT messages sent. -class Dhcpv4ClientMetricIter(OpenApiIter): + Returns: int + """ + return self._get_property("rapid_commit_solicits_sent") + + @rapid_commit_solicits_sent.setter + def rapid_commit_solicits_sent(self, value): + """rapid_commit_solicits_sent setter + + Number of rapid commit DHCPSOLICIT messages sent. + + value: int + """ + self._set_property("rapid_commit_solicits_sent", value) + + @property + def rapid_commit_replies_received(self): + # type: () -> int + """rapid_commit_replies_received getter + + Number of rapid commit DHCP Reply messages received. + + Returns: int + """ + return self._get_property("rapid_commit_replies_received") + + @rapid_commit_replies_received.setter + def rapid_commit_replies_received(self, value): + """rapid_commit_replies_received setter + + Number of rapid commit DHCP Reply messages received. + + value: int + """ + self._set_property("rapid_commit_replies_received", value) + + +class Dhcpv6ClientMetricIter(OpenApiIter): __slots__ = ("_parent", "_choice") _GETITEM_RETURNS_CHOICE_OBJECT = False def __init__(self, parent=None, choice=None): - super(Dhcpv4ClientMetricIter, self).__init__() + super(Dhcpv6ClientMetricIter, self).__init__() self._parent = parent self._choice = choice def __getitem__(self, key): - # type: (str) -> Union[Dhcpv4ClientMetric] + # type: (str) -> Union[Dhcpv6ClientMetric] return self._getitem(key) def __iter__(self): - # type: () -> Dhcpv4ClientMetricIter + # type: () -> Dhcpv6ClientMetricIter return self._iter() def __next__(self): - # type: () -> Dhcpv4ClientMetric + # type: () -> Dhcpv6ClientMetric return self._next() def next(self): - # type: () -> Dhcpv4ClientMetric + # type: () -> Dhcpv6ClientMetric return self._next() def _instanceOf(self, item): - if not isinstance(item, Dhcpv4ClientMetric): - raise Exception("Item is not an instance of Dhcpv4ClientMetric") + if not isinstance(item, Dhcpv6ClientMetric): + raise Exception("Item is not an instance of Dhcpv6ClientMetric") def metric( self, name=None, - discovers_sent=None, - offers_received=None, + solicits_sent=None, + advertisements_received=None, + advertisements_ignored=None, requests_sent=None, - acks_received=None, nacks_received=None, + replies_received=None, + information_requests_sent=None, + renews_sent=None, + rebinds_sent=None, releases_sent=None, - declines_sent=None, + reconfigures_received=None, + rapid_commit_solicits_sent=None, + rapid_commit_replies_received=None, ): - # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ClientMetricIter - """Factory method that creates an instance of the Dhcpv4ClientMetric class + # type: (str,int,int,int,int,int,int,int,int,int,int,int,int,int) -> Dhcpv6ClientMetricIter + """Factory method that creates an instance of the Dhcpv6ClientMetric class - DHCPv4 per peer statistics information. + DHCPv6 per peer statistics information. - Returns: Dhcpv4ClientMetricIter + Returns: Dhcpv6ClientMetricIter """ - item = Dhcpv4ClientMetric( + item = Dhcpv6ClientMetric( parent=self._parent, name=name, - discovers_sent=discovers_sent, - offers_received=offers_received, + solicits_sent=solicits_sent, + advertisements_received=advertisements_received, + advertisements_ignored=advertisements_ignored, requests_sent=requests_sent, - acks_received=acks_received, nacks_received=nacks_received, + replies_received=replies_received, + information_requests_sent=information_requests_sent, + renews_sent=renews_sent, + rebinds_sent=rebinds_sent, releases_sent=releases_sent, - declines_sent=declines_sent, + reconfigures_received=reconfigures_received, + rapid_commit_solicits_sent=rapid_commit_solicits_sent, + rapid_commit_replies_received=rapid_commit_replies_received, ) self._add(item) return self @@ -132972,54 +138013,66 @@ def metric( def add( self, name=None, - discovers_sent=None, - offers_received=None, + solicits_sent=None, + advertisements_received=None, + advertisements_ignored=None, requests_sent=None, - acks_received=None, nacks_received=None, + replies_received=None, + information_requests_sent=None, + renews_sent=None, + rebinds_sent=None, releases_sent=None, - declines_sent=None, + reconfigures_received=None, + rapid_commit_solicits_sent=None, + rapid_commit_replies_received=None, ): - # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ClientMetric - """Add method that creates and returns an instance of the Dhcpv4ClientMetric class + # type: (str,int,int,int,int,int,int,int,int,int,int,int,int,int) -> Dhcpv6ClientMetric + """Add method that creates and returns an instance of the Dhcpv6ClientMetric class - DHCPv4 per peer statistics information. + DHCPv6 per peer statistics information. - Returns: Dhcpv4ClientMetric + Returns: Dhcpv6ClientMetric """ - item = Dhcpv4ClientMetric( + item = Dhcpv6ClientMetric( parent=self._parent, name=name, - discovers_sent=discovers_sent, - offers_received=offers_received, + solicits_sent=solicits_sent, + advertisements_received=advertisements_received, + advertisements_ignored=advertisements_ignored, requests_sent=requests_sent, - acks_received=acks_received, nacks_received=nacks_received, + replies_received=replies_received, + information_requests_sent=information_requests_sent, + renews_sent=renews_sent, + rebinds_sent=rebinds_sent, releases_sent=releases_sent, - declines_sent=declines_sent, + reconfigures_received=reconfigures_received, + rapid_commit_solicits_sent=rapid_commit_solicits_sent, + rapid_commit_replies_received=rapid_commit_replies_received, ) self._add(item) return item -class Dhcpv4ServerMetric(OpenApiObject): +class Dhcpv6ServerMetric(OpenApiObject): __slots__ = "_parent" _TYPES = { "name": {"type": str}, - "discovers_received": { + "solicits_received": { "type": int, "format": "uint64", }, - "offers_sent": { + "solicits_ignored": { "type": int, "format": "uint64", }, - "requests_received": { + "advertisements_sent": { "type": int, "format": "uint64", }, - "acks_sent": { + "requests_received": { "type": int, "format": "uint64", }, @@ -133027,6 +138080,22 @@ class Dhcpv4ServerMetric(OpenApiObject): "type": int, "format": "uint64", }, + "confirms_received": { + "type": int, + "format": "uint64", + }, + "renewals_received": { + "type": int, + "format": "uint64", + }, + "rebinds_received": { + "type": int, + "format": "uint64", + }, + "replies_sent": { + "type": int, + "format": "uint64", + }, "releases_received": { "type": int, "format": "uint64", @@ -133035,6 +138104,22 @@ class Dhcpv4ServerMetric(OpenApiObject): "type": int, "format": "uint64", }, + "information_requests_received": { + "type": int, + "format": "uint64", + }, + "relay_forwards_received": { + "type": int, + "format": "uint64", + }, + "relay_replies_sent": { + "type": int, + "format": "uint64", + }, + "reconfigures_sent": { + "type": int, + "format": "uint64", + }, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -133047,35 +138132,61 @@ def __init__( self, parent=None, name=None, - discovers_received=None, - offers_sent=None, + solicits_received=None, + solicits_ignored=None, + advertisements_sent=None, requests_received=None, - acks_sent=None, nacks_sent=None, + confirms_received=None, + renewals_received=None, + rebinds_received=None, + replies_sent=None, releases_received=None, declines_received=None, + information_requests_received=None, + relay_forwards_received=None, + relay_replies_sent=None, + reconfigures_sent=None, ): - super(Dhcpv4ServerMetric, self).__init__() + super(Dhcpv6ServerMetric, self).__init__() self._parent = parent self._set_property("name", name) - self._set_property("discovers_received", discovers_received) - self._set_property("offers_sent", offers_sent) + self._set_property("solicits_received", solicits_received) + self._set_property("solicits_ignored", solicits_ignored) + self._set_property("advertisements_sent", advertisements_sent) self._set_property("requests_received", requests_received) - self._set_property("acks_sent", acks_sent) self._set_property("nacks_sent", nacks_sent) + self._set_property("confirms_received", confirms_received) + self._set_property("renewals_received", renewals_received) + self._set_property("rebinds_received", rebinds_received) + self._set_property("replies_sent", replies_sent) self._set_property("releases_received", releases_received) self._set_property("declines_received", declines_received) + self._set_property( + "information_requests_received", information_requests_received + ) + self._set_property("relay_forwards_received", relay_forwards_received) + self._set_property("relay_replies_sent", relay_replies_sent) + self._set_property("reconfigures_sent", reconfigures_sent) def set( self, name=None, - discovers_received=None, - offers_sent=None, + solicits_received=None, + solicits_ignored=None, + advertisements_sent=None, requests_received=None, - acks_sent=None, nacks_sent=None, + confirms_received=None, + renewals_received=None, + rebinds_received=None, + replies_sent=None, releases_received=None, declines_received=None, + information_requests_received=None, + relay_forwards_received=None, + relay_replies_sent=None, + reconfigures_sent=None, ): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: @@ -133086,7 +138197,7 @@ def name(self): # type: () -> str """name getter - The name of configured DHCPv4 Server. + The name of configured DHCPv6 Server. Returns: str """ @@ -133096,102 +138207,102 @@ def name(self): def name(self, value): """name setter - The name of configured DHCPv4 Server. + The name of configured DHCPv6 Server. value: str """ self._set_property("name", value) @property - def discovers_received(self): + def solicits_received(self): # type: () -> int - """discovers_received getter + """solicits_received getter - Number of DHCPDISCOVER messages received. + Number of DHCPSOLICIT messages received. Returns: int """ - return self._get_property("discovers_received") + return self._get_property("solicits_received") - @discovers_received.setter - def discovers_received(self, value): - """discovers_received setter + @solicits_received.setter + def solicits_received(self, value): + """solicits_received setter - Number of DHCPDISCOVER messages received. + Number of DHCPSOLICIT messages received. value: int """ - self._set_property("discovers_received", value) + self._set_property("solicits_received", value) @property - def offers_sent(self): + def solicits_ignored(self): # type: () -> int - """offers_sent getter + """solicits_ignored getter - Number of DHCPOFFER messages sent. + Number of DHCPSOLICIT messages ignored. Returns: int """ - return self._get_property("offers_sent") + return self._get_property("solicits_ignored") - @offers_sent.setter - def offers_sent(self, value): - """offers_sent setter + @solicits_ignored.setter + def solicits_ignored(self, value): + """solicits_ignored setter - Number of DHCPOFFER messages sent. + Number of DHCPSOLICIT messages ignored. value: int """ - self._set_property("offers_sent", value) + self._set_property("solicits_ignored", value) @property - def requests_received(self): + def advertisements_sent(self): # type: () -> int - """requests_received getter + """advertisements_sent getter - Number of DHCPOFFER messages received. + Number of DHCP Advertise messages sent. Returns: int """ - return self._get_property("requests_received") + return self._get_property("advertisements_sent") - @requests_received.setter - def requests_received(self, value): - """requests_received setter + @advertisements_sent.setter + def advertisements_sent(self, value): + """advertisements_sent setter - Number of DHCPOFFER messages received. + Number of DHCP Advertise messages sent. value: int """ - self._set_property("requests_received", value) + self._set_property("advertisements_sent", value) @property - def acks_sent(self): + def requests_received(self): # type: () -> int - """acks_sent getter + """requests_received getter - Number of lease DHCPACK messages sent. + Number of DHCPREQUEST messages received. Returns: int """ - return self._get_property("acks_sent") + return self._get_property("requests_received") - @acks_sent.setter - def acks_sent(self, value): - """acks_sent setter + @requests_received.setter + def requests_received(self, value): + """requests_received setter - Number of lease DHCPACK messages sent. + Number of DHCPREQUEST messages received. value: int """ - self._set_property("acks_sent", value) + self._set_property("requests_received", value) @property def nacks_sent(self): # type: () -> int """nacks_sent getter - Number of negative lease DHCPNACK messages sent. + Number of naks sent for DHCPREQUEST messages. Returns: int """ @@ -133201,18 +138312,102 @@ def nacks_sent(self): def nacks_sent(self, value): """nacks_sent setter - Number of negative lease DHCPNACK messages sent. + Number of naks sent for DHCPREQUEST messages. value: int """ self._set_property("nacks_sent", value) + @property + def confirms_received(self): + # type: () -> int + """confirms_received getter + + Number of DHCP Confirm messages received. + + Returns: int + """ + return self._get_property("confirms_received") + + @confirms_received.setter + def confirms_received(self, value): + """confirms_received setter + + Number of DHCP Confirm messages received. + + value: int + """ + self._set_property("confirms_received", value) + + @property + def renewals_received(self): + # type: () -> int + """renewals_received getter + + Number of DHCP Renewal messages received. + + Returns: int + """ + return self._get_property("renewals_received") + + @renewals_received.setter + def renewals_received(self, value): + """renewals_received setter + + Number of DHCP Renewal messages received. + + value: int + """ + self._set_property("renewals_received", value) + + @property + def rebinds_received(self): + # type: () -> int + """rebinds_received getter + + Number of DHCP Rebind messages received. + + Returns: int + """ + return self._get_property("rebinds_received") + + @rebinds_received.setter + def rebinds_received(self, value): + """rebinds_received setter + + Number of DHCP Rebind messages received. + + value: int + """ + self._set_property("rebinds_received", value) + + @property + def replies_sent(self): + # type: () -> int + """replies_sent getter + + Number of DHCP Reply messages sent. + + Returns: int + """ + return self._get_property("replies_sent") + + @replies_sent.setter + def replies_sent(self, value): + """replies_sent setter + + Number of DHCP Reply messages sent. + + value: int + """ + self._set_property("replies_sent", value) + @property def releases_received(self): # type: () -> int """releases_received getter - Number of DHCPRELEASE messages received. + Number of DHCP Release messages received. Returns: int """ @@ -133222,7 +138417,7 @@ def releases_received(self): def releases_received(self, value): """releases_received setter - Number of DHCPRELEASE messages received. + Number of DHCP Release messages received. value: int """ @@ -133233,7 +138428,7 @@ def declines_received(self): # type: () -> int """declines_received getter - Number of DHCPDECLINE messages received. + Number of DHCP Decline messages received. Returns: int """ @@ -133243,71 +138438,171 @@ def declines_received(self): def declines_received(self, value): """declines_received setter - Number of DHCPDECLINE messages received. + Number of DHCP Decline messages received. value: int """ self._set_property("declines_received", value) + @property + def information_requests_received(self): + # type: () -> int + """information_requests_received getter -class Dhcpv4ServerMetricIter(OpenApiIter): + Number of DHCP Information Request messages received. + + Returns: int + """ + return self._get_property("information_requests_received") + + @information_requests_received.setter + def information_requests_received(self, value): + """information_requests_received setter + + Number of DHCP Information Request messages received. + + value: int + """ + self._set_property("information_requests_received", value) + + @property + def relay_forwards_received(self): + # type: () -> int + """relay_forwards_received getter + + Number of DHCP Relay agent forward messages received. + + Returns: int + """ + return self._get_property("relay_forwards_received") + + @relay_forwards_received.setter + def relay_forwards_received(self, value): + """relay_forwards_received setter + + Number of DHCP Relay agent forward messages received. + + value: int + """ + self._set_property("relay_forwards_received", value) + + @property + def relay_replies_sent(self): + # type: () -> int + """relay_replies_sent getter + + Number of DHCP reply messages sent to Relay agent. + + Returns: int + """ + return self._get_property("relay_replies_sent") + + @relay_replies_sent.setter + def relay_replies_sent(self, value): + """relay_replies_sent setter + + Number of DHCP reply messages sent to Relay agent. + + value: int + """ + self._set_property("relay_replies_sent", value) + + @property + def reconfigures_sent(self): + # type: () -> int + """reconfigures_sent getter + + Number of DHCP Reconfigure messages sent. + + Returns: int + """ + return self._get_property("reconfigures_sent") + + @reconfigures_sent.setter + def reconfigures_sent(self, value): + """reconfigures_sent setter + + Number of DHCP Reconfigure messages sent. + + value: int + """ + self._set_property("reconfigures_sent", value) + + +class Dhcpv6ServerMetricIter(OpenApiIter): __slots__ = ("_parent", "_choice") _GETITEM_RETURNS_CHOICE_OBJECT = False def __init__(self, parent=None, choice=None): - super(Dhcpv4ServerMetricIter, self).__init__() + super(Dhcpv6ServerMetricIter, self).__init__() self._parent = parent self._choice = choice def __getitem__(self, key): - # type: (str) -> Union[Dhcpv4ServerMetric] + # type: (str) -> Union[Dhcpv6ServerMetric] return self._getitem(key) def __iter__(self): - # type: () -> Dhcpv4ServerMetricIter + # type: () -> Dhcpv6ServerMetricIter return self._iter() def __next__(self): - # type: () -> Dhcpv4ServerMetric + # type: () -> Dhcpv6ServerMetric return self._next() def next(self): - # type: () -> Dhcpv4ServerMetric + # type: () -> Dhcpv6ServerMetric return self._next() def _instanceOf(self, item): - if not isinstance(item, Dhcpv4ServerMetric): - raise Exception("Item is not an instance of Dhcpv4ServerMetric") + if not isinstance(item, Dhcpv6ServerMetric): + raise Exception("Item is not an instance of Dhcpv6ServerMetric") def metric( self, name=None, - discovers_received=None, - offers_sent=None, + solicits_received=None, + solicits_ignored=None, + advertisements_sent=None, requests_received=None, - acks_sent=None, nacks_sent=None, + confirms_received=None, + renewals_received=None, + rebinds_received=None, + replies_sent=None, releases_received=None, declines_received=None, + information_requests_received=None, + relay_forwards_received=None, + relay_replies_sent=None, + reconfigures_sent=None, ): - # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ServerMetricIter - """Factory method that creates an instance of the Dhcpv4ServerMetric class + # type: (str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) -> Dhcpv6ServerMetricIter + """Factory method that creates an instance of the Dhcpv6ServerMetric class - DHCPv4 per peer statistics information. + DHCPv6 per server statistics information. - Returns: Dhcpv4ServerMetricIter + Returns: Dhcpv6ServerMetricIter """ - item = Dhcpv4ServerMetric( + item = Dhcpv6ServerMetric( parent=self._parent, name=name, - discovers_received=discovers_received, - offers_sent=offers_sent, + solicits_received=solicits_received, + solicits_ignored=solicits_ignored, + advertisements_sent=advertisements_sent, requests_received=requests_received, - acks_sent=acks_sent, nacks_sent=nacks_sent, + confirms_received=confirms_received, + renewals_received=renewals_received, + rebinds_received=rebinds_received, + replies_sent=replies_sent, releases_received=releases_received, declines_received=declines_received, + information_requests_received=information_requests_received, + relay_forwards_received=relay_forwards_received, + relay_replies_sent=relay_replies_sent, + reconfigures_sent=reconfigures_sent, ) self._add(item) return self @@ -133315,31 +138610,47 @@ def metric( def add( self, name=None, - discovers_received=None, - offers_sent=None, + solicits_received=None, + solicits_ignored=None, + advertisements_sent=None, requests_received=None, - acks_sent=None, nacks_sent=None, + confirms_received=None, + renewals_received=None, + rebinds_received=None, + replies_sent=None, releases_received=None, declines_received=None, + information_requests_received=None, + relay_forwards_received=None, + relay_replies_sent=None, + reconfigures_sent=None, ): - # type: (str,int,int,int,int,int,int,int) -> Dhcpv4ServerMetric - """Add method that creates and returns an instance of the Dhcpv4ServerMetric class + # type: (str,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int) -> Dhcpv6ServerMetric + """Add method that creates and returns an instance of the Dhcpv6ServerMetric class - DHCPv4 per peer statistics information. + DHCPv6 per server statistics information. - Returns: Dhcpv4ServerMetric + Returns: Dhcpv6ServerMetric """ - item = Dhcpv4ServerMetric( + item = Dhcpv6ServerMetric( parent=self._parent, name=name, - discovers_received=discovers_received, - offers_sent=offers_sent, + solicits_received=solicits_received, + solicits_ignored=solicits_ignored, + advertisements_sent=advertisements_sent, requests_received=requests_received, - acks_sent=acks_sent, nacks_sent=nacks_sent, + confirms_received=confirms_received, + renewals_received=renewals_received, + rebinds_received=rebinds_received, + replies_sent=replies_sent, releases_received=releases_received, declines_received=declines_received, + information_requests_received=information_requests_received, + relay_forwards_received=relay_forwards_received, + relay_replies_sent=relay_replies_sent, + reconfigures_sent=reconfigures_sent, ) self._add(item) return item @@ -133360,6 +138671,8 @@ class StatesRequest(OpenApiObject): "rsvp_lsps", "dhcpv4_interfaces", "dhcpv4_leases", + "dhcpv6_interfaces", + "dhcpv6_leases", ], }, "ipv4_neighbors": {"type": "Neighborsv4StatesRequest"}, @@ -133370,6 +138683,8 @@ class StatesRequest(OpenApiObject): "rsvp_lsps": {"type": "RsvpLspsStateRequest"}, "dhcpv4_interfaces": {"type": "Dhcpv4InterfaceStateRequest"}, "dhcpv4_leases": {"type": "Dhcpv4LeaseStateRequest"}, + "dhcpv6_interfaces": {"type": "Dhcpv6InterfaceStateRequest"}, + "dhcpv6_leases": {"type": "Dhcpv6LeaseStateRequest"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -133386,6 +138701,8 @@ class StatesRequest(OpenApiObject): RSVP_LSPS = "rsvp_lsps" # type: str DHCPV4_INTERFACES = "dhcpv4_interfaces" # type: str DHCPV4_LEASES = "dhcpv4_leases" # type: str + DHCPV6_INTERFACES = "dhcpv6_interfaces" # type: str + DHCPV6_LEASES = "dhcpv6_leases" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -133501,14 +138818,40 @@ def dhcpv4_leases(self): "dhcpv4_leases", Dhcpv4LeaseStateRequest, self, "dhcpv4_leases" ) + @property + def dhcpv6_interfaces(self): + # type: () -> Dhcpv6InterfaceStateRequest + """Factory property that returns an instance of the Dhcpv6InterfaceStateRequest class + + The request for assigned IPv6 address information associated with DHCP Client sessions. + + Returns: Dhcpv6InterfaceStateRequest + """ + return self._get_property( + "dhcpv6_interfaces", Dhcpv6InterfaceStateRequest, self, "dhcpv6_interfaces" + ) + + @property + def dhcpv6_leases(self): + # type: () -> Dhcpv6LeaseStateRequest + """Factory property that returns an instance of the Dhcpv6LeaseStateRequest class + + The request to retrieve DHCP Server host allocated status. + + Returns: Dhcpv6LeaseStateRequest + """ + return self._get_property( + "dhcpv6_leases", Dhcpv6LeaseStateRequest, self, "dhcpv6_leases" + ) + @property def choice(self): - # type: () -> Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + # type: () -> Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """choice getter TBD - Returns: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + Returns: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """ return self._get_property("choice") @@ -133518,7 +138861,7 @@ def choice(self, value): TBD - value: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + value: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """ self._set_property("choice", value) @@ -134410,6 +139753,102 @@ def dhcp_server_names(self, value): self._set_property("dhcp_server_names", value) +class Dhcpv6InterfaceStateRequest(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "dhcp_client_names": { + "type": list, + "itemtype": str, + }, + } # 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, dhcp_client_names=None): + super(Dhcpv6InterfaceStateRequest, self).__init__() + self._parent = parent + self._set_property("dhcp_client_names", dhcp_client_names) + + def set(self, dhcp_client_names=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 dhcp_client_names(self): + # type: () -> List[str] + """dhcp_client_names getter + + The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information.. x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. + + Returns: List[str] + """ + return self._get_property("dhcp_client_names") + + @dhcp_client_names.setter + def dhcp_client_names(self, value): + """dhcp_client_names setter + + The names of DHCPv6 client to return results for. An empty list will return results for all DHCPv6 Client address information.. x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6client/properties/name. + + value: List[str] + """ + self._set_property("dhcp_client_names", value) + + +class Dhcpv6LeaseStateRequest(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "dhcp_server_names": { + "type": list, + "itemtype": str, + }, + } # 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, dhcp_server_names=None): + super(Dhcpv6LeaseStateRequest, self).__init__() + self._parent = parent + self._set_property("dhcp_server_names", dhcp_server_names) + + def set(self, dhcp_server_names=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 dhcp_server_names(self): + # type: () -> List[str] + """dhcp_server_names getter + + The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers.. x-constraint:. /components/schemas/Device.Dhcpv6server/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6server/properties/name. + + Returns: List[str] + """ + return self._get_property("dhcp_server_names") + + @dhcp_server_names.setter + def dhcp_server_names(self, value): + """dhcp_server_names setter + + The names of DHCPv6 server to return results for. An empty list will return results for all DHCPv6 servers.. x-constraint:. /components/schemas/Device.Dhcpv6server/properties/name. . x-constraint:. /components/schemas/Device.Dhcpv6server/properties/name. + + value: List[str] + """ + self._set_property("dhcp_server_names", value) + + class StatesResponse(OpenApiObject): __slots__ = ("_parent", "_choice") @@ -134425,6 +139864,8 @@ class StatesResponse(OpenApiObject): "rsvp_lsps", "dhcpv4_interfaces", "dhcpv4_leases", + "dhcpv6_interfaces", + "dhcpv6_leases", ], }, "ipv4_neighbors": {"type": "Neighborsv4StateIter"}, @@ -134435,6 +139876,8 @@ class StatesResponse(OpenApiObject): "rsvp_lsps": {"type": "RsvpLspsStateIter"}, "dhcpv4_interfaces": {"type": "Dhcpv4InterfaceStateIter"}, "dhcpv4_leases": {"type": "Dhcpv4LeasesStateIter"}, + "dhcpv6_interfaces": {"type": "Dhcpv6InterfaceStateIter"}, + "dhcpv6_leases": {"type": "Dhcpv6LeasesStateIter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -134451,6 +139894,8 @@ class StatesResponse(OpenApiObject): RSVP_LSPS = "rsvp_lsps" # type: str DHCPV4_INTERFACES = "dhcpv4_interfaces" # type: str DHCPV4_LEASES = "dhcpv4_leases" # type: str + DHCPV6_INTERFACES = "dhcpv6_interfaces" # type: str + DHCPV6_LEASES = "dhcpv6_leases" # type: str _STATUS = {} # type: Dict[str, Union(type)] @@ -134468,12 +139913,12 @@ def __init__(self, parent=None, choice=None): @property def choice(self): - # type: () -> Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + # type: () -> Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """choice getter TBD - Returns: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + Returns: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """ return self._get_property("choice") @@ -134483,7 +139928,7 @@ def choice(self, value): TBD - value: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] + value: Union[Literal["bgp_prefixes"], Literal["dhcpv4_interfaces"], Literal["dhcpv4_leases"], Literal["dhcpv6_interfaces"], Literal["dhcpv6_leases"], Literal["ipv4_neighbors"], Literal["ipv6_neighbors"], Literal["isis_lsps"], Literal["lldp_neighbors"], Literal["rsvp_lsps"]] """ self._set_property("choice", value) @@ -134591,6 +140036,32 @@ def dhcpv4_leases(self): "dhcpv4_leases", Dhcpv4LeasesStateIter, self._parent, self._choice ) + @property + def dhcpv6_interfaces(self): + # type: () -> Dhcpv6InterfaceStateIter + """dhcpv6_interfaces getter + + TBD + + Returns: Dhcpv6InterfaceStateIter + """ + return self._get_property( + "dhcpv6_interfaces", Dhcpv6InterfaceStateIter, self._parent, self._choice + ) + + @property + def dhcpv6_leases(self): + # type: () -> Dhcpv6LeasesStateIter + """dhcpv6_leases getter + + TBD + + Returns: Dhcpv6LeasesStateIter + """ + return self._get_property( + "dhcpv6_leases", Dhcpv6LeasesStateIter, self._parent, self._choice + ) + class Neighborsv4State(OpenApiObject): __slots__ = "_parent" @@ -142441,6 +147912,789 @@ def add(self, dhcp_server_name=None): return item +class Dhcpv6InterfaceState(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "dhcp_client_name": {"type": str}, + "ipv6_iapd_address": {"type": str}, + "iapd_prefix_length": { + "type": int, + "format": "uint32", + "maximum": 128, + }, + "ipv6_address": {"type": str}, + "gateway_address": {"type": str}, + "lease_time": { + "type": int, + "format": "uint32", + }, + "renew_time": { + "type": int, + "format": "uint32", + }, + "rebind_time": { + "type": int, + "format": "uint32", + }, + } # 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, + dhcp_client_name=None, + ipv6_iapd_address=None, + iapd_prefix_length=None, + ipv6_address=None, + gateway_address=None, + lease_time=None, + renew_time=None, + rebind_time=None, + ): + super(Dhcpv6InterfaceState, self).__init__() + self._parent = parent + self._set_property("dhcp_client_name", dhcp_client_name) + self._set_property("ipv6_iapd_address", ipv6_iapd_address) + self._set_property("iapd_prefix_length", iapd_prefix_length) + self._set_property("ipv6_address", ipv6_address) + self._set_property("gateway_address", gateway_address) + self._set_property("lease_time", lease_time) + self._set_property("renew_time", renew_time) + self._set_property("rebind_time", rebind_time) + + def set( + self, + dhcp_client_name=None, + ipv6_iapd_address=None, + iapd_prefix_length=None, + ipv6_address=None, + gateway_address=None, + lease_time=None, + renew_time=None, + rebind_time=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 dhcp_client_name(self): + # type: () -> str + """dhcp_client_name getter + + The name of DHCPv6 Client. + + Returns: str + """ + return self._get_property("dhcp_client_name") + + @dhcp_client_name.setter + def dhcp_client_name(self, value): + """dhcp_client_name setter + + The name of DHCPv6 Client. + + value: str + """ + self._set_property("dhcp_client_name", value) + + @property + def ipv6_iapd_address(self): + # type: () -> str + """ipv6_iapd_address getter + + The IPv6 IAPD address associated with this DHCP Client session. + + Returns: str + """ + return self._get_property("ipv6_iapd_address") + + @ipv6_iapd_address.setter + def ipv6_iapd_address(self, value): + """ipv6_iapd_address setter + + The IPv6 IAPD address associated with this DHCP Client session. + + value: str + """ + self._set_property("ipv6_iapd_address", value) + + @property + def iapd_prefix_length(self): + # type: () -> int + """iapd_prefix_length getter + + The prefix length of the IPv6 IAPD address associated with this DHCP Client session. + + Returns: int + """ + return self._get_property("iapd_prefix_length") + + @iapd_prefix_length.setter + def iapd_prefix_length(self, value): + """iapd_prefix_length setter + + The prefix length of the IPv6 IAPD address associated with this DHCP Client session. + + value: int + """ + self._set_property("iapd_prefix_length", value) + + @property + def ipv6_address(self): + # type: () -> str + """ipv6_address getter + + The IPv6 address associated with this DHCP Client session. + + Returns: str + """ + return self._get_property("ipv6_address") + + @ipv6_address.setter + def ipv6_address(self, value): + """ipv6_address setter + + The IPv6 address associated with this DHCP Client session. + + value: str + """ + self._set_property("ipv6_address", value) + + @property + def gateway_address(self): + # type: () -> str + """gateway_address getter + + The Gateway IPV6 address associated with this DHCP Client session. + + Returns: str + """ + return self._get_property("gateway_address") + + @gateway_address.setter + def gateway_address(self, value): + """gateway_address setter + + The Gateway IPV6 address associated with this DHCP Client session. + + value: str + """ + self._set_property("gateway_address", value) + + @property + def lease_time(self): + # type: () -> int + """lease_time getter + + The duration of the IPv6 address lease, in seconds. + + Returns: int + """ + return self._get_property("lease_time") + + @lease_time.setter + def lease_time(self, value): + """lease_time setter + + The duration of the IPv6 address lease, in seconds. + + value: int + """ + self._set_property("lease_time", value) + + @property + def renew_time(self): + # type: () -> int + """renew_time getter + + Time in seconds until the DHCPv6 client starts renewing the lease. + + Returns: int + """ + return self._get_property("renew_time") + + @renew_time.setter + def renew_time(self, value): + """renew_time setter + + Time in seconds until the DHCPv6 client starts renewing the lease. + + value: int + """ + self._set_property("renew_time", value) + + @property + def rebind_time(self): + # type: () -> int + """rebind_time getter + + Time in seconds until the DHCPv6 client starts rebinding. + + Returns: int + """ + return self._get_property("rebind_time") + + @rebind_time.setter + def rebind_time(self, value): + """rebind_time setter + + Time in seconds until the DHCPv6 client starts rebinding. + + value: int + """ + self._set_property("rebind_time", value) + + +class Dhcpv6InterfaceStateIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv6InterfaceStateIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6InterfaceState] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6InterfaceStateIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6InterfaceState + return self._next() + + def next(self): + # type: () -> Dhcpv6InterfaceState + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6InterfaceState): + raise Exception("Item is not an instance of Dhcpv6InterfaceState") + + def state( + self, + dhcp_client_name=None, + ipv6_iapd_address=None, + iapd_prefix_length=None, + ipv6_address=None, + gateway_address=None, + lease_time=None, + renew_time=None, + rebind_time=None, + ): + # type: (str,str,int,str,str,int,int,int) -> Dhcpv6InterfaceStateIter + """Factory method that creates an instance of the Dhcpv6InterfaceState class + + The IPv6 address associated with this DHCP Client session. + + Returns: Dhcpv6InterfaceStateIter + """ + item = Dhcpv6InterfaceState( + parent=self._parent, + dhcp_client_name=dhcp_client_name, + ipv6_iapd_address=ipv6_iapd_address, + iapd_prefix_length=iapd_prefix_length, + ipv6_address=ipv6_address, + gateway_address=gateway_address, + lease_time=lease_time, + renew_time=renew_time, + rebind_time=rebind_time, + ) + self._add(item) + return self + + def add( + self, + dhcp_client_name=None, + ipv6_iapd_address=None, + iapd_prefix_length=None, + ipv6_address=None, + gateway_address=None, + lease_time=None, + renew_time=None, + rebind_time=None, + ): + # type: (str,str,int,str,str,int,int,int) -> Dhcpv6InterfaceState + """Add method that creates and returns an instance of the Dhcpv6InterfaceState class + + The IPv6 address associated with this DHCP Client session. + + Returns: Dhcpv6InterfaceState + """ + item = Dhcpv6InterfaceState( + parent=self._parent, + dhcp_client_name=dhcp_client_name, + ipv6_iapd_address=ipv6_iapd_address, + iapd_prefix_length=iapd_prefix_length, + ipv6_address=ipv6_address, + gateway_address=gateway_address, + lease_time=lease_time, + renew_time=renew_time, + rebind_time=rebind_time, + ) + self._add(item) + return item + + +class Dhcpv6LeasesState(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "dhcp_server_name": {"type": str}, + "leases": {"type": "Dhcpv6ServerLeaseStateIter"}, + } # 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, dhcp_server_name=None): + super(Dhcpv6LeasesState, self).__init__() + self._parent = parent + self._set_property("dhcp_server_name", dhcp_server_name) + + def set(self, dhcp_server_name=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 dhcp_server_name(self): + # type: () -> str + """dhcp_server_name getter + + The name of DHCP Server. + + Returns: str + """ + return self._get_property("dhcp_server_name") + + @dhcp_server_name.setter + def dhcp_server_name(self, value): + """dhcp_server_name setter + + The name of DHCP Server. + + value: str + """ + self._set_property("dhcp_server_name", value) + + @property + def leases(self): + # type: () -> Dhcpv6ServerLeaseStateIter + """leases getter + + TBD + + Returns: Dhcpv6ServerLeaseStateIter + """ + return self._get_property( + "leases", Dhcpv6ServerLeaseStateIter, self._parent, self._choice + ) + + +class Dhcpv6ServerLeaseState(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "address": {"type": str}, + "valid_time": { + "type": int, + "format": "uint32", + }, + "preferred_time": { + "type": int, + "format": "uint32", + }, + "renew_time": { + "type": int, + "format": "uint32", + }, + "rebind_time": { + "type": int, + "format": "uint32", + }, + "client_id": {"type": str}, + "remote_id": {"type": str}, + "interface_id": {"type": str}, + } # 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, + address=None, + valid_time=None, + preferred_time=None, + renew_time=None, + rebind_time=None, + client_id=None, + remote_id=None, + interface_id=None, + ): + super(Dhcpv6ServerLeaseState, self).__init__() + self._parent = parent + self._set_property("address", address) + self._set_property("valid_time", valid_time) + self._set_property("preferred_time", preferred_time) + self._set_property("renew_time", renew_time) + self._set_property("rebind_time", rebind_time) + self._set_property("client_id", client_id) + self._set_property("remote_id", remote_id) + self._set_property("interface_id", interface_id) + + def set( + self, + address=None, + valid_time=None, + preferred_time=None, + renew_time=None, + rebind_time=None, + client_id=None, + remote_id=None, + interface_id=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 address(self): + # type: () -> str + """address getter + + The IPv6 address associated with this lease. + + Returns: str + """ + return self._get_property("address") + + @address.setter + def address(self, value): + """address setter + + The IPv6 address associated with this lease. + + value: str + """ + self._set_property("address", value) + + @property + def valid_time(self): + # type: () -> int + """valid_time getter + + The time in seconds, IP address lease will expire. + + Returns: int + """ + return self._get_property("valid_time") + + @valid_time.setter + def valid_time(self, value): + """valid_time setter + + The time in seconds, IP address lease will expire. + + value: int + """ + self._set_property("valid_time", value) + + @property + def preferred_time(self): + # type: () -> int + """preferred_time getter + + The time in seconds, elapsed time since address has been renewed. + + Returns: int + """ + return self._get_property("preferred_time") + + @preferred_time.setter + def preferred_time(self, value): + """preferred_time setter + + The time in seconds, elapsed time since address has been renewed. + + value: int + """ + self._set_property("preferred_time", value) + + @property + def renew_time(self): + # type: () -> int + """renew_time getter + + Time in seconds until the DHCPv6 client starts renewing the lease. + + Returns: int + """ + return self._get_property("renew_time") + + @renew_time.setter + def renew_time(self, value): + """renew_time setter + + Time in seconds until the DHCPv6 client starts renewing the lease. + + value: int + """ + self._set_property("renew_time", value) + + @property + def rebind_time(self): + # type: () -> int + """rebind_time getter + + Time in seconds until the DHCPv6 client starts rebinding. + + Returns: int + """ + return self._get_property("rebind_time") + + @rebind_time.setter + def rebind_time(self, value): + """rebind_time setter + + Time in seconds until the DHCPv6 client starts rebinding. + + value: int + """ + self._set_property("rebind_time", value) + + @property + def client_id(self): + # type: () -> str + """client_id getter + + The ID of the DHCPv6 client holding this lease. + + Returns: str + """ + return self._get_property("client_id") + + @client_id.setter + def client_id(self, value): + """client_id setter + + The ID of the DHCPv6 client holding this lease. + + value: str + """ + self._set_property("client_id", value) + + @property + def remote_id(self): + # type: () -> str + """remote_id getter + + The Remote ID option found in the last request message. + + Returns: str + """ + return self._get_property("remote_id") + + @remote_id.setter + def remote_id(self, value): + """remote_id setter + + The Remote ID option found in the last request message. + + value: str + """ + self._set_property("remote_id", value) + + @property + def interface_id(self): + # type: () -> str + """interface_id getter + + The Interface ID option found in the last request message. + + Returns: str + """ + return self._get_property("interface_id") + + @interface_id.setter + def interface_id(self, value): + """interface_id setter + + The Interface ID option found in the last request message. + + value: str + """ + self._set_property("interface_id", value) + + +class Dhcpv6ServerLeaseStateIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv6ServerLeaseStateIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6ServerLeaseState] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6ServerLeaseStateIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6ServerLeaseState + return self._next() + + def next(self): + # type: () -> Dhcpv6ServerLeaseState + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6ServerLeaseState): + raise Exception("Item is not an instance of Dhcpv6ServerLeaseState") + + def state( + self, + address=None, + valid_time=None, + preferred_time=None, + renew_time=None, + rebind_time=None, + client_id=None, + remote_id=None, + interface_id=None, + ): + # type: (str,int,int,int,int,str,str,str) -> Dhcpv6ServerLeaseStateIter + """Factory method that creates an instance of the Dhcpv6ServerLeaseState class + + IPv6 unicast prefix. + + Returns: Dhcpv6ServerLeaseStateIter + """ + item = Dhcpv6ServerLeaseState( + parent=self._parent, + address=address, + valid_time=valid_time, + preferred_time=preferred_time, + renew_time=renew_time, + rebind_time=rebind_time, + client_id=client_id, + remote_id=remote_id, + interface_id=interface_id, + ) + self._add(item) + return self + + def add( + self, + address=None, + valid_time=None, + preferred_time=None, + renew_time=None, + rebind_time=None, + client_id=None, + remote_id=None, + interface_id=None, + ): + # type: (str,int,int,int,int,str,str,str) -> Dhcpv6ServerLeaseState + """Add method that creates and returns an instance of the Dhcpv6ServerLeaseState class + + IPv6 unicast prefix. + + Returns: Dhcpv6ServerLeaseState + """ + item = Dhcpv6ServerLeaseState( + parent=self._parent, + address=address, + valid_time=valid_time, + preferred_time=preferred_time, + renew_time=renew_time, + rebind_time=rebind_time, + client_id=client_id, + remote_id=remote_id, + interface_id=interface_id, + ) + self._add(item) + return item + + +class Dhcpv6LeasesStateIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(Dhcpv6LeasesStateIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[Dhcpv6LeasesState] + return self._getitem(key) + + def __iter__(self): + # type: () -> Dhcpv6LeasesStateIter + return self._iter() + + def __next__(self): + # type: () -> Dhcpv6LeasesState + return self._next() + + def next(self): + # type: () -> Dhcpv6LeasesState + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, Dhcpv6LeasesState): + raise Exception("Item is not an instance of Dhcpv6LeasesState") + + def state(self, dhcp_server_name=None): + # type: (str) -> Dhcpv6LeasesStateIter + """Factory method that creates an instance of the Dhcpv6LeasesState class + + Lease information of DHCP Server. + + Returns: Dhcpv6LeasesStateIter + """ + item = Dhcpv6LeasesState(parent=self._parent, dhcp_server_name=dhcp_server_name) + self._add(item) + return self + + def add(self, dhcp_server_name=None): + # type: (str) -> Dhcpv6LeasesState + """Add method that creates and returns an instance of the Dhcpv6LeasesState class + + Lease information of DHCP Server. + + Returns: Dhcpv6LeasesState + """ + item = Dhcpv6LeasesState(parent=self._parent, dhcp_server_name=dhcp_server_name) + self._add(item) + return item + + class CaptureRequest(OpenApiObject): __slots__ = "_parent" @@ -142592,8 +148846,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "1.7.1" - self._version_meta.sdk_version = "1.7.2" + self._version_meta.api_spec_version = "1.8.0" + self._version_meta.sdk_version = "1.8.0" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False